ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
|
#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 () |
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 |
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 40 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 48 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem |
Definition at line 49 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::View = typename Description::template HyperbolicSystemView<dim, Number> |
Definition at line 51 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.
using ryujin::Postprocessor< Description, dim, Number >::ScalarVector = Vectors::ScalarVector<Number> |
Definition at line 66 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 19 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 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.
|
inline |
Returns the number of computed quantities.
Definition at line 95 of file postprocessor.h.
|
inline |
A vector of strings for all component names.
Definition at line 103 of file postprocessor.h.
|
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.
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.
|
inline |
Returns a reference to the quantities_ vector that has been filled by the compute() function.
Definition at line 136 of file postprocessor.h.
|
staticconstexpr |
Definition at line 54 of file postprocessor.h.