xc
Public Member Functions | Friends | List of all members

Modified Newton-Raphson algorithm. More...

#include <ModifiedNewton.h>

Inheritance diagram for XC::ModifiedNewton:
Inheritance graph
[legend]
Collaboration diagram for XC::ModifiedNewton:
Collaboration graph
[legend]

Public Member Functions

int solveCurrentStep (void)
 Solves for the current analysis step. More...
 
void Print (std::ostream &s, int flag=0) const
 Sends the class name to the stream if flag equals \(0\).
 
- Public Member Functions inherited from XC::NewtonBased
virtual int sendSelf (Communicator &)
 Sends object through the communicator argument.
 
virtual int recvSelf (const Communicator &)
 Receives object through the communicator argument.
 
- Public Member Functions inherited from XC::EquiSolnAlgo
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.
 
- Public Member Functions inherited from XC::SolutionAlgorithm
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.
 
- 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.
 
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 &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 ~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.
 
- Public Member Functions inherited from XC::ObjWithRecorders
 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.
 
- Public Member Functions inherited from CommandEntity
 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.
 
- Public Member Functions inherited from EntityWithProperties
 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.
 
- Public Member Functions inherited from EntityWithOwner
 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
 
- Public Member Functions inherited from XC::RecorderContainer
 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.
 

Friends

class SolutionStrategy
 
class FEM_ObjectBroker
 

Additional Inherited Members

- Public Types inherited from EntityWithProperties
typedef std::map< std::string, boost::python::object > PythonDict
 
- Public Types inherited from XC::RecorderContainer
typedef std::list< Recorder * > recorders_list
 
typedef recorders_list::iterator recorder_iterator
 
typedef recorders_list::const_iterator const_recorder_iterator
 
- Static Public Member Functions inherited from CommandEntity
static void resetStandardOutput (void)
 Reset the standard output streams to its defaults buffers.
 
- Static Public Member Functions inherited from EntityWithOwner
static int getVerbosityLevel (void)
 Get the value of the verbosity level.
 
static void setVerbosityLevel (const int &)
 Set the value of the verbosity level.
 
- Protected Member Functions inherited from XC::NewtonBased
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.
 
- Protected Member Functions inherited from XC::EquiSolnAlgo
 EquiSolnAlgo (SolutionStrategy *, int classTag)
 Constructor. More...
 
- Protected Member Functions inherited from XC::SolutionAlgorithm
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.
 
- Protected Member Functions inherited from CommandEntity
template<class T >
void string_to (T &, const std::string &) const
 
- Protected Member Functions inherited from EntityWithProperties
bool isEqual (const EntityWithProperties &) const
 Return true if both objects are equal.
 
- Protected Member Functions inherited from EntityWithOwner
virtual bool isEqual (const EntityWithOwner &) const
 Return true if both objects are equal.
 
- Protected Member Functions inherited from XC::RecorderContainer
int sendData (Communicator &comm)
 
int recvData (const Communicator &comm)
 
size_t getNumRecorders (void) const
 Returns the number of recorders already defined.
 
- Static Protected Member Functions inherited from CommandEntity
static CommandEntity * entcmd_cast (boost::any &data)
 
- Protected Attributes inherited from XC::NewtonBased
int tangent
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

Detailed Description

Modified Newton-Raphson algorithm.

Uses the tangent stiffness matrix computed in the first iteration until convergence is achieved.

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) = 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.

in the modified version the tangent is formed only once, i.e {equation} K^{(1)} U^{(i)} = R(U^{(i)}) {equation}

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.

Member Function Documentation

◆ solveCurrentStep()

int XC::ModifiedNewton::solveCurrentStep ( void  )
virtual

Solves for the current analysis step.

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: {tabbing} while \= + while \= theTest- \(>\)start(); theIntegrator- \(>\)formTangent(); do + theIntegrator- \(>\)formUnbalance(); theSOE- \(>\)solveX(); theIntegrator- \(>\)update(theSOE- \(>\)getX()); - {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.

Implements XC::EquiSolnAlgo.


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