dune-fem  2.4.1-rc
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::Fem::CreatePass< Model, PassType, pId > Class Template Reference

CreatePass takes a discrete model and a PassType (like LocalDGPass) and creates with the parameter PreviousPass in the method create the desired pass. The advantage here is, that no typedefs have to be done. More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/pass/createpass.hh>

Public Types

enum  { passId = pId }
 forward pass id More...
 
typedef Model::Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 type of discrete function space More...
 
typedef Model::Traits::DiscreteFunctionType DestinationType
 destination type More...
 
typedef SpaceOperatorInterface< DestinationTypeSpaceOperatorIFType
 type of space operator More...
 

Public Member Functions

 CreatePass (Model &model, const DiscreteFunctionSpaceType &space)
 
 CreatePass (const Model &model, const DiscreteFunctionSpaceType &space)
 
 CreatePass (const CreatePass &org)
 copy constructor More...
 
template<class PreviousPass >
SpaceOperatorPtr< PassType< Model, PreviousPass, passId > > * create (SpaceOperatorStorage< PreviousPass > *prevObj)
 creation method More...
 
template<class PreviousPass >
SpaceOperatorWrapper< PassType< Model, PreviousPass, passId > > * createLast (SpaceOperatorStorage< PreviousPass > *prevObj)
 last creation method More...
 
SpaceOperatorIFTypepass ()
 return pointer to space operator if More...
 
const DestinationTypedestination () const
 return pointer to destination More...
 

Protected Attributes

Model & model_
 
const DiscreteFunctionSpaceTypespace_
 
SpaceOperatorIFTypepassPointer_
 

Detailed Description

template<class Model, template< class, class, int > class PassType, int pId = -1>
class Dune::Fem::CreatePass< Model, PassType, pId >

CreatePass takes a discrete model and a PassType (like LocalDGPass) and creates with the parameter PreviousPass in the method create the desired pass. The advantage here is, that no typedefs have to be done.

To generate a pass tree one only has to use the following example code:

// diffusion pass
typedef CreatePass<DiscreteModel1Type,LocalDGPass> Pass1Type;
Pass1Type pass1 ( discreteModel1_, space1_ );
// advection pass
typedef CreatePass<DiscreteModel2Type,LocalDGPass> Pass2Type;
Pass2Type pass2 ( discreteModel2_, space2_ );
// create pass tree and return pointer to resulting
// operator satisfying the SpaceOperatorInterface.
SpaceOperatorInterface<DestinationType>* passTree
= CreatePassTree::create( pass1 , pass2 );

Member Typedef Documentation

template<class Model , template< class, class, int > class PassType, int pId = -1>
typedef Model :: Traits :: DiscreteFunctionType Dune::Fem::CreatePass< Model, PassType, pId >::DestinationType

destination type

template<class Model , template< class, class, int > class PassType, int pId = -1>
typedef Model :: Traits :: DiscreteFunctionSpaceType Dune::Fem::CreatePass< Model, PassType, pId >::DiscreteFunctionSpaceType

type of discrete function space

template<class Model , template< class, class, int > class PassType, int pId = -1>
typedef SpaceOperatorInterface<DestinationType> Dune::Fem::CreatePass< Model, PassType, pId >::SpaceOperatorIFType

type of space operator

Member Enumeration Documentation

template<class Model , template< class, class, int > class PassType, int pId = -1>
anonymous enum

forward pass id

Enumerator
passId 

Constructor & Destructor Documentation

template<class Model , template< class, class, int > class PassType, int pId = -1>
Dune::Fem::CreatePass< Model, PassType, pId >::CreatePass ( Model &  model,
const DiscreteFunctionSpaceType space 
)
inline

constructor

Parameters
modelDiscreteModel
spaceDiscreteFunctionSpace
template<class Model , template< class, class, int > class PassType, int pId = -1>
Dune::Fem::CreatePass< Model, PassType, pId >::CreatePass ( const Model &  model,
const DiscreteFunctionSpaceType space 
)
inline

constructor

Parameters
modelDiscreteModel (or discrete function)
spaceDiscreteFunctionSpace
template<class Model , template< class, class, int > class PassType, int pId = -1>
Dune::Fem::CreatePass< Model, PassType, pId >::CreatePass ( const CreatePass< Model, PassType, pId > &  org)
inline

copy constructor

Member Function Documentation

template<class Model , template< class, class, int > class PassType, int pId = -1>
template<class PreviousPass >
SpaceOperatorPtr< PassType< Model , PreviousPass , passId > >* Dune::Fem::CreatePass< Model, PassType, pId >::create ( SpaceOperatorStorage< PreviousPass > *  prevObj)
inline
template<class Model , template< class, class, int > class PassType, int pId = -1>
template<class PreviousPass >
SpaceOperatorWrapper< PassType< Model , PreviousPass , passId > >* Dune::Fem::CreatePass< Model, PassType, pId >::createLast ( SpaceOperatorStorage< PreviousPass > *  prevObj)
inline
template<class Model , template< class, class, int > class PassType, int pId = -1>
const DestinationType* Dune::Fem::CreatePass< Model, PassType, pId >::destination ( ) const
inline
template<class Model , template< class, class, int > class PassType, int pId = -1>
SpaceOperatorIFType* Dune::Fem::CreatePass< Model, PassType, pId >::pass ( )
inline

Member Data Documentation

template<class Model , template< class, class, int > class PassType, int pId = -1>
Model& Dune::Fem::CreatePass< Model, PassType, pId >::model_
protected
template<class Model , template< class, class, int > class PassType, int pId = -1>
SpaceOperatorIFType* Dune::Fem::CreatePass< Model, PassType, pId >::passPointer_
protected
template<class Model , template< class, class, int > class PassType, int pId = -1>
const DiscreteFunctionSpaceType& Dune::Fem::CreatePass< Model, PassType, pId >::space_
protected

The documentation for this class was generated from the following file: