18 template <
int deriv,
class BasisFactory,
class Pr
intField>
20 typename BasisFactory::Object &basis)
22 typedef typename BasisFactory::Object Basis;
23 const int dimension = Basis::dimension;
26 typedef typename BasisFactory::template EvaluationBasisFactory<dimension,Field>::Type
28 typedef typename MIBasisFactory::Object MIBasis;
29 typedef typename Basis::CoefficientMatrix CMatrix;
32 MIBasis *miBasis = MIBasisFactory::create( Dune::GeometryType( basis.basis().topologyId(),dimension ),basis.basis().order());
33 PrintBasis printBasis(*miBasis,basis.matrix(),basis.size());
35 unsigned int size = printBasis.
size();
37 out <<
"% Number of base functions: " << size << std::endl;
38 out <<
"% Derivative order: " << deriv << std::endl;
45 std::vector< FieldVector<
46 FieldVector<Field,LFETensor<Field,dimension,deriv>::size>,
47 PrintBasis::dimRange> > y( size );
49 FieldVector< Field, dimension > x;
50 for(
int i = 0; i < dimension; ++i )
52 printBasis.template evaluateSingle<deriv>( x, y );
53 for (
unsigned int i=0;i<size;++i)
55 out <<
"$\\varphi_" << i <<
"(a,b,c)$&$=$&$" << std::endl;
57 for (
unsigned int r=0;r<PrintBasis::dimRange;++r)
58 out << y[i][r] << (r<PrintBasis::dimRange-1?
" , $ \\\\ && $":
" )$ \\\\");
61 MIBasisFactory::release(miBasis);
64 template <
int deriv,
class BasisFactory,
class Pr
intField>
66 typename BasisFactory::Key &key)
68 typename BasisFactory::Object *basis = BasisFactory::create(key);
69 basisPrint<deriv,BasisFactory,PrintField>(out,*basis);
70 BasisFactory::release(basis);