3 #ifndef DUNE_DEFAULTBASISFACTORY_HH
4 #define DUNE_DEFAULTBASISFACTORY_HH
7 #include <dune/common/exceptions.hh>
8 #include <dune/geometry/topologyfactory.hh>
31 template<
class PreBFactory,
32 class InterpolFactory,
33 unsigned int dim,
unsigned int dimR,
35 class PreBasisKeyExtractor = Identity >
38 template<
class PreBFactory,
39 class InterpolFactory,
40 unsigned int dim,
unsigned int dimR,
42 class PreBasisKeyExtractor >
49 typedef typename PreBasisFactory::Object
PreBasis;
59 typedef typename InterpolationFactory::Key
Key;
63 template<
class PreBFactory,
64 class InterpolFactory,
65 unsigned int dim,
unsigned int dimR,
67 class PreBasisKeyExtractor >
69 :
public TopologyFactory<
70 DefaultBasisFactoryTraits< PreBFactory,InterpolFactory,dim,dimR,SF,CF,PreBasisKeyExtractor >
83 template <
unsigned int dd,
class FF>
90 template<
class Topology >
93 const typename PreBasisFactory::Key preBasisKey = PreBasisKeyExtractor::apply(key);
94 const typename Traits::PreBasis *preBasis = Traits::PreBasisFactory::template create<Topology>( preBasisKey );
95 const typename Traits::Interpolation *interpol = Traits::InterpolationFactory::template create<Topology>( key );
98 ComputeField > matrix( *preBasis, *interpol );
100 const typename Traits::MonomialBasis *monomialBasis = Traits::MonomialBasisFactory::template create< Topology >( preBasis->order() );
102 Basis *basis =
new Basis( *monomialBasis );
104 basis->fill( matrix );
106 Traits::InterpolationFactory::release(interpol);
107 Traits::PreBasisFactory::release(preBasis);
116 Traits::MonomialBasisFactory::release( monomialBasis );
121 #endif // #ifndef DUNE_DEFAULTBASISFACTORY_HH
PreBasisFactory::Object PreBasis
Definition: defaultbasisfactory.hh:49
StandardEvaluator< MonomialBasis > Evaluator
Definition: defaultbasisfactory.hh:55
DefaultBasisFactory< PreBFactory, InterpolFactory, dim, dimR, SF, CF, PreBasisKeyExtractor > Factory
Definition: defaultbasisfactory.hh:60
Definition: defaultbasisfactory.hh:36
PolynomialBasisWithMatrix< Evaluator, SparseCoeffMatrix< SF, dimRange > > Basis
Definition: defaultbasisfactory.hh:56
static const unsigned int dimension
Definition: defaultbasisfactory.hh:74
MonomialBasisFactory::Object MonomialBasis
Definition: defaultbasisfactory.hh:54
SF StorageField
Definition: defaultbasisfactory.hh:76
InterpolationFactory::Object Interpolation
Definition: defaultbasisfactory.hh:51
InterpolFactory InterpolationFactory
Definition: defaultbasisfactory.hh:50
Traits::Key Key
Definition: defaultbasisfactory.hh:82
Traits::Basis Basis
Definition: defaultbasisfactory.hh:78
static T apply(const T &t)
Definition: defaultbasisfactory.hh:17
Definition: basismatrix.hh:25
Traits::Object Object
Definition: defaultbasisfactory.hh:81
Definition: basisevaluator.hh:128
PreBasisFactory::template EvaluationBasisFactory< dim, SF >::Type MonomialBasisFactory
Definition: defaultbasisfactory.hh:53
DefaultBasisFactoryTraits< PreBFactory, InterpolFactory, dim, dimR, SF, CF, PreBasisKeyExtractor > Traits
Definition: defaultbasisfactory.hh:73
CF ComputeField
Definition: defaultbasisfactory.hh:77
InterpolationFactory::Key Key
Definition: defaultbasisfactory.hh:59
Definition: monomialbasis.hh:802
Traits::PreBasisFactory PreBasisFactory
Definition: defaultbasisfactory.hh:79
static const unsigned int dimension
Definition: defaultbasisfactory.hh:45
static const unsigned int dimRange
Definition: defaultbasisfactory.hh:46
static Object * createObject(const Key &key)
Definition: defaultbasisfactory.hh:91
const Basis Object
Definition: defaultbasisfactory.hh:58
static void release(Object *object)
release the object returned by the create methods
Definition: defaultbasisfactory.hh:112
Definition: polynomialbasis.hh:251
Definition: defaultbasisfactory.hh:14
Traits::PreBasisFactory::template EvaluationBasisFactory< dd, FF >::Type Type
Definition: defaultbasisfactory.hh:87
PreBFactory PreBasisFactory
Definition: defaultbasisfactory.hh:48
Definition: defaultbasisfactory.hh:43
Definition: brezzidouglasmarini1cube2dlocalbasis.hh:14
Definition: defaultbasisfactory.hh:84
static const unsigned int dimRange
Definition: defaultbasisfactory.hh:75