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:
183
tutorials/modules/multiphaseEuler/pipeBend/system/blockMeshDict
Normal file
183
tutorials/modules/multiphaseEuler/pipeBend/system/blockMeshDict
Normal file
@ -0,0 +1,183 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: dev
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
convertToMeters 1e-3;
|
||||
|
||||
geometry
|
||||
{
|
||||
torus
|
||||
{
|
||||
type triSurfaceMesh;
|
||||
file "torus.obj";
|
||||
}
|
||||
}
|
||||
|
||||
vertices
|
||||
(
|
||||
(-9.9 0 9.9)
|
||||
(-14.14 0 14.14)
|
||||
(14.14 0 14.14)
|
||||
(9.9 0 9.9)
|
||||
(9.9 0 -9.9)
|
||||
(14.14 0 -14.14)
|
||||
(-14.14 0 -14.14)
|
||||
(-9.9 0 -9.9)
|
||||
(-9.9 400 9.9)
|
||||
(-14.14 400 14.14)
|
||||
(14.14 400 14.14)
|
||||
(9.9 400 9.9)
|
||||
(9.9 400 -9.9)
|
||||
(14.14 400 -14.14)
|
||||
(-14.14 400 -14.14)
|
||||
(-9.9 400 -9.9)
|
||||
(-9.9 450.1 60)
|
||||
(-14.14 445.86 60)
|
||||
(14.14 445.86 60)
|
||||
(9.9 450.1 60)
|
||||
(9.9 469.9 60)
|
||||
(14.14 474.14 60)
|
||||
(-14.14 474.14 60)
|
||||
(-9.9 469.9 60)
|
||||
(-9.9 450.1 460)
|
||||
(-14.14 445.86 460)
|
||||
(14.14 445.86 460)
|
||||
(9.9 450.1 460)
|
||||
(9.9 469.9 460)
|
||||
(14.14 474.14 460)
|
||||
(-14.14 474.14 460)
|
||||
(-9.9 469.9 460)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 8 9 10 11) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (3 2 5 4 11 10 13 12) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (4 5 6 7 12 13 14 15) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (7 6 1 0 15 14 9 8) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (0 3 4 7 8 11 12 15) (12 12 100) simpleGrading (1 1 1)
|
||||
hex (8 9 10 11 16 17 18 19) (8 12 23) simpleGrading (0.35 1 1)
|
||||
hex (11 10 13 12 19 18 21 20) (8 12 23) simpleGrading (0.35 1 1)
|
||||
hex (12 13 14 15 20 21 22 23) (8 12 23) simpleGrading (0.35 1 1)
|
||||
hex (15 14 9 8 23 22 17 16) (8 12 23) simpleGrading (0.35 1 1)
|
||||
hex (8 11 12 15 16 19 20 23) (12 12 23) simpleGrading (1 1 1)
|
||||
hex (16 17 18 19 24 25 26 27) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (19 18 21 20 27 26 29 28) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (20 21 22 23 28 29 30 31) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (23 22 17 16 31 30 25 24) (8 12 100) simpleGrading (0.35 1 1)
|
||||
hex (16 19 20 23 24 27 28 31) (12 12 100) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
arc 1 2 (0 0 20)
|
||||
arc 2 5 (20 0 0)
|
||||
arc 5 6 (0 0 -20)
|
||||
arc 6 1 (-20 0 0)
|
||||
arc 0 3 (0 0 11.23)
|
||||
arc 3 4 (11.23 0 0)
|
||||
arc 4 7 (0 0 -11.23)
|
||||
arc 7 0 (-11.23 0 0)
|
||||
arc 9 10 (0 400 20)
|
||||
arc 10 13 (20 400 0)
|
||||
arc 13 14 (0 400 -20)
|
||||
arc 14 9 (-20 400 0)
|
||||
arc 8 11 (0 400 11.23)
|
||||
arc 11 12 (11.23 400 0)
|
||||
arc 12 15 (0 400 -11.23)
|
||||
arc 15 8 (-11.23 400 0)
|
||||
arc 17 18 (0 440 60)
|
||||
arc 18 21 (20 460 60)
|
||||
arc 21 22 (0 480 60)
|
||||
arc 22 17 (-20 460 60)
|
||||
arc 16 19 (0 448.77 60)
|
||||
arc 19 20 (11.23 460 60)
|
||||
arc 20 23 (0 471.23 60)
|
||||
arc 23 16 (-11.23 460 60)
|
||||
arc 25 26 (0 440 460)
|
||||
arc 26 29 (20 460 460)
|
||||
arc 29 30 (0 480 460)
|
||||
arc 30 25 (-20 460 460)
|
||||
arc 24 27 (0 448.77 460)
|
||||
arc 27 28 (11.23 460 460)
|
||||
arc 28 31 (0 471.23 460)
|
||||
arc 31 24 (-11.23 460 460)
|
||||
arc 9 17 (-14.14 432.428 27.572)
|
||||
arc 10 18 (14.14 432.428 27.572)
|
||||
arc 13 21 (14.14 452.425 7.572)
|
||||
arc 14 22 (-14.14 452.425 7.572)
|
||||
arc 8 16 (-9.9 435.426 24.574)
|
||||
arc 11 19 (9.9 435.426 24.574)
|
||||
arc 12 20 (9.9 449.427 10.573)
|
||||
arc 15 23 (-9.9 449.427 10.573)
|
||||
);
|
||||
|
||||
faces
|
||||
(
|
||||
project (9 10 18 17) torus
|
||||
project (10 13 21 18) torus
|
||||
project (13 14 22 21) torus
|
||||
project (14 9 17 22) torus
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
inlet
|
||||
{
|
||||
type pacth;
|
||||
faces
|
||||
(
|
||||
(0 1 2 3)
|
||||
(3 2 5 4)
|
||||
(4 5 6 7)
|
||||
(7 6 1 0)
|
||||
(0 3 4 7)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(24 25 26 27)
|
||||
(27 26 29 28)
|
||||
(28 29 30 31)
|
||||
(31 30 25 24)
|
||||
(24 27 28 31)
|
||||
);
|
||||
}
|
||||
walls
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(1 9 10 2)
|
||||
(2 10 13 5)
|
||||
(5 13 14 6)
|
||||
(6 14 9 1)
|
||||
(9 17 18 10)
|
||||
(10 18 21 13)
|
||||
(13 21 22 14)
|
||||
(14 22 17 9)
|
||||
(17 25 26 18)
|
||||
(18 26 29 21)
|
||||
(21 29 30 22)
|
||||
(22 30 25 17)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
();
|
||||
104
tutorials/modules/multiphaseEuler/pipeBend/system/controlDict
Normal file
104
tutorials/modules/multiphaseEuler/pipeBend/system/controlDict
Normal file
@ -0,0 +1,104 @@
|
||||
/*--------------------------------*- 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 controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application foamRun;
|
||||
|
||||
solver multiphaseEuler;
|
||||
|
||||
startFrom latestTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 2;
|
||||
|
||||
deltaT 0.003;
|
||||
|
||||
writeControl adjustableRunTime;
|
||||
|
||||
writeInterval 0.1;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 6;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable yes;
|
||||
|
||||
adjustTimeStep yes;
|
||||
|
||||
maxCo 1;
|
||||
|
||||
maxDeltaT 1;
|
||||
|
||||
functions
|
||||
{
|
||||
#includeFunc writeObjects(d.particles)
|
||||
|
||||
#includeFunc populationBalanceSizeDistribution
|
||||
(
|
||||
populationBalance=agglomerates,
|
||||
regionType=cellZone,
|
||||
name=afterBend_1d,
|
||||
functionType=volumeDensity,
|
||||
coordinateType=diameter,
|
||||
normalise=yes,
|
||||
funcName=probabilityDensity.afterBend_1d
|
||||
)
|
||||
|
||||
#includeFunc populationBalanceSizeDistribution
|
||||
(
|
||||
populationBalance=agglomerates,
|
||||
regionType=cellZone,
|
||||
name=afterBend_5d,
|
||||
functionType=volumeDensity,
|
||||
coordinateType=diameter,
|
||||
normalise=yes,
|
||||
funcName=probabilityDensity.afterBend_5d
|
||||
)
|
||||
|
||||
#includeFunc populationBalanceSizeDistribution
|
||||
(
|
||||
populationBalance=agglomerates,
|
||||
regionType=cellZone,
|
||||
name=afterBend_9d,
|
||||
functionType=volumeDensity,
|
||||
coordinateType=diameter,
|
||||
normalise=yes,
|
||||
funcName=probabilityDensity.afterBend_9d
|
||||
)
|
||||
|
||||
#includeFunc populationBalanceSizeDistribution
|
||||
(
|
||||
populationBalance=agglomerates,
|
||||
regionType=cellZone,
|
||||
name=beforeBend_1d,
|
||||
functionType=volumeDensity,
|
||||
coordinateType=diameter,
|
||||
normalise=yes,
|
||||
funcName=probabilityDensity.beforeBend_1d
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 dictionary;
|
||||
object decomposeParDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 6;
|
||||
|
||||
method scotch;
|
||||
|
||||
// ************************************************************************* //
|
||||
70
tutorials/modules/multiphaseEuler/pipeBend/system/fvSchemes
Normal file
70
tutorials/modules/multiphaseEuler/pipeBend/system/fvSchemes
Normal file
@ -0,0 +1,70 @@
|
||||
/*--------------------------------*- 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 fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,alpha) Gauss vanLeer;
|
||||
div(phir,alpha) Gauss vanLeer;
|
||||
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(alphaRhoPhi,U) Gauss limitedLinearV 1;
|
||||
|
||||
"div\(alphaPhi,f.*\)" Gauss limitedLinear 1;
|
||||
|
||||
div(alphaPhi,p) Gauss limitedLinear 1;
|
||||
|
||||
"div\(alphaRhoPhi,(h|e|k|epsilon)\)" Gauss limitedLinear 1;
|
||||
div(alphaRhoPhi,K) Gauss limitedLinear 1;
|
||||
|
||||
div(alphaRhoPhi.water,(p|rho.water)) Gauss limitedLinear 1;
|
||||
|
||||
div((((alpha.water*rho.water)*nuEff.water)*dev2(T(grad(U.water))))) Gauss linear;
|
||||
|
||||
div((((rho.particles*nut.particles)*dev2(T(grad(U.particles))))+(((rho.particles*lambda.particles)*div(phi.particles))*I))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear uncorrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default uncorrected;
|
||||
}
|
||||
|
||||
wallDist
|
||||
{
|
||||
method meshWave;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
94
tutorials/modules/multiphaseEuler/pipeBend/system/fvSolution
Normal file
94
tutorials/modules/multiphaseEuler/pipeBend/system/fvSolution
Normal file
@ -0,0 +1,94 @@
|
||||
/*--------------------------------*- 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 fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
"alpha.*"
|
||||
{
|
||||
nAlphaCorr 1;
|
||||
nAlphaSubCycles 3;
|
||||
implicitPhasePressure yes;
|
||||
solver PBiCGStab;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-9;
|
||||
relTol 0;
|
||||
minIter 1;
|
||||
}
|
||||
|
||||
p_rgh
|
||||
{
|
||||
solver GAMG;
|
||||
smoother DIC;
|
||||
tolerance 1e-8;
|
||||
relTol 0.01;
|
||||
}
|
||||
|
||||
p_rghFinal
|
||||
{
|
||||
$p_rgh;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(h|e).*"
|
||||
{
|
||||
solver smoothSolver;
|
||||
smoother symGaussSeidel;
|
||||
tolerance 1e-6;
|
||||
relTol 0;
|
||||
minIter 1;
|
||||
maxIter 10;
|
||||
}
|
||||
|
||||
"(k|epsilon).*"
|
||||
{
|
||||
solver PBiCGStab;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-5;
|
||||
relTol 0;
|
||||
minIter 1;
|
||||
}
|
||||
|
||||
"f.*"
|
||||
{
|
||||
solver PBiCGStab;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-6;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
agglomerates
|
||||
{
|
||||
nCorr 1;
|
||||
tolerance 1e-4;
|
||||
scale true;
|
||||
solveOnFinalIterOnly true;
|
||||
sourceUpdateInterval 1;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nOuterCorrectors 3;
|
||||
nCorrectors 2;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
alphaSpreadMin 5e-4;
|
||||
alphaSpreadMax 0.9995;
|
||||
}
|
||||
|
||||
relaxationFactors
|
||||
{}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,77 @@
|
||||
/*--------------------------------*- 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 topoSetDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
actions
|
||||
(
|
||||
{
|
||||
name beforeBend_1d;
|
||||
type cellSet;
|
||||
action new;
|
||||
source boxToCell;
|
||||
box (-0.03 0.35 -0.03) (0.03 0.37 0.03);
|
||||
}
|
||||
{
|
||||
name afterBend_1d;
|
||||
type cellSet;
|
||||
action new;
|
||||
source boxToCell;
|
||||
box (-0.03 0.43 0.09) (0.03 0.48 0.11);
|
||||
}
|
||||
{
|
||||
name afterBend_5d;
|
||||
type cellSet;
|
||||
action new;
|
||||
source boxToCell;
|
||||
box (-0.03 0.43 0.25) (0.03 0.48 0.27);
|
||||
}
|
||||
{
|
||||
name afterBend_9d;
|
||||
type cellSet;
|
||||
action new;
|
||||
source boxToCell;
|
||||
box (-0.03 0.43 0.41) (0.03 0.48 0.43);
|
||||
}
|
||||
{
|
||||
name beforeBend_1d;
|
||||
type cellZoneSet;
|
||||
action new;
|
||||
source setToCellZone;
|
||||
set beforeBend_1d;
|
||||
}
|
||||
{
|
||||
name afterBend_1d;
|
||||
type cellZoneSet;
|
||||
action new;
|
||||
source setToCellZone;
|
||||
set afterBend_1d;
|
||||
}
|
||||
{
|
||||
name afterBend_5d;
|
||||
type cellZoneSet;
|
||||
action new;
|
||||
source setToCellZone;
|
||||
set afterBend_5d;
|
||||
}
|
||||
{
|
||||
name afterBend_9d;
|
||||
type cellZoneSet;
|
||||
action new;
|
||||
source setToCellZone;
|
||||
set afterBend_9d;
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
Reference in New Issue
Block a user