Bembel
DifferentialFormEnum.hpp
1 // This file is part of Bembel, the higher order C++ boundary element library.
2 //
3 // Copyright (C) 2022 see <http://www.bembel.eu>
4 //
5 // It was written as part of a cooperation of J. Doelz, H. Harbrecht, S. Kurz,
6 // M. Multerer, S. Schoeps, and F. Wolf at Technische Universitaet Darmstadt,
7 // Universitaet Basel, and Universita della Svizzera italiana, Lugano. This
8 // source code is subject to the GNU General Public License version 3 and
9 // provided WITHOUT ANY WARRANTY, see <http://www.bembel.eu> for further
10 // information.
11 #ifndef BEMBEL_SRC_LINEAROPERATOR_DIFFERENTIALFORMENUM_HPP_
12 #define BEMBEL_SRC_LINEAROPERATOR_DIFFERENTIALFORMENUM_HPP_
13 
14 namespace Bembel {
21  enum { Continuous = 0, DivConforming = 1, Discontinuous = 2 };
22 };
23 
29 template <unsigned int DifferentialForm, typename Scalar>
31  // empty, only to be used in its specialization
32 };
36 template <typename Scalar>
37 struct DifferentialFormTraits<DifferentialForm::Continuous, Scalar> {
38  enum { FunctionSpaceVectorDimension = 1, FunctionSpaceOutputDimension = 1 };
39 
40  typedef Scalar FunctionSpaceValue;
41 };
46 template <typename Scalar>
47 struct DifferentialFormTraits<DifferentialForm::DivConforming, Scalar> {
48  enum { FunctionSpaceVectorDimension = 2, FunctionSpaceOutputDimension = 3 };
49 
50  typedef Eigen::Matrix<Scalar, 3, 1> FunctionSpaceValue;
51 };
56 template <typename Scalar>
57 struct DifferentialFormTraits<DifferentialForm::Discontinuous, Scalar> {
58  enum { FunctionSpaceVectorDimension = 1, FunctionSpaceOutputDimension = 1 };
59 
60  typedef Scalar FunctionSpaceValue;
61 };
62 
66 template <unsigned int DF>
69 }
70 
74 template <unsigned int DF>
77 }
78 
79 } // namespace Bembel
80 
81 #endif // BEMBEL_SRC_LINEAROPERATOR_DIFFERENTIALFORMENUM_HPP_
Routines for the evalutation of pointwise errors.
Definition: AnsatzSpace.hpp:14
constexpr int getFunctionSpaceOutputDimension()
constexpr int getFunctionSpaceVectorDimension()
Provides information about the discrete space required for the discretisation of a specific operator.
struct containing specifications on DifferentialForms, i.e., the function spaces.