ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
List of all members
ryujin::Postprocessor< Description, dim, Number > Class Template Referencefinal

#include <source/postprocessor.h>

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

Public Member Functions

Constructor and setup
 Postprocessor (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem &parabolic_system, const std::string &subsection="/Postprocessor")
 
void prepare ()
 
Functions for computing postprocessed quantities
void compute (const StateVector &state_vector) const
 
void reset_bounds () const
 
Information and statistics
unsigned int n_quantities () const
 
const std::vector< std::string > component_names () const
 
const auto & quantities () const
 

Typedefs and constexpr constants

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using state_type = typename View::state_type
 
template<typename T >
using grad_type = dealii::Tensor< 1, dim, T >
 
template<typename T >
using curl_type = dealii::Tensor< 1, dim==2 ? 1 :dim, T >
 
using StateVector = typename View::StateVector
 
static constexpr auto problem_dimension = View::problem_dimension
 

Detailed Description

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

The Postprocessor class implements a number of postprocessing primitives in particular for a scaled and normalized schlieren like plot, and a scaled and normalized magnitude of the vorticity. The normalization is computed as follows:

\[ \text{quantity}[i] = \exp\left(-\beta \frac{ |\mathbf q_i| - \min_k |\mathbf q_k|} {\max_k |\mathbf q_k| - \min_k |\mathbf q_k|}\right), \]

where \(\mathbf q_i\) is either

Definition at line 41 of file postprocessor.h.

Member Typedef Documentation

◆ HyperbolicSystem

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

Definition at line 49 of file postprocessor.h.

◆ ParabolicSystem

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

Definition at line 50 of file postprocessor.h.

◆ View

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

Definition at line 52 of file postprocessor.h.

◆ state_type

template<typename Description , int dim, typename Number = double>
using ryujin::Postprocessor< Description, dim, Number >::state_type = typename View::state_type

Definition at line 56 of file postprocessor.h.

◆ grad_type

template<typename Description , int dim, typename Number = double>
template<typename T >
using ryujin::Postprocessor< Description, dim, Number >::grad_type = dealii::Tensor<1, dim, T>

Definition at line 59 of file postprocessor.h.

◆ curl_type

template<typename Description , int dim, typename Number = double>
template<typename T >
using ryujin::Postprocessor< Description, dim, Number >::curl_type = dealii::Tensor<1, dim == 2 ? 1 : dim, T>

Definition at line 62 of file postprocessor.h.

◆ StateVector

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

Definition at line 64 of file postprocessor.h.

Constructor & Destructor Documentation

◆ Postprocessor()

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

Constructor.

Definition at line 20 of file postprocessor.template.h.

Member Function Documentation

◆ prepare()

template<typename Description , int dim, typename Number >
void ryujin::Postprocessor< Description, dim, Number >::prepare ( )

Prepare Postprocessor. A call to prepare() allocates temporary storage and is necessary before compute() can be called.

Calling prepare() allocates temporary storage for two additional scalar vectors of type OfflineData::scalar_type.

Definition at line 64 of file postprocessor.template.h.

◆ compute()

template<typename Description , int dim, typename Number >
void ryujin::Postprocessor< Description, dim, Number >::compute ( const StateVector state_vector) const

Given a state vector state_vector compute all configured postprocessed quantities and store the result in the vector returned by quantities().

The normalization bounds are computed on the first invocation and then reused for all subsequent invocations, unless the "recompute bounds" run time option is set, or reset_bounds() has been called in the meantime.

The function requires MPI communication and is not reentrant.

Definition at line 109 of file postprocessor.template.h.

References ryujin::have_separate_memory_spaces.

◆ reset_bounds()

template<typename Description , int dim, typename Number = double>
void ryujin::Postprocessor< Description, dim, Number >::reset_bounds ( ) const
inline

Reset computed normalization bounds. Calling this function will force a recomputation of the normalization bounds during the next call to compute().

Definition at line 115 of file postprocessor.h.

◆ n_quantities()

template<typename Description , int dim, typename Number = double>
unsigned int ryujin::Postprocessor< Description, dim, Number >::n_quantities ( ) const
inline

Returns the number of computed quantities.

Definition at line 129 of file postprocessor.h.

◆ component_names()

template<typename Description , int dim, typename Number = double>
const std::vector< std::string > ryujin::Postprocessor< Description, dim, Number >::component_names ( ) const
inline

A vector of strings for all component names.

Definition at line 137 of file postprocessor.h.

◆ quantities()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::Postprocessor< Description, dim, Number >::quantities ( ) const
inline

Returns a reference to the quantities_ vector that has been filled by the compute() function.

Definition at line 146 of file postprocessor.h.

Member Data Documentation

◆ problem_dimension

template<typename Description , int dim, typename Number = double>
constexpr auto ryujin::Postprocessor< Description, dim, Number >::problem_dimension = View::problem_dimension
staticconstexpr

Definition at line 54 of file postprocessor.h.


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