SimulationLaserMeltingSimonds< dim, Number, CaseClass > Class Template Reference
|
Developer Documentation
|
Simulation setup for the Simonds laser-melting benchmark. More...
#include <laser_melting_simonds.hpp>
Public Member Functions | |
| SimulationLaserMeltingSimonds (std::string parameter_file, const MPI_Comm mpi_communicator) | |
| Construct the Simonds laser-melting simulation. | |
| bool | add_case_specific_parameters (dealii::ParameterHandler &prm) override |
| Declare simulation-specific parameters. | |
| void | create_spatial_discretization () override |
| Create the triangulation and initial spatial discretization. | |
| void | set_boundary_conditions () override |
| Assign boundary identifiers and attach boundary conditions. | |
| void | set_field_conditions () override |
| Attach initial conditions for all active fields. | |
| void | do_postprocessing (const GenericDataOut< dim, Number > &generic_data_out) const final |
| Perform simulation-specific postprocessing. | |
Private Attributes | |
| std::vector< unsigned int > | cell_repetitions |
| Number of initial cell repetitions in each coordinate direction. | |
| unsigned int | n_local_refinement = 0 |
| Number of additional local refinement cycles. | |
| Point< dim > | local_refinement_1_bottom_left |
| Lower-left point of the first local refinement box. | |
| Point< dim > | local_refinement_1_top_right |
| Upper-right point of the first local refinement box. | |
| Point< dim > | local_refinement_2_bottom_left |
| Lower-left point of the second local refinement box. | |
| Point< dim > | local_refinement_2_top_right |
| Upper-right point of the second local refinement box. | |
| Point< dim > | bottom_left |
| Lower-left corner of the computational domain. | |
| Point< dim > | top_right |
| Upper-right corner of the computational domain. | |
| std::ofstream | file_conservation_variables |
| Output stream for conservation-variable postprocessing. | |
| int | n_time_step = 0 |
| Counter for postprocessing calls. | |
| TableHandler | output_table |
| Table used to collect conservation-variable output. | |
Detailed Description
class MeltPoolDG::Simulation::LaserMeltingSimonds::SimulationLaserMeltingSimonds< dim, Number, CaseClass >
Simulation setup for the Simonds laser-melting benchmark.
This class defines the simulation-specific configuration for the laser-melting case. It creates the computational domain, assigns boundary identifiers, attaches boundary and initial conditions, and performs optional postprocessing of conservation quantities.
The computational domain consists of a substrate region and a gas region separated by an initially planar interface at zero level set. For dimensions larger than one, the domain has a finite horizontal width. In one dimension, the coordinate is interpreted along the vertical axis.
The class is templated on the base case class and can therefore be used with different physical models, for example a pure heat-transfer case or a coupled melt-pool case.
Simulation-specific parameters are registered in the "simulation specific" subsection. These include domain dimensions, mesh repetitions, optional local refinement regions, initial temperature values, prescribed level-set parameters, and boundary-condition data.
- Template Parameters
-
dim Spatial dimension. Number Scalar number type. CaseClass Base simulation case class.
Constructor & Destructor Documentation
◆ SimulationLaserMeltingSimonds()
| MeltPoolDG::Simulation::LaserMeltingSimonds::SimulationLaserMeltingSimonds< dim, Number, CaseClass >::SimulationLaserMeltingSimonds | ( | std::string | parameter_file, |
| const MPI_Comm | mpi_communicator | ||
| ) |
Construct the Simonds laser-melting simulation.
- Parameters
-
parameter_file Path to the parameter file. mpi_communicator MPI communicator used by the simulation.
Member Function Documentation
◆ add_case_specific_parameters()
|
override |
Declare simulation-specific parameters.
Adds parameters for domain dimensions, mesh generation, optional local refinement, initial temperature values, prescribed level-set thickness, and boundary-condition data.
- Parameters
-
prm Parameter handler to which the parameters are added.
- Returns
- Whether the parameter values should be printed.
◆ create_spatial_discretization()
|
override |
Create the triangulation and initial spatial discretization.
Builds the rectangular or simplex-based domain consisting of substrate and gas regions. The triangulation type depends on the finite-element type and dimension.
◆ do_postprocessing()
|
final |
Perform simulation-specific postprocessing.
For coupled melt-pool simulations, this function computes globally integrated conservation quantities such as mass, momentum, kinetic energy, and thermal energy. The results are written to a text file in the configured output directory.
- Parameters
-
generic_data_out Data container providing access to solution vectors, DoF handlers, mappings, and the current simulation time.
◆ set_boundary_conditions()
|
override |
Assign boundary identifiers and attach boundary conditions.
Sets boundary identifiers for substrate bottom, substrate walls, gas top, gas inflow, and gas outlet boundaries. Depending on the selected base case and inflow velocity, this function attaches heat-transfer, Navier-Stokes, level-set, and reinitialization boundary conditions.
The function also performs optional local mesh refinement inside up to two user-defined refinement boxes.
◆ set_field_conditions()
|
override |
Attach initial conditions for all active fields.
Initializes temperature fields, prescribed level-set fields for heat-transfer simulations, and signed-distance and velocity fields for coupled melt-pool simulations.
Member Data Documentation
◆ bottom_left
|
private |
Lower-left corner of the computational domain.
◆ cell_repetitions
|
private |
Number of initial cell repetitions in each coordinate direction.
◆ file_conservation_variables
|
mutableprivate |
Output stream for conservation-variable postprocessing.
◆ local_refinement_1_bottom_left
|
private |
Lower-left point of the first local refinement box.
◆ local_refinement_1_top_right
|
private |
Upper-right point of the first local refinement box.
◆ local_refinement_2_bottom_left
|
private |
Lower-left point of the second local refinement box.
◆ local_refinement_2_top_right
|
private |
Upper-right point of the second local refinement box.
◆ n_local_refinement
|
private |
Number of additional local refinement cycles.
◆ n_time_step
|
mutableprivate |
Counter for postprocessing calls.
◆ output_table
|
mutableprivate |
Table used to collect conservation-variable output.
◆ top_right
|
private |
Upper-right corner of the computational domain.
The documentation for this class was generated from the following files:
- applications/mp-melt-pool/cases/laser_melting_simonds/laser_melting_simonds.hpp
- applications/mp-melt-pool/cases/laser_melting_simonds/laser_melting_simonds.templates.hpp
Generated by