ryujin 2.1.1 revision f751393c604e228afd3e8516e9e236ec609caae0
|
#include <source/postprocessor.h>
Public Types | |
using | HyperbolicSystem = typename Description::HyperbolicSystem |
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 | scalar_type = typename OfflineData< dim, Number >::scalar_type |
using | vector_type = MultiComponentVector< Number, problem_dimension > |
Public Member Functions | |
Postprocessor (const MPI_Comm &mpi_communicator, const HyperbolicSystem &hyperbolic_system, const OfflineData< dim, Number > &offline_data, 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 vector_type &U) const |
Static Public Attributes | |
static constexpr unsigned int | 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 38 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 44 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::View = typename Description::template HyperbolicSystemView<dim, Number> |
Definition at line 49 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::state_type = typename View::state_type |
Definition at line 60 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::grad_type = dealii::Tensor<1, dim, T> |
The type used to store the gradient of a scalar quantitty;
Definition at line 66 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::curl_type = dealii::Tensor<1, dim == 2 ? 1 : dim, T> |
Type used to store the curl of an 2D/3D vector field. Departing from mathematical rigor, in 2D this is a number (stored as Tensor<1,1>
), in 3D this is a rank 1 tensor.
Definition at line 74 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::scalar_type = typename OfflineData<dim, Number>::scalar_type |
Shorthand typedef for dealii::LinearAlgebra::distributed::Vector<Number>.
Definition at line 79 of file postprocessor.h.
using ryujin::Postprocessor< Description, dim, Number >::vector_type = MultiComponentVector<Number, problem_dimension> |
MulticomponentVector for storing a vector of conserved states:
Definition at line 84 of file postprocessor.h.
ryujin::Postprocessor< Description, dim, Number >::Postprocessor | ( | const MPI_Comm & | mpi_communicator, |
const HyperbolicSystem & | hyperbolic_system, | ||
const OfflineData< dim, Number > & | offline_data, | ||
const std::string & | subsection = "/Postprocessor< Description, dim, Number >" |
||
) |
Constructor.
Definition at line 23 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 65 of file postprocessor.template.h.
|
inline |
Returns the number of computed quantities.
Definition at line 106 of file postprocessor.h.
|
inline |
A vector of strings for all component names.
Definition at line 114 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 124 of file postprocessor.h.
void ryujin::Postprocessor< Description, dim, Number >::compute | ( | const vector_type & | U | ) | 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 111 of file postprocessor.template.h.
|
staticconstexpr |
Definition at line 55 of file postprocessor.h.