include/meltpooldg/core/simulation_case_base.hpp Source File
|
Developer Documentation
|
simulation_case_base.hpp
Go to the documentation of this file.
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Base class for managing a simulation case in a parallel computing environment.
Definition simulation_case_base.hpp:44
std::map< std::string, std::shared_ptr< BoundaryConditionManager< dim, number > > > boundary_conditions_map
Definition simulation_case_base.hpp:416
PeriodicBoundaryConditions< dim > periodic_boundary_conditions
Definition simulation_case_base.hpp:406
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.
Definition simulation_case_base.hpp:218
SimulationCaseBase(const std::string ¶meter_file_in, MPI_Comm mpi_communicator_in)
Definition simulation_case_base.hpp:58
std::shared_ptr< dealii::Function< dim > > get_field_function(const std::string &type, const std::string &operation_name, const bool is_optional=false)
Definition simulation_case_base.hpp:197
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.
Definition simulation_case_base.hpp:345
const PeriodicBoundaryConditions< dim > & get_periodic_bc() const
Get the periodic boundary condition manager.
Definition simulation_case_base.hpp:229
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.
Definition simulation_case_base.hpp:153
std::shared_ptr< dealii::Triangulation< dim, spacedim > > triangulation
Definition simulation_case_base.hpp:49
virtual ~SimulationCaseBase()=default
void parse_simulation_specific_parameters()
Parses simulation-specific parameters.
Definition simulation_case_base.hpp:422
const std::string parameter_file
Definition simulation_case_base.hpp:52
std::map< std::string, std::map< std::string, std::shared_ptr< dealii::Function< dim > > > > field_functions
Definition simulation_case_base.hpp:412
virtual void do_postprocessing(const GenericDataOut< dim, number > &generic_data_out) const
Perform specific postprocessing (can be overridden by derived classes).
Definition simulation_case_base.hpp:242
void create()
Main setup function to initialize the simulation.
Definition simulation_case_base.hpp:72
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.
Definition simulation_case_base.hpp:127
void set_time_boundary_conditions(const number time)
Update the time for all boundary conditions.
Definition simulation_case_base.hpp:174
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.
Definition simulation_case_base.hpp:101
virtual void set_boundary_conditions()=0
Pure virtual function to set the boundary conditions.
virtual void create_spatial_discretization()=0
Pure virtual function to create the spatial discretization.
void attach_periodic_boundary_condition(const dealii::types::boundary_id id_in, const dealii::types::boundary_id id_out, const int direction)
Definition simulation_case_base.hpp:384
virtual void set_field_conditions()=0
Pure virtual function to set the field conditions.
void attach_initial_condition(std::shared_ptr< dealii::Function< dim > > initial_function, const std::string &operation_name)
Definition simulation_case_base.hpp:327
virtual bool add_case_specific_parameters(dealii::ParameterHandler &)
Add simulation-specific parameters (can be overridden).
Definition simulation_case_base.hpp:285
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.
Definition simulation_case_base.hpp:370
void attach_field_function(std::shared_ptr< dealii::Function< dim > > function, const std::string &type, const std::string &operation_name)
Definition simulation_case_base.hpp:315
const MPI_Comm mpi_communicator
Definition simulation_case_base.hpp:56
Factory class for registering and creating simulation cases.
Definition case_factory.hpp:19
void print_decoration_line(const ConditionalOStream &pcout)
Definition journal.hpp:19
void print_line(const ConditionalOStream &pcout, const std::string &text="", const std::string &operation_name="", const unsigned int extra_size=0)
Definition journal.cpp:11
void default_main(int argc, char *argv[], MPI_Comm mpi_comm)
Definition simulation_case_base.hpp:554
void add_and_parse_parameters(const std::string ¶meter_file, const std::function< void(dealii::ParameterHandler &)> &add_parameters, const bool &enable_print=false, const bool print_details=false, const bool skip_undefined=true, const std::string &subsection="")
Adds parameters from a file to a ParameterHandler object.
Definition parameters_base.cpp:7
void run_simulation(const std::string ¶meter_file, const MPI_Comm mpi_communicator)
Definition simulation_case_base.hpp:444
Definition periodic_boundary_conditions.hpp:11
Generated by