Skip to content
Snippets Groups Projects
Commit 1d871b47 authored by Mathis Kelm's avatar Mathis Kelm Committed by Timo Koch
Browse files

[freeflow] always use total mass balance, not mole

parent 92c1467a
No related branches found
No related tags found
1 merge request!2986Port compositional freeflow model and tests to new staggered
......@@ -56,7 +56,7 @@ struct AdvectiveFlux<NavierStokesMassOnePNCModelTraits<nComp, useM, repCompEqIdx
static constexpr bool useMoles = ModelTraits::useMoles();
static constexpr auto numComponents = ModelTraits::numFluidComponents();
static constexpr auto replaceCompEqIdx = ModelTraits::replaceCompEqIdx();
static constexpr bool useTotalMoleOrMassBalance = replaceCompEqIdx < numComponents;
static constexpr bool useTotalMassBalance = replaceCompEqIdx < numComponents;
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
{
......@@ -78,14 +78,11 @@ struct AdvectiveFlux<NavierStokesMassOnePNCModelTraits<nComp, useM, repCompEqIdx
}
// in case one balance is substituted by the total mole balance
if constexpr(useTotalMoleOrMassBalance)
if constexpr(useTotalMassBalance)
{
auto upwindTerm = [&]()
{
if constexpr (useMoles)
return [](const auto& volVars) { return volVars.molarDensity(); };
else
return [](const auto& volVars) { return volVars.density(); };
return [](const auto& volVars) { return volVars.density(); };
}();
flux[replaceCompEqIdx] += upwind(upwindTerm);
......
......@@ -59,7 +59,7 @@ class NavierStokesMassOnePNCFluxVariables
static constexpr bool enableMolecularDiffusion = ModelTraits::enableMolecularDiffusion();
static constexpr auto replaceCompEqIdx = ModelTraits::replaceCompEqIdx();
static constexpr bool useTotalMoleOrMassBalance = replaceCompEqIdx < ModelTraits::numFluidComponents();
static constexpr bool useTotalMassBalance = replaceCompEqIdx < ModelTraits::numFluidComponents();
using FluidSystem = typename VolumeVariables::FluidSystem;
......@@ -112,17 +112,16 @@ public:
DUNE_THROW(Dune::NotImplemented, "other reference systems than mass and molar averaged are not implemented");
}
// in case one balance is substituted by the total mole balance
if constexpr(useTotalMoleOrMassBalance)
// in case one balance is substituted by the total mass balance
if constexpr(useTotalMassBalance)
{
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
{
//check for the reference system and adapt units of the diffusive flux accordingly.
if constexpr (referenceSystemFormulation == ReferenceSystemFormulation::massAveraged)
result[replaceCompEqIdx] += useMoles ? diffusiveFluxes[compIdx]/FluidSystem::molarMass(compIdx) : diffusiveFluxes[compIdx];
result[replaceCompEqIdx] += diffusiveFluxes[compIdx];
else if constexpr (referenceSystemFormulation == ReferenceSystemFormulation::molarAveraged)
result[replaceCompEqIdx] += useMoles ? diffusiveFluxes[compIdx]
: diffusiveFluxes[compIdx]*FluidSystem::molarMass(compIdx);
result[replaceCompEqIdx] += diffusiveFluxes[compIdx]*FluidSystem::molarMass(compIdx);
else
DUNE_THROW(Dune::NotImplemented, "other reference systems than mass and molar averaged are not implemented");
}
......
......@@ -64,7 +64,7 @@ class NavierStokesMassOnePNCLocalResidual : public GetPropType<TypeTag, Properti
static constexpr auto numComponents = ModelTraits::numFluidComponents();
static constexpr int replaceCompEqIdx = ModelTraits::replaceCompEqIdx();
static constexpr bool useTotalMoleOrMassBalance = replaceCompEqIdx < numComponents;
static constexpr bool useTotalMassBalance = replaceCompEqIdx < numComponents;
public:
//! Use the parent type's constructor
......@@ -94,8 +94,8 @@ public:
}
// in case one balance is substituted by the total mass balance
if constexpr (useTotalMoleOrMassBalance)
storage[ModelTraits::replaceCompEqIdx()] = density;
if constexpr (useTotalMassBalance)
storage[ModelTraits::replaceCompEqIdx()] = volVars.density();
// consider energy storage for non-isothermal models
if constexpr (ModelTraits::enableEnergyBalance())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment