dune-localfunctions 2.8.0
Loading...
Searching...
No Matches
orthonormalbasis.hh
Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=4 sw=2 sts=2:
3#ifndef DUNE_ORTHONORMALBASIS_HH
4#define DUNE_ORTHONORMALBASIS_HH
5
6#include <sstream>
7
10
11namespace Dune
12{
13
14 // OrthonormalBasisFactory
15 // -----------------------
16 template< int dim, class SF, class CF = typename ComputeField< SF, 512 >::Type >
18 {
19 static const unsigned int dimension = dim;
20 typedef SF StorageField;
21 typedef CF ComputeField;
22
23 template <unsigned int dd, class FF>
25 {
27 };
28
30 typedef typename MonomialBasisProviderType::Object MonomialBasisType;
31
35
36 typedef unsigned int Key;
37 typedef const Basis Object;
38
39 static constexpr GeometryType SimplexGeometry = GeometryTypes::simplex(dim);
40
41 template< GeometryType::Id geometryId >
42 static Object *create ( const unsigned int order )
43 {
44 const MonomialBasisType &monomialBasis = *MonomialBasisProviderType::template create< SimplexGeometry >( order );
45
46 static CoefficientMatrix _coeffs;
47 if( _coeffs.size() <= monomialBasis.size() )
48 {
50 _coeffs.fill( matrix );
51 }
52
53 return new Basis( monomialBasis, _coeffs, monomialBasis.size() );
54 }
55 static void release( Object *object ) { delete object; }
56 };
57
58}
59
60#endif // #ifndef DUNE_ORTHONORMALBASIS_HH
Definition: bdfmcube.hh:16
Definition: orthonormalbasis.hh:18
SparseCoeffMatrix< StorageField, 1 > CoefficientMatrix
Definition: orthonormalbasis.hh:32
static Object * create(const unsigned int order)
Definition: orthonormalbasis.hh:42
StandardEvaluator< MonomialBasisType > Evaluator
Definition: orthonormalbasis.hh:33
SF StorageField
Definition: orthonormalbasis.hh:20
static constexpr GeometryType SimplexGeometry
Definition: orthonormalbasis.hh:39
PolynomialBasis< Evaluator, CoefficientMatrix > Basis
Definition: orthonormalbasis.hh:34
EvaluationBasisFactory< dimension, StorageField >::Type MonomialBasisProviderType
Definition: orthonormalbasis.hh:29
CF ComputeField
Definition: orthonormalbasis.hh:21
const Basis Object
Definition: orthonormalbasis.hh:37
unsigned int Key
Definition: orthonormalbasis.hh:36
static void release(Object *object)
Definition: orthonormalbasis.hh:55
static const unsigned int dimension
Definition: orthonormalbasis.hh:19
MonomialBasisProviderType::Object MonomialBasisType
Definition: orthonormalbasis.hh:30
MonomialBasisProvider< dd, FF > Type
Definition: orthonormalbasis.hh:26
Definition: orthonormalcompute.hh:93
Definition: basisevaluator.hh:129
Definition: coeffmatrix.hh:46
unsigned int size() const
Definition: coeffmatrix.hh:67
void fill(const RowMatrix &mat, bool verbose=false)
Definition: coeffmatrix.hh:158
Definition: monomialbasis.hh:789
Definition: polynomialbasis.hh:63