xc
|
IncrementalIntegrator is an algorithmic class for setting up the finite element equations in an incremental analysis and for updating the nodal response quantities based on the values in the solution vector. More...
#include <IncrementalIntegrator.h>
Public Member Functions | |
virtual int | formTangent (int statusFlag=CURRENT_TANGENT) |
Builds tangent stiffness matrix. More... | |
virtual int | formTangent (int statusFlag, const double &iFactor, const double &cFactor) |
virtual int | formUnbalance (void) |
Builds the unbalanced load vector (right hand side of the equation). More... | |
int | getTangFlag (void) const |
Get the value of the flag to compute the tangent stiffness: CURRENT_TANGENT: 0; INITIAL_TANGENT: 1; CURRENT_SECANT: 2; INITIAL_THEN_CURRENT_TANGENT: 3; NO_TANGENT: 4; SECOND_TANGENT: 5; HALL_TANGENT: 6. | |
void | setTangFlag (const int &) |
Set the value of the flag to compute the tangent stiffness: CURRENT_TANGENT: 0; INITIAL_TANGENT: 1; CURRENT_SECANT: 2; INITIAL_THEN_CURRENT_TANGENT: 3; NO_TANGENT: 4; SECOND_TANGENT: 5; HALL_TANGENT: 6. | |
virtual int | formEleTangent (FE_Element *theEle)=0 |
To inform the FE_Element how to build its tangent matrix for addition to the system of equations. More... | |
virtual int | formNodTangent (DOF_Group *theDof)=0 |
To inform the DOF_Group how to build its tangent matrix for addition to the system of equations. More... | |
virtual int | formEleResidual (FE_Element *theEle)=0 |
To inform the FE_Element how to build its residual vector for addition to the system of equations. More... | |
virtual int | formNodUnbalance (DOF_Group *theDof)=0 |
To inform the DOF_Group how to build its residual vector for addition to the system of equations. More... | |
virtual int | newStep (double deltaT) |
Invoked to inform the integrator that the transient analysis is proceeding to the next time step. More... | |
virtual int | update (const Vector &deltaU)=0 |
When invoked causes the integrator object to update the DOF_Group responses with the appropriate values based on the computed solution to the system of equations object. More... | |
virtual int | commit (void) |
Invoked by the SolutionAlgorithm to inform the Integrator that current state of domain is on solution path. More... | |
virtual int | revertToLastStep (void) |
virtual int | initialize (void) |
virtual int | revertToStart () |
virtual int | getLastResponse (Vector &result, const ID &id) |
Returns the response on the DOFs being passed as parameter. More... | |
![]() | |
virtual int | domainChanged (void) |
Make required changes when a change in the domain occurs. More... | |
double | getCurrentModelTime (void) const |
void | setCurrentModelTime (const double &t) |
virtual void | Print (std::ostream &s, int flag=0) const |
The Integrator is to send information to the stream based on the integer flag . More... | |
![]() | |
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 | sendSelf (Communicator &comm)=0 |
Send the object. More... | |
virtual int | recvSelf (const Communicator &comm)=0 |
Receive the object. 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. | |
![]() | |
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. | |
boost::python::dict | getPyDict (void) const |
Return a Python dictionary containing the object members values. | |
void | setPyDict (const boost::python::dict &) |
Set the values of the object members from a Python dictionary. | |
![]() | |
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 |
Protected Member Functions | |
LinearSOE * | getLinearSOEPtr (void) |
Returns a pointer to the linear system of equations. More... | |
const LinearSOE * | getLinearSOEPtr (void) const |
Returns a pointer to the linear system of equations. More... | |
virtual int | formNodalUnbalance (void) |
Builds the nodal unbalanced load vector. More... | |
IncrementalIntegrator (SolutionStrategy *, int classTag) | |
Constructor. More... | |
![]() | |
SolutionStrategy * | getSolutionStrategy (void) |
Returns a pointer to the solution method that owns this object. | |
const SolutionStrategy * | getSolutionStrategy (void) const |
Returns a const pointer to the solution method that owns this object. | |
void | applyLoadModel (double newTime) |
int | updateModel (void) |
int | updateModel (double newTime, double dT) |
int | commitModel (void) |
void | setRayleighDampingFactors (const RayleighDampingFactors &rF) |
int | sendData (Communicator &) |
Send object members through the communicator argument. | |
int | recvData (const Communicator &) |
Receives object members through the communicator argument. | |
virtual AnalysisModel * | getAnalysisModelPtr (void) |
Returns a pointer to the analysis model. More... | |
virtual const AnalysisModel * | getAnalysisModelPtr (void) const |
Returns a pointer to the analysis model. More... | |
Integrator (SolutionStrategy *, int classTag) | |
Constructor. More... | |
virtual Integrator * | getCopy (void) const =0 |
![]() | |
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. | |
Protected Attributes | |
double | iFactor |
double | cFactor |
int | statusFlag |
Friends | |
class | IntegratorVectors |
virtual int | formElementResidual (void) |
Builds the unbalanced load vector of the elements. More... | |
virtual double | getCFactor (void) |
Function related to modal damping (not implemented yet). | |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, boost::python::object > | PythonDict |
![]() | |
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) |
![]() | |
static int | verbosity = 1 |
Object that owns THIS ONE. More... | |
IncrementalIntegrator is an algorithmic class for setting up the finite element equations in an incremental analysis and for updating the nodal response quantities based on the values in the solution vector.
IncrementalIntegrator is an abstract class. A subclass of it is used when performing a static or transient analysis using an incremental displacement approach. Subclasses of IncrementalIntegrators provide methods informing the FE_Element and DOF_Group objects how to build the tangent and residual matrices and vectors. They also provide the method for updating the response quantities at the DOFs with appropriate values; these values being some function of the solution to the linear system of equations.
|
protected |
Constructor.
owr | set of objects used to perform the analysis. |
|
virtual |
Invoked by the SolutionAlgorithm to inform the Integrator that current state of domain is on solution path.
Invoked by the SolutionAlgorithm to inform the Integrator that current state of domain is on solution path. Returns the result of invoking commitDomain() on the AnalysisModel object associated with the Integrator.
Reimplemented in XC::DisplacementControl.
|
protectedvirtual |
Builds the unbalanced load vector of the elements.
Invoked to form residual vector (the C vector in theSOE). The method iterates twice over the FE_elements in the AnalysisModel, the first time telling the FE_Elements top form their residual and the second time to add this residual to the LinearSOE objects \(b\) vector, i.e. it performs the following: {tabbing} while \= + while \= while \= FE_EleIter &theEles = theAnalysisModel.getFEs(); while((elePtr = theEles()) \(\neq\) 0) + theSOE.addA(elePtr- \(>\)getResidual(this), elePtr- \(>\)getID()) + {tabbing} Returns \(0\) if successful, otherwise a warning message is printed and a negative number is returned if an error occurs. Note, no test is made to ensure setLinks() has been invoked.
|
pure virtual |
To inform the FE_Element how to build its residual vector for addition to the system of equations.
Implements XC::Integrator.
Implemented in XC::StaticIntegrator, and XC::StaticSensitivityIntegrator.
|
pure virtual |
To inform the FE_Element how to build its tangent matrix for addition to the system of equations.
Implements XC::Integrator.
Implemented in XC::StaticIntegrator.
|
protectedvirtual |
Builds the nodal unbalanced load vector.
The method first loops over all the DOF_Group objects telling them to form their unbalance and then adds this Vector to the \(b\) vector of the LinearSOE object, i.e. it performs the following: {tabbing} while \= + while \= while \= DOF_EleIter &theDofs = theAnalysisModel.getDOFs(); theSOE.zeroB(); while((dofGroupPtr = theDofs()) \(\neq\) 0) + theSOE.addB(dofGroupPtr- \(>\)getUnbalance(theIntegrator), dofGroupPtr- \(>\)getID()) {tabbing} Returns \(0\) if successful, otherwise a negative number is returned and a warning message is printed if an error occurred. Note, no test is made to ensure setLinks() has been invoked.
|
pure virtual |
To inform the DOF_Group how to build its tangent matrix for addition to the system of equations.
The subclasses must provide the implementation of this method. This is required in transient analysis as th Node objects have mass. THIS MAY CHANGE.
Implements XC::Integrator.
Implemented in XC::StaticIntegrator.
|
pure virtual |
To inform the DOF_Group how to build its residual vector for addition to the system of equations.
Implements XC::Integrator.
Implemented in XC::StaticIntegrator.
|
virtual |
Builds tangent stiffness matrix.
Invoked to form the structure tangent matrix. The method first loops over all the FE_Elements in the AnalysisModel telling them to form their tangent and then it loops over the FE_Elements again adding the tangent to the LinearSOE objects A matrix. It performs the following: {tabbing} while \= + while \= while \= FE_EleIter &theEles = theAnalysisModel.getFEs(); theSOE.zeroA(); while((elePtr = theEles1()) \(\neq\) 0) + if (theSOE.addA(elePtr- \(>\)getTangent(this), elePtr- \(>\)getID(), \(1.0\)) \(<\) 0) + return \(-1\); -- {tabbing} Returns \(0\) if successful, otherwise an error message is printed an a \(-1\) is returned if setLinks() has not been called, or \(-2\) if failure to add an FE_Elements tangent to the LinearSOE. The two loops are introduced to allow for efficient parallel programming. THIS MAY CHANGE TO REDUCE MEMORY DEMANDS.
|
virtual |
Builds the unbalanced load vector (right hand side of the equation).
Invoked to form the unbalance. The method fist zeros out the \(B\) vector of the LinearSOE object and then invokes formElementResidual() and formNodalUnbalance() on itself. {tabbing} while \= + while \= while \= theSOE.zeroB(); this- \(>\)fromElementResidual(); this- \(>\)formNodalUnbalance() {tabbing}
If an error occurs in either of these two methods or if {setLinks()} has not been called, an error message is printed and a negative number is returned. Returns \(0\) if successful.
Returns the response on the DOFs being passed as parameter.
Returns in result
values for the last solution to the system of equation object whose location in the solution vector is given by {id}. For a location specified by a negative integer in id
0.0 will be returned in result
. Returns a \(0\) if successful, a warning message and a negative number is returned if an error occurs. \(-1\) if setSize() has not been called and a \(-2\) if location in id
is greater than \(order-1\) of \(b\) vector.
id | dofs identifiers on which the response is requested. |
result | respones values. |
Implements XC::Integrator.
|
protected |
Returns a pointer to the linear system of equations.
A member function which returns a pointer to the LinearSOE associated with the IncrementalIntegrator object, i.e. theSOE
.
|
protected |
Returns a pointer to the linear system of equations.
A const member function which returns a const pointer to the LinearSOE associated with the IncrementalIntegrator object, i.e. theSOE
.
|
virtual |
Invoked to inform the integrator that the transient analysis is proceeding to the next time step.
??
To return \(0\) if successful, a negative number if not.
|
pure virtual |
When invoked causes the integrator object to update the DOF_Group responses with the appropriate values based on the computed solution to the system of equations object.
Implemented in XC::LoadControl, XC::DisplacementControl, XC::LoadPath, XC::MinUnbalDispNorm, XC::DistributedDisplacementControl, XC::StaticSensitivityIntegrator, XC::EQPath, and XC::ProtoArcLength.