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.