ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
List of all members
ryujin::Simulation< HD, PD, dim, Number > Class Template Referencefinal

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

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

Public Types

Typedefs
using HyperbolicSystem = typename HD::HyperbolicSystem
 
using ParabolicSystem = typename PD::ParabolicSystem
 
using HyperbolicModule = typename HD::template HyperbolicModule< dim, Number >
 
using ParabolicModule = typename PD::template ParabolicModule< HD, dim, Number >
 

Public Member Functions

Constructor and destructor
 Simulation (const MPI_Comm &mpi_comm)
 
 ~Simulation () override
 
Task
void prepare (TaskContext< Number > &context) override
 
void execute (TaskContext< Number > &context) override
 
- Public Member Functions inherited from ryujin::Interface::Simulation< dim, Number >
void interpolate_analytic_solution (StateVector< Number > &analytic, Number t) const
 
- Public Member Functions inherited from ryujin::Interface::Task< Number >
virtual ~Task ()=default
 
virtual void initialize (TaskContext< Number > &)
 
virtual void start (TaskContext< Number > &)
 
virtual void finalize (TaskContext< Number > &)
 
virtual void save (boost::archive::binary_oarchive &) const
 
virtual void load (boost::archive::binary_iarchive &)
 

Additional Inherited Members

- Protected Member Functions inherited from ryujin::Interface::Simulation< dim, Number >
 Simulation ()
 
- Protected Member Functions inherited from ryujin::Interface::Task< Number >
 Task (const std::string &name, TaskPhase phase)
 
- Protected Attributes inherited from ryujin::Interface::Simulation< dim, Number >
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< Postprocessor< dim, Number > > postprocessor_
 
std::unique_ptr< SolutionTransfer< dim, Number > > solution_transfer_
 
StateVector< Number > state_vector_
 

Detailed Description

template<typename HD, typename PD, int dim, typename Number = double>
requires Concept::HyperbolicDescription<HD, dim, Number> && Concept::ParabolicDescription<PD, HD, dim, Number>
class ryujin::Simulation< HD, PD, dim, Number >

The Simulation constructs the core objects of a simulation for a given pairing of a hyperbolic and a parabolic description.

In addition to the objects stored in Interface::Simulation it owns the per-ensemble containers of the hyperbolic system, the parabolic system, and the initial values.

The Simulation implements the primary task "time integration" of the Scheduler: prepare() sets up the discretization and the state vector, and execute() performs the time step.

Definition at line 43 of file simulation.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename HD , typename PD , int dim, typename Number = double>
using ryujin::Simulation< HD, PD, dim, Number >::HyperbolicSystem = typename HD::HyperbolicSystem

Definition at line 51 of file simulation.h.

◆ ParabolicSystem

template<typename HD , typename PD , int dim, typename Number = double>
using ryujin::Simulation< HD, PD, dim, Number >::ParabolicSystem = typename PD::ParabolicSystem

Definition at line 52 of file simulation.h.

◆ HyperbolicModule

template<typename HD , typename PD , int dim, typename Number = double>
using ryujin::Simulation< HD, PD, dim, Number >::HyperbolicModule = typename HD::template HyperbolicModule<dim, Number>

Definition at line 53 of file simulation.h.

◆ ParabolicModule

template<typename HD , typename PD , int dim, typename Number = double>
using ryujin::Simulation< HD, PD, dim, Number >::ParabolicModule = typename PD::template ParabolicModule<HD, dim, Number>

Definition at line 55 of file simulation.h.

Constructor & Destructor Documentation

◆ Simulation()

template<typename HD , typename PD , int dim, typename Number = double>
ryujin::Simulation< HD, PD, dim, Number >::Simulation ( const MPI_Comm &  mpi_comm)
inline

◆ ~Simulation()

template<typename HD , typename PD , int dim, typename Number = double>
ryujin::Simulation< HD, PD, dim, Number >::~Simulation ( )
inlineoverridevirtual

Member Function Documentation

◆ prepare()

template<typename HD , typename PD , int dim, typename Number = double>
void ryujin::Simulation< HD, PD, dim, Number >::prepare ( TaskContext< Number > &  context)
inlineoverridevirtual

◆ execute()

template<typename HD , typename PD , int dim, typename Number = double>
void ryujin::Simulation< HD, PD, dim, Number >::execute ( TaskContext< Number > &  context)
inlineoverridevirtual

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