SimulationReinit< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number > Class Template Reference

A specific reinitialization simulation setup for a hyperrectangular domain with a hyperspherical zero level-set isosurface with an initially distorted level-set. More...

#include <reinit_circle.hpp>

Inheritance diagram for MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >:
[legend]
Collaboration diagram for MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >:
[legend]

Public Member Functions

 SimulationReinit (std::string parameter_file, const MPI_Comm mpi_communicator)
 Constructor.
 
void create_spatial_discretization () override
 Creates the spatial discretization for the simulation setup.
 
void set_boundary_conditions () override
 Sets the boundary conditions.
 
void set_field_conditions () override
 Sets the field functions for the simulation.
 
bool add_case_specific_parameters (dealii::ParameterHandler &prm) override
 Add case-specific material parameters in the parameter handler.
 
- Public Member Functions inherited from MeltPoolDG::LevelSet::ReinitializationCase< dim, number >
 ReinitializationCase (const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
 
- Public Member Functions inherited from MeltPoolDG::SimulationCaseBase< dim, number, spacedim >
virtual ~SimulationCaseBase ()=default
 
 SimulationCaseBase (const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
 
void create ()
 Main setup function to initialize the simulation.
 
std::map< dealii::types::boundary_id, std::shared_ptr< dealii::Function< dim > > > get_boundary_condition (const std::string &type, const std::string &operation_name, const bool is_optional=true) const
 Retrieve boundary conditions of a specific type for an operation.
 
std::shared_ptr< BoundaryConditionManager< dim, number > > get_boundary_condition_manager (const std::string &operation_name, const bool is_optional=true) const
 Retrieve the boundary condition object for a specific operation.
 
std::string get_boundary_condition_type (dealii::types::boundary_id boundary_id, const std::string &operation_name) const
 Retrieve the type of a boundary condition for a specific boundary ID and operation.
 
void set_time_boundary_conditions (const number time)
 Update the time for all boundary conditions.
 
std::shared_ptr< dealii::Function< dim > > get_field_function (const std::string &type, const std::string &operation_name, const bool is_optional=false)
 
std::shared_ptr< dealii::Function< dim > > get_initial_condition (const std::string &operation_name, const bool is_optional=false)
 Retrieve the initial condition for a given operation.
 
const PeriodicBoundaryConditions< dim > & get_periodic_bc () const
 Get the periodic boundary condition manager.
 
virtual void do_postprocessing (const GenericDataOut< dim, number > &generic_data_out) const
 Perform specific postprocessing (can be overridden by derived classes).
 

Private Attributes

number left_domain = -1.0
 Left domain boundary for the hyperrectangular domain.
 
number right_domain = 1.0
 Right domain boundary for the hyperrectangular domain.
 
std::vector< number > center_point {}
 
number radius = 0.25
 Radius of the hyperspherical zero level-set isosurface.
 
LevelSet::LevelSetType level_set_type = LevelSet::LevelSetType::tanh
 Level-set type.
 
bool apply_initial_jump_at_interface = false
 
number distortion_factor = 1.
 Level-set distortion parameter.
 
number eps = 0.
 

Additional Inherited Members

- Public Attributes inherited from MeltPoolDG::LevelSet::ReinitializationCase< dim, number >
ReinitializationCaseParameters< number > parameters
 
- Public Attributes inherited from MeltPoolDG::SimulationCaseBase< dim, number, spacedim >
std::shared_ptr< dealii::Triangulation< dim, spacedim > > triangulation
 
const std::string parameter_file
 
const MPI_Comm mpi_communicator
 
- Protected Member Functions inherited from MeltPoolDG::SimulationCaseBase< dim, number, spacedim >
void attach_field_function (std::shared_ptr< dealii::Function< dim > > function, const std::string &type, const std::string &operation_name)
 
void attach_initial_condition (std::shared_ptr< dealii::Function< dim > > initial_function, const std::string &operation_name)
 
void attach_boundary_condition (std::pair< const dealii::types::boundary_id, const std::shared_ptr< dealii::Function< dim > > > id_and_function, const std::string &type, const std::string &operation_name)
 Attach a boundary condition for a specific operation.
 
void attach_boundary_condition (const dealii::types::boundary_id id, const std::string &type, const std::string &operation_name)
 Attach a boundary condition with a dummy function for a specific operation.
 
void attach_periodic_boundary_condition (const dealii::types::boundary_id id_in, const dealii::types::boundary_id id_out, const int direction)
 

Detailed Description

template<int dim, typename number>
class MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >

A specific reinitialization simulation setup for a hyperrectangular domain with a hyperspherical zero level-set isosurface with an initially distorted level-set.

Constructor & Destructor Documentation

◆ SimulationReinit()

template<int dim, typename number >
MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::SimulationReinit ( std::string  parameter_file,
const MPI_Comm  mpi_communicator 
)
inline

Constructor.

Parameters
parameter_fileParameter file that contains simulation input settings.
mpi_communicatorThe MPI communicator used to run the simulation in parallel.
Note
This simulation case works for dim={1,2,3}.

Member Function Documentation

◆ add_case_specific_parameters()

template<int dim, typename number >
bool MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::add_case_specific_parameters ( dealii::ParameterHandler &  prm)
inlineoverridevirtual

Add case-specific material parameters in the parameter handler.

Parameters
prmThe parameter handler to which the parameters are added.

Reimplemented from MeltPoolDG::SimulationCaseBase< dim, number, spacedim >.

◆ create_spatial_discretization()

template<int dim, typename number >
void MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::create_spatial_discretization ( )
inlineoverridevirtual

Creates the spatial discretization for the simulation setup.

Implements MeltPoolDG::SimulationCaseBase< dim, number, spacedim >.

◆ set_boundary_conditions()

template<int dim, typename number >
void MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::set_boundary_conditions ( )
inlineoverridevirtual

Sets the boundary conditions.

Note
Nothing to do here, as homogeneous Neumann-type BC are applied for reinitialization.

Implements MeltPoolDG::SimulationCaseBase< dim, number, spacedim >.

◆ set_field_conditions()

template<int dim, typename number >
void MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::set_field_conditions ( )
inlineoverridevirtual

Sets the field functions for the simulation.

Implements MeltPoolDG::SimulationCaseBase< dim, number, spacedim >.

Member Data Documentation

◆ apply_initial_jump_at_interface

template<int dim, typename number >
bool MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::apply_initial_jump_at_interface = false
private

Boolean indicator if the initial level-set field should have a jump at the zero level-set isosurface.

◆ center_point

template<int dim, typename number >
std::vector<number> MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::center_point {}
private

Center point of the hyperspherical zero level-set isosurface. The x, y, and z values are given at indices 0, 1, and 2, respectively.

◆ distortion_factor

template<int dim, typename number >
number MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::distortion_factor = 1.
private

Level-set distortion parameter.

◆ eps

template<int dim, typename number >
number MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::eps = 0.
private

Interface thickness parameter (only relevant for level-set types 'tanh' and 'smoothed_heaviside').

◆ left_domain

template<int dim, typename number >
number MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::left_domain = -1.0
private

Left domain boundary for the hyperrectangular domain.

◆ level_set_type

template<int dim, typename number >
LevelSet::LevelSetType MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::level_set_type = LevelSet::LevelSetType::tanh
private

Level-set type.

◆ radius

template<int dim, typename number >
number MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::radius = 0.25
private

Radius of the hyperspherical zero level-set isosurface.

◆ right_domain

template<int dim, typename number >
number MeltPoolDG::Simulation::ReinitCircle::SimulationReinit< dim, number >::right_domain = 1.0
private

Right domain boundary for the hyperrectangular domain.


The documentation for this class was generated from the following file: