xc
|
Uses the tangent stiffness matrix on each iteration until convergence is achieved. More...
#include <NewtonRaphson.h>
Public Member Functions | |
int | solveCurrentStep (void) |
Performs the Newton-Raphson iteration algorithm. More... | |
void | Print (std::ostream &s, int flag=0) |
Sends the string 'NewtonRaphson' to the stream if flag equals \(0\). | |
![]() | |
virtual int | sendSelf (CommParameters &) |
Sends object through the channel being passed as parameter. | |
virtual int | recvSelf (const CommParameters &) |
Receives object through the channel being passed as parameter. | |
![]() | |
virtual ConvergenceTest * | getConvergenceTestPtr (void) |
Returns a pointer to the convergence test. | |
virtual const ConvergenceTest * | getConvergenceTestPtr (void) const |
Returns a pointer to the convergence test. | |
IncrementalIntegrator * | getIncrementalIntegratorPtr (void) |
Returns a pointer to the incremental integrator. | |
![]() | |
virtual int | domainChanged (void) |
Perform the appropiate modifications as a result of a change in the domain. More... | |
virtual AnalysisModel * | getAnalysisModelPtr (void) |
Return a pointer to the analysis model. | |
virtual const AnalysisModel * | getAnalysisModelPtr (void) const |
Return a const pointer to the analysis model. | |
virtual Integrator * | getIntegratorPtr (void) |
Return a pointer to the integrator. | |
virtual const Integrator * | getIntegratorPtr (void) const |
Return a const pointer to the integrator. | |
virtual LinearSOE * | getLinearSOEPtr (void) |
Return a pointer to the linear system of equations. | |
virtual const LinearSOE * | getLinearSOEPtr (void) const |
Return a const pointer to the linear system of equations. | |
virtual EigenSOE * | getEigenSOEPtr (void) |
Return a pointer to the eigen system of equations. | |
virtual const EigenSOE * | getEigenSOEPtr (void) const |
Return a const pointer to the eigen system of equations. | |
virtual const DomainSolver * | getDomainSolverPtr (void) const |
Return a const pointer to the DomainSolver. | |
virtual DomainSolver * | getDomainSolverPtr (void) |
Return a pointer to the DomainSolver. | |
virtual const Subdomain * | getSubdomainPtr (void) const |
Return a const pointer to the subdomain. | |
virtual Subdomain * | getSubdomainPtr (void) |
Return a pointer to the subdomain. | |
![]() | |
MovableObject (int classTag, int dbTag) | |
Constructor. More... | |
MovableObject (int classTag) | |
Constructor. More... | |
MovableObject (const MovableObject &) | |
Copy constructor. Doesn't copy the dbTag. | |
MovableObject & | operator= (const MovableObject &) |
Assignment operator. Doesn't copy the dbTag. | |
int | getClassTag (void) const |
Return the class identifier. | |
int | getDbTag (void) const |
Return the object identifier in the database. | |
int | getDbTag (CommParameters &) |
Return the object identifier in the database. | |
void | setDbTag (int dbTag) |
Sets the object identifier in the database. | |
void | setDbTag (CommParameters &) |
Sets the object identifier in the database if not already set. More... | |
virtual int | setParameter (const std::vector< std::string > &argv, Parameter ¶m) |
Sets the value param to the parameter argv . | |
virtual int | updateParameter (int parameterID, Information &info) |
Updates the parameter identified by parameterID with info . | |
virtual int | activateParameter (int parameterID) |
Activates the parameter identified by parameterID . | |
virtual int | setVariable (const std::string &variable, Information &) |
Set the value of the variable idenfified by var . | |
virtual int | getVariable (const std::string &variable, Information &) |
Return the value of the variable idenfified by var . | |
![]() | |
DistributedBase (void) | |
Constructor. | |
virtual DbTagData & | getDbTagData (void) const |
Returns a vector to store class dbTags. | |
const int & | getDbTagDataPos (const int &i) const |
Returns the data at the i-th position. | |
void | setDbTagDataPos (const int &i, const int &v) |
Sets the data at the i-th position. | |
void | inicComm (const int &dataSize) const |
Initializes communication. | |
![]() | |
ObjWithRecorders (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh=nullptr) | |
virtual | ~ObjWithRecorders (void) |
Destructor. | |
Recorder * | newRecorder (const std::string &, DataOutputHandler *oh=nullptr) |
Read a Recorder object from file. | |
virtual int | addRecorder (Recorder &theRecorder) |
Adds a recorder. More... | |
recorder_iterator | recorder_begin (void) |
const_recorder_iterator | recorder_begin (void) const |
recorder_iterator | recorder_end (void) |
const_recorder_iterator | recorder_end (void) const |
virtual int | record (int track, double timeStamp=0.0) |
To invoke {record(cTag, timeStamp)} on any Recorder objects which have been added. More... | |
void | restart (void) |
To invoke {restart()} on any Recorder objects which have been added. More... | |
virtual int | removeRecorders (void) |
Remove the recorders. | |
void | setLinks (Domain *dom) |
Asigna el domain a los recorders. | |
void | SetOutputHandlers (DataOutputHandler::map_output_handlers *oh) |
Set the outputhandlers container. | |
Protected Member Functions | |
NewtonRaphson (AnalysisAggregation *, int tangent=CURRENT_TANGENT) | |
Constructor. More... | |
virtual SolutionAlgorithm * | getCopy (void) const |
![]() | |
int | sendData (CommParameters &) |
Send object members through the channel being passed as parameter. | |
int | recvData (const CommParameters &) |
Receives object members through the channel being passed as parameter. | |
NewtonBased (AnalysisAggregation *, int classTag, int tangent=CURRENT_TANGENT) | |
Constructor. | |
![]() | |
EquiSolnAlgo (AnalysisAggregation *, int clasTag) | |
Constructor. More... | |
![]() | |
AnalysisAggregation * | getAnalysisAggregation (void) |
Return a pointer to the solution method which owns this object. | |
const AnalysisAggregation * | getAnalysisAggregation (void) const |
Return a pointer to the solution method which owns this object. | |
virtual Domain * | get_domain_ptr (void) |
Return a pointer to the domain. | |
int | sendData (CommParameters &) |
Send object members through the channel passed as parameter. | |
int | recvData (const CommParameters &) |
Receive object members through the channel passed as parameter. | |
SolutionAlgorithm (AnalysisAggregation *, int classTag) | |
Constructor. | |
![]() | |
int | sendData (CommParameters &cp) |
int | recvData (const CommParameters &cp) |
size_t | getNumRecorders (void) const |
Returns the number of recorders already defined. | |
Friends | |
class | AnalysisAggregation |
class | FEM_ObjectBroker |
Additional Inherited Members | |
![]() | |
typedef std::list< Recorder * > | lista_recorders |
typedef lista_recorders::iterator | recorder_iterator |
typedef lista_recorders::const_iterator | const_recorder_iterator |
![]() | |
int | tangent |
Uses the tangent stiffness matrix on each iteration until convergence is achieved.
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) = 0\) about an approximate solution \(U^{(i)}\): {equation} R(U) = R(U^{(i)}) + [ {{ R}{ U} }_{U^{(i)}}] ( U - U^{(i)} ) {equation}
which can be expressed as: {equation} K^{(i)} U^{(i)} = R(U^{(i)}) {equation} 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.
|
protected |
Constructor.
AnalysisAggregation | object the object which is used to acces the object that compound the analysis and that, at the end of each iteration, are used to determine if convergence has been obtained. |
|
virtual |
Performs the Newton-Raphson iteration algorithm.
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: {tabbing} while \= + while \= theTest- \(>\)start() theIntegrator- \(>\)formUnbalance(); do + theIntegrator- \(>\)formTangent(); theSOE- \(>\)solveX(); theIntegrator- \(>\)update(theSOE- \(>\)getX()); theIntegrator- \(>\)formUnbalance(); - {tabbing}
The method returns a 0 if successful, otherwise a negative number is returned; a \(-1\) if error during formTangent(), a \(-2\) if error during formUnbalance(), a \(-3\) if error during {solve()}, and a \(-4\) if error during update(). If an error occurs in any of the above operations the method stops at that routine, none of the subsequent operations are invoked. A \(-5\) is returned if any one of the links has not been setup. NOTE it is up to ConvergenceTest to ensure an infinite loop situation is not encountered.
Implements XC::EquiSolnAlgo.