Go to the documentation of this file.
4 #ifndef DUNE_PDELAB_LOCALOPERATOR_DGNAVIERSTOKESPARAMETER_HH
5 #define DUNE_PDELAB_LOCALOPERATOR_DGNAVIERSTOKESPARAMETER_HH
7 #include <dune/common/parametertreeparser.hh>
32 template<
typename GV,
typename RF,
typename F,
typename B,
typename V,
typename J,
33 bool navier =
false,
bool full_tensor =
false,
typename IP = DefaultInteriorPenalty<typename V::Traits::RangeFieldType> >
41 void initFromString(
const std::string & method)
43 std::string
s = method;
44 std::transform(
s.begin(),
s.end(),
s.begin(), tolower);
47 if (
s.find(
"nipg") != std::string::npos)
53 if (
s.find(
"sipg") != std::string::npos)
67 if (3 == sscanf(
s.c_str(),
"%d %lg %lg", &_epsilon, &sigma, &beta))
70 DUNE_THROW(Dune::Exception,
"Unknown DG type " << method);
99 F&
f, B& b, V& v, J&
j)
100 :
Base(configuration,
f,b,v,
j)
101 , _ip(configuration.sub(
"dg"))
102 , _epsilon(configuration.sub(
"dg").get<int>(
"epsilon"))
116 template<
typename GEO,
typename IGEO,
typename OGEO>
118 getFaceIP(
const GEO& geo,
const IGEO& igeo,
const OGEO& ogeo)
120 return _ip.getFaceIP(geo,igeo,ogeo);
125 template<
typename GEO,
typename IGEO>
129 return _ip.getFaceIP(geo,igeo);
147 namespace NavierStokesDGImp{
164 template<
typename PRM,
typename Dummy =
void>
167 template<
typename IntersectionGeometry>
168 static typename PRM::Traits::RangeField
172 const typename PRM::Traits::IntersectionDomain& )
179 template<
typename PRM>
181 <PRM,typename std::enable_if<PRM::enable_variable_slip>::type>
183 template<
typename IntersectionGeometry>
184 static typename PRM::Traits::RangeField
188 const typename PRM::Traits::IntersectionDomain& x)
190 return prm.boundarySlip(
ig,x);
199 #endif // DUNE_PDELAB_LOCALOPERATOR_DGNAVIERSTOKESPARAMETER_HH
Traits::RangeField getFaceIP(const GEO &geo, const IGEO &igeo, const OGEO &ogeo)
Get interior penalty parameter from skeleton face.
Definition: dgnavierstokesparameter.hh:118
RF RangeField
Export type for range field.
Definition: stokesparameter.hh:66
Wrap intersection.
Definition: geometrywrapper.hh:56
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Compile-time switch for the boundary slip factor.
Definition: dgnavierstokesparameter.hh:165
Traits::VelocityRange f(const EG &e, const typename Traits::Domain &x) const
source term
Definition: stokesparameter.hh:185
DGNavierStokesParameters(const Dune::ParameterTree &configuration, F &f, B &b, V &v, J &j)
Constructor that parses values from parameter tree.
Definition: dgnavierstokesparameter.hh:98
Definition: stokesparameter.hh:45
Traits::RangeField incompressibilityScaling(typename Traits::RangeField dt) const
Rescaling factor for the incompressibility equation.
Definition: dgnavierstokesparameter.hh:108
static PRM::Traits::RangeField boundarySlip(const PRM &, const IntersectionGeometry &, const typename PRM::Traits::IntersectionDomain &)
Definition: dgnavierstokesparameter.hh:170
Traits::VelocityRange j(const IG &ig, const typename Traits::IntersectionDomain &x, const typename Traits::Domain &normal) const
Neumann boundary condition (stress)
Parameter class for local operator DGNavierStokes.
Definition: dgnavierstokesparameter.hh:34
int epsilonIPSymmetryFactor()
Definition: dgnavierstokesparameter.hh:135
Base::Traits Traits
Traits class.
Definition: dgnavierstokesparameter.hh:76
const IG & ig
Definition: constraints.hh:149
Definition: stokesparameter.hh:143
Traits::RangeField getFaceIP(const GEO &geo, const IGEO &igeo)
Get interior penalty parameter from boundary face.
Definition: dgnavierstokesparameter.hh:127
const std::string s
Definition: function.hh:843