1 #ifndef DUNE_FEM_DISCRETEFUNCTION_HH
2 #define DUNE_FEM_DISCRETEFUNCTION_HH
12 #include <dune/common/dynvector.hh>
59 template<
class DiscreteFunction >
62 template<
class Traits >
80 template<
class Impl >
82 :
public Function< typename DiscreteFunctionTraits< Impl >::DiscreteFunctionSpaceType::FunctionSpaceType, Impl >,
110 typedef typename DiscreteFunctionSpaceType :: DomainType
DomainType;
112 typedef typename DiscreteFunctionSpaceType :: RangeType
RangeType;
120 typedef typename DiscreteFunctionSpaceType :: GridType
GridType;
143 typedef typename DiscreteFunctionSpaceType::LocalBlockIndices
BlockIndices;
148 template<
class Operation >
151 typedef typename DiscreteFunctionSpaceType
157 typedef typename DiscreteFunctionSpaceType :: EntityType
EntityType;
173 return asImp().dofVector();
177 return asImp().dofVector();
184 const std::string &
name ()
const
186 return asImp().name();
195 return asImp().name();
202 return asImp().order();
208 return asImp().continuous();
214 return asImp().space();
220 return asImp().gridPart();
230 return asImp().localFunction( entity );
240 return asImp().localFunction( entity );
251 return asImp().localFunction();
262 return asImp().localFunction();
281 return asImp().size();
293 return asImp().blocks();
302 return asImp().block( index );
311 return asImp().block( index );
320 return asImp().dbegin ();
329 return asImp().dend ();
338 return asImp().dbegin ();
347 return asImp().dend ();
359 asImp().axpy( s, g );
375 template <
class DFType>
378 return asImp().scalarProductDofs( other.asImp() );
394 return asImp().normSquaredDofs( );
401 void print( std :: ostream &out )
const
403 asImp().print( out );
411 return asImp().dofsValid();
418 template <
class DFType >
425 template<
class Operation >
428 return asImp().dataHandle( operation );
443 template <
class DFType >
446 return asImp().operator+=( g );
455 template <
class DFType >
458 return asImp().operator-=( g );
469 return asImp() *= scalar;
480 return asImp() /= scalar;
487 template<
class StreamTraits >
497 template<
class StreamTraits >
500 asImp().write( out );
509 asImp().enableDofCompression();
535 template<
class Impl >
567 typedef typename DiscreteFunctionSpaceType :: DomainType
DomainType;
569 typedef typename DiscreteFunctionSpaceType :: RangeType
RangeType;
611 template<
class Operation >
652 return space().order();
658 return space().continuous();