class NewtonRaphson : public EquiSolnAlgo


Inheritance:


Public Methods

NewtonRaphson()
NewtonRaphson(ConvergenceTest &theTest)
~NewtonRaphson()
int solveCurrentStep(void)
void setTest(ConvergenceTest &theNewTest)
virtual int sendSelf(int commitTag, Channel &theChannel)
virtual int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
void Print(ostream &s, int flag =0)

Inherited from EquiSolnAlgo:

Public Methods

void setLinks(AnalysisModel &theModel, IncrementalIntegrator &theIntegrator, LinearSOE &theSOE)
AnalysisModel* getAnalysisModelPtr(void) const
IncrementalIntegrator* getIncrementalIntegratorPtr(void) const
LinearSOE* getLinearSOEptr(void) const

Inherited from SolutionAlgorithm:

Public Methods

virtual int domainChanged(void)
virtual int addRecorder(Recorder &theRecorder)
virtual int playback(int track)
virtual int record(int track)

Inherited from MovableObject:

Public Methods

int getClassTag(void) const
int getDbTag(void) const
void setDbTag(int dbTag)

Documentation

The NewtonRaphson class is an algorithmic class which obtains a solution to a non-linear system using the Newton-Raphson iteration scheme. The iteration scheme is based on a Taylor expansion of the non-linear system of equations \R(\U) = \zero about an approximate solution \U^{(i)}:


which can be expressed as:


which is solved for \Delta \U^{(i)} to give approximation for \U^{(i+1)} = \U^{(i)} + \Delta \U^{(i)}. To start the iteration \U^{(1)} = \U_{trial}, i.e. the current trial response quantities are chosen as initial response quantities. To stop the iteration, a test must be performed to see if convergence has been achieved at each iteration. Each NewtonRaphson object is associated with a ConvergenceTest object. It is this object which determines if convergence has been achieved.
NewtonRaphson()

The constructor takes as an argument the ConvergenceTest object theTest, the object which is used at the end of each iteration to determine if convergence has been obtained. The integer EquiALGORITHM_TAGS_NewtonRaphson (defined in <classTags.h>) is passed to the EquiSolnAlgo classes constructor.

NewtonRaphson(ConvergenceTest &theTest)

Provided for FEM_ObjectBroker to instantiate a blank object with a class tag of EquiALGORITHM_TAGS_NewtonRaphson is passed. recvSelf() must be invoked on this object.

~NewtonRaphson()

Does nothing

int solveCurrentStep(void)

When invoked the object first sets itself as the EquiSolnAlgo object that the ConvergenceTest is testing and then it performs the Newton-Raphson iteration algorithm: \begin{tabbing} while \= \+ while \= \kill theTest->start()

void setTest(ConvergenceTest &theNewTest)

A method to set the ConvergenceTest object associated with the Algorithm to be theTest

virtual int sendSelf(int commitTag, Channel &theChannel)

Creates an ID object, puts the values of the theTest objects class and database tags into this ID. It then invokes sendVector() on the Channel object theChannel to send the data to the remote object. It then invokes sendSelf() on theTest. Returns 0 if successful, the channel error if not.

virtual int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)

Creates an ID object, invokes recvVector() on the Channel object. Uses the data in the ID to create a ConvergenceTest object of appropriate type and sets its dbTag. It then invokes recvSelf() on this test object.

void Print(ostream &s, int flag =0)

Sends the string 'NewtonRaphson' to the stream if flag equals 0


This class has no child classes.

alphabetic index Contents

this page has been generated automatically by a slightly modified version of doc++ for OpenSees

Copyright Contact Us