xc
|
Newton-Raphson algorgitht. 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) const |
Sends the string 'NewtonRaphson' to the stream if flag equals \(0\). | |
![]() | |
virtual int | sendSelf (Communicator &) |
Sends object through the communicator argument. | |
virtual int | recvSelf (const Communicator &) |
Receives object through the communicator argument. | |
![]() | |
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 appropriate 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 (Communicator &) |
Return the object identifier in the database. | |
void | setDbTag (int dbTag) |
Sets the object identifier in the database. | |
void | setDbTag (Communicator &) |
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 | ~DistributedBase (void) |
Destructor. | |
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) | |
boost::python::dict | getPyDict (void) const |
Return a Python dictionary with the object members values. | |
void | setPyDict (const boost::python::dict &) |
Set the values of the object members from a Python dictionary. | |
![]() | |
CommandEntity (CommandEntity *owr=nullptr) | |
Default constructor. | |
CommandEntity * | Owner (void) |
Return a pointer to the object owner. | |
const CommandEntity * | Owner (void) const |
Return un puntero al objeto propietario de ESTE. | |
const StandardOutputWrapper & | getStandardOutputWrapper (void) const |
Return the regular output stream wrapper. | |
StandardOutputWrapper & | getStandardOutputWrapper (void) |
Return the regular output stream wrapper. | |
const std::string & | getLogFileName (void) const |
Returns log file name. | |
void | setLogFileName (const std::string &) |
Sets log file name. | |
const std::string & | getErrFileName (void) const |
Returns err file name. | |
void | setErrFileName (const std::string &) |
Sets error file name. | |
const std::string & | getOutputFileName (void) const |
Returns regular output file name. | |
void | setOutputFileName (const std::string &) |
Sets regular output file name. | |
boost::python::object | evalPy (boost::python::object dict, const std::string &) |
Return the Python object that results from evaluating the argument. | |
boost::python::object | execPy (boost::python::object dict, const std::string &) |
Return the Python objects that results from executing the code in the string argument. | |
boost::python::object | execFilePy (boost::python::object dict, const std::string &) |
Return the Python object that results from executing the code in the file. | |
![]() | |
EntityWithProperties (EntityWithProperties *owr=nullptr) | |
Default constructor. | |
void | clearPyProps (void) |
Clear python properties map. | |
bool | hasPyProp (const std::string &) |
Returns true if property exists. | |
boost::python::object | getPyProp (const std::string &str) |
Return the Python object with the name being passed as parameter. | |
void | setPyProp (std::string str, boost::python::object val) |
Sets/appends a value tho the Python object's dictionary. | |
void | copyPropsFrom (const EntityWithProperties &) |
Copy the properties from the argument. | |
boost::python::list | getPropNames (void) const |
Return the names of the object properties weightings. | |
const PythonDict & | getPropertiesDict (void) const |
Return a std::map container with the properties of the object. | |
![]() | |
EntityWithOwner (EntityWithOwner *owr=nullptr) | |
Default constructor. | |
EntityWithOwner (const EntityWithOwner &) | |
Copy constructor. | |
EntityWithOwner & | operator= (const EntityWithOwner &) |
Assignment operator. | |
virtual bool | operator== (const EntityWithOwner &) const |
Comparison operator. | |
virtual | ~EntityWithOwner (void) |
Virtual destructor. | |
virtual std::string | getClassName (void) const |
Returns demangled class name. | |
void | set_owner (EntityWithOwner *owr) |
Assigns the owner of the object. | |
EntityWithOwner * | Owner (void) |
const EntityWithOwner * | Owner (void) const |
![]() | |
RecorderContainer (DataOutputHandler::map_output_handlers *oh=nullptr) | |
virtual | ~RecorderContainer (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. | |
boost::python::dict | getPyDict (void) const |
Return a Python dictionary with the object members values. | |
void | setPyDict (const boost::python::dict &) |
Set the values of the object members from a Python dictionary. | |
Protected Member Functions | |
NewtonRaphson (SolutionStrategy *, int tangent=CURRENT_TANGENT) | |
Constructor. More... | |
virtual SolutionAlgorithm * | getCopy (void) const |
Virtual constructor. | |
![]() | |
int | sendData (Communicator &) |
Send object members through the communicator argument. | |
int | recvData (const Communicator &) |
Receives object members through the communicator argument. | |
NewtonBased (SolutionStrategy *, int classTag, int tangent=CURRENT_TANGENT) | |
Constructor. | |
![]() | |
EquiSolnAlgo (SolutionStrategy *, int classTag) | |
Constructor. More... | |
![]() | |
SolutionStrategy * | getSolutionStrategy (void) |
Return a pointer to the solution method which owns this object. | |
const SolutionStrategy * | getSolutionStrategy (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 (Communicator &) |
Send object members through the communicator argument. | |
int | recvData (const Communicator &) |
Receive object members through the communicator argument. | |
SolutionAlgorithm (SolutionStrategy *, int classTag) | |
Constructor. | |
![]() | |
template<class T > | |
void | string_to (T &, const std::string &) const |
![]() | |
bool | isEqual (const EntityWithProperties &) const |
Return true if both objects are equal. | |
![]() | |
virtual bool | isEqual (const EntityWithOwner &) const |
Return true if both objects are equal. | |
![]() | |
int | sendData (Communicator &comm) |
int | recvData (const Communicator &comm) |
size_t | getNumRecorders (void) const |
Returns the number of recorders already defined. | |
Friends | |
class | SolutionStrategy |
class | FEM_ObjectBroker |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, boost::python::object > | PythonDict |
![]() | |
typedef std::list< Recorder * > | recorders_list |
typedef recorders_list::iterator | recorder_iterator |
typedef recorders_list::const_iterator | const_recorder_iterator |
![]() | |
static void | resetStandardOutput (void) |
Reset the standard output streams to its defaults buffers. | |
![]() | |
static int | getVerbosityLevel (void) |
Get the value of the verbosity level. | |
static void | setVerbosityLevel (const int &) |
Set the value of the verbosity level. | |
![]() | |
static CommandEntity * | entcmd_cast (boost::any &data) |
![]() | |
int | tangent |
![]() | |
static int | verbosity = 1 |
Object that owns THIS ONE. More... | |
Newton-Raphson algorgitht.
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.
SolutionStrategy | object the object which is used to access 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.