31 #ifndef _INTEGRATOR_HPP_ 32 #define _INTEGRATOR_HPP_ 35 #include <Eigen/Dense> 36 #include <Eigen/SparseCore> 66 virtual void Initialize(std::shared_ptr<Mesh> &mesh) = 0;
74 virtual void SetAlgorithm(std::shared_ptr<Algorithm> &algorithm) = 0;
96 virtual bool ComputeNewStep(std::shared_ptr<Mesh> &mesh,
unsigned int k=0) = 0;
104 virtual Eigen::VectorXd
ComputeReactionForce(std::shared_ptr<Mesh> &mesh,
unsigned int k=0) = 0;
118 virtual void ComputeSupportMotionVector(std::shared_ptr<Mesh> &mesh, Eigen::VectorXd &Feff,
double factor=1.00,
unsigned int k=0) = 0;
126 virtual void ComputeEffectiveForce(std::shared_ptr<Mesh> &mesh, Eigen::VectorXd &Feff,
double factor=1.00,
unsigned int k=0) = 0;
Virtual class for defining how the solution between two steps is going to be carried out...
Definition: Algorithm.hpp:52
virtual const Eigen::VectorXd & GetPMLHistoryVector()=0
Gets the perfectly-matched layer history vector.
virtual const Eigen::VectorXd & GetVelocities()=0
Gets the velocity vector.
virtual Eigen::VectorXd ComputeProgressiveForce(std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0
Gets the external force vector from previous analysis.
Eigen::SparseMatrix< double > Total2FreeMatrix
Operator that enforced restrain/constraint.
Definition: Integrator.hpp:140
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.
This file contains the "Load Combination" class declarations, which defines how the loads are going t...
virtual void SetAlgorithm(std::shared_ptr< Algorithm > &algorithm)=0
Sets the integrator for this algorithm.
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.
Eigen::VectorXd SupportMotion
Nodal support motion vector.
Definition: Integrator.hpp:136
Class for defining how the static/dynamic analysis between two steps is going to be performed...
Definition: Integrator.hpp:53
virtual ~Integrator()=0
Destroys this Integrator object.
virtual Eigen::VectorXd ComputeReactionForce(std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0
Gets the reaction force ins this step.
Integrator(const std::shared_ptr< Mesh > &mesh)
Creates a Integrator object.
virtual void ComputeEffectiveStiffness(std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &Keff)=0
Gets the effective stiffness associated to the integrator.
virtual const Eigen::VectorXd & GetDisplacements()=0
Gets the displacement vector.
This file contains the "Mesh object" declarations, which stores nodes, materials, elements...
virtual void Initialize(std::shared_ptr< Mesh > &mesh)=0
Initialize model matrices.
virtual bool ComputeNewStep(std::shared_ptr< Mesh > &mesh, unsigned int k=0)=0
Computes a new time step.
virtual const Eigen::VectorXd & GetAccelerations()=0
Gets the acceleration vector.
virtual void SetLoadCombination(std::shared_ptr< LoadCombo > &combo)=0
Set the load combination.