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>
28
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
size_type dim() const
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