6#include <deal.II/base/mg_level_object.h>
7#include <deal.II/dofs/dof_handler.h>
8#include <deal.II/fe/fe_system.h>
16#include <prismspf/config.h>
23template <
unsigned int dim,
unsigned int degree>
61 reinit_mapping(
const std::vector<FieldAttributes> &field_attributes);
67 [[nodiscard]]
const std::vector<const dealii::DoFHandler<dim> *> &
74 [[nodiscard]]
const dealii::DoFHandler<dim> &
81 [[nodiscard]] std::vector<const dealii::DoFHandler<dim> *>
87 [[nodiscard]]
const std::array<dealii::DoFHandler<dim>, 2> &
93 [[nodiscard]]
const dealii::DoFHandler<dim> &
105 [[nodiscard]]
unsigned int
112 [[nodiscard]] dealii::types::global_dof_index
128PRISMS_PF_END_NAMESPACE
const std::array< dealii::DoFHandler< dim >, 2 > & get_dof_handlers() const
Getter function for the scalar and vector DoFHandlers on a level.
Definition dof_manager.cc:74
DoFManager operator=(const DoFManager &)=delete
DoFManager(const DoFManager &)=delete
Disable copying.
dealii::types::global_dof_index get_total_dofs() const
Get the total DoFs excluding multigrid DoFs.
Definition dof_manager.cc:102
DoFManager(const DoFManager &&)=delete
~DoFManager()=default
Destructor.
DoFManager & operator=(DoFManager &&other)=delete
std::vector< const dealii::DoFHandler< dim > * > get_block_dof_handlers(const std::set< unsigned int > &field_indices) const
Getter the DoFHandlers for a block of fields.
Definition dof_manager.cc:60
const dealii::DoFHandler< dim > & get_dof_handler(const unsigned int &rank) const
Getter function for a specific scalar or vector DoFHandler.
Definition dof_manager.cc:81
const dealii::DoFHandler< dim > & get_field_dof_handler(Types::Index field_index) const
Getter function for the DoFHandler (reference).
Definition dof_manager.cc:53
DoFManager()=default
Constructor.
bool has_mg() const
Has distribute_mg_dofs() been called?
Definition dof_manager.cc:88
unsigned int num_levels() const
Get the total number of levels in the triangulation.
Definition dof_manager.cc:95
std::array< dealii::DoFHandler< dim >, 2 > level_dof_handlers
A scalar and a vector dof handler.
Definition dof_manager.h:125
std::vector< const dealii::DoFHandler< dim > * > field_dof_handlers
Pointers to the dof handlers for each field on every mg level. Vector is indexed by field index.
Definition dof_manager.h:120
void reinit_mapping(const std::vector< FieldAttributes > &field_attributes)
Reinitialize the DoFHandlers.
Definition dof_manager.cc:33
const std::vector< const dealii::DoFHandler< dim > * > & get_field_dof_handlers() const
Getter function for all the DoFHandlers on a level.
Definition dof_manager.cc:46
void reinit(const TriangulationManager< dim > &triangulation_manager, bool init_mg=false)
Reinitialize the DoFHandlers.
Definition dof_manager.cc:15
This class handlers the generation and manipulation of triangulations.
Definition triangulation_manager.h:24
Definition conditional_ostreams.cc:20
unsigned int Index
Type for field indices.
Definition types.h:19