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

#include <source/quantities.h>

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

Public Types

Typedefs and constexpr constants
using HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 

Public Member Functions

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

Detailed Description

template<typename HyperbolicDescription, int dim, typename Number = double>
class ryujin::Quantities< HyperbolicDescription, 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 49 of file quantities.h.

Member Typedef Documentation

◆ HyperbolicSystem

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

Definition at line 57 of file quantities.h.

◆ View

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

Definition at line 59 of file quantities.h.

Constructor & Destructor Documentation

◆ Quantities()

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

Constructor.

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

Member Function Documentation

◆ prepare()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::Quantities< HyperbolicDescription, 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 115 of file quantities.template.h.

References ryujin::implicit_transfers.

◆ accumulate()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::Quantities< HyperbolicDescription, dim, Number >::accumulate ( const StateVector< Number > &  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 342 of file quantities.template.h.

References RYUJIN_UNLIKELY.

◆ write_out()

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

Write quantities of interest to designated output files.

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


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