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 const auto& spatialParams = problem.spatialParams();
135 factorEnergyTransfer_ = spatialParams.factorEnergyTransfer(element, scv, elemSol);
136 characteristicLength_ = spatialParams.characteristicLength(element, scv, elemSol);
139 const unsigned int vIdxGlobal = scv.dofIndex();
140 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
142 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
143 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
144 const auto density = fluidState.density(phaseIdx);
145 const auto kinematicViscosity = dynamicViscosity/
density;
147 using FluidSystem =
typename Traits::FluidSystem;
148 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
149 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
152 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
153 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
154 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
155 prandtlNumber_[phaseIdx],
157 ModelTraits::nusseltFormulation());
172 template<
class ElemSol,
class Problem,
class Element,
class Scv>
175 const ParameterCache& paramCache,
176 const Problem& problem,
177 const Element& element,
180 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
181 const Scalar Sw = fluidState.saturation(phase0Idx);
183 const auto fluidMatrixInteraction = problem.spatialParams().fluidMatrixInteraction(element, scv, elemSol);
184 const auto awn = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
185 const auto ans = fluidMatrixInteraction.nonwettingSolidInterface().area(Sw, pc);
186 interfacialArea_[phase0Idx][phase1Idx] = awn;
187 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
188 interfacialArea_[phase0Idx][phase0Idx] = 0.0;
192 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
193 if (computeAwsFromAnsAndPcMax)
196 const Scalar pcMax = fluidMatrixInteraction.wettingNonwettingInterface().basicParams().pcMax();
197 const auto solidSurface = fluidMatrixInteraction.nonwettingSolidInterface().area(0., pcMax);
198 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
201 interfacialArea_[phase0Idx][sPhaseIdx] = fluidMatrixInteraction.wettingSolidInterface().area(Sw, pc);
203 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
204 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.0;
206 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
207 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
208 interfacialArea_[phase1Idx][phase1Idx] = 0.0;
215 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
218 assert(phaseIIdx not_eq phaseJIdx);
219 return interfacialArea_[phaseIIdx][phaseJIdx];
224 {
return reynoldsNumber_[phaseIdx]; }
228 {
return prandtlNumber_[phaseIdx]; }
232 {
return nusseltNumber_[phaseIdx]; }
236 {
return characteristicLength_; }
240 {
return factorEnergyTransfer_; }
244 NumFluidPhasesArray reynoldsNumber_;
245 NumFluidPhasesArray prandtlNumber_;
246 NumFluidPhasesArray nusseltNumber_;
248 Scalar characteristicLength_;
249 Scalar factorEnergyTransfer_;
250 InterfacialAreasArray interfacialArea_;
256template<
class Traits,
class EquilibriumVolumeVariables>
258 EquilibriumVolumeVariables,
262:
public EquilibriumVolumeVariables
264 using ParentType = EquilibriumVolumeVariables;
265 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
266 using Scalar =
typename Traits::PrimaryVariables::value_type;
268 using ModelTraits =
typename Traits::ModelTraits;
269 using FS =
typename Traits::FluidSystem;
270 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
271 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
275 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
278 using Indices =
typename ModelTraits::Indices;
290 template<
class ElemSol,
class Problem,
class Element,
class Scv>
292 const Problem &problem,
293 const Element &element,
297 ParentType::update(elemSol, problem, element, scv);
299 ParameterCache paramCache;
300 paramCache.updateAll(this->fluidState());
303 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
304 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
317 template<
class ElemSol,
class Problem,
class Element,
class Scv>
320 const ParameterCache& paramCache,
321 const Problem& problem,
322 const Element& element,
325 const auto& spatialParams = problem.spatialParams();
326 factorEnergyTransfer_ = spatialParams.factorEnergyTransfer(element, scv, elemSol);
327 characteristicLength_ = spatialParams.characteristicLength(element, scv, elemSol);
330 const unsigned int vIdxGlobal = scv.dofIndex();
331 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
333 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
334 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
335 const auto density = fluidState.density(phaseIdx);
336 const auto kinematicViscosity = dynamicViscosity/
density;
338 using FluidSystem =
typename Traits::FluidSystem;
339 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
340 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
343 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_,kinematicViscosity);
344 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
345 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
346 prandtlNumber_[phaseIdx],
348 ModelTraits::nusseltFormulation());
363 template<
class ElemSol,
class Problem,
class Element,
class Scv>
366 const ParameterCache& paramCache,
367 const Problem& problem,
368 const Element& element,
371 using FluidSolidInterfacialAreaFormulation =
typename Problem::SpatialParams::FluidSolidInterfacialAreaFormulation;
372 interfacialArea_ = FluidSolidInterfacialAreaFormulation::fluidSolidInterfacialArea(this->
porosity(), characteristicLength());
377 {
return reynoldsNumber_[phaseIdx]; }
381 {
return prandtlNumber_[phaseIdx]; }
385 {
return nusseltNumber_[phaseIdx]; }
389 {
return characteristicLength_; }
393 {
return factorEnergyTransfer_; }
396 {
return interfacialArea_;}
400 NumFluidPhasesArray reynoldsNumber_;
401 NumFluidPhasesArray prandtlNumber_;
402 NumFluidPhasesArray nusseltNumber_;
404 Scalar characteristicLength_;
405 Scalar factorEnergyTransfer_;
406 Scalar interfacialArea_ ;
412template<
class Traits,
class EquilibriumVolumeVariables>
414 EquilibriumVolumeVariables,
418:
public EquilibriumVolumeVariables
420 using ParentType = EquilibriumVolumeVariables;
421 using FluidState =
typename Traits::FluidState;
422 using FS =
typename Traits::FluidSystem;
423 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
424 using Scalar =
typename Traits::PrimaryVariables::value_type;
426 using ModelTraits =
typename Traits::ModelTraits;
428 static constexpr auto phase0Idx = FS::phase0Idx;
429 static constexpr auto phase1Idx = FS::phase1Idx;
430 static constexpr auto wCompIdx = FS::comp0Idx;
431 static constexpr auto nCompIdx = FS::comp1Idx;
435 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
438 using Indices =
typename ModelTraits::Indices;
448 template<
class ElemSol,
class Problem,
class Element,
class Scv>
450 const Problem &problem,
451 const Element &element,
455 ParentType::update(elemSol, problem, element, scv);
457 ParameterCache paramCache;
458 paramCache.updateAll(this->fluidState());
459 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
460 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
473 template<
class ElemSol,
class Problem,
class Element,
class Scv>
475 const FluidState& fluidState,
476 const ParameterCache& paramCache,
477 const Problem& problem,
478 const Element& element,
481 const auto& spatialParams = problem.spatialParams();
482 factorMassTransfer_ = spatialParams.factorMassTransfer(element, scv, elemSol);
483 characteristicLength_ = spatialParams.characteristicLength(element, scv, elemSol);
486 const unsigned int vIdxGlobal = scv.dofIndex();
487 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
489 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
490 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
491 const auto density = fluidState.density(phaseIdx);
492 const auto kinematicViscosity = dynamicViscosity/
density;
495 using FluidSystem =
typename Traits::FluidSystem;
496 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
502 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
503 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
504 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
505 schmidtNumber_[phaseIdx],
506 ModelTraits::sherwoodFormulation());
520 template<
class ElemSol,
class Problem,
class Element,
class Scv>
522 const FluidState& fluidState,
523 const ParameterCache& paramCache,
524 const Problem& problem,
525 const Element& element,
528 const auto Sw = fluidState.saturation(phase0Idx) ;
529 const auto pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
533 const auto fluidMatrixInteraction = problem.spatialParams().fluidMatrixInteraction(element, scv, elemSol);
534 interfacialArea_ = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
540 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
543 assert( (phaseIIdx == phase1Idx && phaseJIdx == phase0Idx)
544 || (phaseIIdx == phase0Idx && phaseJIdx == phase1Idx) );
545 return interfacialArea_;
550 {
return reynoldsNumber_[phaseIdx]; }
554 {
return schmidtNumber_[phaseIdx]; }
558 {
return sherwoodNumber_[phaseIdx]; }
562 {
return characteristicLength_; }
566 {
return factorMassTransfer_; }
569 Scalar characteristicLength_;
570 Scalar factorMassTransfer_;
571 Scalar interfacialArea_ ;
572 NumFluidPhasesArray sherwoodNumber_;
573 NumFluidPhasesArray schmidtNumber_;
574 NumFluidPhasesArray reynoldsNumber_;
578template<
class Traits,
class EquilibriumVolumeVariables>
580 EquilibriumVolumeVariables,
584:
public EquilibriumVolumeVariables
586 using ParentType = EquilibriumVolumeVariables;
587 using FluidState =
typename Traits::FluidState;
588 using FS =
typename Traits::FluidSystem;
589 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
590 using Scalar =
typename Traits::PrimaryVariables::value_type;
592 using ModelTraits =
typename Traits::ModelTraits;
593 static constexpr auto numEnergyEqFluid = ModelTraits::numEnergyEqFluid();
594 static constexpr auto numEnergyEqSolid = ModelTraits::numEnergyEqSolid();
596 static constexpr auto phase0Idx = FS::phase0Idx;
597 static constexpr auto phase1Idx = FS::phase1Idx;
598 static constexpr auto sPhaseIdx = FS::numPhases;
599 static constexpr auto wCompIdx = FS::comp0Idx;
600 static constexpr auto nCompIdx = FS::comp1Idx;
603 static_assert((numEnergyEqFluid > 1),
"This model only deals with energy transfer between two fluids and one solid phase");
605 using NumFluidPhasesArray = std::array<Scalar, ModelTraits::numFluidPhases()>;
606 using InterfacialAreasArray = std::array<std::array<Scalar, ModelTraits::numFluidPhases()+numEnergyEqSolid>,
607 ModelTraits::numFluidPhases()+numEnergyEqSolid>;
610 using Indices =
typename ModelTraits::Indices;
621 template<
class ElemSol,
class Problem,
class Element,
class Scv>
623 const Problem &problem,
624 const Element &element,
628 ParentType::update(elemSol, problem, element, scv);
630 ParameterCache paramCache;
631 paramCache.updateAll(this->fluidState());
632 updateDimLessNumbers(elemSol, this->fluidState(), paramCache, problem, element, scv);
633 updateInterfacialArea(elemSol, this->fluidState(), paramCache, problem, element, scv);
646 template<
class ElemSol,
class Problem,
class Element,
class Scv>
648 const FluidState& fluidState,
649 const ParameterCache& paramCache,
650 const Problem& problem,
651 const Element& element,
654 const auto& spatialParams = problem.spatialParams();
655 factorMassTransfer_ = spatialParams.factorMassTransfer(element, scv, elemSol);
656 factorEnergyTransfer_ = spatialParams.factorEnergyTransfer(element, scv, elemSol);
657 characteristicLength_ = spatialParams.characteristicLength(element, scv, elemSol);
659 const auto vIdxGlobal = scv.dofIndex();
660 using FluidSystem =
typename Traits::FluidSystem;
661 for (
int phaseIdx = 0; phaseIdx < ModelTraits::numFluidPhases(); ++phaseIdx)
663 const auto darcyMagVelocity = problem.gridVariables().volumeDarcyMagVelocity(phaseIdx, vIdxGlobal);
664 const auto dynamicViscosity = fluidState.viscosity(phaseIdx);
665 const auto density = fluidState.density(phaseIdx);
666 const auto kinematicViscosity = dynamicViscosity/
density;
667 const auto heatCapacity = FluidSystem::heatCapacity(fluidState, paramCache, phaseIdx);
668 const auto thermalConductivity = FluidSystem::thermalConductivity(fluidState, paramCache, phaseIdx);
672 const auto diffCoeff = FluidSystem::binaryDiffusionCoefficient(fluidState,
678 reynoldsNumber_[phaseIdx] = DimLessNum::reynoldsNumber(darcyMagVelocity, characteristicLength_, kinematicViscosity);
679 prandtlNumber_[phaseIdx] = DimLessNum::prandtlNumber(dynamicViscosity, heatCapacity, thermalConductivity);
680 schmidtNumber_[phaseIdx] = DimLessNum::schmidtNumber(dynamicViscosity,
density, diffCoeff);
681 nusseltNumber_[phaseIdx] = DimLessNum::nusseltNumberForced(reynoldsNumber_[phaseIdx],
682 prandtlNumber_[phaseIdx],
684 ModelTraits::nusseltFormulation());
686 sherwoodNumber_[phaseIdx] = DimLessNum::sherwoodNumber(reynoldsNumber_[phaseIdx],
687 schmidtNumber_[phaseIdx],
688 ModelTraits::sherwoodFormulation());
702 template<
class ElemSol,
class Problem,
class Element,
class Scv>
704 const FluidState& fluidState,
705 const ParameterCache& paramCache,
706 const Problem& problem,
707 const Element& element,
710 const Scalar pc = fluidState.pressure(phase1Idx) - fluidState.pressure(phase0Idx);
711 const Scalar Sw = fluidState.saturation(phase0Idx);
713 const auto fluidMatrixInteraction = problem.spatialParams().fluidMatrixInteraction(element, scv, elemSol);
715 const auto awn = fluidMatrixInteraction.wettingNonwettingInterface().area(Sw, pc);
716 interfacialArea_[phase0Idx][phase1Idx] = awn;
717 interfacialArea_[phase1Idx][phase0Idx] = interfacialArea_[phase0Idx][phase1Idx];
718 interfacialArea_[phase0Idx][phase0Idx] = 0.;
720 const auto ans = fluidMatrixInteraction.nonwettingSolidInterface().area(Sw, pc);
724 static const bool computeAwsFromAnsAndPcMax = getParam<bool>(
"SpatialParams.ComputeAwsFromAnsAndPcMax",
true);
725 if (computeAwsFromAnsAndPcMax)
728 const Scalar pcMax = fluidMatrixInteraction.wettingNonwettingInterface().basicParams().pcMax();
729 const auto solidSurface = fluidMatrixInteraction.nonwettingSolidInterface().area(0., pcMax);
730 interfacialArea_[phase0Idx][sPhaseIdx] = solidSurface - ans;
733 interfacialArea_[phase0Idx][sPhaseIdx] = fluidMatrixInteraction.wettingSolidInterface().area(Sw, pc);
735 interfacialArea_[sPhaseIdx][phase0Idx] = interfacialArea_[phase0Idx][sPhaseIdx];
736 interfacialArea_[sPhaseIdx][sPhaseIdx] = 0.;
738 interfacialArea_[phase1Idx][sPhaseIdx] = ans;
739 interfacialArea_[sPhaseIdx][phase1Idx] = interfacialArea_[phase1Idx][sPhaseIdx];
740 interfacialArea_[phase1Idx][phase1Idx] = 0.;
747 const Scalar
interfacialArea(
const unsigned int phaseIIdx,
const unsigned int phaseJIdx)
const
750 assert(phaseIIdx not_eq phaseJIdx);
751 return interfacialArea_[phaseIIdx][phaseJIdx];
756 {
return reynoldsNumber_[phaseIdx]; }
760 {
return prandtlNumber_[phaseIdx]; }
764 {
return nusseltNumber_[phaseIdx]; }
768 {
return schmidtNumber_[phaseIdx]; }
772 {
return sherwoodNumber_[phaseIdx]; }
776 {
return characteristicLength_; }
780 {
return factorEnergyTransfer_; }
784 {
return factorMassTransfer_; }
788 NumFluidPhasesArray reynoldsNumber_;
789 NumFluidPhasesArray prandtlNumber_;
790 NumFluidPhasesArray nusseltNumber_;
791 NumFluidPhasesArray schmidtNumber_;
792 NumFluidPhasesArray sherwoodNumber_;
793 Scalar characteristicLength_;
794 Scalar factorEnergyTransfer_;
795 Scalar factorMassTransfer_;
796 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: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:173
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:239
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:227
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:215
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:223
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:231
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:235
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:91
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:278
const Scalar fluidSolidInterfacialArea() const
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:395
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:388
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:376
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:318
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:364
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:384
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:380
typename Traits::FluidState FluidState
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:279
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:392
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:291
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:449
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:549
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:474
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:438
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:561
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:557
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:565
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:540
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:521
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:553
const Scalar characteristicLength() const
access function characteristic length
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:775
const Scalar sherwoodNumber(const unsigned int phaseIdx) const
access function Sherwood Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:771
typename ModelTraits::Indices Indices
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:610
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:622
const Scalar factorMassTransfer() const
access function pre factor mass transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:783
const Scalar factorEnergyTransfer() const
access function pre factor energy transfer
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:779
const Scalar schmidtNumber(const unsigned int phaseIdx) const
access function Schmidt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:767
const Scalar nusseltNumber(const unsigned int phaseIdx) const
access function Nusselt Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:763
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:747
const Scalar prandtlNumber(const unsigned int phaseIdx) const
access function Prandtl Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:759
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:647
const Scalar reynoldsNumber(const unsigned int phaseIdx) const
access function Reynolds Number
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:755
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:703