![]() |
ryujin 2.1.1 revision b04fb4aba7bd97ddfa5994a6b4b6e8586eb15db2
|
#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 Interface::ParabolicSystem ¶bolic_system, const std::string &subsection="/Postprocessor") | |
| void | prepare () |
Functions for computing postprocessed quantities | |
| void | compute (const StateVector< Number > &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 HyperbolicDescription::HyperbolicSystem |
| 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 > |
| 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 43 of file postprocessor.h.
| using ryujin::Postprocessor< HyperbolicDescription, dim, Number >::HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem |
Definition at line 51 of file postprocessor.h.
| using ryujin::Postprocessor< HyperbolicDescription, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 53 of file postprocessor.h.
| using ryujin::Postprocessor< HyperbolicDescription, dim, Number >::state_type = typename View::state_type |
Definition at line 57 of file postprocessor.h.
| using ryujin::Postprocessor< HyperbolicDescription, dim, Number >::grad_type = dealii::Tensor<1, dim, T> |
Definition at line 60 of file postprocessor.h.
| using ryujin::Postprocessor< HyperbolicDescription, dim, Number >::curl_type = dealii::Tensor<1, dim == 2 ? 1 : dim, T> |
Definition at line 63 of file postprocessor.h.
| ryujin::Postprocessor< HyperbolicDescription, dim, Number >::Postprocessor | ( | const MPIEnsemble & | mpi_ensemble, |
| const OfflineData< dim, Number > & | offline_data, | ||
| const HyperbolicSystem & | hyperbolic_system, | ||
| const Interface::ParabolicSystem & | parabolic_system, | ||
| const std::string & | subsection = "/Postprocessor< HyperbolicDescription, dim, Number >" |
||
| ) |
Constructor.
Definition at line 20 of file postprocessor.template.h.
| void ryujin::Postprocessor< HyperbolicDescription, 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< HyperbolicDescription, dim, Number >::compute | ( | const StateVector< Number > & | 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::hyperbolic, and ryujin::StateVector< Number >::U.
|
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 114 of file postprocessor.h.
|
inline |
Returns the number of computed quantities.
Definition at line 128 of file postprocessor.h.
|
inline |
A vector of strings for all component names.
Definition at line 136 of file postprocessor.h.
|
inline |
Returns a reference to the quantities_ vector that has been filled by the compute() function.
Definition at line 145 of file postprocessor.h.
|
staticconstexpr |
Definition at line 55 of file postprocessor.h.