class ModifiedNewton : public EquiSolnAlgo


Inheritance:


Public Methods

ModifiedNewton()
ModifiedNewton(ConvergenceTest &theTest)
~ModifiedNewton()
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 ModifiedNewton class is an algorithmic class which obtains a solution to a non-linear system using the modified Newton-Raphson iteration scheme. The Newton-Rapson 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.
ModifiedNewton()

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

ModifiedNewton(ConvergenceTest &theTest)

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

~ModifiedNewton()

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 modified Newton-Raphson iteration algorithm: \begin{tabbing} while \= \+ while \= \kill theTest->start();

void setTest(ConvergenceTest &theNewTest)

A method to set the tolerance criteria of the algorithm to be equal to the value theTol

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 'ModifiedNewton' 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