32 #ifndef _ASSEMBLER_HPP_ 33 #define _ASSEMBLER_HPP_ 37 #include <Eigen/Dense> 38 #include <Eigen/SparseCore> 161 void AssembleNodalMass(std::shared_ptr<Mesh> &mesh, Eigen::SparseMatrix<double>& nodemass);
167 void AssembleElementMass(std::shared_ptr<Mesh> &mesh, Eigen::SparseMatrix<double>& elemmass);
Eigen::SparseMatrix< double > ComputeStiffnessMatrix(std::shared_ptr< Mesh > &mesh)
Assemble the stiffness matrix.
void AddNodeInertiaForces(std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &DynamicForces)
Adds the inertial forces contribution associated to the nodes.
void AssembleNodalMass(std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &nodemass)
Assemble Nodal Mass matrix.
Eigen::VectorXd ComputeProgressiveForceVector(std::shared_ptr< Mesh > &mesh)
Assemble the external force vector accumulated from previous analyses.
Eigen::VectorXd ComputeInternalForceVector(std::shared_ptr< Mesh > &mesh)
Assemble the internal force vector.
Eigen::VectorXd ComputeDynamicInternalForceVector(std::shared_ptr< Mesh > &mesh)
Assemble the internal elastic, inertial, and viscous force vector.
Eigen::VectorXd ComputeSupportMotionIncrement(std::shared_ptr< Mesh > &mesh, unsigned int k)
Assemble the support motion displacement vector.
Eigen::VectorXd ComputePMLHistoryVector(std::shared_ptr< Mesh > &mesh)
Assemble the integrated history vector for Perfectly-Matched Layer (PML).
This file contains the "Load Combination" class declarations, which defines how the loads are going t...
double ForceTolerance
Define stiffness tolerance.
Definition: Assembler.hpp:177
double StiffnessTolerance
Define stiffness tolerance.
Definition: Assembler.hpp:174
void SetLoadCombination(std::shared_ptr< LoadCombo > &combo)
Sets the load combination to be used.
Eigen::SparseMatrix< double > ComputeDampingMatrix(std::shared_ptr< Mesh > &mesh)
Assemble the stiffness matrix.
void AddElementDynamicForces(std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &DynamicForces)
Adds the elastic, inertial, and viscous forces associated to the elements.
Assembler()
Creates an Assembler object.
double MassTolerance
Define mass tolerance.
Definition: Assembler.hpp:171
Eigen::SparseMatrix< double > ComputeMassMatrix(std::shared_ptr< Mesh > &mesh)
Assemble the mass matrix.
~Assembler()
Destroys this Assembler object.
void SetStiffnessTolerance(double tol)
Set the stiffness assembly allowed tolerance.
This file contains the "Mesh object" declarations, which stores nodes, materials, elements...
Class for assembling the finite element matrices and vector.
Definition: Assembler.hpp:50
Eigen::VectorXd ComputeExternalForceVector(std::shared_ptr< Mesh > &mesh, unsigned int k)
Assemble the external force vector.
void SetForceTolerance(double tol)
Set the mass assembly allowed tolerance.
Eigen::SparseMatrix< double > ComputePMLHistoryMatrix(std::shared_ptr< Mesh > &mesh)
Assemble the integrated history matrix for Perfectly-Matched Layer (PML).
void AssembleElementMass(std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &elemmass)
Assemble Element Mass matrix.
std::shared_ptr< LoadCombo > LoadCombination
Load combination number.
Definition: Assembler.hpp:180
void SetMassTolerance(double tol)
Set the mass assembly allowed tolerance.