|
adamantine
|
#include <MechanicalOperator.hh>
Public Member Functions | |
| MechanicalOperator (MPI_Comm const &communicator, MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties, std::vector< double > const &reference_temperatures) | |
| void | reinit (dealii::DoFHandler< dim > const &dof_handler, dealii::AffineConstraints< double > const &affine_constraints, dealii::hp::QCollection< dim > const &quad, std::vector< std::shared_ptr< BodyForce< dim >>> const &body_forces=std::vector< std::shared_ptr< BodyForce< dim >>>()) |
| void | update_temperature (dealii::DoFHandler< dim > const &thermal_dof_handler, dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > const &temperature, std::vector< bool > const &has_melted) |
| dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > const & | rhs () const |
| dealii::TrilinosWrappers::SparseMatrix const & | system_matrix () const |
Private Member Functions | |
| void | assemble_system (std::vector< std::shared_ptr< BodyForce< dim >>> const &body_forces) |
Private Attributes | |
| MPI_Comm const & | _communicator |
| std::vector< double > | _reference_temperatures |
| MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > & | _material_properties |
| dealii::DoFHandler< dim > const * | _dof_handler = nullptr |
| dealii::DoFHandler< dim > const * | _thermal_dof_handler = nullptr |
| dealii::AffineConstraints< double > const * | _affine_constraints = nullptr |
| dealii::hp::QCollection< dim > const * | _q_collection = nullptr |
| dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > | _system_rhs |
| dealii::TrilinosWrappers::SparseMatrix | _system_matrix |
| dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > | _temperature |
| std::vector< bool > | _has_melted |
This class is the operator associated with the solid mechanics equations. The class is templated on the MemorySpace because it use MaterialProperty which itself is templated on the MemorySpace but the operator is CPU only.
Definition at line 30 of file MechanicalOperator.hh.
| adamantine::MechanicalOperator< dim, n_materials, p_order, MaterialStates, MemorySpaceType >::MechanicalOperator | ( | MPI_Comm const & | communicator, |
| MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > & | material_properties, | ||
| std::vector< double > const & | reference_temperatures | ||
| ) |
Constructor. If the initial temperature is negative, the simulation is mechanical only. Otherwise, we solve a thermo-mechanical problem.
Definition at line 32 of file MechanicalOperator.cc.
|
private |
Assemble the matrix and the right-hand-side.
Definition at line 77 of file MechanicalOperator.cc.
| void adamantine::MechanicalOperator< dim, n_materials, p_order, MaterialStates, MemorySpaceType >::reinit | ( | dealii::DoFHandler< dim > const & | dof_handler, |
| dealii::AffineConstraints< double > const & | affine_constraints, | ||
| dealii::hp::QCollection< dim > const & | quad, | ||
| std::vector< std::shared_ptr< BodyForce< dim >>> const & | body_forces = std::vector<std::shared_ptr<BodyForce<dim>>>() |
||
| ) |
Definition at line 47 of file MechanicalOperator.cc.
|
inline |
Definition at line 128 of file MechanicalOperator.hh.
|
inline |
Definition at line 137 of file MechanicalOperator.hh.
| void adamantine::MechanicalOperator< dim, n_materials, p_order, MaterialStates, MemorySpaceType >::update_temperature | ( | dealii::DoFHandler< dim > const & | thermal_dof_handler, |
| dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > const & | temperature, | ||
| std::vector< bool > const & | has_melted | ||
| ) |
Update the DoFHandler used by ThermalPhysics and update the temperature.
Definition at line 62 of file MechanicalOperator.cc.
|
private |
Non-owning pointer to the AffineConstraints from MechanicalPhysics
Definition at line 96 of file MechanicalOperator.hh.
|
private |
MPI communicator.
Definition at line 74 of file MechanicalOperator.hh.
|
private |
Non-owning pointer to the DoFHandler from MechanicalPhysics
Definition at line 88 of file MechanicalOperator.hh.
|
private |
Indicator variable for whether a point has ever been above the solidus. The value is false for material that has not yet melted and true for material that has melted.
Definition at line 120 of file MechanicalOperator.hh.
|
private |
Reference to the MaterialProperty from MechanicalPhysics.
Definition at line 84 of file MechanicalOperator.hh.
|
private |
Non-owning pointer to the QCollection from MechanicalPhysics
Definition at line 100 of file MechanicalOperator.hh.
|
private |
List of initial temperatures of the material. If the length of the vector is nonzero, we solve a thermo-mechanical problem.
Definition at line 79 of file MechanicalOperator.hh.
|
private |
Matrix of the mechanical problem.
Definition at line 109 of file MechanicalOperator.hh.
|
private |
Right-hand-side of the mechanical problem.
Definition at line 105 of file MechanicalOperator.hh.
|
private |
Temperature of the material.
Definition at line 114 of file MechanicalOperator.hh.
|
private |
Non-owning pointer to the DoFHandler from ThermalPhysics
Definition at line 92 of file MechanicalOperator.hh.