Class for integrating the equation of motion using an explicit central difference method. More...
#include <CentralDifference.hpp>
Public Member Functions | |
CentralDifference (std::shared_ptr< Mesh > &mesh, double TimeStep, double mtol=1E-12, double ktol=1E-12, double ftol=1E-12) | |
Creates a CentralDifference object. More... | |
~CentralDifference () | |
Destroys this CentralDifference object. More... | |
void | Initialize (std::shared_ptr< Mesh > &mesh) |
Initialize model matrices. More... | |
void | SetLoadCombination (std::shared_ptr< LoadCombo > &combo) |
Set the load combination. More... | |
void | SetAlgorithm (std::shared_ptr< Algorithm > &algorithm) |
Sets the integrator for this algorithm. More... | |
const Eigen::VectorXd & | GetDisplacements () |
Gets the displacement vector. More... | |
const Eigen::VectorXd & | GetVelocities () |
Gets the velocity vector. More... | |
const Eigen::VectorXd & | GetAccelerations () |
Gets the acceleration vector. More... | |
const Eigen::VectorXd & | GetPMLHistoryVector () |
Gets the PML history vector. More... | |
bool | ComputeNewStep (std::shared_ptr< Mesh > &mesh, unsigned int k=0) |
Computes a new time step. More... | |
Eigen::VectorXd | ComputeReactionForce (std::shared_ptr< Mesh > &mesh, unsigned int k=0) |
Gets the reaction force ins this step. More... | |
Eigen::VectorXd | ComputeProgressiveForce (std::shared_ptr< Mesh > &mesh, unsigned int k=0) |
Gets the external force vector from previous analysis. More... | |
void | ComputeSupportMotionVector (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &Feff, double factor=1.00, unsigned int k=0) |
Gets the incremental nodal support motion vector. More... | |
void | ComputeEffectiveForce (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &Feff, double factor=1.00, unsigned int k=0) |
Gets the effective force associated to the CentralDifference integrator. More... | |
void | ComputeEffectiveStiffness (std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &Keff) |
Gets the effective stiffness associated to the CentralDifference integrator. More... | |
Public Member Functions inherited from Integrator | |
Integrator (const std::shared_ptr< Mesh > &mesh) | |
Creates a Integrator object. More... | |
virtual | ~Integrator ()=0 |
Destroys this Integrator object. More... | |
Protected Attributes | |
double | dt |
Integration time step. More... | |
Eigen::VectorXd | U |
Total current displacements. More... | |
Eigen::VectorXd | V |
Total current velocity. More... | |
Eigen::VectorXd | A |
Total current acceleration. More... | |
Eigen::VectorXd | Up |
Total previous displacements (t - dt). More... | |
Eigen::VectorXd | Ubar |
Total previous pml history values. More... | |
Eigen::VectorXd | Fbar |
The previous stage Force vector. More... | |
Eigen::SparseMatrix< double > | M |
Model mass matrix. More... | |
Eigen::SparseMatrix< double > | C |
Model damping matrix. More... | |
Eigen::SparseMatrix< double > | K |
Model stiffness matrix. More... | |
std::weak_ptr< Algorithm > | theAlgorithm |
The static solver algorithm. More... | |
std::unique_ptr< Assembler > | theAssembler |
The finite element assembler. More... | |
Protected Attributes inherited from Integrator | |
Eigen::VectorXd | SupportMotion |
Nodal support motion vector. More... | |
Eigen::SparseMatrix< double > | Total2FreeMatrix |
Operator that enforced restrain/constraint. More... | |
Class for integrating the equation of motion using an explicit central difference method.
CentralDifference::CentralDifference | ( | std::shared_ptr< Mesh > & | mesh, |
double | TimeStep, | ||
double | mtol = 1E-12 , |
||
double | ktol = 1E-12 , |
||
double | ftol = 1E-12 |
||
) |
Creates a CentralDifference object.
mesh | Pointer to the Mesh container to extract Node and Element. |
mtol | Threshold for which a mass value will be neglected. |
ktol | Threshold for which a stiffness value will be neglected. |
ftol | Threshold for which a force value will be neglected. |
CentralDifference::~CentralDifference | ( | ) |
Destroys this CentralDifference object.
|
virtual |
Gets the effective force associated to the CentralDifference 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. |
Implements Integrator.
|
virtual |
Gets the effective stiffness associated to the CentralDifference integrator.
mesh | Pointer to the Mesh object where Node and Element are stored. |
Keff | Matrix that stores the effective stiffness. |
Implements Integrator.
|
virtual |
Computes a new time step.
mesh | The finite element Mesh object. |
k | The time step number to be solved. |
Implements Integrator.
|
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. |
Implements Integrator.
|
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. |
Implements Integrator.
|
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. |
Implements Integrator.
|
virtual |
Gets the acceleration vector.
Implements Integrator.
|
virtual |
Gets the displacement vector.
Implements Integrator.
|
virtual |
Gets the PML history vector.
Implements Integrator.
|
virtual |
Gets the velocity vector.
Implements Integrator.
|
virtual |
Initialize model matrices.
Implements Integrator.
|
virtual |
Sets the integrator for this algorithm.
algorithm | Pointer to the Algorithm to obtain the effective stiffness and force. |
Implements Integrator.
|
virtual |
Set the load combination.
combo | Pointer to the LoadCombo to be simulated. |
Implements Integrator.
|
protected |
Total current acceleration.
|
protected |
Model damping matrix.
|
protected |
Integration time step.
|
protected |
The previous stage Force vector.
|
protected |
Model stiffness matrix.
|
protected |
Model mass matrix.
|
protected |
The static solver algorithm.
|
protected |
The finite element assembler.
|
protected |
Total current displacements.
|
protected |
Total previous pml history values.
|
protected |
Total previous displacements (t - dt).
|
protected |
Total current velocity.