xc
Public Member Functions | Protected Member Functions | Friends | List of all members

Uses the tangent stiffness matrix on each iteration until convergence is achieved. More...

#include <NewtonRaphson.h>

Inheritance diagram for XC::NewtonRaphson:
XC::NewtonBased XC::EquiSolnAlgo XC::SolutionAlgorithm XC::MovableObject XC::ObjWithRecorders XC::DistributedBase

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\).
 
- Public Member Functions inherited from XC::NewtonBased
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.
 
- Public Member Functions inherited from XC::EquiSolnAlgo
virtual ConvergenceTestgetConvergenceTestPtr (void)
 Returns a pointer to the convergence test.
 
virtual const ConvergenceTestgetConvergenceTestPtr (void) const
 Returns a pointer to the convergence test.
 
IncrementalIntegratorgetIncrementalIntegratorPtr (void)
 Returns a pointer to the incremental integrator.
 
- Public Member Functions inherited from XC::SolutionAlgorithm
virtual int domainChanged (void)
 Perform the appropiate modifications as a result of a change in the domain. More...
 
virtual AnalysisModelgetAnalysisModelPtr (void)
 Return a pointer to the analysis model.
 
virtual const AnalysisModelgetAnalysisModelPtr (void) const
 Return a const pointer to the analysis model.
 
virtual IntegratorgetIntegratorPtr (void)
 Return a pointer to the integrator.
 
virtual const IntegratorgetIntegratorPtr (void) const
 Return a const pointer to the integrator.
 
virtual LinearSOEgetLinearSOEPtr (void)
 Return a pointer to the linear system of equations.
 
virtual const LinearSOEgetLinearSOEPtr (void) const
 Return a const pointer to the linear system of equations.
 
virtual EigenSOEgetEigenSOEPtr (void)
 Return a pointer to the eigen system of equations.
 
virtual const EigenSOEgetEigenSOEPtr (void) const
 Return a const pointer to the eigen system of equations.
 
virtual const DomainSolvergetDomainSolverPtr (void) const
 Return a const pointer to the DomainSolver.
 
virtual DomainSolvergetDomainSolverPtr (void)
 Return a pointer to the DomainSolver.
 
virtual const SubdomaingetSubdomainPtr (void) const
 Return a const pointer to the subdomain.
 
virtual SubdomaingetSubdomainPtr (void)
 Return a pointer to the subdomain.
 
- Public Member Functions inherited from XC::MovableObject
 MovableObject (int classTag, int dbTag)
 Constructor. More...
 
 MovableObject (int classTag)
 Constructor. More...
 
 MovableObject (const MovableObject &)
 Copy constructor. Doesn't copy the dbTag.
 
MovableObjectoperator= (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 &param)
 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.
 
- Public Member Functions inherited from XC::DistributedBase
 DistributedBase (void)
 Constructor.
 
virtual DbTagDatagetDbTagData (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.
 
- Public Member Functions inherited from XC::ObjWithRecorders
 ObjWithRecorders (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh=nullptr)
 
virtual ~ObjWithRecorders (void)
 Destructor.
 
RecordernewRecorder (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 SolutionAlgorithmgetCopy (void) const
 
- Protected Member Functions inherited from XC::NewtonBased
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.
 
- Protected Member Functions inherited from XC::EquiSolnAlgo
 EquiSolnAlgo (AnalysisAggregation *, int clasTag)
 Constructor. More...
 
- Protected Member Functions inherited from XC::SolutionAlgorithm
AnalysisAggregationgetAnalysisAggregation (void)
 Return a pointer to the solution method which owns this object.
 
const AnalysisAggregationgetAnalysisAggregation (void) const
 Return a pointer to the solution method which owns this object.
 
virtual Domainget_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.
 
- Protected Member Functions inherited from XC::ObjWithRecorders
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

- Public Types inherited from XC::ObjWithRecorders
typedef std::list< Recorder * > lista_recorders
 
typedef lista_recorders::iterator recorder_iterator
 
typedef lista_recorders::const_iterator const_recorder_iterator
 
- Protected Attributes inherited from XC::NewtonBased
int tangent
 

Detailed Description

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.

Constructor & Destructor Documentation

§ NewtonRaphson()

XC::NewtonRaphson::NewtonRaphson ( AnalysisAggregation owr,
int  theTangentToUse = CURRENT_TANGENT 
)
protected

Constructor.

Parameters
AnalysisAggregationobject 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.

Member Function Documentation

§ solveCurrentStep()

int XC::NewtonRaphson::solveCurrentStep ( void  )
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.


The documentation for this class was generated from the following files: