30#ifndef DUMUX_NONEQUILIBRIUM_VOLUME_VARIABLES_HH
31#define DUMUX_NONEQUILIBRIUM_VOLUME_VARIABLES_HH
47template<
class Traits,
class EquilibriumVolumeVariables,
bool enableChemicalNonEquilibrium,
48 bool enableThermalNonEquilibrium,
int numEnergyEqFluid>
51template<
class Traits,
class EquilibriumVolumeVariables>
54 EquilibriumVolumeVariables,
55 Traits::ModelTraits::enableChemicalNonEquilibrium(),
56 Traits::ModelTraits::enableThermalNonEquilibrium(),
57 Traits::ModelTraits::numEnergyEqFluid()>;
62template<
class Traits,
class EquilibriumVolumeVariables>
64 EquilibriumVolumeVariables,
68:
public EquilibriumVolumeVariables
70 using ParentType = EquilibriumVolumeVariables;
71 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
72 using Scalar =
typename Traits::PrimaryVariables::value_type;
74 using ModelTraits =
typename Traits::ModelTraits;
76 using FS =
typename Traits::FluidSystem;
77 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
78 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
80 static constexpr auto phase0Idx = FS::phase0Idx;
81 static constexpr auto phase1Idx = FS::phase1Idx;
82 static constexpr auto sPhaseIdx = FS::numPhases;
86 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
87 using InterfacialAreasArray = std::array<std::array<Scalar, ModelTraits::numFluidPhases()+numEnergyEqSolid>,
88 ModelTraits::numFluidPhases()+numEnergyEqSolid>;
92 using Indices =
typename ModelTraits::Indices;
101 template<
class ElemSol,
class Problem,
class Element,
class Scv>
103 const Problem &problem,
104 const Element &element,
108 ParentType::update(elemSol, problem, element, scv);
110 ParameterCache paramCache;
111 paramCache.updateAll(this->fluidState());
112 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
113 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
126 template<
class ElemSol,
class Problem,
class Element,
class Scv>
129 const ParameterCache& paramCache,
130 const Problem& problem,
131 const Element& element,
134 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
135 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
138 const unsigned int vIdxGlobal = scv.dofIndex();
139 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
141 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
142 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
143 const auto density = fluidState.density(phaseIdx);
144 const auto kinematicViscosity = dynamicViscosity/
density;
146 using FluidSystem =
typename Traits::FluidSystem;
147 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
148 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
151 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
152 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
153 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
154 prandtlNumber_[phaseIdx],
156 ModelTraits::nusseltFormulation());
171 template<
class ElemSol,
class Problem,
class Element,
class Scv>
174 const ParameterCache& paramCache,
175 const Problem& problem,
176 const Element& element,
180 const auto& materialParams = problem.spatialParams().materialLawParams(element, scv, elemSol);
183 const auto& aWettingNonWettingSurfaceParams = problem.spatialParams().aWettingNonWettingSurfaceParams(element, scv, elemSol);
185 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
186 const Scalar Sw = fluidState.saturation(phase0Idx);
188 using AwnSurface =
typename Problem::SpatialParams::AwnSurface;
189 const auto awn = AwnSurface::interfacialArea(aWettingNonWettingSurfaceParams, materialParams, Sw, pc);
190 interfacialArea_[phase0Idx][phase1Idx] = awn;
191 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
192 interfacialArea_[phase0Idx][phase0Idx] = 0.;
194 using AnsSurface =
typename Problem::SpatialParams::AnsSurface;
195 const auto& aNonWettingSolidSurfaceParams = problem.spatialParams().aNonWettingSolidSurfaceParams(element, scv, elemSol);
196 const auto ans = AnsSurface::interfacialArea(aNonWettingSolidSurfaceParams, materialParams, Sw, pc);
200 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
201 if (computeAwsFromAnsAndPcMax)
204 const Scalar pcMax = aWettingNonWettingSurfaceParams.pcMax();
205 const auto solidSurface = AnsSurface::interfacialArea(aNonWettingSolidSurfaceParams, materialParams, 0., pcMax);
206 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
210 using AwsSurface =
typename Problem::SpatialParams::AwsSurface;
211 const auto& aWettingSolidSurfaceParams = problem.spatialParams().aWettingSolidSurfaceParams(element, scv, elemSol);
212 interfacialArea_[phase0Idx][sPhaseIdx] = AwsSurface::interfacialArea(aWettingSolidSurfaceParams, materialParams, Sw, pc);
215 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
216 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.;
218 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
219 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
220 interfacialArea_[phase1Idx][phase1Idx] = 0.;
227 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
230 assert(phaseIIdx not_eq phaseJIdx);
231 return interfacialArea_[phaseIIdx][phaseJIdx];
236 {
return reynoldsNumber_[phaseIdx]; }
240 {
return prandtlNumber_[phaseIdx]; }
244 {
return nusseltNumber_[phaseIdx]; }
248 {
return characteristicLength_; }
252 {
return factorEnergyTransfer_; }
256 NumFluidPhasesArray reynoldsNumber_;
257 NumFluidPhasesArray prandtlNumber_;
258 NumFluidPhasesArray nusseltNumber_;
260 Scalar characteristicLength_;
261 Scalar factorEnergyTransfer_;
262 InterfacialAreasArray interfacialArea_;
268template<
class Traits,
class EquilibriumVolumeVariables>
270 EquilibriumVolumeVariables,
274:
public EquilibriumVolumeVariables
276 using ParentType = EquilibriumVolumeVariables;
277 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
278 using Scalar =
typename Traits::PrimaryVariables::value_type;
280 using ModelTraits =
typename Traits::ModelTraits;
281 using Indices =
typename ModelTraits::Indices;
282 using FS =
typename Traits::FluidSystem;
283 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
284 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
288 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
301 template<
class ElemSol,
class Problem,
class Element,
class Scv>
303 const Problem &problem,
304 const Element &element,
308 ParentType::update(elemSol, problem, element, scv);
310 ParameterCache paramCache;
311 paramCache.updateAll(this->fluidState());
314 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
315 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
328 template<
class ElemSol,
class Problem,
class Element,
class Scv>
331 const ParameterCache& paramCache,
332 const Problem& problem,
333 const Element& element,
336 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
337 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
340 const unsigned int vIdxGlobal = scv.dofIndex();
341 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
343 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
344 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
345 const auto density = fluidState.density(phaseIdx);
346 const auto kinematicViscosity = dynamicViscosity/
density;
348 using FluidSystem =
typename Traits::FluidSystem;
349 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
350 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
353 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
354 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
355 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
356 prandtlNumber_[phaseIdx],
358 ModelTraits::nusseltFormulation());
373 template<
class ElemSol,
class Problem,
class Element,
class Scv>
376 const ParameterCache& paramCache,
377 const Problem& problem,
378 const Element& element,
381 using FluidSolidInterfacialAreaFormulation =
typename Problem::SpatialParams::FluidSolidInterfacialAreaFormulation;
382 interfacialArea_ = FluidSolidInterfacialAreaFormulation::fluidSolidInterfacialArea(this->
porosity(), characteristicLength());
387 {
return reynoldsNumber_[phaseIdx]; }
391 {
return prandtlNumber_[phaseIdx]; }
395 {
return nusseltNumber_[phaseIdx]; }
399 {
return characteristicLength_; }
403 {
return factorEnergyTransfer_; }
406 {
return interfacialArea_;}
410 NumFluidPhasesArray reynoldsNumber_;
411 NumFluidPhasesArray prandtlNumber_;
412 NumFluidPhasesArray nusseltNumber_;
414 Scalar characteristicLength_;
415 Scalar factorEnergyTransfer_;
416 Scalar interfacialArea_ ;
422template<
class Traits,
class EquilibriumVolumeVariables>
424 EquilibriumVolumeVariables,
428:
public EquilibriumVolumeVariables
430 using ParentType = EquilibriumVolumeVariables;
431 using FluidState =
typename Traits::FluidState;
432 using FS =
typename Traits::FluidSystem;
433 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
434 using Scalar =
typename Traits::PrimaryVariables::value_type;
436 using ModelTraits =
typename Traits::ModelTraits;
438 static constexpr auto phase0Idx = FS::phase0Idx;
439 static constexpr auto phase1Idx = FS::phase1Idx;
440 static constexpr auto wCompIdx = FS::comp0Idx;
441 static constexpr auto nCompIdx = FS::comp1Idx;
445 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
448 using Indices =
typename ModelTraits::Indices;
458 template<
class ElemSol,
class Problem,
class Element,
class Scv>
460 const Problem &problem,
461 const Element &element,
465 ParentType::update(elemSol, problem, element, scv);
467 ParameterCache paramCache;
468 paramCache.updateAll(this->fluidState());
469 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
470 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
483 template<
class ElemSol,
class Problem,
class Element,
class Scv>
485 const FluidState& fluidState,
486 const ParameterCache& paramCache,
487 const Problem& problem,
488 const Element& element,
491 factorMassTransfer_ = problem.spatialParams().factorMassTransfer(element, scv, elemSol);
492 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
495 const unsigned int vIdxGlobal = scv.dofIndex();
496 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
498 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
499 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
500 const auto density = fluidState.density(phaseIdx);
501 const auto kinematicViscosity = dynamicViscosity/
density;
504 using FluidSystem =
typename Traits::FluidSystem;
505 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
511 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
512 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
513 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
514 schmidtNumber_[phaseIdx],
515 ModelTraits::sherwoodFormulation());
529 template<
class ElemSol,
class Problem,
class Element,
class Scv>
531 const FluidState& fluidState,
532 const ParameterCache& paramCache,
533 const Problem& problem,
534 const Element& element,
538 const auto& awnSurfaceParams = problem.spatialParams().aWettingNonWettingSurfaceParams(element, scv, elemSol) ;
539 const auto& materialParams = problem.spatialParams().materialLawParams(element, scv, elemSol) ;
541 const auto Sw = fluidState.saturation(phase0Idx) ;
542 const auto pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
546 using AwnSurface =
typename Problem::SpatialParams::AwnSurface;
547 interfacialArea_ = AwnSurface::interfacialArea(awnSurfaceParams, materialParams, Sw, pc);
553 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
556 assert( (phaseIIdx == phase1Idx && phaseJIdx == phase0Idx)
557 || (phaseIIdx == phase0Idx && phaseJIdx == phase1Idx) );
558 return interfacialArea_;
563 {
return reynoldsNumber_[phaseIdx]; }
567 {
return schmidtNumber_[phaseIdx]; }
571 {
return sherwoodNumber_[phaseIdx]; }
575 {
return characteristicLength_; }
579 {
return factorMassTransfer_; }
582 Scalar characteristicLength_;
583 Scalar factorMassTransfer_;
584 Scalar interfacialArea_ ;
585 NumFluidPhasesArray sherwoodNumber_;
586 NumFluidPhasesArray schmidtNumber_;
587 NumFluidPhasesArray reynoldsNumber_;
591template<
class Traits,
class EquilibriumVolumeVariables>
593 EquilibriumVolumeVariables,
597:
public EquilibriumVolumeVariables
599 using ParentType = EquilibriumVolumeVariables;
600 using FluidState =
typename Traits::FluidState;
601 using FS =
typename Traits::FluidSystem;
602 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
603 using Scalar =
typename Traits::PrimaryVariables::value_type;
605 using ModelTraits =
typename Traits::ModelTraits;
606 using Indices =
typename ModelTraits::Indices;
607 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
608 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
610 static constexpr auto phase0Idx = FS::phase0Idx;
611 static constexpr auto phase1Idx = FS::phase1Idx;
612 static constexpr auto sPhaseIdx = FS::numPhases;
613 static constexpr auto wCompIdx = FS::comp0Idx;
614 static constexpr auto nCompIdx = FS::comp1Idx;
617 static_assert((numEnergyEqFluid > 1),
"This model only deals with energy transfer between two fluids and one solid phase");
619 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
620 using InterfacialAreasArray = std::array<std::array<Scalar, ModelTraits::numFluidPhases()+numEnergyEqSolid>,
621 ModelTraits::numFluidPhases()+numEnergyEqSolid>;
633 template<
class ElemSol,
class Problem,
class Element,
class Scv>
635 const Problem &problem,
636 const Element &element,
640 ParentType::update(elemSol, problem, element, scv);
642 ParameterCache paramCache;
643 paramCache.updateAll(this->fluidState());
644 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
645 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
658 template<
class ElemSol,
class Problem,
class Element,
class Scv>
660 const FluidState& fluidState,
661 const ParameterCache& paramCache,
662 const Problem& problem,
663 const Element& element,
666 factorMassTransfer_ = problem.spatialParams().factorMassTransfer(element, scv, elemSol);
667 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
668 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
670 const auto vIdxGlobal = scv.dofIndex();
671 using FluidSystem =
typename Traits::FluidSystem;
672 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
674 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
675 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
676 const auto density = fluidState.density(phaseIdx);
677 const auto kinematicViscosity = dynamicViscosity/
density;
678 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
679 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
683 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
689 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
690 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
691 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
692 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
693 prandtlNumber_[phaseIdx],
695 ModelTraits::nusseltFormulation());
697 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
698 schmidtNumber_[phaseIdx],
699 ModelTraits::sherwoodFormulation());
713 template<
class ElemSol,
class Problem,
class Element,
class Scv>
715 const FluidState& fluidState,
716 const ParameterCache& paramCache,
717 const Problem& problem,
718 const Element& element,
722 const auto& materialParams = problem.spatialParams().materialLawParams(element, scv, elemSol);
725 const auto& aWettingNonWettingSurfaceParams = problem.spatialParams().aWettingNonWettingSurfaceParams(element, scv, elemSol);
727 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
728 const Scalar Sw = fluidState.saturation(phase0Idx);
730 using AwnSurface =
typename Problem::SpatialParams::AwnSurface;
731 const auto awn = AwnSurface::interfacialArea(aWettingNonWettingSurfaceParams, materialParams, Sw, pc);
732 interfacialArea_[phase0Idx][phase1Idx] = awn;
733 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
734 interfacialArea_[phase0Idx][phase0Idx] = 0.;
736 using AnsSurface =
typename Problem::SpatialParams::AnsSurface;
737 const auto& aNonWettingSolidSurfaceParams = problem.spatialParams().aNonWettingSolidSurfaceParams(element, scv, elemSol);
738 const auto ans = AnsSurface::interfacialArea(aNonWettingSolidSurfaceParams, materialParams, Sw, pc);
742 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
743 if (computeAwsFromAnsAndPcMax)
746 const Scalar pcMax = aWettingNonWettingSurfaceParams.pcMax();
747 const auto solidSurface = AnsSurface::interfacialArea(aNonWettingSolidSurfaceParams, materialParams, 0., pcMax);
748 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
752 using AwsSurface =
typename Problem::SpatialParams::AwsSurface;
753 const auto& aWettingSolidSurfaceParams = problem.spatialParams().aWettingSolidSurfaceParams(element, scv, elemSol);
754 interfacialArea_[phase0Idx][sPhaseIdx] = AwsSurface::interfacialArea(aWettingSolidSurfaceParams, materialParams, Sw, pc);
757 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
758 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.;
760 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
761 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
762 interfacialArea_[phase1Idx][phase1Idx] = 0.;
769 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
772 assert(phaseIIdx not_eq phaseJIdx);
773 return interfacialArea_[phaseIIdx][phaseJIdx];
778 {
return reynoldsNumber_[phaseIdx]; }
782 {
return prandtlNumber_[phaseIdx]; }
786 {
return nusseltNumber_[phaseIdx]; }
790 {
return schmidtNumber_[phaseIdx]; }
794 {
return sherwoodNumber_[phaseIdx]; }
798 {
return characteristicLength_; }
802 {
return factorEnergyTransfer_; }
806 {
return factorMassTransfer_; }
810 NumFluidPhasesArray reynoldsNumber_;
811 NumFluidPhasesArray prandtlNumber_;
812 NumFluidPhasesArray nusseltNumber_;
813 NumFluidPhasesArray schmidtNumber_;
814 NumFluidPhasesArray sherwoodNumber_;
815 Scalar characteristicLength_;
816 Scalar factorEnergyTransfer_;
817 Scalar factorMassTransfer_;
818 InterfacialAreasArray interfacialArea_;
Collection of functions, calculating dimensionless numbers.
The infrastructure to retrieve run-time parameters from Dune::ParameterTrees.
std::string density(int phaseIdx) noexcept
I/O name of density for multiphase systems.
Definition: name.hh:65
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:139
Collection of functions which calculate dimensionless numbers. Each number has it's own function....
Definition: dimensionlessnumbers.hh:64
This class contains the volume variables required for the modules which require the specific interfac...
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:49
void updateInterfacialArea(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the phases.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:172
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:251
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:239
const Scalar interfacialArea(const unsigned int phaseIIdx, const unsigned int phaseJIdx) const
The specific interfacial area between two fluid phases [m^2 / m^3].
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:227
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:92
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Update all quantities for a given control volume.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:102
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:235
void updateDimLessNumbers(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates dimensionless numbers.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:127
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:243
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:247
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:91
const Scalar fluidSolidInterfacialArea() const
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:405
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:398
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:386
void updateDimLessNumbers(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates dimensionless numbers.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:329
void updateInterfacialArea(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the solid and the fluid phase.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:374
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:394
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:390
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:291
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:402
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Update all quantities for a given control volume.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:302
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Update all quantities for a given control volume.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:459
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:562
void updateDimLessNumbers(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the phases.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:484
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:448
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:574
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:570
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:578
const Scalar interfacialArea(const unsigned int phaseIIdx, const unsigned int phaseJIdx) const
The specific interfacial area between two fluid phases [m^2 / m^3].
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:553
void updateInterfacialArea(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the phases.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:530
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:566
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:797
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:793
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Update all quantities for a given control volume.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:634
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:805
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:801
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:789
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:785
const Scalar interfacialArea(const unsigned int phaseIIdx, const unsigned int phaseJIdx) const
The specific interfacial area between two fluid phases [m^2 / m^3].
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:769
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:781
void updateDimLessNumbers(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the phases.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:659
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:777
void updateInterfacialArea(const ElemSol &elemSol, const FluidState &fluidState, const ParameterCache ¶mCache, const Problem &problem, const Element &element, const Scv &scv)
Updates the volume specific interfacial area [m^2 / m^3] between the phases.
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:714