1 #ifndef DUNE_FEM_PASS_LOCALDG_MODELCALLER_HH 2 #define DUNE_FEM_PASS_LOCALDG_MODELCALLER_HH 29 template<
class DiscreteModel,
class Argument,
class PassIds >
41 typedef typename DiscreteModelType::Selector
Selector;
44 typedef typename DiscreteModelType::EntityType
EntityType;
59 typedef typename FunctionSpaceType::RangeType
RangeType;
77 : discreteModel_( discreteModel ),
79 discreteFunctions_( FilterType::apply( argument ) ),
94 double time ()
const {
return time_; }
111 void setEntity (
const EntityType &entity,
const VolumeQuadratureType &quadrature )
114 values_.resize( quadrature.nop() );
121 template<
class QuadratureType >
123 const QuadratureType &inside,
124 const QuadratureType &outside )
137 template<
class QuadratureType >
138 void setBoundary (
const EntityType &entity,
const QuadratureType &quadrature )
146 const VolumeQuadratureType &quadrature,
148 JacobianRangeType &flux )
155 double source (
const EntityType &entity,
156 const VolumeQuadratureType &quadrature,
167 const VolumeQuadratureType &quadrature,
169 JacobianRangeType &flux,
179 template<
class QuadratureType >
181 const QuadratureType &inside,
182 const QuadratureType &outside,
184 RangeType &gLeft, RangeType &gRight )
191 const FaceQuadratureType &quadrature,
199 void mass (
const EntityType &entity,
200 const VolumeQuadratureType &quadrature,
202 MassFactorType &massFactor )
214 ThisType operator= (
const ThisType & );
216 DiscreteModelType &discreteModel_;
219 DiscreteFunctionPointerTupleType discreteFunctions_;
224 std::vector< Dune::TypeIndexedTuple< JacobianRangeTupleType, Selector > >
jacobians_;
231 #endif // #ifndef DUNE_FEM_PASS_LOCALDG_MODELCALLER_HH std::vector< Dune::TypeIndexedTuple< JacobianRangeTupleType, Selector > > jacobians_
Definition: modelcaller.hh:224
bool hasSource() const
Definition: modelcaller.hh:89
DiscreteModelType::MassFactorType MassFactorType
Definition: modelcaller.hh:54
DiscreteModelType::Selector Selector
selector (tuple of integral constants)
Definition: modelcaller.hh:41
bool hasMass() const
Definition: modelcaller.hh:87
std::vector< Dune::TypeIndexedTuple< RangeTupleType, Selector > > valuesOutside_
Definition: modelcaller.hh:223
Dune::conditional< isPointerTuple, typename Dune::ForEachType< PointeeTypeEvaluator, Tuple >::Type, EmptyTuple< std::tuple_size< Tuple >::value > >::type PointeeTupleType
Definition: tupletypetraits.hh:120
DiscreteModelType & discreteModel()
Definition: modelcaller.hh:208
std::vector< Dune::TypeIndexedTuple< RangeTupleType, Selector > > valuesInside_
Definition: modelcaller.hh:223
void analyticalFlux(const EntityType &entity, const VolumeQuadratureType &quadrature, const int qp, JacobianRangeType &flux)
Definition: modelcaller.hh:145
DiscreteModelType::IntersectionType IntersectionType
Definition: modelcaller.hh:46
void setTime(double time)
Definition: modelcaller.hh:92
std::vector< Dune::TypeIndexedTuple< RangeTupleType, Selector > > values_
Definition: modelcaller.hh:223
void setEntity(const EntityType &entity, const VolumeQuadratureType &quadrature)
Definition: modelcaller.hh:111
DiscreteModel DiscreteModelType
Definition: modelcaller.hh:36
Dune::ForEachType< RangeTypeEvaluator, LocalFunctionTupleType >::Type RangeTupleType
Definition: localfunctiontuple.hh:120
LocalFunctionTupleType::RangeTupleType RangeTupleType
Definition: modelcaller.hh:72
void init(const EntityType &entity)
set local functions to given entity
Definition: localfunctiontuple.hh:141
double boundaryFlux(const IntersectionType &intersection, const FaceQuadratureType &quadrature, const int qp, RangeType &gLeft)
Definition: modelcaller.hh:190
double numericalFlux(const IntersectionType &intersection, const QuadratureType &inside, const QuadratureType &outside, const int qp, RangeType &gLeft, RangeType &gRight)
Definition: modelcaller.hh:180
void setBoundary(const EntityType &entity, const QuadratureType &quadrature)
Definition: modelcaller.hh:138
DiscreteModelType::Traits::VolumeQuadratureType VolumeQuadratureType
Definition: modelcaller.hh:49
Argument ArgumentType
Definition: modelcaller.hh:38
Dune::ForEachType< JacobianRangeTypeEvaluator, LocalFunctionTupleType >::Type JacobianRangeTupleType
Definition: localfunctiontuple.hh:122
Definition: coordinate.hh:4
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition: modelcaller.hh:61
void evaluateQuadrature(const QuadratureType &quadrature, TupleVectorType &vector) const
evaluate local functions for quadrature
Definition: localfunctiontuple.hh:191
DiscreteModelType::FunctionSpaceType FunctionSpaceType
Definition: modelcaller.hh:57
const DiscreteModelType & discreteModel() const
Definition: modelcaller.hh:209
double time() const
Definition: modelcaller.hh:94
Definition: tupleutility.hh:239
model caller for local DG pass
Definition: modelcaller.hh:30
double source(const EntityType &entity, const VolumeQuadratureType &quadrature, const int qp, RangeType &source)
Definition: modelcaller.hh:155
Dereference pointer tuple.
Definition: tupletypetraits.hh:286
LocalFunctionTuple< DiscreteFunctionTupleType, EntityType > LocalFunctionTupleType
Definition: modelcaller.hh:70
void setNeighbor(const EntityType &neighbor, const QuadratureType &inside, const QuadratureType &outside)
Definition: modelcaller.hh:122
LocalFunctionTupleType::JacobianRangeTupleType JacobianRangeTupleType
Definition: modelcaller.hh:73
FunctionSpaceType::RangeType RangeType
Definition: modelcaller.hh:59
LocalFunctionTupleType localFunctionsOutside_
Definition: modelcaller.hh:222
DiscreteModelType::EntityType EntityType
Definition: modelcaller.hh:44
DiscreteModelType::Traits::FaceQuadratureType FaceQuadratureType
Definition: modelcaller.hh:51
LocalFunctionTupleType localFunctionsInside_
Definition: modelcaller.hh:222
void mass(const EntityType &entity, const VolumeQuadratureType &quadrature, const int qp, MassFactorType &massFactor)
Definition: modelcaller.hh:199
NextType::type type
Definition: tupleutility.hh:261
double analyticalFluxAndSource(const EntityType &entity, const VolumeQuadratureType &quadrature, const int qp, JacobianRangeType &flux, RangeType &source)
Definition: modelcaller.hh:166
void setEntity(const EntityType &entity)
Definition: modelcaller.hh:97
DGDiscreteModelCaller(ArgumentType &argument, DiscreteModelType &discreteModel)
Definition: modelcaller.hh:76
void setNeighbor(const EntityType &entity)
Definition: modelcaller.hh:104
bool hasFlux() const
Definition: modelcaller.hh:85