deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
fe_dg_vector.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2010 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_fe_dg_vector_h
14#define dealii_fe_dg_vector_h
15
16#include <deal.II/base/config.h>
17
23#include <deal.II/base/table.h>
25
26#include <deal.II/fe/fe.h>
28
29#include <vector>
30
32
49template <typename PolynomialType, int dim, int spacedim = dim>
50class FE_DGVector : public FE_PolyTensor<dim, spacedim>
51{
52public:
56 FE_DGVector(const unsigned int p, MappingKind m);
57
64 virtual std::string
65 get_name() const override;
66
67 virtual std::unique_ptr<FiniteElement<dim, spacedim>>
68 clone() const override;
69
76 virtual bool
77 has_support_on_face(const unsigned int shape_index,
78 const unsigned int face_index) const override;
79
80 virtual std::size_t
81 memory_consumption() const override;
82
83private:
90 static std::vector<unsigned int>
91 get_dpo_vector(const unsigned int degree);
92
99 class InternalData : public FiniteElement<dim>::InternalDataBase
100 {
101 public:
113 std::vector<std::vector<Tensor<1, dim>>> shape_values;
114
124 std::vector<std::vector<Tensor<2, dim>>> shape_gradients;
125 };
127};
128
129
130
140template <int dim, int spacedim = dim>
141class FE_DGNedelec : public FE_DGVector<PolynomialsNedelec<dim>, dim, spacedim>
142{
143public:
148 FE_DGNedelec(const unsigned int p);
149
155 virtual std::string
156 get_name() const override;
157};
158
159
160
171template <int dim, int spacedim = dim>
173 : public FE_DGVector<PolynomialsRaviartThomas<dim>, dim, spacedim>
174{
175public:
179 FE_DGRaviartThomas(const unsigned int p);
180
186 virtual std::string
187 get_name() const override;
188};
189
190
191
202template <int dim, int spacedim = dim>
203class FE_DGBDM : public FE_DGVector<PolynomialsBDM<dim>, dim, spacedim>
204{
205public:
209 FE_DGBDM(const unsigned int p);
210
216 virtual std::string
217 get_name() const override;
218};
219
220
222
223#endif
virtual std::string get_name() const override
virtual std::string get_name() const override
virtual std::string get_name() const override
std::vector< std::vector< Tensor< 1, dim > > > shape_values
std::vector< std::vector< Tensor< 2, dim > > > shape_gradients
FE_DGVector(const unsigned int p, MappingKind m)
virtual std::string get_name() const override
virtual bool has_support_on_face(const unsigned int shape_index, const unsigned int face_index) const override
Table< 3, double > interior_weights
static std::vector< unsigned int > get_dpo_vector(const unsigned int degree)
virtual std::unique_ptr< FiniteElement< dim, spacedim > > clone() const override
virtual std::size_t memory_consumption() const override
const unsigned int degree
Definition fe_data.h:450
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
MappingKind
Definition mapping.h:79