10#include <deal.II/base/parameter_acceptor.h>
67 "random adaptation"}, ));
75 "fixed adaptation time points"}, ));
86 template <
typename Description,
int dim,
typename Number =
double>
120 const std::string &subsection =
"/MeshAdaptor");
149 dealii::Triangulation<dim> &triangulation)
const;
158 std::uint_fast64_t random_adaptation_mersenne_twister_seed_;
161 double fixed_number_refinement_fraction_;
162 double fixed_number_coarsening_fraction_;
165 std::vector<Number> adaptation_time_points_;
173 const MPI_Comm &mpi_communicator_;
175 dealii::SmartPointer<const OfflineData<dim, Number>> offline_data_;
176 dealii::SmartPointer<const HyperbolicSystem> hyperbolic_system_;
177 dealii::SmartPointer<const ParabolicSystem> parabolic_system_;
179 bool need_mesh_adaptation_;
181 mutable std::mt19937_64 mersenne_twister_;
typename View::StateVector StateVector
Vectors::ScalarVector< Number > ScalarVector
static constexpr auto problem_dimension
void analyze(const StateVector &state_vector, const Number t, unsigned int cycle)
auto & need_mesh_adaptation() const
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
void prepare(const Number t)
MeshAdaptor(const MPI_Comm &mpi_communicator, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_system, const std::string &subsection="/MeshAdaptor")
TimePointSelectionStrategy
@ fixed_adaptation_time_points
#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::ParabolicSystem ParabolicSystem
Euler::HyperbolicSystem HyperbolicSystem