2 #ifndef DUNE_PDELAB_LOCALOPERATOR_CONVECTIONDIFFUSIONPARAMETER_HH 3 #define DUNE_PDELAB_LOCALOPERATOR_CONVECTIONDIFFUSIONPARAMETER_HH 7 #include<dune/common/exceptions.hh> 8 #include<dune/common/fvector.hh> 9 #include<dune/geometry/type.hh> 10 #include<dune/geometry/referenceelements.hh> 11 #include<dune/geometry/quadraturerules.hh> 26 template<
typename GV,
typename RF>
42 typedef Dune::FieldVector<DomainFieldType,dimDomain>
DomainType;
51 typedef Dune::FieldVector<RF,GV::dimensionworld>
RangeType;
54 typedef Dune::FieldMatrix<RangeFieldType,dimDomain,dimDomain>
PermTensorType;
57 typedef typename GV::Traits::template Codim<0>::Entity
ElementType;
65 enum Type { Dirichlet=1, Neumann=-1, Outflow=-2, None=-3 };
84 template<
typename GV,
typename RF>
97 for (std::size_t i=0; i<Traits::dimDomain; i++)
98 for (std::size_t j=0; j<Traits::dimDomain; j++)
99 I[i][j] = (i==j) ? 1 : 0;
137 return xglobal.two_norm();
181 ,
const Dune::FieldVector<typename I::ctype, I::dimension-1> & coord
184 return( t.bctype( ig.intersection(), coord )
190 const Dune::FieldVector<typename I::ctype, I::dimension-1> & coord
193 return !isDirichlet( ig, coord );
209 <typename T::Traits::GridViewType,
210 typename T::Traits::RangeFieldType,
211 T::Traits::GridViewType::dimension>,
212 ConvectionDiffusionVelocityExtensionAdapter<T> >
216 typename T::Traits::RangeFieldType,
217 T::Traits::GridViewType::dimension>
Traits;
223 : BaseT(gv_), gv(gv_), t(t_)
251 const typename Traits::GridViewType gv;
266 typename T::Traits::RangeFieldType,
267 1,Dune::FieldVector<typename T::Traits::RangeFieldType,1> >
268 ,ConvectionDiffusionDirichletExtensionAdapter<T> >
272 typename T::Traits::RangeFieldType,
273 1,Dune::FieldVector<typename T::Traits::RangeFieldType,1> >
Traits;
311 typename T::Traits::RangeFieldType,
312 T::Traits::GridViewType::dimension,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::GridViewType::dimension> >
313 ,ConvectionDiffusionExactGradientAdapter<T> >
317 typename T::Traits::RangeFieldType,
318 T::Traits::GridViewType::dimension,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::GridViewType::dimension> >
Traits;
337 const typename Traits::GridViewType g;
344 #endif // DUNE_PDELAB_LOCALOPERATOR_CONVECTIONDIFFUSIONPARAMETER_HH const IG & ig
Definition: constraints.hh:148
Traits::RangeType b(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
velocity field
Definition: convectiondiffusionparameter.hh:105
leaf of a function tree
Definition: function.hh:575
Traits::RangeFieldType c(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
sink term
Definition: convectiondiffusionparameter.hh:113
Definition: convectiondiffusionparameter.hh:207
void setTime(double time_)
Definition: convectiondiffusionparameter.hh:293
Type
Definition: convectiondiffusionparameter.hh:65
Class to define the boundary condition types.
Definition: convectiondiffusionparameter.hh:63
GV::Intersection IntersectionType
Definition: convectiondiffusionparameter.hh:58
function signature for analytic functions on a grid
Definition: function.hh:897
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Evaluate the GridFunction at given position.
Definition: convectiondiffusionparameter.hh:233
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:117
Definition: convectiondiffusionparameter.hh:309
Definition: convectiondiffusionparameter.hh:161
Definition: constraintsparameters.hh:24
Traits::PermTensorType A(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
tensor diffusion coefficient
Definition: convectiondiffusionparameter.hh:94
Dune::FieldVector< RF, GV::dimensionworld > RangeType
range type
Definition: convectiondiffusionparameter.hh:51
Dune::PDELab::AnalyticGridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, T::Traits::GridViewType::dimension > Traits
Definition: convectiondiffusionparameter.hh:217
Definition: constraintsparameters.hh:120
ConvectionDiffusionBoundaryConditionAdapter(const typename T::Traits::GridViewType &gv_, const T &t_)
Definition: convectiondiffusionparameter.hh:170
bool isNeumann(const I &ig, const Dune::FieldVector< typename I::ctype, I::dimension-1 > &coord) const
Definition: convectiondiffusionparameter.hh:189
GV GridViewType
The type of the grid view the function lives on.
Definition: function.hh:114
RF RangeFieldType
Export type for range field.
Definition: convectiondiffusionparameter.hh:48
Traits::RangeFieldType f(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
source term
Definition: convectiondiffusionparameter.hh:120
GV::Grid::ctype DomainFieldType
Export type for domain field.
Definition: convectiondiffusionparameter.hh:39
Dune::PDELab::GridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, T::Traits::GridViewType::dimension, Dune::FieldVector< typename T::Traits::RangeFieldType, T::Traits::GridViewType::dimension > > Traits
Definition: convectiondiffusionparameter.hh:318
const Traits::GridViewType & getGridView() const
Definition: convectiondiffusionparameter.hh:331
Dune::PDELab::AnalyticGridFunctionBase< Traits, ConvectionDiffusionVelocityExtensionAdapter< T > > BaseT
Definition: convectiondiffusionparameter.hh:218
GV GridViewType
the grid view
Definition: convectiondiffusionparameter.hh:30
void setTime(double time_)
Definition: convectiondiffusionparameter.hh:245
const Traits::GridViewType & getGridView() const
Definition: convectiondiffusionparameter.hh:240
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:48
dimension of the domain
Definition: convectiondiffusionparameter.hh:35
ConvectionDiffusionExactGradientAdapter(const typename Traits::GridViewType &g_, const T &t_)
constructor
Definition: convectiondiffusionparameter.hh:321
Traits class for convection diffusion parameters.
Definition: convectiondiffusionparameter.hh:27
Traits::RangeFieldType o(const typename Traits::IntersectionType &is, const typename Traits::IntersectionDomainType &x) const
outflow boundary condition
Definition: convectiondiffusionparameter.hh:149
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
Dune::FieldVector< DomainFieldType, dimDomain > DomainType
domain type
Definition: convectiondiffusionparameter.hh:42
Dune::PDELab::GridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, 1, Dune::FieldVector< typename T::Traits::RangeFieldType, 1 > > Traits
Definition: convectiondiffusionparameter.hh:273
const Entity & e
Definition: localfunctionspace.hh:111
GV::Traits::template Codim< 0 >::Entity ElementType
grid types
Definition: convectiondiffusionparameter.hh:57
Traits::RangeFieldType g(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
Dirichlet boundary condition value.
Definition: convectiondiffusionparameter.hh:134
Definition: convectiondiffusionparameter.hh:264
Traits::RangeFieldType j(const typename Traits::IntersectionType &is, const typename Traits::IntersectionDomainType &x) const
Neumann boundary condition.
Definition: convectiondiffusionparameter.hh:142
ConvectionDiffusionParameterTraits< GV, RF > Traits
Definition: convectiondiffusionparameter.hh:90
ConvectionDiffusionBoundaryConditionAdapter(const T &t_)
Definition: convectiondiffusionparameter.hh:175
Dune::FieldMatrix< RangeFieldType, dimDomain, dimDomain > PermTensorType
permeability tensor type
Definition: convectiondiffusionparameter.hh:54
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Evaluate the GridFunction at given position.
Definition: convectiondiffusionparameter.hh:324
Parameter class for solving the linear convection-diffusion equation.
Definition: convectiondiffusionparameter.hh:85
BCType bctype(const typename Traits::IntersectionType &is, const typename Traits::IntersectionDomainType &x) const
boundary condition type function
Definition: convectiondiffusionparameter.hh:127
an analytic grid function
Definition: function.hh:915
const Traits::GridViewType & getGridView() const
Definition: convectiondiffusionparameter.hh:288
Definition: convectiondiffusionparameter.hh:65
ConvectionDiffusionDirichletExtensionAdapter(const typename Traits::GridViewType &g_, T &t_)
constructor
Definition: convectiondiffusionparameter.hh:276
Dune::FieldVector< DomainFieldType, dimDomain-1 > IntersectionDomainType
domain type
Definition: convectiondiffusionparameter.hh:45
Dune::FieldVector< RF, m > RangeType
range type
Definition: function.hh:60
traits class holding the function signature, same as in local function
Definition: function.hh:175
ConvectionDiffusionVelocityExtensionAdapter(const typename Traits::GridViewType &gv_, T &t_)
constructor
Definition: convectiondiffusionparameter.hh:222
bool isDirichlet(const I &ig, const Dune::FieldVector< typename I::ctype, I::dimension-1 > &coord) const
Definition: convectiondiffusionparameter.hh:180
void evaluateGlobal(const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Definition: convectiondiffusionparameter.hh:226
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Evaluate the GridFunction at given position.
Definition: convectiondiffusionparameter.hh:281