PRISMS-PF Manual v3.0-pre
All Classes Functions Variables Enumerations Pages
dof_handler.h
1// SPDX-FileCopyrightText: © 2025 PRISMS Center at the University of Michigan
2// SPDX-License-Identifier: GNU Lesser General Public Version 2.1
3
4#ifndef dof_handler_h
5#define dof_handler_h
6
7#include <deal.II/base/mg_level_object.h>
8#include <deal.II/dofs/dof_handler.h>
9#include <deal.II/fe/fe_system.h>
10
11#include <prismspf/config.h>
12#include <prismspf/core/triangulation_handler.h>
13#include <prismspf/user_inputs/user_input_parameters.h>
14
15#include <map>
16#include <vector>
17
18PRISMS_PF_BEGIN_NAMESPACE
19
23template <int dim>
25{
26public:
30 explicit dofHandler(const userInputParameters<dim> &_user_inputs);
31
35 void
36 init(const triangulationHandler<dim> &triangulation_handler,
37 const std::map<fieldType, dealii::FESystem<dim>> &fe_system);
38
42 [[nodiscard]] const std::vector<const dealii::DoFHandler<dim> *> &
43 get_dof_handlers() const;
44
48 [[nodiscard]] const std::map<unsigned int,
49 dealii::MGLevelObject<dealii::DoFHandler<dim>>> &
50 get_mg_dof_handlers() const;
51
56 [[nodiscard]] const dealii::DoFHandler<dim> &
57 get_mg_dof_handler(unsigned int index, unsigned int level) const;
58
59private:
63 const userInputParameters<dim> *user_inputs;
64
72 std::map<unsigned int, std::unique_ptr<dealii::DoFHandler<dim>>> dof_handlers;
73
77 std::vector<const dealii::DoFHandler<dim> *> const_dof_handlers;
78
82 bool has_multigrid = false;
83
89 std::map<unsigned int, dealii::MGLevelObject<dealii::DoFHandler<dim>>> mg_dof_handlers;
90};
91
92PRISMS_PF_END_NAMESPACE
93
94#endif
Class that manages the deal.II DoFHandlers.
Definition dof_handler.h:25
void init(const triangulationHandler< dim > &triangulation_handler, const std::map< fieldType, dealii::FESystem< dim > > &fe_system)
Initialize the DoFHandlers.
Definition dof_handler.cc:42
const std::map< unsigned int, dealii::MGLevelObject< dealii::DoFHandler< dim > > > & get_mg_dof_handlers() const
Getter function for the multigrid DoFHandlers (constant reference).
Definition dof_handler.cc:131
const dealii::DoFHandler< dim > & get_mg_dof_handler(unsigned int index, unsigned int level) const
Getter function for the DoFHandler at a certain field and multigrid level (constant reference).
Definition dof_handler.cc:141
const std::vector< const dealii::DoFHandler< dim > * > & get_dof_handlers() const
Getter function for the DoFHandlers (constant reference).
Definition dof_handler.cc:122
This class handlers the generation and manipulation of triangulations.
Definition triangulation_handler.h:24
Definition user_input_parameters.h:22