1 #ifndef DUNE_DEFAULTBASISFACTORY_HH
2 #define DUNE_DEFAULTBASISFACTORY_HH
5 #include <dune/common/exceptions.hh>
6 #include <dune/geometry/topologyfactory.hh>
29 template<
class PreBFactory,
30 class InterpolFactory,
31 unsigned int dim,
unsigned int dimR,
33 class PreBasisKeyExtractor = Identity >
36 template<
class PreBFactory,
37 class InterpolFactory,
38 unsigned int dim,
unsigned int dimR,
40 class PreBasisKeyExtractor >
47 typedef typename PreBasisFactory::Object
PreBasis;
57 typedef typename InterpolationFactory::Key
Key;
61 template<
class PreBFactory,
62 class InterpolFactory,
63 unsigned int dim,
unsigned int dimR,
65 class PreBasisKeyExtractor >
67 :
public TopologyFactory<
68 DefaultBasisFactoryTraits< PreBFactory,InterpolFactory,dim,dimR,SF,CF,PreBasisKeyExtractor >
81 template <
unsigned int dd,
class FF>
88 template<
class Topology >
91 const typename PreBasisFactory::Key preBasisKey = PreBasisKeyExtractor::apply(key);
92 const typename Traits::PreBasis *preBasis = Traits::PreBasisFactory::template create<Topology>( preBasisKey );
93 const typename Traits::Interpolation *interpol = Traits::InterpolationFactory::template create<Topology>( key );
98 const typename Traits::MonomialBasis *monomialBasis = Traits::MonomialBasisFactory::template create< Topology >( preBasis->order() );
102 basis->fill( matrix );
104 Traits::InterpolationFactory::release(interpol);
105 Traits::PreBasisFactory::release(preBasis);
114 Traits::MonomialBasisFactory::release( monomialBasis );
119 #endif // #ifndef DUNE_DEFAULTBASISFACTORY_HH