1 #ifndef DUNE_FEM_PASS_INSERTFUNCTION_HH 2 #define DUNE_FEM_PASS_INSERTFUNCTION_HH 17 template<
class DiscreteFunction >
20 template<
class DiscreteFunction,
class PreviousPass,
int passId = -1 >
29 template<
class DiscreteFunction >
45 template<
class DiscreteFunction >
63 template<
class DiscreteFunction,
class PreviousPass,
int passId >
65 :
public Pass< InsertFunctionPassDiscreteModel< DiscreteFunction >, PreviousPass, passId >
70 static const bool hasLocalFunction = Conversion< DiscreteFunction, HasLocalFunction >::exists;
71 static_assert( hasLocalFunction,
"InsertFunctionPass can only insert grid functions." );
74 template <
class DFType>
77 template <
class ArgType>
78 static void init(
const ArgType&,
const double time, DiscreteFunction& ) {}
81 template <
class LFType>
84 template <
class ArgType>
85 static void init(
const ArgType& arg,
const double time, DiscreteFunction& dest )
88 dest.initialize( arg, time );
117 : BaseType( previousPass )
119 destination_ =
const_cast< DestinationType *
>( &destination );
132 PreviousPassType &previousPass,
133 const DiscreteFunctionSpaceType &space )
134 : BaseType( previousPass )
136 destination_ =
const_cast< DestinationType *
>( &destination );
144 : BaseType( previousPass )
146 assert( destination_ == 0 );
152 InsertFunctionPass (
const DestinationType* destination,
const std::shared_ptr< PreviousPassType >& previousPass )
153 : BaseType( *previousPass ),
154 prevPassPtr_( previousPass )
156 destination_ =
const_cast< DestinationType *
>( destination );
170 const DiscreteFunctionSpaceType &
space ()
const 172 assert( destination_ != 0 );
173 return destination_->space();
179 destination_ =
const_cast< DestinationType *
>( &destination );
182 using BaseType::time;
186 void compute (
const ArgumentType &arg, DestinationType &dest )
const 194 using BaseType::destination_;
201 #endif // #ifndef DUNE_FEM_PASS_INSERTFUNCTION_HH BaseType::GlobalArgumentType GlobalArgumentType
Definition: insertfunction.hh:103
InsertFunctionPass(const DestinationType &destination, PreviousPassType &previousPass, const DiscreteFunctionSpaceType &space)
Definition: insertfunction.hh:131
static void init(const ArgType &arg, const double time, DiscreteFunction &dest)
Definition: insertfunction.hh:85
std::shared_ptr< PreviousPassType > prevPassPtr_
Definition: insertfunction.hh:193
~InsertFunctionPass()
destructor
Definition: insertfunction.hh:160
PreviousPassType::GlobalArgumentType GlobalArgumentType
Definition: common/pass.hh:171
Traits::DestinationType DestinationType
discrete function representing the return value of this pass
Definition: insertfunction.hh:106
LocalFunctionAdapter wrapped a class with a local evaluate method into a grid function.
Definition: localfunctionadapter.hh:25
PreviousPass PreviousPassType
Repetition of template arguments.
Definition: insertfunction.hh:100
Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
discrete function space belonging to DestinationType
Definition: insertfunction.hh:108
void allocateLocalMemory()
Definition: insertfunction.hh:166
InsertFunctionPass(const DestinationType &destination, PreviousPassType &previousPass)
Definition: insertfunction.hh:116
InsertFunctionPassDiscreteModel< DiscreteFunction > DiscreteModelType
Definition: insertfunction.hh:37
Traits for InsertFunctionPass to create dummy discrete model.
Definition: insertfunction.hh:30
InsertFunctionPass(PreviousPassType &previousPass)
Definition: insertfunction.hh:143
Definition: coordinate.hh:4
DiscreteFunction DiscreteFunctionType
Definition: insertfunction.hh:32
InsertFunctionPassDiscreteModel< DiscreteFunction > DiscreteModelType
type of discrete model for this class
Definition: insertfunction.hh:94
BaseType::TotalArgumentType ArgumentType
Definition: insertfunction.hh:102
Definition: insertfunction.hh:18
InsertFunctionPass(const DestinationType *destination, const std::shared_ptr< PreviousPassType > &previousPass)
Definition: insertfunction.hh:152
void setDestination(const DestinationType &destination)
set internal destination pointer to dest
Definition: insertfunction.hh:177
InsertFunctionPassDiscreteModelTraits< DiscreteFunction > Traits
Definition: insertfunction.hh:48
DiscreteFunctionType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
Definition: insertfunction.hh:34
Definition: insertfunction.hh:75
Base class for specific pass implementations.
Definition: local.hh:19
static void init(const ArgType &, const double time, DiscreteFunction &)
Definition: insertfunction.hh:78
const DiscreteFunctionSpaceType & space() const
return reference to space
Definition: insertfunction.hh:170
DiscreteModelType::Traits Traits
type of traits for this class
Definition: insertfunction.hh:97
PushFrontTuple< LocalArgumentType, const GlobalArgumentType * >::type TotalArgumentType
Definition: common/pass.hh:177
void compute(const ArgumentType &arg, DestinationType &dest) const
Definition: insertfunction.hh:186
DiscreteFunctionType DestinationType
Definition: insertfunction.hh:36
Base class for specific pass implementations. InsertFunctionPass simply inserts a discrete function f...
Definition: insertfunction.hh:21