ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
vtu_output.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2020 - 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <compile_time_options.h>
9
10#include "mpi_ensemble.h"
11#include "observer_pointer.h"
12#include "offline_data.h"
13#include "postprocessor.h"
14
15#include <deal.II/base/parameter_acceptor.h>
16#include <deal.II/grid/intergrid_map.h>
17#include <deal.II/multigrid/mg_transfer_matrix_free.h>
18
19namespace ryujin
20{
21
29 template <typename Description, int dim, typename Number = double>
30 class VTUOutput final : public dealii::ParameterAcceptor
31 {
32 public:
37
40
41 using View = typename HyperbolicSystem::template View<dim, Number>;
42
43 static constexpr auto problem_dimension = View::problem_dimension;
44
45 using state_type = typename View::state_type;
46
47 static constexpr auto n_precomputed_values = View::n_precomputed_values;
48
49 using precomputed_type = typename View::precomputed_type;
50
51 using StateVector = typename View::StateVector;
52 using InitialPrecomputedVector = typename View::InitialPrecomputedVector;
54
56
60
64 VTUOutput(const MPIEnsemble &mpi_ensemble,
65 const OfflineData<dim, Number> &offline_data,
66 const HyperbolicSystem &hyperbolic_system,
67 const ParabolicSystem &parabolic_system,
68 const Postprocessor<Description, dim, Number> &postprocessor,
69 const InitialPrecomputedVector &initial_precomputed,
70 const ScalarVector &alpha,
72 const std::string &subsection = "/VTUOutput");
73
81 void prepare();
82
84
88
106 void schedule_output(const StateVector &state_vector,
107 std::string name,
108 Number t,
109 unsigned int cycle,
110 bool output_full = true,
111 bool output_cutplanes = true);
112
113 private:
115
119
120 bool use_mpi_io_;
121
122 std::vector<std::string> manifolds_;
123
124 std::vector<std::string> vtu_output_quantities_;
125
127
131
132 const MPIEnsemble &mpi_ensemble_;
133
134 dealii::ObserverPointer<const OfflineData<dim, Number>> offline_data_;
135 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
136 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
137 dealii::ObserverPointer<const Postprocessor<Description, dim, Number>>
138 postprocessor_;
139
140 const InitialPrecomputedVector &initial_precomputed_;
141 const ScalarVector &alpha_;
142 const ScalarVector &smoothness_indicators_;
143
145 };
146
147} /* namespace ryujin */
typename View::StateVector StateVector
Definition vtu_output.h:51
typename HyperbolicSystem::template View< dim, Number > View
Definition vtu_output.h:41
void schedule_output(const StateVector &state_vector, std::string name, Number t, unsigned int cycle, bool output_full=true, bool output_cutplanes=true)
typename View::precomputed_type precomputed_type
Definition vtu_output.h:49
typename Description::HyperbolicSystem HyperbolicSystem
Definition vtu_output.h:38
typename View::state_type state_type
Definition vtu_output.h:45
static constexpr auto n_precomputed_values
Definition vtu_output.h:47
static constexpr auto problem_dimension
Definition vtu_output.h:43
typename Description::ParabolicSystem ParabolicSystem
Definition vtu_output.h:39
typename View::InitialPrecomputedVector InitialPrecomputedVector
Definition vtu_output.h:52
Euler::HyperbolicSystem HyperbolicSystem
Definition description.h:34
ryujin::StubParabolicSystem ParabolicSystem
Definition description.h:36