ryujin 2.1.1 revision 71cdc42292164f8095c0bd62c4ea75ebcfac58fa
Loading...
Searching...
No Matches
Classes | List of all members
ryujin::Quantities< Description, dim, Number > Class Template Referencefinal

#include <source/quantities.h>

Inheritance diagram for ryujin::Quantities< Description, dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Quantities< Description, dim, Number >:
Collaboration graph
[legend]

Public Types

Typedefs and constexpr constants
using HyperbolicSystem = typename Description::HyperbolicSystem
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using StateVector = typename View::StateVector
 
using InitialPrecomputedVector = typename View::InitialPrecomputedVector
 

Public Member Functions

Constructor and setup
 Quantities (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem &parabolic_system, const InitialPrecomputedVector &initial_precomputed, const std::string &subsection="/Quantities")
 
void prepare (const std::string &name)
 
Functions for accumulating and writing out quantities
void accumulate (const StateVector &state_vector, const Number t)
 
void write_out (const StateVector &state_vector, const Number t, unsigned int cycle)
 

Detailed Description

template<typename Description, int dim, typename Number = double>
class ryujin::Quantities< Description, dim, Number >

A postprocessor class for quantities of interest.

The class accumulates statistics of a user selected list of (conserved, primitive, precomputed, initial, or parabolic) quantities on level set defined interior and boundary manifolds. For every degree of freedom of a manifold the raw moments (up to a selectable order) of all selected quantities are stored and averaged in time (with a trapezoidal rule), and averaged in space (weighted by the lumped, or boundary mass). Raw moments are linear in the samples and can thus be accumulated exactly. They are converted to the mean and the central moments (variance, third and fourth central moment) on output.

All statistics are accumulated on the selected memory space (i.e., on the device if the state vector resides there) and are only transferred to the host for writing out.

Note
The conversion from raw to central moments is subject to cancellation if the fluctuations of a quantity are small compared to its mean.

Definition at line 47 of file quantities.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::Quantities< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem

Definition at line 55 of file quantities.h.

◆ ParabolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::Quantities< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem

Definition at line 56 of file quantities.h.

◆ View

template<typename Description , int dim, typename Number = double>
using ryujin::Quantities< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number>

Definition at line 58 of file quantities.h.

◆ StateVector

template<typename Description , int dim, typename Number = double>
using ryujin::Quantities< Description, dim, Number >::StateVector = typename View::StateVector

Definition at line 60 of file quantities.h.

◆ InitialPrecomputedVector

template<typename Description , int dim, typename Number = double>
using ryujin::Quantities< Description, dim, Number >::InitialPrecomputedVector = typename View::InitialPrecomputedVector

Definition at line 61 of file quantities.h.

Constructor & Destructor Documentation

◆ Quantities()

template<typename Description , int dim, typename Number >
ryujin::Quantities< Description, dim, Number >::Quantities ( const MPIEnsemble &  mpi_ensemble,
const OfflineData< dim, Number > &  offline_data,
const HyperbolicSystem &  hyperbolic_system,
const ParabolicSystem &  parabolic_system,
const InitialPrecomputedVector &  initial_precomputed,
const std::string &  subsection = "/Quantities< Description, dim, Number >" 
)

Constructor.

Definition at line 56 of file quantities.template.h.

Member Function Documentation

◆ prepare()

template<typename Description , int dim, typename Number >
void ryujin::Quantities< Description, dim, Number >::prepare ( const std::string &  name)

Prepare evaluation. A call to prepare() allocates temporary storage and is necessary before accumulate() and write_out() can be called.

Calling prepare() allocates temporary storage for various boundary and interior maps. The storage requirement varies according to the supplied manifold descriptions.

The string parameter name is used as base name for output files.

Definition at line 117 of file quantities.template.h.

References ryujin::implicit_transfers.

◆ accumulate()

template<typename Description , int dim, typename Number >
void ryujin::Quantities< Description, dim, Number >::accumulate ( const StateVector &  state_vector,
const Number  t 
)

Takes a state vector U at time t (obtained at the end of a full Strang step) and accumulates statistics for quantities of interests for all defined manifolds.

Definition at line 343 of file quantities.template.h.

References RYUJIN_UNLIKELY.

◆ write_out()

template<typename Description , int dim, typename Number >
void ryujin::Quantities< Description, dim, Number >::write_out ( const StateVector &  state_vector,
const Number  t,
unsigned int  cycle 
)

Write quantities of interest to designated output files.

Definition at line 416 of file quantities.template.h.


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