ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ryujin::Interface::Simulation< dim, Number > Class Template Reference

#include <include/ryujin/interface/simulation.h>

Inheritance diagram for ryujin::Interface::Simulation< dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Interface::Simulation< dim, Number >:
Collaboration graph
[legend]

Public Member Functions

virtual ~Simulation ()=default
 

Accessors

std::unique_ptr< MPIEnsemble > mpi_ensemble_
 
std::unique_ptr< Discretization< dim > > discretization_
 
std::unique_ptr< OfflineData< dim, Number > > offline_data_
 
const HyperbolicSystem * hyperbolic_system_ = nullptr
 
const ParabolicSystem * parabolic_system_ = nullptr
 
const InitialValues< dim, Number > * initial_values_ = nullptr
 
std::unique_ptr< HyperbolicModule< dim, Number > > hyperbolic_module_
 
std::unique_ptr< ParabolicModule< dim, Number > > parabolic_module_
 
std::unique_ptr< TimeIntegrator< dim, Number > > time_integrator_
 
std::unique_ptr< MeshAdaptor< dim, Number > > mesh_adaptor_
 
std::unique_ptr< SolutionTransfer< dim, Number > > solution_transfer_
 
std::unique_ptr< VTUOutput< dim, Number > > vtu_output_
 
std::unique_ptr< Quantities< dim, Number > > quantities_
 
std::unique_ptr< ErrorEvaluation< dim, Number > > error_evaluation_
 
 Simulation ()=default
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::Interface::Simulation< dim, Number >

The description-free interface of a Simulation: it stores all objects that the TimeLoop works with and has an accessor for each.

The objects are constructed by a derived class, see the typed Simulation, which is the only class that sees the hyperbolic and the parabolic description.

Definition at line 42 of file simulation.h.

Constructor & Destructor Documentation

◆ ~Simulation()

template<int dim, typename Number = double>
virtual ryujin::Interface::Simulation< dim, Number >::~Simulation ( )
virtualdefault

Destructor.

Reimplemented in ryujin::Simulation< HD, PD, dim, Number >.

◆ Simulation()

template<int dim, typename Number = double>
ryujin::Interface::Simulation< dim, Number >::Simulation ( )
protecteddefault

Constructor.

Member Data Documentation

◆ mpi_ensemble_

template<int dim, typename Number = double>
std::unique_ptr<MPIEnsemble> ryujin::Interface::Simulation< dim, Number >::mpi_ensemble_
protected

◆ discretization_

template<int dim, typename Number = double>
std::unique_ptr<Discretization<dim> > ryujin::Interface::Simulation< dim, Number >::discretization_
protected

◆ offline_data_

template<int dim, typename Number = double>
std::unique_ptr<OfflineData<dim, Number> > ryujin::Interface::Simulation< dim, Number >::offline_data_
protected

◆ hyperbolic_system_

template<int dim, typename Number = double>
const HyperbolicSystem* ryujin::Interface::Simulation< dim, Number >::hyperbolic_system_ = nullptr
protected

The systems and the initial values exist once per MPI ensemble. A derived class owns them in MPIEnsembleContainer objects; the pointers refer to the instance of the current ensemble.

Definition at line 100 of file simulation.h.

Referenced by ryujin::Simulation< HD, PD, dim, Number >::Simulation(), and ryujin::Simulation< HD, PD, dim, Number >::~Simulation().

◆ parabolic_system_

template<int dim, typename Number = double>
const ParabolicSystem* ryujin::Interface::Simulation< dim, Number >::parabolic_system_ = nullptr
protected

◆ initial_values_

template<int dim, typename Number = double>
const InitialValues<dim, Number>* ryujin::Interface::Simulation< dim, Number >::initial_values_ = nullptr
protected

◆ hyperbolic_module_

template<int dim, typename Number = double>
std::unique_ptr<HyperbolicModule<dim, Number> > ryujin::Interface::Simulation< dim, Number >::hyperbolic_module_
protected

◆ parabolic_module_

template<int dim, typename Number = double>
std::unique_ptr<ParabolicModule<dim, Number> > ryujin::Interface::Simulation< dim, Number >::parabolic_module_
protected

◆ time_integrator_

template<int dim, typename Number = double>
std::unique_ptr<TimeIntegrator<dim, Number> > ryujin::Interface::Simulation< dim, Number >::time_integrator_
protected

◆ mesh_adaptor_

template<int dim, typename Number = double>
std::unique_ptr<MeshAdaptor<dim, Number> > ryujin::Interface::Simulation< dim, Number >::mesh_adaptor_
protected

◆ solution_transfer_

template<int dim, typename Number = double>
std::unique_ptr<SolutionTransfer<dim, Number> > ryujin::Interface::Simulation< dim, Number >::solution_transfer_
protected

◆ vtu_output_

template<int dim, typename Number = double>
std::unique_ptr<VTUOutput<dim, Number> > ryujin::Interface::Simulation< dim, Number >::vtu_output_
protected

◆ quantities_

template<int dim, typename Number = double>
std::unique_ptr<Quantities<dim, Number> > ryujin::Interface::Simulation< dim, Number >::quantities_
protected

◆ error_evaluation_

template<int dim, typename Number = double>
std::unique_ptr<ErrorEvaluation<dim, Number> > ryujin::Interface::Simulation< dim, Number >::error_evaluation_
protected

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