Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Multiphase model

Multiphase models can put in place simulations with liquid-liquid, liquid-gas, gas-gas and fluid-solid interactions. One of the more simple multiphase solver is:

interFoam

Which solves the Navier Stokes equations for two incompressible, isothermal immiscible fluids. That means that the material properties are constant in the region filled by one of the two fluid except at the interphase. Transferrable, a similar pattern is present fot all the multiphase solver hence additional set-up must take place to deliver a simulation with more than one phase.

Set-up

In a multiphase simulation you need to define the phase properties and its interaction through the constant directory. Looking at the necessary file to run a more complex solver for liquid/gasseous interaction in a disperse phase like twoPhaseEulerFoam. The constant directory should look like this:

constant
├── phaseProperties
├── thermophysicalProperties.hydrogen
├── thermophysicalProperties.water
├── turbulenceProperties.hydrogen
└── turbulenceProperties.water

It this scenario we have the liquid phase as water, describing its theral behaviour in thermophysicalProperties.water

    ...
    object      thermophysicalProperties.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState rhoConst;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
{
   equationOfState
    {
        rho             983.2;              // density     [kg/m^3]   at 60°C  
    }
    specie
    {
        molWeight       18.01528;           // water molecular weight   [g/mol]
    }
    thermodynamics
    {
        Cp              4190;               // Specific Heat at 90°C         [J/Kg K]
        Hf              0;                  // Heat of fusion - 0 in single phase
    }
    transport
    {
        mu              4.66E-04;           // dynamic viscosity at 90°C   [Kg/m s]
        Pr              2.98;               // Prandtl Number at 90°C      [nu/alfa] = [mu Cp/k] [-]    
    }
}

While the interaction between the two phases should look something like:

FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

type isothermalPhaseModel ;
phases          (hydrogen water);

hydrogen
{
    diameterModel   isothermal;
    isothermalCoeffs
    {
        d0              3e-5;
        p0              1e5;
    }
    residualAlpha   1e-6;
}

water
{
    diameterModel   constant;
    constantCoeffs
    {
        d               1e-6;
    }
    residualAlpha   1e-6;
}

blending
{
    default
    {
        type            linear;
        maxFullyDispersedAlpha.hydrogen 0.7;
        maxPartlyDispersedAlpha.hydrogen 0.7;
        maxFullyDispersedAlpha.water 0.7;
        maxPartlyDispersedAlpha.water 0.7;
    }
}

sigma
(
    (hydrogen and water)     0.07
);

aspectRatio
(
    (hydrogen in water)
    {
        type            constant;
        E0              1.0;
    }

    (water in hydrogen)
    {
        type            constant;
        E0              1.0;
    }
);

drag
(
    (hydrogen in water)
    {
        type            SchillerNaumann;
        residualRe      1e-3;
        swarmCorrection
        {
            type        none;
        }
    }

    (water in hydrogen)
    {
        type            SchillerNaumann;
        residualRe      1e-3;
        swarmCorrection
        {
            type        none;
        }
    }

    (hydrogen and water)
    {
        type            segregated;
        residualAlpha   1e-6;
        m               0.5;
        n               8;
        swarmCorrection
        {
            type        none;
        }
    }
);

virtualMass
(
    (hydrogen in water)
    {
        type            constantCoefficient;
        Cvm             0.5;
    }

    (water in hydrogen)
    {
        type            constantCoefficient;
        Cvm             0.5;
    }
);

heatTransfer
(
    (hydrogen in water)
    {
        type            RanzMarshall;
        residualAlpha   1e-3;
    }

    (water in hydrogen)
    {
        type            RanzMarshall;
        residualAlpha   1e-3;
    }
);

lift
(
);

wallLubrication
(
);

turbulentDispersion
(
);

// Minimum allowable pressure
pMin            10000;

where sigma is the surface tension between the interfaces

If you change the name of the fluid in phases (water air); there is the need change the extension of the name as well in 0 because the nomenclature must be consistent:

0
├── alpha.hydrogen
├── p
├── p_rgh
├── Theta
├── T.hydrogen
├── T.water
├── U.hydrogen
└── U.water

Even remember that the first material that you define in the first row of this document will be taken as the first term of the VOF (volume of fluid) equation.

Warning: In fvSolutions miss the keyword cAlpha 1.0 to put in the section of alphaWater.*