3 #ifndef DUNE_RAVIARTTHOMASPREBASIS_HH
4 #define DUNE_RAVIARTTHOMASPREBASIS_HH
8 #include <dune/geometry/genericgeometry/topologytypes.hh>
14 template <
unsigned int dim,
class Field>
16 template <
unsigned int dim,
class Field>
22 typedef typename MBasisFactory::Object
MBasis;
27 typedef unsigned int Key;
31 template <
class Topology,
class Field >
34 template <
unsigned int dim,
class Field>
36 :
public TopologyFactory< RTPreBasisFactoryTraits< dim, Field > >
42 template <
unsigned int dd,
class FF>
47 template<
class Topology >
51 typename Traits::MBasis *mbasis = Traits::MBasisFactory::template create<Topology>(order+1);
52 typename remove_const<Object>::type *tmBasis =
53 new typename remove_const<Object>::type(*mbasis);
54 tmBasis->fill(vecMatrix);
58 template <
class Topology,
class Field>
61 static const unsigned int dim = Topology::dimension;
66 MIBasis basis(order+1);
67 FieldVector< MI, dim > x;
68 for(
unsigned int i = 0; i <
dim; ++i )
70 std::vector< MI > val( basis.
size() );
74 unsigned int notHomogen = 0;
76 notHomogen = basis.
sizes()[order-1];
77 unsigned int homogen = basis.
sizes()[order]-notHomogen;
78 row_ = (notHomogen*dim+homogen*(dim+1))*
dim;
82 for (
unsigned int i=0; i<notHomogen+homogen; ++i)
84 for (
unsigned int r=0; r<
dim; ++r)
86 for (
unsigned int rr=0; rr<
dim; ++rr)
89 for (
unsigned int j=0; j<
col_; ++j)
99 for (
unsigned int i=0; i<homogen; ++i)
101 for (
unsigned int r=0; r<
dim; ++r)
104 for (
unsigned int j=0; j<
col_; ++j)
109 MI xval = val[notHomogen+i];
111 for (w=homogen+notHomogen; w<val.size(); ++w)
119 assert(w<val.size());
126 for (
unsigned int i=0; i<
rows(); ++i) {
137 template <
class Vector>
138 void row(
const unsigned int row, Vector &vec )
const
140 const unsigned int N =
cols();
141 assert( vec.size() == N );
142 for (
unsigned int i=0; i<N; ++i)
151 #endif // DUNE_RAVIARTTHOMASPREBASIS_HH
Field ** mat_
Definition: raviartthomassimplexprebasis.hh:146
Definition: raviartthomassimplexprebasis.hh:43
void evaluate(const unsigned int deriv, const DomainVector &x, Field *const values) const
Definition: monomialbasis.hh:689
RTPreBasisFactoryTraits< dim, Field > Traits
Definition: raviartthomassimplexprebasis.hh:38
MonomialBasisProvider< dd, FF > Type
Definition: raviartthomassimplexprebasis.hh:45
const unsigned int size() const
Definition: monomialbasis.hh:666
Definition: raviartthomassimplexprebasis.hh:17
MBasisFactory::Object MBasis
Definition: raviartthomassimplexprebasis.hh:22
unsigned int cols() const
Definition: raviartthomassimplexprebasis.hh:131
RTVecMatrix(unsigned int order)
Definition: raviartthomassimplexprebasis.hh:64
unsigned int row_
Definition: raviartthomassimplexprebasis.hh:145
Definition: basisevaluator.hh:128
static const unsigned int dimension
Definition: raviartthomassimplexprebasis.hh:19
Definition: raviartthomassimplexprebasis.hh:15
MultiIndex< dim, Field > MI
Definition: raviartthomassimplexprebasis.hh:62
Definition: monomialbasis.hh:73
void field_cast(const F1 &f1, F2 &f2)
a helper class to cast from one field to another
Definition: field.hh:157
Definition: multiindex.hh:23
static const unsigned int dimension
Definition: raviartthomassimplexprebasis.hh:39
void row(const unsigned int row, Vector &vec) const
Definition: raviartthomassimplexprebasis.hh:138
Traits::Key Key
Definition: raviartthomassimplexprebasis.hh:41
unsigned int row1_
Definition: raviartthomassimplexprebasis.hh:145
RTPreBasisFactory< dim, Field > Factory
Definition: raviartthomassimplexprebasis.hh:28
Definition: polynomialbasis.hh:251
static const unsigned int dim
Definition: raviartthomassimplexprebasis.hh:61
PolynomialBasisWithMatrix< EvalMBasis, SparseCoeffMatrix< Field, dim > > Basis
Definition: raviartthomassimplexprebasis.hh:24
Definition: monomialbasis.hh:981
Definition: brezzidouglasmarini1cube2dlocalbasis.hh:14
StandardEvaluator< MBasis > EvalMBasis
Definition: raviartthomassimplexprebasis.hh:23
const unsigned int * sizes(unsigned int order) const
Definition: monomialbasis.hh:655
Traits::Object Object
Definition: raviartthomassimplexprebasis.hh:40
~RTVecMatrix()
Definition: raviartthomassimplexprebasis.hh:124
unsigned int rows() const
Definition: raviartthomassimplexprebasis.hh:134
Definition: raviartthomassimplexprebasis.hh:32
unsigned int col_
Definition: raviartthomassimplexprebasis.hh:145
MonomialBasisProvider< dim, Field > MBasisFactory
Definition: raviartthomassimplexprebasis.hh:21
unsigned int Key
Definition: raviartthomassimplexprebasis.hh:27
static Object * createObject(const Key &order)
Definition: raviartthomassimplexprebasis.hh:48
MonomialBasis< Topology, MI > MIBasis
Definition: raviartthomassimplexprebasis.hh:63
const Basis Object
Definition: raviartthomassimplexprebasis.hh:26