solvers::multiphaseEuler: New solver module for Euler-Euler multiphase simulations

executed with foamRun for single region simulations of foamMultiRun for
multi-region simulations.  Replaces multiphaseEulerFoam and all the
corresponding tutorials have been updated and moved to
tutorials/modules/multiphaseEuler.

Class
    Foam::solvers::multiphaseEuler

Description
    Solver module for a system of any number of compressible fluid phases with a
    common pressure, but otherwise separate properties. The type of phase model
    is run time selectable and can optionally represent multiple species and
    in-phase reactions. The phase system is also run time selectable and can
    optionally represent different types of momentum, heat and mass transfer.

    Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
    pseudo-transient and steady simulations.

    Optional fvModels and fvConstraints are provided to enhance the simulation
    in many ways including adding various sources, Lagrangian
    particles, surface film etc. and constraining or limiting the solution.

SourceFiles
    multiphaseEuler.C

See also
    Foam::solvers::compressibleVoF
    Foam::solvers::fluidSolver
    Foam::solvers::incompressibleFluid
This commit is contained in:
Henry Weller
2022-11-03 14:49:56 +00:00
parent 879f852b80
commit cec0359871
1621 changed files with 127852 additions and 0 deletions

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "5";
object T.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 341.65;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
phi phi.gas;
inletValue $internalField;
value $internalField;
}
wall
{
type copiedFixedValue;
sourceFieldName T.liquid;
value $internalField;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object T.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 0 0 0 1 0 0 0 ];
internalField uniform 341.67;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
phi phi.liquid;
inletValue $internalField;
value $internalField;
}
wall
{
type fixedMultiPhaseHeatFlux;
relax 0.6;
q uniform 0;
phase "liquid";
value $internalField;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volVectorField;
location "0";
object U.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (1.96244 0 0);
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform (1.96244 0 0);
}
outlet
{
type pressureInletOutletVelocity;
phi phi.gas;
value uniform (1.96244 0 0);
}
wall
{
type slip;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volVectorField;
location "0";
object U.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (1.743138395 0 0);
boundaryField
{
inlet
{
type mappedInternalValue;
average (1.743138395 0 0);
interpolationScheme cell;
value uniform (1.743138395 0 0);
}
outlet
{
type pressureInletOutletVelocity;
phi phi.liquid;
value uniform (1.743138395 0 0);
}
wall
{
type noSlip;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object alpha.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0;
}
outlet
{
type inletOutlet;
phi phi.gas;
inletValue uniform 0;
value uniform 0;
}
wall
{
type zeroGradient;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object alpha.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
inlet
{
type fixedValue;
value uniform 1;
}
outlet
{
type inletOutlet;
phi phi.liquid;
inletValue uniform 1;
value uniform 1;
}
wall
{
type zeroGradient;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,60 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object alphat.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 1e-8;
boundaryField
{
inlet
{
type calculated;
value uniform 1e-8;
}
outlet
{
type calculated;
value uniform 1e-8;
}
wall
{
type compressible::alphatWallBoilingWallFunction;
otherPhase liquid;
phaseType vapor;
Prt 0.85;
Cmu 0.09;
kappa 0.41;
E 9.8;
partitioningModel
{
type Lavieville;
alphaCrit 0.2;
}
value uniform 0;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,80 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object alphat.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 1 -1 -1 0 0 0 0 ];
internalField uniform 1e-08;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0;
}
outlet
{
type calculated;
value uniform 1e-08;
}
wall
{
type compressible::alphatWallBoilingWallFunction;
Prt 0.85;
Cmu 0.09;
kappa 0.41;
E 9.8;
relax 0.6;
otherPhase gas;
phaseType liquid;
partitioningModel
{
type Lavieville;
alphaCrit 0.2;
}
nucleationSiteModel
{
type LemmertChawla;
Cn 1;
NRef 30000000;
deltaTRef 10;
}
departureDiamModel
{
type TolubinskiKostanchuk;
dRef 0.00024;
dMax 0.0014;
dMin 1e-06;
}
departureFreqModel
{
type KocamustafaogullariIshii;
Cf 1.18;
}
value uniform 0.01;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object epsilon.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.001;
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform 0.01;
}
outlet
{
type inletOutlet;
phi phi.gas;
inletValue uniform 0.001;
}
wall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.001;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object epsilon.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.001;
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform 0.001;
}
outlet
{
type inletOutlet;
phi phi.liquid;
inletValue uniform 0.00015;
value uniform 0.001;
}
wall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.001;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object k.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.01;
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform 0.01;
}
outlet
{
type inletOutlet;
phi phi.gas;
inletValue uniform 0.01;
value uniform 0.01;
}
wall
{
type kqRWallFunction;
value uniform 0.01;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object k.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.01;
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform 0.01;
}
outlet
{
type inletOutlet;
phi phi.liquid;
inletValue uniform 3.75e-05;
value uniform 0.01;
}
wall
{
type kqRWallFunction;
value uniform 0.01;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object kappai.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 -1 0 0 0 0 0];
internalField uniform 13333;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
phi phi.gas;
inletValue $internalField;
value $internalField;
}
wall
{
type zeroGradient;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object nut.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0.0001;
boundaryField
{
inlet
{
type calculated;
value uniform 0.0001;
}
outlet
{
type calculated;
value uniform 0.0001;
}
wall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object nut.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0.0001;
boundaryField
{
inlet
{
type calculated;
value uniform 0.0001;
}
outlet
{
type calculated;
value uniform 0.0001;
}
wall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object omega.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 -1 0 0 0 0];
internalField uniform 0.01;
boundaryField
{
inlet
{
type mappedInternalValue;
interpolationScheme cell;
value uniform 0.01;
}
outlet
{
type inletOutlet;
phi phi.liquid;
inletValue uniform 0.0015;
value uniform 0.01;
}
wall
{
type omegaWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.001;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 1 -1 -2 0 0 0 0 ];
internalField uniform 2.62e+06;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
wall
{
type calculated;
value $internalField;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "5";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 2.62e6;
boundaryField
{
inlet
{
type fixedFluxPressure;
}
outlet
{
type prghPressure;
p $internalField;
value $internalField;
}
wall
{
type fixedFluxPressure;
}
front
{
type wedge;
}
back
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -rf validation/*.eps

View File

@ -0,0 +1,34 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication extrudeMesh
runApplication decomposePar
runParallel $(getApplication)
if ! isTest "$@"
then
runApplication -a foamDictionary system/controlDict -entry endTime -set 4
runApplication -a foamDictionary system/controlDict -entry startTime -set 0.5
runParallel -a foamDictionary 0.5/T.liquid -entry boundaryField/wall/q -set "uniform 73890"
runParallel -a foamDictionary 0.5/U.liquid -entry boundaryField/inlet/type -set "fixedValue"
runParallel -a $(getApplication)
fi
runApplication reconstructPar -latestTime
runApplication foamPostProcess -latestTime -func "
graphCell
(
funcName=graph,
start=(3.4901 0 0),
end=(3.4901 0.0096 0),
fields=(alpha.gas T.liquid T.gas d.gas)
)"
./validation/createGraphs
#------------------------------------------------------------------------------

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( -9.81 0 0 );
// ************************************************************************* //

View File

@ -0,0 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object momentumTransport.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,27 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object momentumTransport.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
model kOmegaSSTSato;
turbulence on;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -0,0 +1,209 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type thermalPhaseChangeMultiphaseSystem;
phases (gas liquid);
gas
{
type purePhaseModel;
diameterModel IATE;
IATECoeffs
{
dMax 1e-2;
dMin 1e-4;
residualAlpha 1e-4;
sources
(
wakeEntrainmentCoalescence
{
Cwe 0.002;
}
randomCoalescence
{
Crc 0.04;
C 3;
alphaMax 0.75;
}
turbulentBreakUp
{
Cti 0.085;
WeCr 6;
}
phaseChange
{
otherPhase liquid;
dmdtf thermalPhaseChange:dmdtf;
}
wallBoiling
{}
);
}
constantCoeffs
{
d 0.00045;
}
residualAlpha 1e-6;
}
liquid
{
type purePhaseModel;
diameterModel none;
Sc 0.7;
residualAlpha 1e-6;
}
drag
{
gas_dispersedIn_liquid
{
type IshiiZuber;
}
}
virtualMass
{
gas_dispersedIn_liquid
{
type constantCoefficient;
Cvm 0.5;
}
}
heatTransfer
{
gas_dispersedIn_liquid_inThe_gas
{
type constantNu;
Nu 1e1;
residualAlpha 1e-4;
}
gas_dispersedIn_liquid_inThe_liquid
{
type RanzMarshall;
residualAlpha 1e-4;
}
}
lift
{
gas_dispersedIn_liquid
{
type wallDamped;
lift
{
type Tomiyama;
Cl 0.288;
aspectRatio
{
type constant;
E0 1;
}
}
wallDamping
{
type cosine;
Cd 1.0;
zeroWallDist 0.0002;
}
}
}
wallLubrication
{
gas_dispersedIn_liquid
{
type Antal;
Cw1 -0.01;
Cw2 0.05;
}
}
turbulentDispersion
{
gas_dispersedIn_liquid
{
type LopezDeBertodano;
Ctd 1.0;
residualAlpha 1e-3;
}
}
blending
{
default
{
type continuous;
phase liquid;
}
}
saturation
{
gas_liquid
{
type function1;
function scale;
xScale 1e-6;
scale 1;
value
{
type tableFile;
format csv;
nHeaderLine 1;
refColumn 1;
componentColumns (0);
mergeSeparators no;
file "$FOAM_TUTORIALS/resources/thermoData/wallBoiling-saturation.csv";
outOfBounds clamp;
interpolationScheme linear;
}
}
}
surfaceTension
{
gas_liquid
{
type constant;
sigma 0.00176574;
}
}
phaseTransfer
{}
interfaceCompression
{}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object physicalProperties.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport tabulated;
thermo hTabulated;
equationOfState rhoTabulated;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
molWeight 120.914;
}
#include "$FOAM_TUTORIALS/resources/thermoData/wallBoiling-vapour"
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object physicalProperties.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport tabulated;
thermo hTabulated;
equationOfState rhoTabulated;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
molWeight 120.914;
}
#include "$FOAM_TUTORIALS/resources/thermoData/wallBoiling-liquid"
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object thermophysicalTransport;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
laminar
{
model Fourier;
}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object thermophysicalTransport;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RAS
{
model eddyDiffusivity;
Prt 1;
}
// ************************************************************************* //

View File

@ -0,0 +1,96 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
backgroundMesh
{
length 3.5;
rA 0.0096;
lengthCells 350;
rAcells 40;
}
convertToMeters 1;
vertices
(
( 0 0 -1)
($!backgroundMesh/length 0 -1)
( 0 $!backgroundMesh/rA -1)
($!backgroundMesh/length $!backgroundMesh/rA -1)
( 0 0 0)
($!backgroundMesh/length 0 0)
( 0 $!backgroundMesh/rA 0)
($!backgroundMesh/length $!backgroundMesh/rA 0)
);
blocks
(
hex (0 1 3 2 4 5 7 6)
($!backgroundMesh/lengthCells $!backgroundMesh/rAcells 1)
simpleGrading (1 0.5 1)
);
boundary
(
inlet
{
type mappedInternal;
offset (0.05 0 0);
faces
(
(0 4 6 2)
);
}
outlet
{
type patch;
faces
(
(1 5 7 3)
);
}
front
{
type symmetry;
faces
(
(4 5 7 6)
);
}
back
{
type symmetry;
faces
(
(0 1 3 2)
);
}
wall
{
type wall;
faces
(
(3 2 6 7)
(1 0 4 5)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,131 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application foamRun;
solver multiphaseEuler;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.5;
deltaT 0.0001;
writeControl adjustableRunTime;
writeInterval 0.5;
purgeWrite 0;
writeFormat ascii;
writePrecision 9;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.5;
maxDeltaT 0.001;
functions
{
outflow
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name outlet;
operation sum;
fields ( alphaRhoPhi.gas alphaRhoPhi.liquid);
}
inflow
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name inlet;
operation sum;
fields ( alphaRhoPhi.gas alphaRhoPhi.liquid);
}
outletGas
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name outlet;
operation sum;
weightField alphaRhoPhi.gas;
fields ( h.gas );
}
outletLiquid
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name outlet;
operation sum;
weightField alphaRhoPhi.liquid;
fields ( h.liquid );
}
inletGas
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name inlet;
operation sum;
weightField alphaRhoPhi.gas;
fields ( h.gas );
}
inletLiquid
{
type surfaceFieldValue;
functionObjectLibs ( "libfieldFunctionObjects.so" );
log yes;
writeFields false;
regionType patch;
name inlet;
operation sum;
weightField alphaRhoPhi.liquid;
fields ( h.liquid );
}
#includeFunc writeObjects(d.gas)
}
// ************************************************************************* //

View File

@ -0,0 +1,38 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method scotch;
simpleCoeffs
{
n (1 1 24);
}
hierarchicalCoeffs
{
n (1 1 1);
order xyz;
}
distributed no;
roots
(
);
// ************************************************************************* //

View File

@ -0,0 +1,34 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object extrudeProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
constructFrom patch;
sourceCase "$FOAM_CASE";
sourcePatches (front);
exposedPatchName back;
extrudeModel wedge;
sectorCoeffs
{
axisPt (0 0 0);
axis (1 0 0);
angle 1;
}
flipNormals false;
mergeFaces false;
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object fvConstraints;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
limitp
{
type limitPressure;
min 1e4;
}
// ************************************************************************* //

View File

@ -0,0 +1,76 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
limited cellLimited Gauss linear 1;
}
divSchemes
{
default none;
div(phi,alpha) Gauss vanLeer;
div(phir,alpha) Gauss vanLeer;
div(alphaRhoPhi,U) Gauss linearUpwind limited;
div(phi,U) Gauss linearUpwind limited;
div(alphaRhoPhi,Yi) Gauss linearUpwind limited;
"div\(alphaRhoPhi,(h|e)\)" Gauss linearUpwind limited;
div(alphaRhoPhi,K) Gauss linearUpwind limited;
div(alphaRhoPhi,(p|rho)) Gauss linearUpwind limited;
div(phi,kappai) Gauss linearUpwind limited;
"div\(alphaRhoPhi,(k|epsilon|omega)\)" Gauss linearUpwind limited;
"div\(phim,(k|epsilon)m\)" Gauss linearUpwind limited;
div((((alpha*rho)*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
}
wallDist
{
method meshWave;
nRequired yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,95 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 1;
}
p_rgh
{
solver GAMG;
smoother DIC;
tolerance 1e-8;
relTol 0.01;
maxIter 20;
minIter 2;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"(e|h).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-12;
relTol 0.001;
minIter 1;
maxIter 20;
}
"(k|epsilon|omega).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-8;
relTol 0;
minIter 1;
}
"kappai.*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 1;
nNonOrthogonalCorrectors 0;
nEnergyCorrectors 1;
faceMomentum yes;
}
relaxationFactors
{
fields
{
thermalPhaseChange:dmdtf 1.0;
}
equations
{
".*" 1;
"h\..*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,80 @@
#!/bin/sh
if ! which gnuplot > /dev/null 2>&1
then
echo 'gnuplot not found - skipping graph creation' >&2
exit 1
fi
graphFile=$(foamListTimes -latestTime)/line.xy
surfaceFile=$(cd postProcessing/inflow && ls -1tr */* | tail -n 1)
gnuplot<<EOF
set terminal postscript eps size 8,9 color enhanced font "Helvetica,20"
set output "./validation/$(basename "$PWD").eps"
set multiplot layout 3,2
set decimalsign '.'
set grid
A = 0.000586423
q = 73890
set key at graph 0.65,0.95
set xlabel 'Radial coordinate, r/R (-)'
set xrange [0:1]
set ylabel 'Void fraction (-)'
plot \
"postProcessing/graph/$graphFile" \
u (\$1/0.0096):2 w lp lt 1 t 'Simulation', \
'./validation/exptData/vof_deb1.txt' \
u 1:2 w p lt rgb "black" pt 4 t 'Experiment'
set ylabel 'Liquid temperature (K)'
plot \
"postProcessing/graph/$graphFile" \
u (\$1/0.0096):3 w lp lt 1 t 'Simulation', \
'./validation/exptData/T_deb1.txt' \
u 1:2 w p lt rgb "black" pt 4 t 'Experiment'
set ylabel 'Sauter mean diameter (mm)'
plot \
"postProcessing/graph/$graphFile" \
u (\$1/0.0096):(\$5*1000) w lp lt 1 t 'Simulation', \
'./validation/exptData/d_deb1.txt' \
u 1:(\$2*1000) w p lt rgb "black" pt 4 t 'Experiment'
set key at graph 0.99,0.95
set xlabel 'Time (s)'
set xrange [0.5:4]
set ylabel 'Mass in- and outflow (kg/s)'
set yrange [0.5:0.8]
plot \
'./postProcessing/inflow/$surfaceFile' \
every ::4::10000 u 1:(-1*360*\$3) w l lt 1 t 'liquid inflow', \
'./postProcessing/outflow/$surfaceFile' \
every ::4::10000 u 1:(360*\$3) w l lt 3 t 'liquid outflow', \
'./postProcessing/outflow/$surfaceFile' \
every ::4::10000 u 1:(360*\$2+360*\$3) w l lt 4 t 'liquid + vapor outflow'
set ylabel 'Enthalpy in- and outflow (J/s)'
set yrange [1.5e5:2.0e5]
plot \
'./postProcessing/inletLiquid/$surfaceFile' \
every ::4::10000 u 1:(-1*360*\$2) w l lt 1 t 'liquid inflow', \
'./postProcessing/inletLiquid/$surfaceFile' \
every ::4::10000 u 1:(-1*360*\$2+360*A*q) w l lt 8 t 'liquid inflow + wall heat flux', \
'./postProcessing/outletLiquid/$surfaceFile' \
every ::4::10000 u 1:(360*\$2) w l lt 3 t 'liquid outflow', \
"<paste \
./postProcessing/outletLiquid/$surfaceFile \
./postProcessing/outletGas/$surfaceFile" \
every ::4::10000 u 1:(360*\$2+360*\$4) w l lt 4 t 'liquid + vapor outflow'
unset multiplot
EOF
#------------------------------------------------------------------------------

View File

@ -0,0 +1,11 @@
9.4936782e-01 3.5975837e+02
8.9723528e-01 3.5962335e+02
7.9982421e-01 3.5945458e+02
6.9965989e-01 3.5942082e+02
5.9950677e-01 3.5921829e+02
4.9660488e-01 3.5908327e+02
3.9644952e-01 3.5891449e+02
2.9903397e-01 3.5881323e+02
1.9751766e-01 3.5847568e+02
1.0009764e-01 3.5844192e+02
-2.8132058e-03 3.5844192e+02

View File

@ -0,0 +1,49 @@
9.5715317e-01 2.3652857e-04
9.4002980e-01 2.6888264e-04
9.2026382e-01 3.0515777e-04
9.0180384e-01 3.3751031e-04
8.8458099e-01 3.5711100e-04
8.6473083e-01 3.8259480e-04
8.4620198e-01 4.0611808e-04
8.2622938e-01 4.1590541e-04
8.1035079e-01 4.3648866e-04
7.8904924e-01 4.4725550e-04
7.7044387e-01 4.6096848e-04
7.4910406e-01 4.6683017e-04
7.3580685e-01 4.7564413e-04
7.1579600e-01 4.8052632e-04
6.9448680e-01 4.9031212e-04
6.7716446e-01 4.9715943e-04
6.5447274e-01 5.0105753e-04
6.3980066e-01 5.0496481e-04
6.2376137e-01 5.0494645e-04
5.9569261e-01 5.0491431e-04
5.8366314e-01 5.0490053e-04
5.5560968e-01 5.0683045e-04
5.3955508e-01 5.0485003e-04
5.2217918e-01 5.0483013e-04
5.0076285e-01 5.0088153e-04
4.8605251e-01 4.9988366e-04
4.6328426e-01 4.9397147e-04
4.3924063e-01 4.9590598e-04
4.1912264e-01 4.8705376e-04
4.0441230e-01 4.8605589e-04
3.8035337e-01 4.8602834e-04
3.5625616e-01 4.8109565e-04
3.4282887e-01 4.7323211e-04
3.2275679e-01 4.7026607e-04
3.0402898e-01 4.6828258e-04
2.8396456e-01 4.6629757e-04
2.6122692e-01 4.6430949e-04
2.3983355e-01 4.6330397e-04
2.2106747e-01 4.5641534e-04
1.9700853e-01 4.5638779e-04
1.7963263e-01 4.5636790e-04
1.5691030e-01 4.5634188e-04
1.4080979e-01 4.4847528e-04
1.1675850e-01 4.4942876e-04
9.9367297e-02 4.4744680e-04
8.1999049e-02 4.4840794e-04
6.0620977e-02 4.4936448e-04
3.7944559e-02 4.5522464e-04
1.7903095e-02 4.5618271e-04

View File

@ -0,0 +1,50 @@
9.5800682e-01 3.7792966e-01
9.3220406e-01 3.7396836e-01
9.1801255e-01 3.6449099e-01
8.9866049e-01 3.5027616e-01
8.7543801e-01 3.4710551e-01
8.6382677e-01 3.3526262e-01
8.4318457e-01 3.1552368e-01
8.2125223e-01 2.9972914e-01
8.0448044e-01 2.9498443e-01
7.8770865e-01 2.7366981e-01
7.6706645e-01 2.6576651e-01
7.4384397e-01 2.5312735e-01
7.2836232e-01 2.4364918e-01
7.1933136e-01 2.2391747e-01
7.1159053e-01 2.3495925e-01
6.9094833e-01 2.2705595e-01
6.7159627e-01 1.9942738e-01
6.5224420e-01 1.9704818e-01
6.3676255e-01 1.8520289e-01
6.1612035e-01 1.7887767e-01
5.9418801e-01 1.6387218e-01
5.7741622e-01 1.6149460e-01
5.5548388e-01 1.4885624e-01
5.3871209e-01 1.3779918e-01
5.1677975e-01 1.3068412e-01
4.9613755e-01 1.2199177e-01
4.7807562e-01 1.1566817e-01
4.5872356e-01 1.1328898e-01
4.3937150e-01 1.0223031e-01
4.2001943e-01 9.5116856e-02
3.9808709e-01 8.6423710e-02
3.8389558e-01 8.4047733e-02
3.6196324e-01 7.6932672e-02
3.4390131e-01 7.3765240e-02
3.2067884e-01 6.8227461e-02
2.9616622e-01 6.2688877e-02
2.7681416e-01 5.6364468e-02
2.6133251e-01 5.3198644e-02
2.4843113e-01 5.0823472e-02
2.1875796e-01 4.9226887e-02
2.0198617e-01 4.5271215e-02
1.8263411e-01 4.2892021e-02
1.6457218e-01 4.0513632e-02
1.4263984e-01 3.9710915e-02
1.2586806e-01 3.9700459e-02
1.0264558e-01 3.7318852e-02
8.0713239e-02 3.8094222e-02
6.2651312e-02 3.8082961e-02
4.2009111e-02 3.8070092e-02
1.8786634e-02 3.8844657e-02