Class for assembling the finite element matrices and vector. More...
#include <Assembler.hpp>
Public Member Functions | |
Assembler () | |
Creates an Assembler object. More... | |
~Assembler () | |
Destroys this Assembler object. More... | |
void | SetMassTolerance (double tol) |
Set the mass assembly allowed tolerance. More... | |
void | SetForceTolerance (double tol) |
Set the mass assembly allowed tolerance. More... | |
void | SetStiffnessTolerance (double tol) |
Set the stiffness assembly allowed tolerance. More... | |
void | SetLoadCombination (std::shared_ptr< LoadCombo > &combo) |
Sets the load combination to be used. More... | |
Eigen::SparseMatrix< double > | ComputeMassMatrix (std::shared_ptr< Mesh > &mesh) |
Assemble the mass matrix. More... | |
Eigen::SparseMatrix< double > | ComputeStiffnessMatrix (std::shared_ptr< Mesh > &mesh) |
Assemble the stiffness matrix. More... | |
Eigen::SparseMatrix< double > | ComputeDampingMatrix (std::shared_ptr< Mesh > &mesh) |
Assemble the stiffness matrix. More... | |
Eigen::SparseMatrix< double > | ComputePMLHistoryMatrix (std::shared_ptr< Mesh > &mesh) |
Assemble the integrated history matrix for Perfectly-Matched Layer (PML). More... | |
Eigen::VectorXd | ComputeProgressiveForceVector (std::shared_ptr< Mesh > &mesh) |
Assemble the external force vector accumulated from previous analyses. More... | |
Eigen::VectorXd | ComputeInternalForceVector (std::shared_ptr< Mesh > &mesh) |
Assemble the internal force vector. More... | |
Eigen::VectorXd | ComputeDynamicInternalForceVector (std::shared_ptr< Mesh > &mesh) |
Assemble the internal elastic, inertial, and viscous force vector. More... | |
Eigen::VectorXd | ComputeExternalForceVector (std::shared_ptr< Mesh > &mesh, unsigned int k) |
Assemble the external force vector. More... | |
Eigen::VectorXd | ComputeSupportMotionIncrement (std::shared_ptr< Mesh > &mesh, unsigned int k) |
Assemble the support motion displacement vector. More... | |
Eigen::VectorXd | ComputePMLHistoryVector (std::shared_ptr< Mesh > &mesh) |
Assemble the integrated history vector for Perfectly-Matched Layer (PML). More... | |
Protected Member Functions | |
void | AddNodeInertiaForces (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &DynamicForces) |
Adds the inertial forces contribution associated to the nodes. More... | |
void | AddElementDynamicForces (std::shared_ptr< Mesh > &mesh, Eigen::VectorXd &DynamicForces) |
Adds the elastic, inertial, and viscous forces associated to the elements. More... | |
void | AssembleNodalMass (std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &nodemass) |
Assemble Nodal Mass matrix. More... | |
void | AssembleElementMass (std::shared_ptr< Mesh > &mesh, Eigen::SparseMatrix< double > &elemmass) |
Assemble Element Mass matrix. More... | |
Private Attributes | |
double | MassTolerance |
Define mass tolerance. More... | |
double | StiffnessTolerance |
Define stiffness tolerance. More... | |
double | ForceTolerance |
Define stiffness tolerance. More... | |
std::shared_ptr< LoadCombo > | LoadCombination |
Load combination number. More... | |
Class for assembling the finite element matrices and vector.
Assembler::~Assembler | ( | ) |
Destroys this Assembler object.
|
protected |
|
protected |
Adds the inertial forces contribution associated to the nodes.
mesh | The finite element Mesh object. |
DynamicForces | The vector with the node inertial forces. |
|
protected |
Assemble Element Mass matrix.
mesh | The finite element Mesh object. |
elemmass | A matrix that stores the Element mass contribution. |
|
protected |
Assemble Nodal Mass matrix.
mesh | The finite element Mesh object. |
nodemass | A matrix that stores the Node mass contribution. |
Eigen::SparseMatrix<double> Assembler::ComputeDampingMatrix | ( | std::shared_ptr< Mesh > & | mesh | ) |
Eigen::VectorXd Assembler::ComputeDynamicInternalForceVector | ( | std::shared_ptr< Mesh > & | mesh | ) |
Assemble the internal elastic, inertial, and viscous force vector.
mesh | The finite element Mesh object. return A vector with the model total (inertial, viscous, elastic) internal force. |
Eigen::VectorXd Assembler::ComputeExternalForceVector | ( | std::shared_ptr< Mesh > & | mesh, |
unsigned int | k | ||
) |
Eigen::VectorXd Assembler::ComputeInternalForceVector | ( | std::shared_ptr< Mesh > & | mesh | ) |
Assemble the internal force vector.
mesh | The finite element Mesh object. return A vector with the model total internal force. |
Eigen::SparseMatrix<double> Assembler::ComputeMassMatrix | ( | std::shared_ptr< Mesh > & | mesh | ) |
Eigen::SparseMatrix<double> Assembler::ComputePMLHistoryMatrix | ( | std::shared_ptr< Mesh > & | mesh | ) |
Eigen::VectorXd Assembler::ComputePMLHistoryVector | ( | std::shared_ptr< Mesh > & | mesh | ) |
Assemble the integrated history vector for Perfectly-Matched Layer (PML).
mesh | The finite element Mesh object. |
Eigen::VectorXd Assembler::ComputeProgressiveForceVector | ( | std::shared_ptr< Mesh > & | mesh | ) |
Assemble the external force vector accumulated from previous analyses.
mesh | The finite element Mesh object. |
Eigen::SparseMatrix<double> Assembler::ComputeStiffnessMatrix | ( | std::shared_ptr< Mesh > & | mesh | ) |
Eigen::VectorXd Assembler::ComputeSupportMotionIncrement | ( | std::shared_ptr< Mesh > & | mesh, |
unsigned int | k | ||
) |
Assemble the support motion displacement vector.
mesh | The finite element Mesh object. |
k | The time step when the support motion is evaluated. |
void Assembler::SetForceTolerance | ( | double | tol | ) |
Set the mass assembly allowed tolerance.
tol | Threshold for which a force value will be neglected. |
void Assembler::SetLoadCombination | ( | std::shared_ptr< LoadCombo > & | combo | ) |
Sets the load combination to be used.
combo | Pointer to the load combination to be simulated. |
void Assembler::SetMassTolerance | ( | double | tol | ) |
Set the mass assembly allowed tolerance.
tol | Threshold for which a mass value will be neglected. |
void Assembler::SetStiffnessTolerance | ( | double | tol | ) |
Set the stiffness assembly allowed tolerance.
tol | Threshold for which a stiffness value will be neglected. |
|
private |
Define stiffness tolerance.
|
private |
Define mass tolerance.
|
private |
Define stiffness tolerance.