Class for defining how the static/dynamic analysis between two steps is going to be performed. More...
#include <Integrator.hpp>
Public Member Functions | |
Integrator (const std::shared_ptr< Mesh > &mesh) | |
Creates a Integrator object. More... | |
virtual | ~Integrator ()=0 |
Destroys this Integrator object. More... | |
virtual void | Initialize (std::shared_ptr< Mesh > &mesh)=0 |
Initialize model matrices. More... | |
virtual void | SetLoadCombination (std::shared_ptr< LoadCombo > &combo)=0 |
Set the load combination. More... | |
virtual void | SetAlgorithm (std::shared_ptr< Algorithm > &algorithm)=0 |
Sets the integrator for this algorithm. More... | |
virtual const Eigen::VectorXd & | GetDisplacements ()=0 |
Gets the displacement vector. More... | |
virtual const Eigen::VectorXd & | GetVelocities ()=0 |
Gets the velocity vector. More... | |
virtual const Eigen::VectorXd & | GetAccelerations ()=0 |
Gets the acceleration vector. More... | |
virtual const Eigen::VectorXd & | GetPMLHistoryVector ()=0 |
Gets the perfectly-matched layer history vector. More... | |
virtual bool | ComputeNewStep (std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0 |
Computes a new time step. More... | |
virtual Eigen::VectorXd | ComputeReactionForce (std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0 |
Gets the reaction force ins this step. More... | |
virtual Eigen::VectorXd | ComputeProgressiveForce (std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0 |
Gets the external force vector from previous analysis. More... | |
virtual void | ComputeSupportMotionVector (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &Feff, double factor=1.00, unsigned int k=0)=0 |
Gets the incremental nodal support motion vector. More... | |
virtual void | ComputeEffectiveForce (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &Feff, double factor=1.00, unsigned int k=0)=0 |
Gets the effective force associated to the integrator. More... | |
virtual void | ComputeEffectiveStiffness (std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &Keff)=0 |
Gets the effective stiffness associated to the integrator. More... | |
Protected Attributes | |
Eigen::VectorXd | SupportMotion |
Nodal support motion vector. More... | |
Eigen::SparseMatrix< double > | Total2FreeMatrix |
Operator that enforced restrain/constraint. More... | |
Class for defining how the static/dynamic analysis between two steps is going to be performed.
Integrator::Integrator | ( | const std::shared_ptr< Mesh > & | mesh | ) |
Creates a Integrator object.
|
pure virtual |
Destroys this Integrator object.
|
pure virtual |
Gets the effective force associated to the integrator.
mesh | Pointer to the Mesh object where Node and Element are stored. |
Feff | Vector that stores the effective force. |
factor | The incremental load factor. |
k | The time step number to be solved. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the effective stiffness associated to the integrator.
mesh | Pointer to the Mesh object where Node and Element are stored. |
Keff | Matrix that stores the effective stiffness. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Computes a new time step.
mesh | The finite element Mesh object. |
k | The time step number to be solved. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the external force vector from previous analysis.
mesh | Pointer to the Mesh object where Node and Element are stored. |
k | The time step number to be solved. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the reaction force ins this step.
mesh | Pointer to the Mesh object where Node are stored. |
k | The time step number to be solved. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the incremental nodal support motion vector.
mesh | Pointer to the Mesh object where Node are stored. |
Feff | The effective force vector to incorporate support motion forces. |
factor | The incremental load factor. |
k | The time step number to be solved. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the acceleration vector.
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the displacement vector.
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the perfectly-matched layer history vector.
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Gets the velocity vector.
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Initialize model matrices.
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Sets the integrator for this algorithm.
algorithm | Pointer to the Algorithm to obtain the effective stiffness and force. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
pure virtual |
Set the load combination.
combo | Pointer to the LoadCombo to be simulated. |
Implemented in CompositeBathe, NewmarkBeta, ExtendedNewmarkBeta, CentralDifference, and QuasiStatic.
|
protected |
Nodal support motion vector.
|
protected |
Operator that enforced restrain/constraint.