8#include <compile_time_options.h>
14#include <deal.II/base/parameter_acceptor.h>
84 "smoothness indicators"}, ));
94 "simulation cycle"}, ));
105 template <
typename Description,
int dim,
typename Number =
double>
141 const std::string &subsection =
"/MeshAdaptor");
171 dealii::Triangulation<dim> &triangulation)
const;
197 std::uint_fast64_t random_adaptation_mersenne_twister_seed_;
200 double coarsening_threshold_;
201 double refinement_threshold_;
202 bool absolute_threshold_;
203 unsigned int min_refinement_level_;
204 unsigned int max_refinement_level_;
207 std::vector<Number> adaptation_time_points_;
208 unsigned int adaptation_cycle_interval_;
210 std::vector<std::string> smoothness_selected_quantities_;
211 Number smoothness_local_global_ratio_;
212 Number smoothness_min_cutoff_;
213 Number smoothness_max_cutoff_;
214 unsigned int smoothness_widen_stencil_;
224 dealii::ObserverPointer<const OfflineData<dim, Number>> offline_data_;
225 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
226 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
231 bool need_mesh_adaptation_;
233 mutable dealii::Vector<float> indicators_;
237 void populate_cell_indicators_with_random_values()
const;
239 mutable std::mt19937_64 mersenne_twister_;
243 void populate_cell_indicators_from_smoothness_indicators()
const;
void compute_smoothness_indicators(const StateVector &state_vector) const
typename View::StateVector StateVector
Vectors::ScalarVector< Number > ScalarVector
MeshAdaptor(const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_system, const InitialPrecomputedVector &initial_precomputed, const ScalarVector &alpha, const std::string &subsection="/MeshAdaptor")
static constexpr auto problem_dimension
void analyze(const StateVector &state_vector, const Number t, unsigned int cycle)
const auto & smoothness_indicators() const
typename View::InitialPrecomputedVector InitialPrecomputedVector
typename Description::ParabolicSystem ParabolicSystem
typename Description::HyperbolicSystem HyperbolicSystem
void mark_cells_for_coarsening_and_refinement(dealii::Triangulation< dim > &triangulation) const
typename Description::template HyperbolicSystemView< dim, Number > View
const auto & need_mesh_adaptation() const
void prepare(const Number t)
const auto & indicators() const
TimePointSelectionStrategy
#define ACCESSOR_READ_ONLY(member)
dealii::LinearAlgebra::distributed::Vector< Number > ScalarVector
std::tuple< MultiComponentVector< Number, problem_dim >, MultiComponentVector< Number, prec_dim >, BlockVector< Number > > StateVector
Euler::HyperbolicSystem HyperbolicSystem
ryujin::StubParabolicSystem ParabolicSystem