[freeflow] Spatially varying extrusionFactor causes unphysical results for the pressure distribution
The issue is illustrated with the following example scenario:
The example is based on the test “test_ff_stokes_channel_pseudo3d” and modified in a way that the domain is a square (0.005 x 0.005) with a lense in the middle which has a different aperture (height) compared to the rest of the domain, the boundary conditions are fixed pressure at the inlet and outlet - the rest of the domain is no-slip. The motivation is, to be able to simulate microfluidic experiments with the pseudo-3D approach with different apertures of the micromodel (caused by precipitates).
For that, the friction source term in the problem.hh file is adapted:
template<class ElementVolumeVariables>
Sources source(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars,
const SubControlVolume& scv) const
{
auto source = Sources(0.0);
if constexpr (ParentType::isMomentumProblem() && enablePseudoThreeDWallFriction)
{
auto globalPos = scv.center();
Scalar heightRel = 1. ;
if(globalPos[0] > 0.001 && globalPos[0]< 0.004 && globalPos[1] > 0.001 && globalPos[1] < 0.004)
{
heightRel = relativeFrictionFactorLense_;
}
static const Scalar height = getParam<Scalar>("Problem.Height");
static const Scalar factor = getParam<Scalar>("Problem.PseudoWallFractionFactor", 8.0);
source[scv.dofAxis()] = this->pseudo3DWallFriction(element, fvGeometry, elemVolVars, scv, heightRel*height, factor);
}
return source;
}
and the extrusion factor in the spatialParams.hh is adapted:
Scalar extrusionFactorAtPos(const GlobalPosition& globalPos) const
{
Scalar heightRel = 1.;
if(globalPos[0] > 0.001 && globalPos[0]< 0.004 && globalPos[1] > 0.001 && globalPos[1] < 0.004)
{
heightRel = relativeExtrusionFactorLens_; // = 0.5
}
return extrusionFactor_*heightRel;
}
In the attached files, three scenarios are compared:
-
a) (blue graphs): only the source term in the problem file is modified.
-
b) (red graphs): only the extrusion factor in the spatialParams file are modified.
-
c) (violette graphs): both, the source term in the problem and the extrusion factor in spatialParams file are modified.
In case of spatially varying extrusionFactors, there are discontinuities in the pressure (plot over line horizontally), while the velocities (plot over line vertically) look reasonable.