![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
#include <source/postprocessor.h>


Public Member Functions | |
Constructor and setup | |
| Postprocessor (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_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 |
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
\[ \mathbf q_i = \frac{1}{m_i}\;\sum_{j\in \mathcal{J}(i)} \mathbf{c}_{ij} \rho_j; \]
\[ \mathbf q_i = \frac{1}{m_i}\;\sum_{j\in \mathcal{J}(i)} \mathbf{c}_{ij} \times \mathbf{m}_j / \rho_j. \]
Definition at line 41 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 49 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem |
Definition at line 50 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 52 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::state_type = typename View::state_type |
Definition at line 56 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::grad_type = dealii::Tensor<1, dim, T> |
Definition at line 59 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::curl_type = dealii::Tensor<1, dim == 2 ? 1 : dim, T> |
Definition at line 62 of file postprocessor.h.
| using ryujin::Postprocessor< Description, dim, Number >::StateVector = typename View::StateVector |
Definition at line 64 of file postprocessor.h.
| 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.
| 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.
| 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.
|
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.
|
inline |
Returns the number of computed quantities.
Definition at line 129 of file postprocessor.h.
|
inline |
A vector of strings for all component names.
Definition at line 137 of file postprocessor.h.
|
inline |
Returns a reference to the quantities_ vector that has been filled by the compute() function.
Definition at line 146 of file postprocessor.h.
|
staticconstexpr |
Definition at line 54 of file postprocessor.h.