30#ifndef DUMUX_NONEQUILIBRIUM_VOLUME_VARIABLES_HH
31#define DUMUX_NONEQUILIBRIUM_VOLUME_VARIABLES_HH
49template<
class Traits,
class EquilibriumVolumeVariables,
bool enableChemicalNonEquilibrium,
50 bool enableThermalNonEquilibrium,
int numEnergyEqFluid>
53template<
class Traits,
class EquilibriumVolumeVariables>
56 EquilibriumVolumeVariables,
57 Traits::ModelTraits::enableChemicalNonEquilibrium(),
58 Traits::ModelTraits::enableThermalNonEquilibrium(),
59 Traits::ModelTraits::numEnergyEqFluid()>;
64template<
class Traits,
class EquilibriumVolumeVariables>
66 EquilibriumVolumeVariables,
70:
public EquilibriumVolumeVariables
72 using ParentType = EquilibriumVolumeVariables;
73 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
74 using Scalar =
typename Traits::PrimaryVariables::value_type;
76 using ModelTraits =
typename Traits::ModelTraits;
78 using FS =
typename Traits::FluidSystem;
79 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
80 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
82 static constexpr auto phase0Idx = FS::phase0Idx;
83 static constexpr auto phase1Idx = FS::phase1Idx;
84 static constexpr auto sPhaseIdx = FS::numPhases;
88 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
89 using InterfacialAreasArray = std::array<std::array<Scalar, ModelTraits::numFluidPhases()+numEnergyEqSolid>,
90 ModelTraits::numFluidPhases()+numEnergyEqSolid>;
94 using Indices =
typename ModelTraits::Indices;
103 template<
class ElemSol,
class Problem,
class Element,
class Scv>
105 const Problem &problem,
106 const Element &element,
110 ParentType::update(elemSol, problem, element, scv);
112 ParameterCache paramCache;
113 paramCache.updateAll(this->fluidState());
114 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
115 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
128 template<
class ElemSol,
class Problem,
class Element,
class Scv>
131 const ParameterCache& paramCache,
132 const Problem& problem,
133 const Element& element,
136 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
137 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
140 const unsigned int vIdxGlobal = scv.dofIndex();
141 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
143 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
144 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
145 const auto density = fluidState.density(phaseIdx);
146 const auto kinematicViscosity = dynamicViscosity/
density;
148 using FluidSystem =
typename Traits::FluidSystem;
149 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
150 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
153 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
154 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
155 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
156 prandtlNumber_[phaseIdx],
158 ModelTraits::nusseltFormulation());
173 template<
class ElemSol,
class Problem,
class Element,
class Scv>
176 const ParameterCache& paramCache,
177 const Problem& problem,
178 const Element& element,
181 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
182 const Scalar Sw = fluidState.saturation(phase0Idx);
187 const auto fluidMatrixInteraction = Deprecated::makeInterfacialArea(Scalar{}, problem.spatialParams(), element, scv, elemSol);
189 const auto awn = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
190 interfacialArea_[phase0Idx][phase1Idx] = awn;
191 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
192 interfacialArea_[phase0Idx][phase0Idx] = 0.;
197 const auto ans = fluidMatrixInteraction.nonwettingSolidInterface().area(Sw, pc);
201 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
202 if (computeAwsFromAnsAndPcMax)
205 const Scalar pcMax = fluidMatrixInteraction.wettingNonwettingInterface().basicParams().pcMax();
206 const auto solidSurface = fluidMatrixInteraction.nonwettingSolidInterface().area(0., pcMax);
207 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
214 const auto fluidMatrixInteraction = Deprecated::makeInterfacialArea(Scalar{}, problem.spatialParams(), element, scv, elemSol);
215 interfacialArea_[phase0Idx][sPhaseIdx] = fluidMatrixInteraction.wettingSolidInterface().area(Sw, pc);
218 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
219 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.;
221 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
222 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
223 interfacialArea_[phase1Idx][phase1Idx] = 0.;
230 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
233 assert(phaseIIdx not_eq phaseJIdx);
234 return interfacialArea_[phaseIIdx][phaseJIdx];
239 {
return reynoldsNumber_[phaseIdx]; }
243 {
return prandtlNumber_[phaseIdx]; }
247 {
return nusseltNumber_[phaseIdx]; }
251 {
return characteristicLength_; }
255 {
return factorEnergyTransfer_; }
259 NumFluidPhasesArray reynoldsNumber_;
260 NumFluidPhasesArray prandtlNumber_;
261 NumFluidPhasesArray nusseltNumber_;
263 Scalar characteristicLength_;
264 Scalar factorEnergyTransfer_;
265 InterfacialAreasArray interfacialArea_;
271template<
class Traits,
class EquilibriumVolumeVariables>
273 EquilibriumVolumeVariables,
277:
public EquilibriumVolumeVariables
279 using ParentType = EquilibriumVolumeVariables;
280 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
281 using Scalar =
typename Traits::PrimaryVariables::value_type;
283 using ModelTraits =
typename Traits::ModelTraits;
284 using FS =
typename Traits::FluidSystem;
285 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
286 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
290 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
293 using Indices =
typename ModelTraits::Indices;
305 template<
class ElemSol,
class Problem,
class Element,
class Scv>
307 const Problem &problem,
308 const Element &element,
312 ParentType::update(elemSol, problem, element, scv);
314 ParameterCache paramCache;
315 paramCache.updateAll(this->fluidState());
318 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
319 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
332 template<
class ElemSol,
class Problem,
class Element,
class Scv>
335 const ParameterCache& paramCache,
336 const Problem& problem,
337 const Element& element,
340 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
341 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
344 const unsigned int vIdxGlobal = scv.dofIndex();
345 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
347 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
348 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
349 const auto density = fluidState.density(phaseIdx);
350 const auto kinematicViscosity = dynamicViscosity/
density;
352 using FluidSystem =
typename Traits::FluidSystem;
353 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
354 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
357 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
358 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
359 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
360 prandtlNumber_[phaseIdx],
362 ModelTraits::nusseltFormulation());
377 template<
class ElemSol,
class Problem,
class Element,
class Scv>
380 const ParameterCache& paramCache,
381 const Problem& problem,
382 const Element& element,
385 using FluidSolidInterfacialAreaFormulation =
typename Problem::SpatialParams::FluidSolidInterfacialAreaFormulation;
386 interfacialArea_ = FluidSolidInterfacialAreaFormulation::fluidSolidInterfacialArea(this->
porosity(), characteristicLength());
391 {
return reynoldsNumber_[phaseIdx]; }
395 {
return prandtlNumber_[phaseIdx]; }
399 {
return nusseltNumber_[phaseIdx]; }
403 {
return characteristicLength_; }
407 {
return factorEnergyTransfer_; }
410 {
return interfacialArea_;}
414 NumFluidPhasesArray reynoldsNumber_;
415 NumFluidPhasesArray prandtlNumber_;
416 NumFluidPhasesArray nusseltNumber_;
418 Scalar characteristicLength_;
419 Scalar factorEnergyTransfer_;
420 Scalar interfacialArea_ ;
426template<
class Traits,
class EquilibriumVolumeVariables>
428 EquilibriumVolumeVariables,
432:
public EquilibriumVolumeVariables
434 using ParentType = EquilibriumVolumeVariables;
435 using FluidState =
typename Traits::FluidState;
436 using FS =
typename Traits::FluidSystem;
437 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
438 using Scalar =
typename Traits::PrimaryVariables::value_type;
440 using ModelTraits =
typename Traits::ModelTraits;
442 static constexpr auto phase0Idx = FS::phase0Idx;
443 static constexpr auto phase1Idx = FS::phase1Idx;
444 static constexpr auto wCompIdx = FS::comp0Idx;
445 static constexpr auto nCompIdx = FS::comp1Idx;
449 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
452 using Indices =
typename ModelTraits::Indices;
462 template<
class ElemSol,
class Problem,
class Element,
class Scv>
464 const Problem &problem,
465 const Element &element,
469 ParentType::update(elemSol, problem, element, scv);
471 ParameterCache paramCache;
472 paramCache.updateAll(this->fluidState());
473 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
474 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
487 template<
class ElemSol,
class Problem,
class Element,
class Scv>
489 const FluidState& fluidState,
490 const ParameterCache& paramCache,
491 const Problem& problem,
492 const Element& element,
495 factorMassTransfer_ = problem.spatialParams().factorMassTransfer(element, scv, elemSol);
496 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
499 const unsigned int vIdxGlobal = scv.dofIndex();
500 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
502 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
503 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
504 const auto density = fluidState.density(phaseIdx);
505 const auto kinematicViscosity = dynamicViscosity/
density;
508 using FluidSystem =
typename Traits::FluidSystem;
509 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
515 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
516 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
517 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
518 schmidtNumber_[phaseIdx],
519 ModelTraits::sherwoodFormulation());
533 template<
class ElemSol,
class Problem,
class Element,
class Scv>
535 const FluidState& fluidState,
536 const ParameterCache& paramCache,
537 const Problem& problem,
538 const Element& element,
545 const auto fluidMatrixInteraction = Deprecated::makeInterfacialArea(Scalar{}, problem.spatialParams(), element, scv, elemSol);
547 const auto Sw = fluidState.saturation(phase0Idx) ;
548 const auto pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
552 interfacialArea_ = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
558 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
561 assert( (phaseIIdx == phase1Idx && phaseJIdx == phase0Idx)
562 || (phaseIIdx == phase0Idx && phaseJIdx == phase1Idx) );
563 return interfacialArea_;
568 {
return reynoldsNumber_[phaseIdx]; }
572 {
return schmidtNumber_[phaseIdx]; }
576 {
return sherwoodNumber_[phaseIdx]; }
580 {
return characteristicLength_; }
584 {
return factorMassTransfer_; }
587 Scalar characteristicLength_;
588 Scalar factorMassTransfer_;
589 Scalar interfacialArea_ ;
590 NumFluidPhasesArray sherwoodNumber_;
591 NumFluidPhasesArray schmidtNumber_;
592 NumFluidPhasesArray reynoldsNumber_;
596template<
class Traits,
class EquilibriumVolumeVariables>
598 EquilibriumVolumeVariables,
602:
public EquilibriumVolumeVariables
604 using ParentType = EquilibriumVolumeVariables;
605 using FluidState =
typename Traits::FluidState;
606 using FS =
typename Traits::FluidSystem;
607 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
608 using Scalar =
typename Traits::PrimaryVariables::value_type;
610 using ModelTraits =
typename Traits::ModelTraits;
611 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
612 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
614 static constexpr auto phase0Idx = FS::phase0Idx;
615 static constexpr auto phase1Idx = FS::phase1Idx;
616 static constexpr auto sPhaseIdx = FS::numPhases;
617 static constexpr auto wCompIdx = FS::comp0Idx;
618 static constexpr auto nCompIdx = FS::comp1Idx;
621 static_assert((numEnergyEqFluid > 1),
"This model only deals with energy transfer between two fluids and one solid phase");
623 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
624 using InterfacialAreasArray = std::array<std::array<Scalar, ModelTraits::numFluidPhases()+numEnergyEqSolid>,
625 ModelTraits::numFluidPhases()+numEnergyEqSolid>;
628 using Indices =
typename ModelTraits::Indices;
639 template<
class ElemSol,
class Problem,
class Element,
class Scv>
641 const Problem &problem,
642 const Element &element,
646 ParentType::update(elemSol, problem, element, scv);
648 ParameterCache paramCache;
649 paramCache.updateAll(this->fluidState());
650 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
651 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
664 template<
class ElemSol,
class Problem,
class Element,
class Scv>
666 const FluidState& fluidState,
667 const ParameterCache& paramCache,
668 const Problem& problem,
669 const Element& element,
672 factorMassTransfer_ = problem.spatialParams().factorMassTransfer(element, scv, elemSol);
673 factorEnergyTransfer_ = problem.spatialParams().factorEnergyTransfer(element, scv, elemSol);
674 characteristicLength_ = problem.spatialParams().characteristicLength(element, scv, elemSol);
676 const auto vIdxGlobal = scv.dofIndex();
677 using FluidSystem =
typename Traits::FluidSystem;
678 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
680 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
681 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
682 const auto density = fluidState.density(phaseIdx);
683 const auto kinematicViscosity = dynamicViscosity/
density;
684 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
685 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
689 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
695 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
696 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
697 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
698 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
699 prandtlNumber_[phaseIdx],
701 ModelTraits::nusseltFormulation());
703 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
704 schmidtNumber_[phaseIdx],
705 ModelTraits::sherwoodFormulation());
719 template<
class ElemSol,
class Problem,
class Element,
class Scv>
721 const FluidState& fluidState,
722 const ParameterCache& paramCache,
723 const Problem& problem,
724 const Element& element,
727 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
728 const Scalar Sw = fluidState.saturation(phase0Idx);
733 const auto fluidMatrixInteraction = Deprecated::makeInterfacialArea(Scalar{}, problem.spatialParams(), element, scv, elemSol);
735 const auto awn = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
736 interfacialArea_[phase0Idx][phase1Idx] = awn;
737 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
738 interfacialArea_[phase0Idx][phase0Idx] = 0.;
740 const auto ans = fluidMatrixInteraction.nonwettingSolidInterface().area(Sw, pc);
744 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
745 if (computeAwsFromAnsAndPcMax)
748 const Scalar pcMax = fluidMatrixInteraction.wettingNonwettingInterface().basicParams().pcMax();
749 const auto solidSurface = fluidMatrixInteraction.nonwettingSolidInterface().area(0., pcMax);
750 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
753 interfacialArea_[phase0Idx][sPhaseIdx] = fluidMatrixInteraction.wettingSolidInterface().area(Sw, pc);
755 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
756 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.;
758 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
759 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
760 interfacialArea_[phase1Idx][phase1Idx] = 0.;
767 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
770 assert(phaseIIdx not_eq phaseJIdx);
771 return interfacialArea_[phaseIIdx][phaseJIdx];
776 {
return reynoldsNumber_[phaseIdx]; }
780 {
return prandtlNumber_[phaseIdx]; }
784 {
return nusseltNumber_[phaseIdx]; }
788 {
return schmidtNumber_[phaseIdx]; }
792 {
return sherwoodNumber_[phaseIdx]; }
796 {
return characteristicLength_; }
800 {
return factorEnergyTransfer_; }
804 {
return factorMassTransfer_; }
808 NumFluidPhasesArray reynoldsNumber_;
809 NumFluidPhasesArray prandtlNumber_;
810 NumFluidPhasesArray nusseltNumber_;
811 NumFluidPhasesArray schmidtNumber_;
812 NumFluidPhasesArray sherwoodNumber_;
813 Scalar characteristicLength_;
814 Scalar factorEnergyTransfer_;
815 Scalar factorMassTransfer_;
816 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:65
This class contains the volume variables required for the modules which require the specific interfac...
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:51
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:174
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:254
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:242
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:230
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:94
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:104
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:238
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:129
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:246
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:250
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:93
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:293
const Scalar fluidSolidInterfacialArea() const
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:409
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:402
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:390
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:333
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:378
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:398
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:394
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:294
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:406
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:306
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:463
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:567
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:488
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:452
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:579
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:575
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:583
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:558
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:534
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:571
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:795
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:791
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:628
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:640
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:803
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:799
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:787
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:783
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:767
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:779
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:665
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:775
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:720