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 | formUnbalance (void) |
Builds the unbalanced load vector (right hand side of the equation). More... | |
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... | |
virtual void | Print (std::ostream &s, int flag=0) |
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 (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 | sendSelf (CommParameters &cp)=0 |
Send the object. More... | |
virtual int | recvSelf (const CommParameters &cp)=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 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. | |
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 (AnalysisAggregation *, int classTag) | |
Constructor. More... | |
virtual int | formElementResidual (void) |
Builds the unbalanced load vector of the elements. More... | |
![]() | |
AnalysisAggregation * | getAnalysisAggregation (void) |
Returns a pointer to the solution method that owns this object. | |
const AnalysisAggregation * | getAnalysisAggregation (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) |
double | getCurrentModelTime (void) |
void | setCurrentModelTime (const double &t) |
void | setRayleighDampingFactors (const RayleighDampingFactors &rF) |
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. | |
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 (AnalysisAggregation *, int classTag) | |
Constructor. More... | |
virtual Integrator * | getCopy (void) const =0 |
Protected Attributes | |
int | statusFlag |
Friends | |
class | IntegratorVectors |
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 wich 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, and XC::ProtoArcLength.