From 24679abcc547553bac1cf7d8bce7c6dd5c6cf06c Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Thu, 8 May 2014 11:45:50 +0100 Subject: [PATCH] twoPhaseEulerFoam: Add fvOptions support and tutorial --- .../multiphase/twoPhaseEulerFoam/EEqns.H | 12 +- .../multiphase/twoPhaseEulerFoam/Make/options | 9 +- .../multiphase/twoPhaseEulerFoam/UEqns.H | 29 +- .../multiphase/twoPhaseEulerFoam/pEqn.H | 7 + .../twoPhaseEulerFoam/twoPhaseEulerFoam.C | 17 +- .../laminar/injection/0/T.air | 36 + .../laminar/injection/0/T.water | 36 + .../laminar/injection/0/U.air | 36 + .../laminar/injection/0/U.water | 36 + .../laminar/injection/0/alpha.air | 1926 +++++++++++++++++ .../laminar/injection/0/alpha.air.org | 37 + .../twoPhaseEulerFoam/laminar/injection/0/p | 43 + .../laminar/injection/constant/fvOptions | 79 + .../laminar/injection/constant/g | 22 + .../injection/constant/phaseProperties | 154 ++ .../injection/constant/polyMesh/blockMeshDict | 58 + .../injection/constant/polyMesh/boundary | 42 + .../constant/thermophysicalProperties.air | 49 + .../constant/thermophysicalProperties.water | 54 + .../constant/turbulenceProperties.air | 20 + .../constant/turbulenceProperties.water | 20 + .../laminar/injection/system/controlDict | 55 + .../laminar/injection/system/fvSchemes | 67 + .../laminar/injection/system/fvSolution | 82 + .../laminar/injection/system/setFieldsDict | 36 + 25 files changed, 2940 insertions(+), 22 deletions(-) create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.air create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.water create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.air create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.water create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air.org create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/p create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/g create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/phaseProperties create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/blockMeshDict create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/boundary create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.air create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.water create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/controlDict create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSchemes create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSolution create mode 100644 tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/setFieldsDict diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/EEqns.H b/applications/solvers/multiphase/twoPhaseEulerFoam/EEqns.H index 5082dad2c36..1fe150e1fed 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/EEqns.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/EEqns.H @@ -10,10 +10,10 @@ fvScalarMatrix he1Eqn ( fvm::ddt(alpha1, rho1, he1) + fvm::div(alphaRhoPhi1, he1) - - fvm::Sp(fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1), he1) + - fvm::Sp(contErr1, he1) + fvc::ddt(alpha1, rho1, K1) + fvc::div(alphaRhoPhi1, K1) - - (fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1))*K1 + - contErr1*K1 + ( he1.name() == thermo1.phasePropertyName("e") @@ -33,15 +33,16 @@ heatTransferCoeff*(thermo2.T() - thermo1.T()) + heatTransferCoeff*he1/Cpv1 - fvm::Sp(heatTransferCoeff/Cpv1, he1) + + fvOptions(alpha1, rho1, he1) ); fvScalarMatrix he2Eqn ( fvm::ddt(alpha2, rho2, he2) + fvm::div(alphaRhoPhi2, he2) - - fvm::Sp(fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2), he2) + - fvm::Sp(contErr2, he2) + fvc::ddt(alpha2, rho2, K2) + fvc::div(alphaRhoPhi2, K2) - - (fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2))*K2 + - contErr2*K2 + ( he2.name() == thermo2.phasePropertyName("e") @@ -61,12 +62,15 @@ heatTransferCoeff*(thermo1.T() - thermo2.T()) + heatTransferCoeff*he2/Cpv2 - fvm::Sp(heatTransferCoeff/Cpv2, he2) + + fvOptions(alpha2, rho2, he2) ); he1Eqn.relax(); + fvOptions.constrain(he1Eqn); he1Eqn.solve(); he2Eqn.relax(); + fvOptions.constrain(he2Eqn); he2Eqn.solve(); thermo1.correct(); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options index d39d3029d47..4389799c48c 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options @@ -9,7 +9,10 @@ EXE_INC = \ -IphaseCompressibleTurbulenceModels/lnInclude \ -IinterfacialModels/lnInclude \ -ItwoPhaseSystem/lnInclude \ - -Iaveraging + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ -lfluidThermophysicalModels \ @@ -21,4 +24,6 @@ EXE_LIBS = \ -lcompressibleTwoPhaseSystem \ -lcompressibleEulerianInterfacialModels \ -lfiniteVolume \ - -lmeshTools + -lfvOptions \ + -lmeshTools \ + -lsampling diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H b/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H index 4537e91b33f..45a52bc5843 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H @@ -9,7 +9,6 @@ volScalarField dragCoeff(fluid.dragCoeff()); { volScalarField virtualMassCoeff(fluid.virtualMassCoeff()); - volVectorField liftForce(fluid.liftForce()); volVectorField wallLubricationForce(fluid.wallLubricationForce()); volVectorField turbulentDispersionForce(fluid.turbulentDispersionForce()); @@ -19,15 +18,14 @@ volScalarField dragCoeff(fluid.dragCoeff()); ( fvm::ddt(alpha1, rho1, U1) + fvm::div(alphaRhoPhi1, U1) - - fvm::Sp(fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1), U1) + - fvm::Sp(contErr1, U1) + + mrfZones(alpha1*rho1 + virtualMassCoeff, U1) + phase1.turbulence().divDevRhoReff(U1) == - fvm::Sp(dragCoeff, U1) - - ( - liftForce - + wallLubricationForce - + turbulentDispersionForce - ) + - liftForce + - wallLubricationForce + - turbulentDispersionForce - virtualMassCoeff *( fvm::ddt(U1) @@ -35,9 +33,10 @@ volScalarField dragCoeff(fluid.dragCoeff()); - fvm::Sp(fvc::div(phi1), U1) - DDtU2 ) + + fvOptions(alpha1, rho1, U1) ); - mrfZones.addCoriolis(alpha1*rho1 + virtualMassCoeff, U1Eqn); U1Eqn.relax(); + fvOptions.constrain(U1Eqn); } { @@ -45,15 +44,14 @@ volScalarField dragCoeff(fluid.dragCoeff()); ( fvm::ddt(alpha2, rho2, U2) + fvm::div(alphaRhoPhi2, U2) - - fvm::Sp(fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2), U2) + - fvm::Sp(contErr2, U2) + + mrfZones(alpha2*rho2 + virtualMassCoeff, U2) + phase2.turbulence().divDevRhoReff(U2) == - fvm::Sp(dragCoeff, U2) - + ( - liftForce - + wallLubricationForce - + turbulentDispersionForce - ) + + liftForce + + wallLubricationForce + + turbulentDispersionForce - virtualMassCoeff *( fvm::ddt(U2) @@ -61,8 +59,9 @@ volScalarField dragCoeff(fluid.dragCoeff()); - fvm::Sp(fvc::div(phi2), U2) - DDtU1 ) + + fvOptions(alpha2, rho2, U2) ); - mrfZones.addCoriolis(alpha2*rho2 + virtualMassCoeff, U2Eqn); U2Eqn.relax(); + fvOptions.constrain(U2Eqn); } } diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H index 9eca93e2ad6..9ea4e74a5e9 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H @@ -130,6 +130,7 @@ pEqnComp1 = ( fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1) + - (fvOptions(alpha1, rho1)&rho1) - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 + (alpha1/rho1)*correction @@ -143,7 +144,9 @@ pEqnComp2 = ( fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2) + - (fvOptions(alpha2, rho2)&rho2) - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) + )/rho2 + (alpha2/rho2)*correction ( @@ -158,6 +161,7 @@ pEqnComp1 = ( fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1) + - (fvOptions(alpha1, rho1)&rho1) - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 + (alpha1*psi1/rho1)*correction(fvm::ddt(p)); @@ -165,6 +169,7 @@ pEqnComp2 = ( fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2) + - (fvOptions(alpha2, rho2)&rho2) - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) )/rho2 + (alpha2*psi2/rho2)*correction(fvm::ddt(p)); @@ -227,6 +232,7 @@ - phiP1 ); U1.correctBoundaryConditions(); + fvOptions.correct(U1); U2 = HbyA2 + fvc::reconstruct @@ -239,6 +245,7 @@ - phiP2 ); U2.correctBoundaryConditions(); + fvOptions.correct(U2); U = fluid.U(); } diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C index fe949d0ec9a..ae44c0ee4f3 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C @@ -35,6 +35,7 @@ Description #include "PhaseCompressibleTurbulenceModel.H" #include "pimpleControl.H" #include "IOMRFZoneList.H" +#include "fvIOoptionList.H" #include "fixedFluxPressureFvPatchScalarField.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,6 +49,7 @@ int main(int argc, char *argv[]) #include "readGravitationalAcceleration.H" #include "createFields.H" #include "createMRFZones.H" + #include "createFvOptions.H" #include "initContinuityErrs.H" #include "readTimeControls.H" #include "CourantNos.H" @@ -74,8 +76,21 @@ int main(int argc, char *argv[]) fluid.solve(); fluid.correct(); - #include "EEqns.H" + volScalarField contErr1 + ( + fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1) + - (fvOptions(alpha1, rho1)&rho1) + ); + + volScalarField contErr2 + ( + fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2) + - (fvOptions(alpha2, rho2)&rho2) + ); + + #include "UEqns.H" + #include "EEqns.H" // --- Pressure corrector loop while (pimple.correct()) diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.air new file mode 100644 index 00000000000..4201a9f5ffb --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.air @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object Tair; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.water new file mode 100644 index 00000000000..2e1f035ceea --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/T.water @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object Twater; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + outlet + { + type inletOutlet; + phi phi.water; + inletValue uniform 300; + value $internalField; + } + walls + { + type zeroGradient; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.air new file mode 100644 index 00000000000..ce019b2bfe8 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.air @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class volVectorField; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + outlet + { + type pressureInletOutletVelocity; + phi phi.air; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.water new file mode 100644 index 00000000000..49c6b93ed79 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/U.water @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class volVectorField; + object U.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + outlet + { + type pressureInletOutletVelocity; + phi phi.water; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air new file mode 100644 index 00000000000..365bfcbb7f4 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air @@ -0,0 +1,1926 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField nonuniform List<scalar> +1875 +( +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +) +; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.5; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue uniform 1; + value uniform 1; + } + walls + { + type zeroGradient; + } + defaultFaces + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air.org b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air.org new file mode 100644 index 00000000000..9b7ebf0f1fd --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/alpha.air.org @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + outlet + { + type inletOutlet; + phi phi.air; + inletValue uniform 1; + value uniform 1; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/p b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/p new file mode 100644 index 00000000000..c2acba5bbad --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/0/p @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 1e5; + +boundaryField +{ + outlet + { + //type fixedValue; + //value $internalField; + type totalPressure; + p0 $internalField; + U U.air; + phi phi.air; + rho thermo:rho.air; + psi none; + gamma 1; + value $internalField; + } + walls + { + type fixedFluxPressure; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions new file mode 100644 index 00000000000..fb32f2988f4 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions @@ -0,0 +1,79 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +injector1 +{ + active true; + timeStart 0; + duration 5; + selectionMode points; + points + ( + (0.075 0.1 0.05) + ); +} + +options +{ + massSource1 + { + type scalarSemiImplicitSource; + $injector1; + + scalarSemiImplicitSourceCoeffs + { + volumeMode absolute; + injectionRateSuSp + { + thermo:rho.air (1e-3 0); // kg/s + } + } + } + + momentumSource1 + { + type vectorSemiImplicitSource; + $injector1; + + vectorSemiImplicitSourceCoeffs + { + volumeMode absolute; + injectionRateSuSp + { + U.air ((0 -1e-2 0) 0); // kg*m/s^2 + } + } + } + + energySource1 + { + type scalarSemiImplicitSource; + $injector1; + + scalarSemiImplicitSourceCoeffs + { + volumeMode absolute; + injectionRateSuSp + { + e.air (500 0); // kg*m^2/s^3 + } + } + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/g b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/g new file mode 100644 index 00000000000..e5a2d667456 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/phaseProperties b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/phaseProperties new file mode 100644 index 00000000000..b49dad753ab --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/phaseProperties @@ -0,0 +1,154 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object phaseProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phases (air water); + +air +{ + diameterModel isothermal; + isothermalCoeffs + { + d0 3e-3; + p0 1e5; + } +} + +water +{ + diameterModel constant; + constantCoeffs + { + d 1e-4; + } +} + +blending +{ + default + { + type linear; + maxFullyDispersedAlpha.air 0.3; + maxPartlyDispersedAlpha.air 0.5; + maxFullyDispersedAlpha.water 0.3; + maxPartlyDispersedAlpha.water 0.5; + } +} + +sigma +( + (air and water) 0.07 +); + +aspectRatio +( + (air in water) + { + type constant; + E0 1.0; + } + + (water in air) + { + type constant; + E0 1.0; + } +); + +drag +( + (air in water) + { + type SchillerNaumann; + residualAlpha 1e-4; + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water in air) + { + type SchillerNaumann; + residualAlpha 1e-4; + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (air and water) + { + type segregated; + residualAlpha 1e-4; + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } +); + +virtualMass +( + (air in water) + { + type constantCoefficient; + Cvm 0.5; + } + + (water in air) + { + type constantCoefficient; + Cvm 0.5; + } +); + +heatTransfer +( + (air in water) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (water in air) + { + type RanzMarshall; + residualAlpha 1e-3; + } +); + +lift +( +); + +wallLubrication +( +); + +turbulentDispersion +( +); + +// Minimum allowable pressure +pMin 10000; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/blockMeshDict b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000000..761b88045f4 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/blockMeshDict @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (0 0 0) + (0.15 0 0) + (0.15 1 0) + (0 1 0) + (0 0 0.1) + (0.15 0 0.1) + (0.15 1 0.1) + (0 1 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (25 75 1) simpleGrading (1 1 1) +); + +edges +( +); + +patches +( + patch outlet + ( + (3 7 6 2) + ) + wall walls + ( + (1 5 4 0) + (0 4 7 3) + (2 6 5 1) + ) +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/boundary b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/boundary new file mode 100644 index 00000000000..a134566fbcd --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/polyMesh/boundary @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + outlet + { + type patch; + nFaces 25; + startFace 3650; + } + walls + { + type wall; + inGroups 1(wall); + nFaces 175; + startFace 3675; + } + defaultFaces + { + type empty; + inGroups 1(empty); + nFaces 3750; + startFace 3850; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air new file mode 100644 index 00000000000..43c5a218b4e --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 28.9; + } + thermodynamics + { + Cp 1007; + Hf 0; + } + transport + { + mu 1.84e-05; + Pr 0.7; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water new file mode 100644 index 00000000000..b78aaa28572 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectFluid; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 18; + } + equationOfState + { + R 3000; + rho0 1027; + } + thermodynamics + { + Cp 4195; + Hf 0; + } + transport + { + mu 3.645e-4; + Pr 2.289; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.air new file mode 100644 index 00000000000..d3e11a90612 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.air @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.water new file mode 100644 index 00000000000..1fbc2d0dc24 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/turbulenceProperties.water @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/controlDict b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/controlDict new file mode 100644 index 00000000000..a4d3e4e51b9 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/controlDict @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application twoPhaseEulerFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 10; + +deltaT 0.005; + +writeControl runTime; + +writeInterval 0.1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression uncompressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 1; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSchemes b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSchemes new file mode 100644 index 00000000000..4ca7a55cc3d --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSchemes @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + div(phi,alpha.air) Gauss vanLeer; + div(phir,alpha.air) Gauss vanLeer; + + "div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1; + "div\(phi.*,U.*\)" Gauss limitedLinearV 1; + + "div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; + "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; + + "div\(\(\(\(alpha.**thermo:rho.*\)*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default uncorrected; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSolution b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSolution new file mode 100644 index 00000000000..e670d6d4fde --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/fvSolution @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + nAlphaCorr 1; + nAlphaSubCycles 2; + } + + p + { + solver GAMG; + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + tolerance 1e-8; + relTol 0.01; + } + + pFinal + { + $p; + relTol 0; + } + + "U.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-5; + relTol 0; + minIter 1; + } + + "e.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; + minIter 1; + } +} + +PIMPLE +{ + nOuterCorrectors 3; + nCorrectors 1; + nNonOrthogonalCorrectors 0; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/setFieldsDict b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/setFieldsDict new file mode 100644 index 00000000000..3274bdc1e0c --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/system/setFieldsDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue alpha1 1 +); + +regions +( + boxToCell + { + box (0 0 -0.1) (0.15 0.701 0.1); + fieldValues + ( + volScalarFieldValue alphaair 0 + ); + } +); + + +// ************************************************************************* // -- GitLab