dune-localfunctions 3.0-git
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
8#include <dune/geometry/topologyfactory.hh>
9
12
13namespace Dune
14{
15
16 // OrthonormalBasisFactory
17 // -----------------------
18 template< int dim, class SF, class CF = typename ComputeField< SF, 512 >::Type >
19 struct OrthonormalBasisFactory;
20 template< int dim, class SF, class CF >
34
35 template< int dim, class SF, class CF >
37 public TopologyFactory< OrthonormalBasisFactoryTraits<dim,SF,CF> >
38 {
39 static const unsigned int dimension = dim;
40 typedef SF StorageField;
41 typedef CF ComputeField;
43
44 typedef typename Traits::Key Key;
45 typedef typename Traits::Object Object;
46
47 template <unsigned int dd, class FF>
52
54 typedef typename MonomialBasisProviderType::Object MonomialBasisType;
55
59
60 typedef typename GenericGeometry::SimplexTopology< dim >::type SimplexTopology;
61
62 template< class Topology >
63 static Object *createObject ( const unsigned int order )
64 {
65 const typename Traits::MonomialBasisType &monomialBasis = *Traits::MonomialBasisProviderType::template create< SimplexTopology >( order );
66
67 static typename Traits::CoefficientMatrix _coeffs;
68 if( _coeffs.size() <= monomialBasis.size() )
69 {
71 _coeffs.fill( matrix );
72 }
73
74 return new Basis( monomialBasis, _coeffs, monomialBasis.size() );
75 }
76 };
77
78}
79
80#endif // #ifndef DUNE_ORTHONORMALBASIS_HH
Definition brezzidouglasmarini1cube2d.hh:14
Definition orthonormalbasis.hh:38
SparseCoeffMatrix< StorageField, 1 > CoefficientMatrix
Definition orthonormalbasis.hh:56
StandardEvaluator< MonomialBasisType > Evaluator
Definition orthonormalbasis.hh:57
SF StorageField
Definition orthonormalbasis.hh:40
PolynomialBasis< Evaluator, CoefficientMatrix > Basis
Definition orthonormalbasis.hh:58
GenericGeometry::SimplexTopology< dim >::type SimplexTopology
Definition orthonormalbasis.hh:60
EvaluationBasisFactory< dimension, StorageField >::Type MonomialBasisProviderType
Definition orthonormalbasis.hh:53
CF ComputeField
Definition orthonormalbasis.hh:41
Traits::Object Object
Definition orthonormalbasis.hh:45
static Object * createObject(const unsigned int order)
Definition orthonormalbasis.hh:63
OrthonormalBasisFactoryTraits< dim, SF, CF > Traits
Definition orthonormalbasis.hh:42
Traits::Key Key
Definition orthonormalbasis.hh:44
static const unsigned int dimension
Definition orthonormalbasis.hh:39
MonomialBasisProviderType::Object MonomialBasisType
Definition orthonormalbasis.hh:54
Definition orthonormalbasis.hh:22
SparseCoeffMatrix< SF, 1 > CoefficientMatrix
Definition orthonormalbasis.hh:25
MonomialBasisProviderType::Object MonomialBasisType
Definition orthonormalbasis.hh:24
unsigned int Key
Definition orthonormalbasis.hh:30
Dune::MonomialBasisProvider< dim, SF > MonomialBasisProviderType
Definition orthonormalbasis.hh:23
OrthonormalBasisFactory< dim, SF, CF > Factory
Definition orthonormalbasis.hh:32
const Basis Object
Definition orthonormalbasis.hh:31
PolynomialBasis< Evaluator, CoefficientMatrix > Basis
Definition orthonormalbasis.hh:27
static const unsigned int dimension
Definition orthonormalbasis.hh:29
StandardEvaluator< MonomialBasisType > Evaluator
Definition orthonormalbasis.hh:26
MonomialBasisProvider< dd, FF > Type
Definition orthonormalbasis.hh:50
Definition orthonormalcompute.hh:94
Definition basisevaluator.hh:130
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:989
Definition polynomialbasis.hh:63