Reference documentation for deal.II version 9.5.0
\(\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// Copyright (C) 2010 - 2023 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.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 2.1 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 deal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef dealii_fe_dg_vector_h
17#define dealii_fe_dg_vector_h
18
19#include <deal.II/base/config.h>
20
26#include <deal.II/base/table.h>
28
29#include <deal.II/fe/fe.h>
31
32#include <vector>
33
35
52template <class PolynomialType, int dim, int spacedim = dim>
53class FE_DGVector : public FE_PolyTensor<dim, spacedim>
54{
55public:
59 FE_DGVector(const unsigned int p, MappingKind m);
60
67 virtual std::string
68 get_name() const override;
69
70 virtual std::unique_ptr<FiniteElement<dim, spacedim>>
71 clone() const override;
72
79 virtual bool
80 has_support_on_face(const unsigned int shape_index,
81 const unsigned int face_index) const override;
82
83 virtual std::size_t
84 memory_consumption() const override;
85
86private:
93 static std::vector<unsigned int>
94 get_dpo_vector(const unsigned int degree);
95
102 class InternalData : public FiniteElement<dim>::InternalDataBase
103 {
104 public:
116 std::vector<std::vector<Tensor<1, dim>>> shape_values;
117
127 std::vector<std::vector<Tensor<2, dim>>> shape_gradients;
128 };
130};
131
132
133
143template <int dim, int spacedim = dim>
144class FE_DGNedelec : public FE_DGVector<PolynomialsNedelec<dim>, dim, spacedim>
145{
146public:
151 FE_DGNedelec(const unsigned int p);
152
158 virtual std::string
159 get_name() const override;
160};
161
162
163
174template <int dim, int spacedim = dim>
176 : public FE_DGVector<PolynomialsRaviartThomas<dim>, dim, spacedim>
177{
178public:
182 FE_DGRaviartThomas(const unsigned int p);
183
189 virtual std::string
190 get_name() const override;
191};
192
193
194
205template <int dim, int spacedim = dim>
206class FE_DGBDM : public FE_DGVector<PolynomialsBDM<dim>, dim, spacedim>
207{
208public:
212 FE_DGBDM(const unsigned int p);
213
219 virtual std::string
220 get_name() const override;
221};
222
223
225
226#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:453
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473
MappingKind
Definition mapping.h:78