ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
mesh_adaptor.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <ryujin/base/compile_time_options.h>
12
13#include <deal.II/base/parameter_acceptor.h>
14#include <deal.II/grid/tria.h>
15
16#include <string>
17
18namespace ryujin
19{
20 namespace Interface
21 {
30 template <int dim, typename Number = double>
31 class MeshAdaptor : public dealii::ParameterAcceptor
32 {
33 public:
38
40
42
46
51 virtual void prepare(const Number t) = 0;
52
54
58
64 virtual void analyze(const StateVector<Number> &state_vector,
65 const Number t,
66 unsigned int cycle) = 0;
67
72 dealii::Triangulation<dim> &triangulation) const = 0;
73
78 virtual void
79 update_transformation(Transformation &transformation) const = 0;
80
82
86
92 ACCESSOR_READ_ONLY(need_mesh_adaptation)
93
94 //@}
95
96 protected:
100 explicit MeshAdaptor(const std::string &subsection)
101 : ParameterAcceptor(subsection)
102 , need_mesh_adaptation_(false)
103 {
104 }
105
113 };
114 } // namespace Interface
115} // namespace ryujin
std::function< dealii::Point< dim >(const typename dealii::Triangulation< dim >::cell_iterator &, const dealii::Point< dim > &)> Transformation
virtual void mark_cells_for_coarsening_and_refinement(dealii::Triangulation< dim > &triangulation) const =0
MeshAdaptor(const std::string &subsection)
virtual void prepare(const Number t)=0
virtual void update_transformation(Transformation &transformation) const =0
virtual void analyze(const StateVector< Number > &state_vector, const Number t, unsigned int cycle)=0
typename Discretization< dim >::Transformation Transformation
#define ACCESSOR_READ_ONLY(member)