Possibly wrong velocity output for rotational symmetric domains
Reported by @yue: calculateVelocity seems to be missing the extrusion area.
void calculateVelocity(...) const
{
...
if constexpr (isBox && dim == 1)
{
...
for (auto&& scvf : scvfs(fvGeometry))
{
if (scvf.boundary())
continue;
// insantiate the flux variables
FluxVariables fluxVars;
fluxVars.init(problem_, element, fvGeometry, elemVolVars, scvf, elemFluxVarsCache);
// get the volume flux divided by the area of the
// subcontrolvolume face in the reference element
Scalar localArea = scvfReferenceArea_(geomType, scvf.index());
Scalar flux = fluxVars.advectiveFlux(phaseIdx, upwindTerm) / localArea;
const auto& insideVolVars = elemVolVars[scvf.insideScvIdx()];
flux /= insideVolVars.extrusionFactor();
tmpVelocity *= flux;
const int eIdxGlobal = gridGeometry_.elementMapper().index(element);
velocity[eIdxGlobal] = tmpVelocity;
}
return;
}
Proposed strategy for resolution
Add velocity output to rotational symmetric test and make sure it's correct.
Possible fix
There might be a factor Extrusion::area(scvf)/scvf.area()
missing. Care has to be taken in case there is a mapping from local to global coordinates.
Edited by Timo Koch