FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
dof_traits.hpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
8// includes, FEAT
9#include <kernel/space/discontinuous/variant.hpp>
10
11namespace FEAT
12{
13 namespace Space
14 {
15 namespace Discontinuous
16 {
17 template<typename Shape_, typename Variant_>
18 struct DofTag
19 {
20 };
21
27 template<typename Tag_, int dim_>
28 struct DofTraits
29 {
30 static constexpr int count = 0;
31 };
32
33 template<int dim_, int degree_>
34 struct DofTraits<DofTag<Shape::Hypercube<dim_>, Variant::StdPolyP<degree_> >, dim_>
35 {
36 static constexpr int count = MetaMath::Binomial<dim_ + degree_, degree_>::value;
37 };
38
39 template<int dim_, int degree_>
40 struct DofTraits<DofTag<Shape::Simplex<dim_>, Variant::StdPolyP<degree_> >, dim_>
41 {
42 static constexpr int count = MetaMath::Binomial<dim_ + degree_, degree_>::value;
43 };
44 } // namespace Discontinuous
45 } // namespace Space
46} // namespace FEAT
FEAT namespace.
Definition: adjactor.hpp:12
Binomial template meta-program.
Definition: meta_math.hpp:69
Discontinuous Dof-Traits class template.
Definition: dof_traits.hpp:29
Standard discontinous parametric P_k variant.
Definition: variant.hpp:27