/*--------------------------------*- C++ -*----------------------------------*\
  ==  == ====== ====   ====    |
                    \\     ||  | Multiphase Code Repository by HZDR
  ======   //   ||  || ===//   | Website: https://doi.org/10.14278/rodare.767
  ||  ||  //    ||  // || \\   | License: GPL-3.0-or-later
  ==  == ====== ====   ==  ==  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "constant";
    object      fvModels;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#includeModel addonInterfaceTurbulenceDamping(phase=gasC)

#includeModel degassingPhases
(
    degassingPhases=(liquidD),
    patches=(gasOutlet),
    continuousPhase="gasC"
)

injector
{
    type            massSource;

    phase           gasC;

    selectionMode   cellZone;
    cellZone        injector;

    massFlowRate
    {
        #include "${FOAM_CASE}/constant/caseSettings"
        type        $valve/type;
        frequency   $valve/frequency;
        start       $valve/start;
        amplitude   $valve/massFlowRate;
        level       $amplitude;
    }
}

#includeModel disintegrationToDisperse
(
    name=disintegrationToDisperseGas,
    from=gasC,
    to=gasD,
    timeScale=1e-4
)

#includeModel disintegrationToDisperse
(
    name=disintegrationToDisperseLiquid,
    from=liquidC,
    to=liquidD,
    timeScale=1e-4
)

#includeModel accumulationToContinuous
(
    name=accumulationToContinuousGas,
    from=gasD,
    to=gasC,
    timeScale=1e-4
)

#includeModel accumulationToContinuous
(
    name=accumulationToContinuousLiquid,
    from=liquidD,
    to=liquidC,
    timeScale=1e-4
)

phaseMassController
{
    type                phaseMassController;
    libs                ( "libaddonMultiphaseEulerFvModels.so" );

    controlledPhases    ( liquidC liquidD );
    bufferPhase         gasC;
}

#includeModel baselineInducedTurbulence(phase=liquidC, dispersedPhases=(gasD))
#includeModel baselineInducedTurbulence(phase=gasC, dispersedPhases=(liquidD))

#includeModel addonPhaseTurbulenceStabilisation(phase=gasC)
#includeModel addonPhaseTurbulenceStabilisation(phase=liquidC)

// ************************************************************************* //
