Doxygen API reference documentation for ideal.II
Loading...
Searching...
No Matches
slab_dof_handler.hh
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2022 - 2023 by the ideal.II authors
4//
5// This file is part of the ideal.II library.
6//
7// The ideal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 3.0 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of ideal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef INCLUDE_IDEAL_II_DOFS_SLAB_DOF_HANDLER_HH_
17#define INCLUDE_IDEAL_II_DOFS_SLAB_DOF_HANDLER_HH_
18
19#include <ideal.II/distributed/slab_tria.hh>
20
21#include <ideal.II/fe/fe_dg.hh>
22
23#include <ideal.II/grid/slab_tria.hh>
24
25#include <deal.II/dofs/dof_handler.h>
26
27#include <list>
28#include <memory>
29
30namespace idealii::slab
31{
41 template <int dim>
43 {
44 public:
50#ifdef DEAL_II_WITH_MPI
56#endif
74 std::shared_ptr<dealii::DoFHandler<dim>>
76
81 std::shared_ptr<dealii::DoFHandler<1>>
83
92 void
94
100 unsigned int
107 unsigned int
114 unsigned int
116
122 unsigned int
124
130 unsigned int
132
140
152 const dealii::IndexSet &
154
155 private:
156 std::shared_ptr<dealii::DoFHandler<dim>> _spatial_dof;
157 std::shared_ptr<dealii::DoFHandler<1>> _temporal_dof;
158 typename spacetime::DG_FiniteElement<dim>::support_type _fe_support_type;
159 dealii::IndexSet _locally_owned_dofs;
160 };
161
165 template <int dim>
166 using DoFHandlerIterator = typename std::list<DoFHandler<dim>>::iterator;
167} // namespace idealii::slab
168
169#endif /* INCLUDE_IDEAL_II_DOFS_SLAB_DOF_HANDLER_HH_ */
Actual DoFHandler for a specific slab.
Definition slab_dof_handler.hh:43
std::shared_ptr< dealii::DoFHandler< 1 > > temporal()
The underlying temporal dof handler.
unsigned int n_dofs_spacetime()
Total number of space-time degrees of fredom on this slab.
DoFHandler(const DoFHandler< dim > &other)
(shallow) copy constructor. Only the index set and fe support type are actually copied....
unsigned int n_dofs_time()
Number of temporal degrees of fredom on this slab.
unsigned int dofs_per_cell_space()
Number of spatial dofs in a single element.
std::shared_ptr< dealii::DoFHandler< dim > > spatial()
The underlying spatial dof handler.
void distribute_dofs(spacetime::DG_FiniteElement< dim > fe)
Distribute DoFs in space and time.
const dealii::IndexSet & locally_owned_dofs()
Return the set of processor local dofs.
DoFHandler(Triangulation< dim > &tria)
Constructor linking a slab::Triangulation.
DoFHandler(slab::parallel::distributed::Triangulation< dim > &tria)
Constructor linking a parallel::distributed::slab::Triangulation.
spacetime::DG_FiniteElement< dim >::support_type fe_support_type()
The underlying support type used for constructing the temporal finite element.
unsigned int n_dofs_space()
Number of spatial degrees of fredom on this slab.
unsigned int dofs_per_cell_time()
Number of temporal dofs in a single element/interval.
Actual Triangulation for a specific slab.
Definition slab_tria.hh:35
Actual Triangulation for a specific slab with an MPI distributed spatial mesh.
Definition slab_tria.hh:38
support_type
Choice of underlying temporal support points.
Definition fe_dg.hh:56
The base class for quadrature formulae in space and time.
Definition spacetime_quadrature.hh:35
Namespace for slab objects.
Definition idealii.hh:33
typename std::list< DoFHandler< dim > >::iterator DoFHandlerIterator
A shortened type for iterators over a list of shared pointers to DoFHandler objects.
Definition slab_dof_handler.hh:166