|
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 |
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 |
| 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 |
| bool | _print_heat_input |
| 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 123 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 350 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 730 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 599 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 531 of file ThermalPhysics.templates.hh.
|
private |
Compute the right-hand side and apply the TermalOperator.
Definition at line 929 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 858 of file ThermalPhysics.templates.hh.
|
inlineoverridevirtual |
Return the AffineConstraints<double>.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 321 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 259 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 270 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the DoFHandler.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 311 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the degree of the finite element.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 341 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Returns one entry of _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 301 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Returns _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 280 of file ThermalPhysics.hh.
|
inlineoverridevirtual |
Return the heat sources.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 331 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 909 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Initialize the given vector with the given value.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 890 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Load the state of the simulation from files.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 974 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 541 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Write the current state of the simulation on the filesystem.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 1084 of file ThermalPhysics.templates.hh.
|
inlineoverridevirtual |
Sets _has_melted
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 290 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 243 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 919 of file ThermalPhysics.templates.hh.
|
overridevirtual |
Set up and initialize the data structure.
Implements adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >.
Definition at line 500 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 512 of file ThermalPhysics.templates.hh.
|
inlineprivate |
Update the depostion cosine and sine from the Physics object to the operator object.
Definition at line 233 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 832 of file ThermalPhysics.templates.hh.
|
private |
Associated AffineConstraints<double>.
Definition at line 161 of file ThermalPhysics.hh.
|
private |
Associated boundary.
Definition at line 149 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 214 of file ThermalPhysics.hh.
|
private |
Temporary data used in _cell_data_trans for _solution
Definition at line 219 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 170 of file ThermalPhysics.hh.
|
private |
Temporary data used in _cell_data_trans for transfer
Definition at line 224 of file ThermalPhysics.hh.
|
private |
Cosine of the material deposition angles.
Definition at line 174 of file ThermalPhysics.hh.
|
private |
Sine of the material deposition angles.
Definition at line 178 of file ThermalPhysics.hh.
|
private |
Associated DoFHandler.
Definition at line 157 of file ThermalPhysics.hh.
|
private |
Associated Lagrange finite elements.
Definition at line 153 of file ThermalPhysics.hh.
|
private |
This flag is true if the time stepping method is forward euler.
Definition at line 141 of file ThermalPhysics.hh.
|
private |
Associated geometry.
Definition at line 145 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 184 of file ThermalPhysics.hh.
|
private |
Vector of heat sources.
Definition at line 193 of file ThermalPhysics.hh.
|
private |
Associated material properties.
Definition at line 189 of file ThermalPhysics.hh.
|
private |
This optional flag enables heat source integration to monitor total heat input
Definition at line 197 of file ThermalPhysics.hh.
|
private |
Associated quadature, either Gauss or Gauss-Lobatto.
Definition at line 165 of file ThermalPhysics.hh.
|
private |
Shared pointer to the underlying ThermalOperator.
Definition at line 201 of file ThermalPhysics.hh.
|
private |
Shared pointer to the underlying time stepping scheme.
Definition at line 206 of file ThermalPhysics.hh.