include/meltpooldg/compressible_flow/operation_type_erasure.hpp Source File
|
Developer Documentation
|
operation_type_erasure.hpp
Go to the documentation of this file.
121 set_boundary_conditions(const std::shared_ptr<SimulationCaseBase<dim, number>> &simulation_case,
Common interface class for compressible flow operation classes based on the type erasure idiom.
Definition operation_type_erasure.hpp:22
void solve(const number current_time, const number time_step)
Solves the compressible Navier-Stokes equations for a single time step.
Definition operation_type_erasure.hpp:49
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition operation_type_erasure.hpp:24
std::unique_ptr< OperationConcept > operation_pimpl
Definition operation_type_erasure.hpp:343
void distribute_dofs(dealii::DoFHandler< dim > &dof_handler) const
Distribute the degrees of freedom to the passed dof handler object.
Definition operation_type_erasure.hpp:60
void clear()
Delete the compressible flow operation object stored in this class.
Definition operation_type_erasure.hpp:196
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const
Attach the solution to the passed data out object.
Definition operation_type_erasure.hpp:82
const dealii::DoFHandler< dim > & get_dof_handler() const
Get a constant reference to the DoFHandler used in the current operation.
Definition operation_type_erasure.hpp:151
VectorType & get_solution()
Get a reference to the solution vector.
Definition operation_type_erasure.hpp:173
OperationTypeErasure()=default
Default constructor.
OperationTypeErasure(std::unique_ptr< OperationType > &&operation)
Constructor, takes ownership of the passed unique pointer.
Definition operation_type_erasure.hpp:38
void add_external_force(std::shared_ptr< ExternalFlowForce< dim, number > > external_force_residuum, std::shared_ptr< ExternalFlowForceJacobian< dim, number > > external_force_jacobian=nullptr)
void reinit()
Set up the required internal data structures.
Definition operation_type_erasure.hpp:71
bool is_initialized() const
Check if the compressible flow operation is initialized,.
Definition operation_type_erasure.hpp:187
number compute_time_step_size(const bool do_print=false) const
Compute the maximum time step size.
Definition operation_type_erasure.hpp:96
void set_boundary_conditions(const std::shared_ptr< SimulationCaseBase< dim, number > > &simulation_case, const std::string &operation_name)
Set the boundary conditions.
Definition operation_type_erasure.hpp:121
const VectorType & get_solution() const
Get a constant reference to the solution vector.
Definition operation_type_erasure.hpp:162
void set_body_force(std::unique_ptr< dealii::Function< dim > > body_force_in)
Set a body force, e.g. gravity, specified by the passed function.
Definition operation_type_erasure.hpp:135
void set_initial_condition(const dealii::Function< dim > &function)
Set the solution vector to the passed initial flow field state.
Definition operation_type_erasure.hpp:107
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
This file contains various functions that can be used to set and evaluate boundary conditions for the...
Definition boundary_condition_functions.hpp:17
Definition utils.hpp:144
An abstract interface for defining external forces acting on the fluid that must be evaluated and inc...
Definition utils.hpp:117
Abstract base class defining the interface for compressible flow operations.
Definition operation_type_erasure.hpp:210
virtual void solve(number current_time, number time_step)=0
virtual void reinit()=0
virtual void attach_output_vectors(GenericDataOut< dim, number > &data_out) const =0
virtual const VectorType & get_solution() const =0
virtual void set_initial_condition(const dealii::Function< dim > &function)=0
virtual void distribute_dofs(dealii::DoFHandler< dim > &dof_handler) const =0
virtual void set_boundary_conditions(const std::shared_ptr< SimulationCaseBase< dim, number > > &simulation_case, const std::string &operation_name)=0
virtual number compute_time_step_size(bool do_print=false) const =0
virtual void set_body_force(std::unique_ptr< dealii::Function< dim > > body_force_in)=0
virtual ~OperationConcept()=default
virtual VectorType & get_solution()=0
virtual const dealii::DoFHandler< dim > & get_dof_handler() const =0
Concrete implementation of OperationConcept using a specific compressible flow operation type.
Definition operation_type_erasure.hpp:262
void solve(const number current_time, const number time_step) override
Definition operation_type_erasure.hpp:269
void set_body_force(std::unique_ptr< dealii::Function< dim > > body_force_in) override
Definition operation_type_erasure.hpp:313
void reinit() override
Definition operation_type_erasure.hpp:281
OperationModel(std::unique_ptr< OperationType > &&operation_in)
Definition operation_type_erasure.hpp:264
const dealii::DoFHandler< dim > & get_dof_handler() const override
Definition operation_type_erasure.hpp:331
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const override
Definition operation_type_erasure.hpp:287
void distribute_dofs(dealii::DoFHandler< dim > &dof_handler) const override
Definition operation_type_erasure.hpp:275
std::unique_ptr< OperationType > operation
Pointer to the concrete compressible flow operation object.
Definition operation_type_erasure.hpp:338
void set_initial_condition(const dealii::Function< dim > &function) override
Definition operation_type_erasure.hpp:299
void set_boundary_conditions(const std::shared_ptr< SimulationCaseBase< dim, number > > &simulation_case, const std::string &operation_name) override
Definition operation_type_erasure.hpp:305
const VectorType & get_solution() const override
Definition operation_type_erasure.hpp:319
VectorType & get_solution() override
Definition operation_type_erasure.hpp:325
number compute_time_step_size(const bool do_print=false) const override
Definition operation_type_erasure.hpp:293
Generated by