ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
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 <ryujin/base/compile_time_options.h>
16
17#include <deal.II/base/parameter_acceptor.h>
18#include <deal.II/grid/intergrid_map.h>
19#include <deal.II/multigrid/mg_transfer_matrix_free.h>
20
21namespace ryujin
22{
23
44 template <int dim, typename Number = double>
45 class VTUOutput final : public dealii::ParameterAcceptor,
46 public Interface::Task<Number>
47 {
48 public:
53
58 bool levelsets = false,
59 const std::string &subsection = "/VTUOutput");
60
62
66
72 void prepare(TaskContext<Number> &context) override;
73
78 void execute(TaskContext<Number> &context) override;
79
81
82 private:
87
88 bool use_mpi_io_;
89 bool output_analytic_solution_;
90
91 Number beta_;
92 bool recompute_bounds_;
93
94 std::vector<std::string> manifolds_;
95
96 std::vector<std::string> vtu_output_quantities_;
97
99
103
104 const bool levelsets_;
105 Trigger<Number> trigger_;
106
107 const Interface::Simulation<dim, Number> &simulation_;
108 const MPIEnsemble &mpi_ensemble_;
109
110 dealii::ObserverPointer<const OfflineData<dim, Number>> offline_data_;
111
112 const Interface::Postprocessor<dim, Number> &postprocessor_;
113
115
120 std::vector<std::pair<Number, Number>> bounds_;
121
123
127
141 void schedule_output(const StateVector<Number> &state_vector,
142 std::string name,
143 Number t,
144 unsigned int cycle);
145
147 };
148
149} // namespace ryujin
void prepare(TaskContext< Number > &context) override
VTUOutput(const Interface::Simulation< dim, Number > &simulation, bool levelsets=false, const std::string &subsection="/VTUOutput")
void execute(TaskContext< Number > &context) override