4#ifndef DUNE_PDELAB_LOCALOPERATOR_DGNAVIERSTOKESPARAMETER_HH
5#define DUNE_PDELAB_LOCALOPERATOR_DGNAVIERSTOKESPARAMETER_HH
8#include <dune/pdelab/common/geometrywrapper.hh>
9#include <dune/pdelab/localoperator/dginteriorpenaltyparameter.hh>
10#include <dune/pdelab/localoperator/stokesparameter.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))
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);
Base class for Dune-Exceptions.
Definition: exceptions.hh:96
Parameter class for local operator DGNavierStokes.
Definition: dgnavierstokesparameter.hh:36
int epsilonIPSymmetryFactor()
Definition: dgnavierstokesparameter.hh:135
Traits::RangeField getFaceIP(const GEO &geo, const IGEO &igeo, const OGEO &ogeo)
Get interior penalty parameter from skeleton face.
Definition: dgnavierstokesparameter.hh:118
DGNavierStokesParameters(const Dune::ParameterTree &configuration, F &f, B &b, V &v, J &j)
Constructor that parses values from parameter tree.
Definition: dgnavierstokesparameter.hh:98
Base::Traits Traits
Traits class.
Definition: dgnavierstokesparameter.hh:76
Traits::RangeField getFaceIP(const GEO &geo, const IGEO &igeo)
Get interior penalty parameter from boundary face.
Definition: dgnavierstokesparameter.hh:127
Traits::RangeField incompressibilityScaling(typename Traits::RangeField dt) const
Rescaling factor for the incompressibility equation.
Definition: dgnavierstokesparameter.hh:108
Wrap intersection.
Definition: geometrywrapper.hh:57
Definition: stokesparameter.hh:144
Traits::VelocityRange j(const IG &ig, const typename Traits::IntersectionDomain &x, const typename Traits::Domain &normal) const
Neumann boundary condition (stress)
Traits::VelocityRange f(const EG &e, const typename Traits::Domain &x) const
source term
Definition: stokesparameter.hh:185
Hierarchical structure of string parameters.
Definition: parametertree.hh:37
#define DUNE_THROW(E, m)
Definition: exceptions.hh:218
Dune namespace.
Definition: alignedallocator.hh:13
constexpr auto get(std::integer_sequence< T, II... >, std::integral_constant< std::size_t, pos >={})
Return the entry at position pos of the given sequence.
Definition: integersequence.hh:22
Various parser methods to get data into a ParameterTree object.
Compile-time switch for the boundary slip factor.
Definition: dgnavierstokesparameter.hh:165
Definition: stokesparameter.hh:46
RF RangeField
Export type for range field.
Definition: stokesparameter.hh:66