12#ifndef DUMUX_PNM_TWOP_IO_FIELDS_HH
13#define DUMUX_PNM_TWOP_IO_FIELDS_HH
27 template <
class OutputModule>
32 using VolumeVariables =
typename OutputModule::VolumeVariables;
33 using FS =
typename VolumeVariables::FluidSystem;
37 out.addFluxVariable([](
const auto& fluxVars,
const auto& fluxVarsCache)
38 {
return fluxVarsCache.pcEntry(); },
"pcEntry");
40 out.addFluxVariable([](
const auto& fluxVars,
const auto& fluxVarsCache)
41 {
return fluxVarsCache.transmissibility(FS::phase0Idx); },
"transmissibilityW");
43 out.addFluxVariable([](
const auto& fluxVars,
const auto& fluxVarsCache)
44 {
return fluxVarsCache.transmissibility(FS::phase1Idx); },
"transmissibilityN");
46 auto volumeFluxW = [](
const auto& fluxVars,
const auto& fluxVarsCache)
48 auto upwindTerm = [](
const auto& volVars) {
return volVars.mobility(FS::phase0Idx); };
50 return abs(fluxVars.advectiveFlux(FS::phase0Idx, upwindTerm));
52 out.addFluxVariable(volumeFluxW,
"volumeFluxW");
54 auto volumeFluxN = [](
const auto& fluxVars,
const auto& fluxVarsCache)
56 auto upwindTerm = [](
const auto& volVars) {
return volVars.mobility(FS::phase1Idx); };
58 return abs(fluxVars.advectiveFlux(FS::phase1Idx, upwindTerm));
60 out.addFluxVariable(volumeFluxN,
"volumeFluxN");
63 template <
class ModelTraits,
class Flu
idSystem,
class Sol
idSystem =
void>
66 return TwoPIOFields::template primaryVariableName<ModelTraits, FluidSystem, SolidSystem>(pvIdx, state);
static void initOutputModule(OutputModule &out)
Definition: porenetwork/common/iofields.hh:28
Adds output fields specific to the PNM 2p model.
Definition: porenetwork/2p/iofields.hh:25
static std::string primaryVariableName(int pvIdx, int state=0)
Definition: porenetwork/2p/iofields.hh:64
static void initOutputModule(OutputModule &out)
Definition: porenetwork/2p/iofields.hh:28
static void initOutputModule(OutputModule &out)
Definition: porousmediumflow/2p/iofields.hh:30
Definition: discretization/porenetwork/fvelementgeometry.hh:24
Adds I/O fields specific to the two-phase model.