|
adamantine
|
#include <ThermalPhysics.hh>
Public Member Functions | |
| ThermalPhysics (MPI_Comm const &communicator, boost::property_tree::ptree const &database, Geometry< dim > &geometry, Boundary const &boundary, MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties) | |
| void | setup () override |
| void | setup_dofs () override |
| void | compute_inverse_mass_matrix () override |
| void | add_material_start (std::vector< std::vector< typename dealii::DoFHandler< dim >::active_cell_iterator >> const &elements_to_activate, std::vector< double > const &new_deposition_cos, std::vector< double > const &new_deposition_sin, std::vector< bool > &new_has_melted, unsigned int const activation_start, unsigned int const activation_end, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution) override |
| void | add_material_end (double const new_material_temperature, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution) override |
| void | update_physics_parameters (boost::property_tree::ptree const &heat_source_database) override |
| double | evolve_one_time_step (double t, double delta_t, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution, std::vector< Timer > &timers) override |
| void | initialize_dof_vector (double const value, dealii::LA::distributed::Vector< double, MemorySpaceType > &vector) const override |
| void | get_state_from_material_properties () override |
| void | set_state_to_material_properties () override |
| void | load_checkpoint (std::string const &filename, dealii::LA::distributed::Vector< double, MemorySpaceType > &temperature) override |
| void | save_checkpoint (std::string const &filename, dealii::LA::distributed::Vector< double, MemorySpaceType > &temperature) override |
| void | set_material_deposition_orientation (std::vector< double > const &deposition_cos, std::vector< double > const &deposition_sin) override |
| double | get_deposition_cos (unsigned int const i) const override |
| double | get_deposition_sin (unsigned int const i) const override |
| void | mark_has_melted (double const threshold_temperature, dealii::LA::distributed::Vector< double, MemorySpaceType > &temperature) override |
| std::vector< bool > | get_has_melted_vector () const override |
| void | set_has_melted_vector (std::vector< bool > const &has_melted) override |
| bool | get_has_melted (unsigned int const i) const override |
| dealii::DoFHandler< dim > & | get_dof_handler () override |
| dealii::AffineConstraints< double > & | get_affine_constraints () override |
| std::vector< std::shared_ptr< HeatSource< dim > > > & | get_heat_sources () override |
| unsigned int | get_fe_degree () const override |
| double | get_current_source_height () const |
Public Member Functions inherited from adamantine::ThermalPhysicsInterface< dim, MemorySpaceType > | |
| ThermalPhysicsInterface ()=default | |
| virtual | ~ThermalPhysicsInterface ()=default |
Private Types | |
| using | LA_Vector = typename dealii::LA::distributed::Vector< double, MemorySpaceType > |
Private Member Functions | |
| void | update_material_deposition_orientation () |
| LA_Vector | evaluate_thermal_physics (double const t, LA_Vector const &y, std::vector< Timer > &timers) const |
Private Attributes | |
| bool | _forward_euler = false |
| double | _current_source_height = 0. |
| Geometry< dim > & | _geometry |
| Boundary | _boundary |
| dealii::hp::FECollection< dim > | _fe_collection |
| dealii::DoFHandler< dim > | _dof_handler |
| dealii::AffineConstraints< double > | _affine_constraints |
| dealii::hp::QCollection< 1 > | _q_collection |
| dealii::parallel::CellWeights< dim > | _cell_weights |
| std::vector< double > | _deposition_cos |
| std::vector< double > | _deposition_sin |
| std::vector< bool > | _has_melted |
| MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > & | _material_properties |
| std::vector< std::shared_ptr< HeatSource< dim > > > | _heat_sources |
| std::shared_ptr< ThermalOperatorBase< dim, MemorySpaceType > > | _thermal_operator |
| std::unique_ptr< dealii::TimeStepping::ExplicitRungeKutta< LA_Vector > > | _time_stepping |
| std::unique_ptr< dealii::parallel::distributed::CellDataTransfer< dim, dim, std::vector< std::vector< double > > > > | _cell_data_trans |
| dealii::Vector< double > | _cell_solution |
| std::vector< std::vector< double > > | _data_to_transfer |
This class takes care of building the linear operator and the right-hand-side. Also used to evolve the system in time.
Definition at line 33 of file ThermalPhysics.hh.
|
private |
Definition at line 128 of file ThermalPhysics.hh.
| adamantine::ThermalPhysics< dim, n_materials, p_order, fe_degree, MaterialStates, MemorySpaceType, QuadratureType >::ThermalPhysics | ( | MPI_Comm const & | communicator, |
| boost::property_tree::ptree const & | database, | ||
| Geometry< dim > & | geometry, | ||
| Boundary const & | boundary, | ||
| MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > & | material_properties | ||
| ) |
Constructor.
Definition at line 274 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Finalize adding material by completing the transfer of solutions after the discretization has been adapted to the activated cells.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 662 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Activate more elements of the mesh and interpolate the solution to the new domain.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 531 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Compute the inverse of the mass matrix associated to the Physics.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 463 of file ThermalPhysics.templates.hh.
|
private |
Compute the right-hand side and apply the TermalOperator.
Definition at line 871 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Evolve the physics from time t to time t+delta_t. solution first contains the field at time t and after execution of the function, the field at time t+delta_t.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 790 of file ThermalPhysics.templates.hh.
|
inlineoverridevirtual |
Return the AffineConstraints<double>.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 326 of file ThermalPhysics.hh.
|
inline |
Return the current height of the heat source.
Definition at line 356 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the cosine of the material deposition angle for the activated cell i.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 264 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the sine of the material deposition angle for the activated cell i.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 275 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the DoFHandler.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 316 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the degree of the finite element.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 346 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Returns one entry of _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 306 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Returns _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 285 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the heat sources.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 336 of file ThermalPhysics.hh.
|
overridevirtual |
Populate the state of the materials in the Physics object from the MaterialProperty object.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 851 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Initialize the given vector with the given value.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 832 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Load the state of the simulation from files.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 915 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Mark cells above the given temperature to denote that they have melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 473 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Write the current state of the simulation on the filesystem.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 1021 of file ThermalPhysics.templates.hh.
|
inlineoverridevirtual |
Sets _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 295 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Set the deposition cosine and sine and call update_material_deposition_orientation.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 248 of file ThermalPhysics.hh.
|
overridevirtual |
Populate the state of the materials in the MaterialProperty object from the Physics object.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 861 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Set up and initialize the data structure.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 431 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Associate the AffineConstraints<double> and the MatrixFree objects to the underlying Triangulation.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 443 of file ThermalPhysics.templates.hh.
|
inlineprivate |
Update the depostion cosine and sine from the Physics object to the operator object.
Definition at line 238 of file ThermalPhysics.hh.
|
overridevirtual |
For ThermalPhysics, update_physics_parameters is used to modify the heat sources in the middle of a simulation, e.g. for data assimilation with an augmented ensemble involving heat source parameters.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 764 of file ThermalPhysics.templates.hh.
|
private |
Associated AffineConstraints<double>.
Definition at line 170 of file ThermalPhysics.hh.
|
private |
Associated boundary.
Definition at line 158 of file ThermalPhysics.hh.
|
private |
Cell data transfer object used for updating _solution, _has_melted, _deposition_cos, _deposition_sin, and state of _material_properties when the triangulation is updated when adding material
Definition at line 219 of file ThermalPhysics.hh.
|
private |
Temporary data used in _cell_data_trans for _solution
Definition at line 224 of file ThermalPhysics.hh.
|
private |
Object used to attach to each cell, a weight (used for load balancing) equal to the number of degrees of freedom associated with the cell.
Definition at line 179 of file ThermalPhysics.hh.
|
private |
Current height of the object.
Definition at line 150 of file ThermalPhysics.hh.
|
private |
Temporary data used in _cell_data_trans for transfer
Definition at line 229 of file ThermalPhysics.hh.
|
private |
Cosine of the material deposition angles.
Definition at line 183 of file ThermalPhysics.hh.
|
private |
Sine of the material deposition angles.
Definition at line 187 of file ThermalPhysics.hh.
|
private |
Associated DoFHandler.
Definition at line 166 of file ThermalPhysics.hh.
|
private |
Associated Lagrange finite elements.
Definition at line 162 of file ThermalPhysics.hh.
|
private |
This flag is true if the time stepping method is forward euler.
Definition at line 146 of file ThermalPhysics.hh.
|
private |
Associated geometry.
Definition at line 154 of file ThermalPhysics.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 193 of file ThermalPhysics.hh.
|
private |
Vector of heat sources.
Definition at line 202 of file ThermalPhysics.hh.
|
private |
Associated material properties.
Definition at line 198 of file ThermalPhysics.hh.
|
private |
Associated quadature, either Gauss or Gauss-Lobatto.
Definition at line 174 of file ThermalPhysics.hh.
|
private |
Shared pointer to the underlying ThermalOperator.
Definition at line 206 of file ThermalPhysics.hh.
|
private |
Shared pointer to the underlying time stepping scheme.
Definition at line 211 of file ThermalPhysics.hh.