ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
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 ()
 
unsigned int n_quantities () const
 
const std::vector< std::string > component_names () const
 
void reset_bounds () const
 
void compute (const StateVector &state_vector) const
 
auto & quantities () const
 

Typedefs and constexpr constants

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using View = typename Description::template HyperbolicSystemView< 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
 
using ScalarVector = Vectors::ScalarVector< Number >
 
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 40 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 48 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 49 of file postprocessor.h.

◆ View

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

Definition at line 51 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.

◆ ScalarVector

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

Definition at line 66 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 19 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 schedule_output() can be called.

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

Definition at line 63 of file postprocessor.template.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 95 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 103 of file postprocessor.h.

◆ 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 113 of file postprocessor.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 U and a file name prefix name, the current time t, and the current output cycle cycle) schedule a solution output.

The function post-processes quantities synchronously, and (depending on configuration options) schedules the write-out asynchronously onto a background worker thread. This implies that U can again be modified once schedule_output() returned.

The function requires MPI communication and is not reentrant.

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

◆ quantities()

template<typename Description , int dim, typename Number = double>
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 136 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: