SimulationSingleTrackMelt< dim, Number, CaseClass > Class Template Reference

Developer Documentation: MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass > Class Template Reference
Developer Documentation
MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass > Class Template Reference

Simulation case for a single-track melt problem. More...

#include <single_track_melt.hpp>

Inheritance diagram for MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >:
[legend]
Collaboration diagram for MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >:
[legend]

Public Member Functions

 SimulationSingleTrackMelt (std::string parameter_file, const MPI_Comm mpi_communicator)
 Construct the single-track melt simulation case.
 
bool add_case_specific_parameters (ParameterHandler &prm) override
 Declare case-specific parameters.
 
void create_spatial_discretization () override
 Create or import the spatial discretization.
 
void set_boundary_conditions () override
 Attach boundary conditions and apply global/local mesh refinement.
 
void set_field_conditions () override
 Attach initial conditions for velocity, signed distance, and temperature.
 

Private Attributes

std::string mesh_file_name = "single-track-melt.msh"
 Name of the gmsh mesh file to import.
 
double T_initial = 298.15
 Initial temperature.
 
double inlet_temperature = 298.15
 Gas inlet temperature.
 
double inlet_velocity = 100.0
 Gas inlet velocity in z-direction.
 
double outlet_pressure = 0.0
 Outlet pressure.
 
double y_interface = 0.0
 Initial y-position of the gas/material interface.
 
unsigned int n_time_step = 0
 Mutable time-step counter for case-specific operations.
 
dealii::Point< dim > local_refinement_1_bottom_left
 Bottom-left point of the first local refinement region.
 
dealii::Point< dim > local_refinement_1_top_right
 Top-right point of the first local refinement region.
 
dealii::Point< dim > local_refinement_2_bottom_left
 Bottom-left point of the second local refinement region.
 
dealii::Point< dim > local_refinement_2_top_right
 Top-right point of the second local refinement region.
 
unsigned int n_additional_refinement_1 = 0
 Number of additional refinement cycles in the first refinement region.
 
unsigned int n_additional_refinement_2 = 0
 Number of additional refinement cycles in the second refinement region.
 

Detailed Description

template<int dim, typename Number, typename CaseClass>
class MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >

Simulation case for a single-track melt problem.

This class defines the case-specific parameters, mesh generation or import, boundary conditions, initial field conditions, and optional local refinement regions for the single-track melt setup.

The implementation considers the single-track melt configuration presented in:

Constantin Zenz, Peter S. Cook, Laszlo Vörös, and Andreas Otto, "A critical comparison of one- and two-fluid approaches for the simulation of laser-induced melt pool formation and vaporisation", Discover Materials, 2025.

DOI: 10.1007/s43939-025-00434-0 https://link.springer.com/article/10.1007/s43939-025-00434-0

Template Parameters
dimSpatial dimension.
NumberScalar number type.
CaseClassBase case class, for example MeltPoolCase or HeatTransferCase.

Constructor & Destructor Documentation

◆ SimulationSingleTrackMelt()

template<int dim, typename Number , typename CaseClass >
MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::SimulationSingleTrackMelt ( std::string  parameter_file,
const MPI_Comm  mpi_communicator 
)

Construct the single-track melt simulation case.

Parameters
parameter_filePath to the parameter file.
mpi_communicatorMPI communicator used by the simulation.

Member Function Documentation

◆ add_case_specific_parameters()

template<int dim, typename Number , typename CaseClass >
bool MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::add_case_specific_parameters ( ParameterHandler &  prm)
override

Declare case-specific parameters.

Parameters
prmParameter handler used to declare and parse parameters.
Returns
Whether the parsed parameters should be printed.

◆ create_spatial_discretization()

template<int dim, typename Number , typename CaseClass >
void MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::create_spatial_discretization ( )
override

Create or import the spatial discretization.

Imports a gmsh mesh if available. Otherwise, creates a fallback hyper-rectangle geometry.

◆ set_boundary_conditions()

template<int dim, typename Number , typename CaseClass >
void MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::set_boundary_conditions ( )
override

Attach boundary conditions and apply global/local mesh refinement.

◆ set_field_conditions()

template<int dim, typename Number , typename CaseClass >
void MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::set_field_conditions ( )
override

Attach initial conditions for velocity, signed distance, and temperature.

Member Data Documentation

◆ inlet_temperature

template<int dim, typename Number , typename CaseClass >
double MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::inlet_temperature = 298.15
private

Gas inlet temperature.

◆ inlet_velocity

template<int dim, typename Number , typename CaseClass >
double MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::inlet_velocity = 100.0
private

Gas inlet velocity in z-direction.

◆ local_refinement_1_bottom_left

template<int dim, typename Number , typename CaseClass >
dealii::Point<dim> MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::local_refinement_1_bottom_left
private

Bottom-left point of the first local refinement region.

◆ local_refinement_1_top_right

template<int dim, typename Number , typename CaseClass >
dealii::Point<dim> MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::local_refinement_1_top_right
private

Top-right point of the first local refinement region.

◆ local_refinement_2_bottom_left

template<int dim, typename Number , typename CaseClass >
dealii::Point<dim> MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::local_refinement_2_bottom_left
private

Bottom-left point of the second local refinement region.

◆ local_refinement_2_top_right

template<int dim, typename Number , typename CaseClass >
dealii::Point<dim> MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::local_refinement_2_top_right
private

Top-right point of the second local refinement region.

◆ mesh_file_name

template<int dim, typename Number , typename CaseClass >
std::string MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::mesh_file_name = "single-track-melt.msh"
private

Name of the gmsh mesh file to import.

◆ n_additional_refinement_1

template<int dim, typename Number , typename CaseClass >
unsigned int MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::n_additional_refinement_1 = 0
private

Number of additional refinement cycles in the first refinement region.

◆ n_additional_refinement_2

template<int dim, typename Number , typename CaseClass >
unsigned int MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::n_additional_refinement_2 = 0
private

Number of additional refinement cycles in the second refinement region.

◆ n_time_step

template<int dim, typename Number , typename CaseClass >
unsigned int MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::n_time_step = 0
mutableprivate

Mutable time-step counter for case-specific operations.

◆ outlet_pressure

template<int dim, typename Number , typename CaseClass >
double MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::outlet_pressure = 0.0
private

Outlet pressure.

◆ T_initial

template<int dim, typename Number , typename CaseClass >
double MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::T_initial = 298.15
private

Initial temperature.

◆ y_interface

template<int dim, typename Number , typename CaseClass >
double MeltPoolDG::Simulation::SingleTrackMelt::SimulationSingleTrackMelt< dim, Number, CaseClass >::y_interface = 0.0
private

Initial y-position of the gas/material interface.


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