6#include <deal.II/distributed/tria.h>
7#include <deal.II/grid/grid_tools_geometry.h>
8#include <deal.II/grid/tria.h>
9#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
14#include <prismspf/config.h>
24template <
unsigned int dim>
67 [[
nodiscard]]
const dealii::Triangulation<dim> &
73 [[
nodiscard]]
const std::vector<dealii::GridTools::PeriodicFacePair<
74 typename dealii::Triangulation<dim>::cell_iterator>> &
142 std::vector<dealii::GridTools::PeriodicFacePair<
143 typename dealii::Triangulation<dim>::cell_iterator>>
This class handlers the generation and manipulation of triangulations.
Definition triangulation_manager.h:26
Triangulation< dim > triangulation
Main triangulation.
Definition triangulation_manager.h:132
bool has_multigrid
Whether we have multigrid.
Definition triangulation_manager.h:127
void reinit()
Reinitialize the triangulation handler. This is used for AMR with multigrid so the coarsened meshes c...
Definition triangulation_manager.cc:44
void generate_mesh(const SpatialDiscretization< dim > &discretization_params)
Generate mesh based on the inputs provided by the user.
Definition triangulation_manager.cc:107
double volume
Periodic face pairs on the coarsest mesh if they exist.
Definition triangulation_manager.h:149
std::vector< std::shared_ptr< const dealii::Triangulation< dim > > > coarsened_triangulations
Coarsened triangulations for multigrid.
Definition triangulation_manager.h:137
void execute_grid_refinement()
Execute grid refinement on the triangulation.
Definition triangulation_manager.h:109
void export_triangulation_as_vtk(const std::string &filename) const
Export triangulation to vtk. This is done for debugging purposes when dealing with unusual meshes (e....
Definition triangulation_manager.cc:143
const std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > & get_periodic_face_pairs() const
Get the vector of periodic face pairs.
Definition triangulation_manager.cc:93
TriangulationManager(const SpatialDiscretization< dim > &discretization_params, bool _has_multigrid=false)
Definition triangulation_manager.h:33
void clear_user_flags()
Clear all user flags.
Definition triangulation_manager.h:118
void prepare_for_grid_refinement()
Prepare the triangulation for grid refinement.
Definition triangulation_manager.h:100
std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > periodicity_vector
Periodic face pairs on the coarsest mesh if they exist.
Definition triangulation_manager.h:144
double get_volume() const
Get the vector of periodic face pairs.
Definition triangulation_manager.cc:100
void set_using_multigrid(bool _has_multigrid)
Set whether multigrid triangulations will be generated.
Definition triangulation_manager.h:45
const Triangulation< dim > & get_triangulation() const
Getter function for triangulation (constant reference).
Definition triangulation_manager.cc:66
@ Value
Use value of the variable as a criterion for refinement.
Definition grid_refiner_criterion.h:31
Definition conditional_ostreams.cc:20
std::conditional_t< dim==1, dealii::Triangulation< dim >, dealii::parallel::distributed::Triangulation< dim > > Triangulation
Definition spatial_discretization.h:36
Struct that holds spatial discretization parameters.
Definition spatial_discretization.h:230