From 9873774ee9dd7360e1d5761bdf6f70795f26f8dd Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Tue, 29 Apr 2014 14:16:41 +0100 Subject: [PATCH] VoF solvers: rationalize the relationship between VoF solvers Improve code reuse Add multiphaseInterDyMFoam Retire MRFinterFoam -> now handled by interFoam with fvOptions Update tutorials --- .../multiphase/cavitatingFoam/createFields.H | 8 +- .../compressibleInterFoam/Make/options | 1 + .../multiphase/compressibleInterFoam/TEqn.H | 8 +- .../multiphase/compressibleInterFoam/UEqn.H | 2 +- .../compressibleInterDyMFoam/Make/options | 1 + .../compressibleInterDyMFoam/pEqn.H | 2 +- .../compressibleInterFoam/createFields.H | 24 +- .../multiphase/compressibleInterFoam/pEqn.H | 2 +- .../twoPhaseMixtureThermo/Make/options | 1 + .../Make/options | 2 + .../compressibleMultiphaseInterFoam/TEqn.H | 10 +- .../compressibleMultiphaseInterFoam/UEqn.H | 4 +- .../compressibleMultiphaseInterFoam.C | 6 +- .../createFields.H | 14 +- .../multiphaseMixtureThermo/Make/options | 1 + .../compressibleMultiphaseInterFoam/pEqn.H | 20 +- .../solvers/multiphase/interFoam/Allwclean | 1 - .../solvers/multiphase/interFoam/Allwmake | 1 - .../interFoam/LTSInterFoam/LTSInterFoam.C | 7 +- .../interFoam/LTSInterFoam/Make/options | 6 +- .../interFoam/MRFInterFoam/Make/files | 3 - .../multiphase/interFoam/MRFInterFoam/UEqn.H | 38 - .../interFoam/MRFInterFoam/createMRFZones.H | 2 - .../multiphase/interFoam/MRFInterFoam/pEqn.H | 72 - .../interFoam/MRFInterFoam/zonePhaseVolumes.H | 21 - .../solvers/multiphase/interFoam/Make/options | 12 +- .../solvers/multiphase/interFoam/UEqn.H | 8 +- .../multiphase/interFoam/alphaCourantNo.H | 4 +- .../solvers/multiphase/interFoam/alphaEqn.H | 10 +- .../multiphase/interFoam/createFields.H | 18 +- .../interFoam/interDyMFoam/Make/options | 6 +- .../interFoam/interDyMFoam/interDyMFoam.C | 11 +- .../multiphase/interFoam/interDyMFoam/pEqn.H | 2 +- .../solvers/multiphase/interFoam/interFoam.C | 11 +- .../interFoam/interMixingFoam/Make/files | 3 +- .../interFoam/interMixingFoam/Make/options | 1 + .../interFoam/interMixingFoam/alphaEqns.H | 2 +- .../interFoam/interMixingFoam/createFields.H | 22 +- ...miscibleIncompressibleThreePhaseMixture.C} | 43 +- ...mmiscibleIncompressibleThreePhaseMixture.H | 92 + ...re.C => incompressibleThreePhaseMixture.C} | 19 +- ...re.H => incompressibleThreePhaseMixture.H} | 18 +- .../interMixingFoam/interMixingFoam.C | 9 +- .../threePhaseInterfaceProperties.C | 26 +- .../threePhaseInterfaceProperties.H | 17 +- .../solvers/multiphase/interFoam/pEqn.H | 6 +- .../interFoam/porousInterFoam/Make/options | 5 +- .../interFoam/porousInterFoam/UEqn.H | 6 +- .../porousInterFoam/porousInterFoam.C | 9 +- .../multiphase/interPhaseChangeFoam/UEqn.H | 2 +- .../interPhaseChangeFoam/alphaEqn.H | 2 +- .../interPhaseChangeFoam/createFields.H | 16 +- .../interPhaseChangeDyMFoam.C | 2 +- .../interPhaseChangeDyMFoam/pEqn.H | 4 +- .../interPhaseChangeFoam.C | 2 +- .../multiphase/interPhaseChangeFoam/pEqn.H | 4 +- .../multiphase/multiphaseInterFoam/Allwclean | 1 + .../multiphase/multiphaseInterFoam/Allwmake | 1 + .../multiphase/multiphaseInterFoam/UEqn.H | 31 - .../multiphaseInterFoam/createFields.H | 1 + .../multiphaseInterDyMFoam/Make/files | 3 + .../multiphaseInterDyMFoam}/Make/options | 16 +- .../multiphaseInterDyMFoam.C} | 83 +- .../multiphaseMixture/multiphaseMixture.C | 12 +- .../multiphase/multiphaseInterFoam/pEqn.H | 72 - .../alphaCourantNo.H | 8 +- .../twoLiquidMixingFoam/createFields.H | 16 +- .../twoLiquidMixingFoam/twoLiquidMixingFoam.C | 4 +- src/transportModels/Allwmake | 2 + src/transportModels/compressible/Make/files | 3 + src/transportModels/compressible/Make/options | 5 + .../compressibleTransportModel.C | 47 +- .../compressibleTransportModel.H | 104 + .../Make/files | 3 + .../Make/options | 13 + .../immiscibleIncompressibleTwoPhaseMixture.C | 43 + .../immiscibleIncompressibleTwoPhaseMixture.H | 92 + .../interfaceProperties/interfaceProperties.C | 18 +- .../interfaceProperties/interfaceProperties.H | 8 +- .../MRFInterFoam/mixerVessel2D/0/alpha.water | 3119 ----------------- .../multiphase/interFoam/laminar/Allclean | 2 +- tutorials/multiphase/interFoam/laminar/Allrun | 11 +- .../interFoam/laminar/capillaryRise/Allrun | 14 + .../capillaryRise/constant/polyMesh/boundary | 3 +- .../laminar}/mixerVessel2D/0/U | 2 +- .../laminar}/mixerVessel2D/0/alpha.water.org | 2 +- .../laminar}/mixerVessel2D/0/p_rgh | 2 +- .../laminar}/mixerVessel2D/Allrun | 2 + .../mixerVessel2D/constant/MRFProperties | 2 +- .../laminar}/mixerVessel2D/constant/g | 2 +- .../constant/polyMesh/blockMeshDict.m4 | 2 +- .../mixerVessel2D/constant/polyMesh/boundary | 4 +- .../constant/transportProperties | 2 +- .../constant/turbulenceProperties | 2 +- .../laminar}/mixerVessel2D/makeMesh | 0 .../laminar}/mixerVessel2D/system/controlDict | 4 +- .../laminar/mixerVessel2D/system/fvOptions | 37 + .../laminar}/mixerVessel2D/system/fvSchemes | 2 +- .../laminar}/mixerVessel2D/system/fvSolution | 2 +- .../mixerVessel2D/system/setFieldsDict | 2 +- .../laminar}/mixerVessel2D/system/topoSetDict | 2 +- .../ras/damBreakPorousBaffle/0/alpha.water | 2276 +----------- .../laminar/mixerVesselAMI2D/0.org/U | 60 + .../laminar/mixerVesselAMI2D/0.org/alpha.air | 56 + .../mixerVesselAMI2D/0.org/alpha.mercury | 56 + .../laminar/mixerVesselAMI2D/0.org/alpha.oil | 56 + .../mixerVesselAMI2D/0.org/alpha.water | 56 + .../laminar/mixerVesselAMI2D/0.org/p_rgh | 56 + .../laminar/mixerVesselAMI2D/Allrun | 20 + .../mixerVesselAMI2D/constant/RASProperties | 25 + .../mixerVesselAMI2D/constant/dynamicMeshDict | 36 + .../laminar/mixerVesselAMI2D/constant/g | 21 + .../constant/polyMesh/blockMeshDict.m4 | 924 +++++ .../constant/polyMesh/boundary | 70 + .../constant/transportProperties | 60 + .../constant/triSurface/projectionSurface.stl | 1346 +++++++ .../constant/turbulenceProperties | 21 + .../laminar/mixerVesselAMI2D/makeMesh | 13 + .../mixerVesselAMI2D/system/controlDict | 55 + .../mixerVesselAMI2D/system/decomposeParDict | 31 + .../laminar/mixerVesselAMI2D/system/fvSchemes | 60 + .../mixerVesselAMI2D/system/fvSolution | 82 + .../mixerVesselAMI2D/system/setFieldsDict | 64 + .../mixerVesselAMI2D/system/topoSetDict | 35 + 124 files changed, 3994 insertions(+), 5940 deletions(-) delete mode 100644 applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files delete mode 100644 applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H delete mode 100644 applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H delete mode 100644 applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H rename applications/solvers/multiphase/{compressibleMultiphaseInterFoam/alphaCourantNo.H => interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C} (61%) create mode 100644 applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H rename applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/{threePhaseMixture.C => incompressibleThreePhaseMixture.C} (91%) rename applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/{threePhaseMixture.H => incompressibleThreePhaseMixture.H} (93%) delete mode 100644 applications/solvers/multiphase/multiphaseInterFoam/UEqn.H create mode 100644 applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files rename applications/solvers/multiphase/{interFoam/MRFInterFoam => multiphaseInterFoam/multiphaseInterDyMFoam}/Make/options (70%) rename applications/solvers/multiphase/{interFoam/MRFInterFoam/MRFInterFoam.C => multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C} (62%) delete mode 100644 applications/solvers/multiphase/multiphaseInterFoam/pEqn.H rename applications/solvers/multiphase/{multiphaseInterFoam => twoLiquidMixingFoam}/alphaCourantNo.H (90%) create mode 100644 src/transportModels/compressible/Make/files create mode 100644 src/transportModels/compressible/Make/options rename applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H => src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C (59%) create mode 100644 src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H create mode 100644 src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files create mode 100644 src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options create mode 100644 src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C create mode 100644 src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H delete mode 100644 tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water create mode 100755 tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/0/U (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/0/alpha.water.org (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/0/p_rgh (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/Allrun (83%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/MRFProperties (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/g (93%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 (99%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/polyMesh/boundary (91%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/transportProperties (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/constant/turbulenceProperties (92%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/makeMesh (100%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/system/controlDict (92%) create mode 100644 tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/system/fvSchemes (95%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/system/fvSolution (96%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/system/setFieldsDict (94%) rename tutorials/multiphase/{MRFInterFoam => interFoam/laminar}/mixerVessel2D/system/topoSetDict (93%) create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh create mode 100755 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties create mode 100755 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict create mode 100644 tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict diff --git a/applications/solvers/multiphase/cavitatingFoam/createFields.H b/applications/solvers/multiphase/cavitatingFoam/createFields.H index 2c834dc5118..3c28de16c5c 100644 --- a/applications/solvers/multiphase/cavitatingFoam/createFields.H +++ b/applications/solvers/multiphase/cavitatingFoam/createFields.H @@ -57,12 +57,12 @@ Info<< "Reading transportProperties\n" << endl; - incompressibleTwoPhaseMixture twoPhaseProperties(U, phi); + incompressibleTwoPhaseMixture mixture(U, phi); - volScalarField& alphav(twoPhaseProperties.alpha1()); + volScalarField& alphav(mixture.alpha1()); alphav.oldTime(); - volScalarField& alphal(twoPhaseProperties.alpha2()); + volScalarField& alphal(mixture.alpha2()); Info<< "Creating compressibilityModel\n" << endl; autoPtr<barotropicCompressibilityModel> psiModel = @@ -85,5 +85,5 @@ // Create incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) + incompressible::turbulenceModel::New(U, phi, mixture) ); diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options index 035116d2d57..54e9f74e4af 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/Make/options +++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options @@ -1,5 +1,6 @@ EXE_INC = \ -ItwoPhaseMixtureThermo \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ diff --git a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H index d97e8b2a354..a02b38a8d8c 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H @@ -3,19 +3,19 @@ ( fvm::ddt(rho, T) + fvm::div(rhoPhi, T) - - fvm::laplacian(twoPhaseProperties.alphaEff(turbulence->mut()), T) + - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T) + ( fvc::div(fvc::absolute(phi, U), p) + fvc::ddt(rho, K) + fvc::div(rhoPhi, K) ) *( - alpha1/twoPhaseProperties.thermo1().Cv() - + alpha2/twoPhaseProperties.thermo2().Cv() + alpha1/mixture.thermo1().Cv() + + alpha2/mixture.thermo2().Cv() ) ); TEqn.relax(); TEqn.solve(); - twoPhaseProperties.correct(); + mixture.correct(); } diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H index 8fc397e8020..44be32aac22 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H @@ -16,7 +16,7 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options index cf9a1d85ecf..123645b4c36 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options @@ -1,6 +1,7 @@ EXE_INC = \ -I.. \ -I../twoPhaseMixtureThermo \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H index e7fd7241db9..89089fe616f 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H @@ -15,7 +15,7 @@ surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H index c4edc961d88..5f7b4dddadf 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H +++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H @@ -29,19 +29,19 @@ #include "createPhi.H" Info<< "Constructing twoPhaseMixtureThermo\n" << endl; - twoPhaseMixtureThermo twoPhaseProperties(mesh); + twoPhaseMixtureThermo mixture(mesh); - volScalarField& alpha1(twoPhaseProperties.alpha1()); - volScalarField& alpha2(twoPhaseProperties.alpha2()); + volScalarField& alpha1(mixture.alpha1()); + volScalarField& alpha2(mixture.alpha2()); Info<< "Reading thermophysical properties\n" << endl; - volScalarField& p = twoPhaseProperties.p(); - volScalarField& T = twoPhaseProperties.T(); - volScalarField& rho1 = twoPhaseProperties.thermo1().rho(); - const volScalarField& psi1 = twoPhaseProperties.thermo1().psi(); - volScalarField& rho2 = twoPhaseProperties.thermo2().rho(); - const volScalarField& psi2 = twoPhaseProperties.thermo2().psi(); + volScalarField& p = mixture.p(); + volScalarField& T = mixture.T(); + volScalarField& rho1 = mixture.thermo1().rho(); + const volScalarField& psi1 = mixture.thermo1().psi(); + volScalarField& rho2 = mixture.thermo2().rho(); + const volScalarField& psi2 = mixture.thermo2().psi(); volScalarField rho ( @@ -57,7 +57,7 @@ ); - dimensionedScalar pMin(twoPhaseProperties.lookup("pMin")); + dimensionedScalar pMin(mixture.lookup("pMin")); Info<< "Calculating field g.h\n" << endl; volScalarField gh("gh", g & mesh.C()); @@ -85,12 +85,12 @@ ); // Construct interface from alpha1 distribution - interfaceProperties interface(alpha1, U, twoPhaseProperties); + interfaceProperties interface(alpha1, U, mixture); // Construct compressible turbulence model autoPtr<compressible::turbulenceModel> turbulence ( - compressible::turbulenceModel::New(rho, U, rhoPhi, twoPhaseProperties) + compressible::turbulenceModel::New(rho, U, rhoPhi, mixture) ); Info<< "Creating field kinetic energy K\n" << endl; diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H index dbd859b954b..673f1c82710 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H @@ -15,7 +15,7 @@ surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options index 8dbf02aa064..5c8c8df239b 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options +++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options @@ -1,4 +1,5 @@ EXE_INC = \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options index 0f47e6979ed..af7020f40f6 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options @@ -1,5 +1,7 @@ EXE_INC = \ + -I../interFoam \ -ImultiphaseMixtureThermo/lnInclude \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H index a7ee3a7bb4b..66274441c3e 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H @@ -2,16 +2,16 @@ fvScalarMatrix TEqn ( fvm::ddt(rho, T) - + fvm::div(multiphaseProperties.rhoPhi(), T) - - fvm::laplacian(multiphaseProperties.alphaEff(turbulence->mut()), T) + + fvm::div(mixture.rhoPhi(), T) + - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T) + ( fvc::div(fvc::absolute(phi, U), p) - + fvc::ddt(rho, K) + fvc::div(multiphaseProperties.rhoPhi(), K) - )*multiphaseProperties.rCv() + + fvc::ddt(rho, K) + fvc::div(mixture.rhoPhi(), K) + )*mixture.rCv() ); TEqn.relax(); TEqn.solve(); - multiphaseProperties.correct(); + mixture.correct(); } diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H index 38cfebde6f3..436b74e8461 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H @@ -1,7 +1,7 @@ fvVectorMatrix UEqn ( fvm::ddt(rho, U) - + fvm::div(multiphaseProperties.rhoPhi(), U) + + fvm::div(mixture.rhoPhi(), U) + turbulence->divDevRhoReff(U) ); @@ -16,7 +16,7 @@ fvc::reconstruct ( ( - multiphaseProperties.surfaceTensionForce() + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C index 09018b603f0..5648f2d3bd2 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -76,9 +76,9 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { - multiphaseProperties.solve(); + mixture.solve(); - solve(fvm::ddt(rho) + fvc::div(multiphaseProperties.rhoPhi())); + solve(fvm::ddt(rho) + fvc::div(mixture.rhoPhi())); #include "UEqn.H" #include "TEqn.H" diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H index 5c7f723a875..8ab0a9581a8 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H @@ -29,10 +29,10 @@ #include "createPhi.H" Info<< "Constructing multiphaseMixtureThermo\n" << endl; - multiphaseMixtureThermo multiphaseProperties(U, phi); + multiphaseMixtureThermo mixture(U, phi); - volScalarField& p = multiphaseProperties.p(); - volScalarField& T = multiphaseProperties.T(); + volScalarField& p = mixture.p(); + volScalarField& T = mixture.T(); volScalarField rho ( @@ -43,12 +43,12 @@ mesh, IOobject::READ_IF_PRESENT ), - multiphaseProperties.rho() + mixture.rho() ); Info<< max(rho) << min(rho); - dimensionedScalar pMin(multiphaseProperties.lookup("pMin")); + dimensionedScalar pMin(mixture.lookup("pMin")); Info<< "Calculating field g.h\n" << endl; @@ -62,8 +62,8 @@ ( rho, U, - multiphaseProperties.rhoPhi(), - multiphaseProperties + mixture.rhoPhi(), + mixture ) ); diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options index eab8cce15dd..3740cf38fe9 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options @@ -1,4 +1,5 @@ EXE_INC = \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H index e42a54aabda..a8f4bcb9f2b 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H @@ -15,7 +15,7 @@ surfaceScalarField phig ( ( - multiphaseProperties.surfaceTensionForce() + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); @@ -32,13 +32,13 @@ )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) ); - PtrList<fvScalarMatrix> p_rghEqnComps(multiphaseProperties.phases().size()); + PtrList<fvScalarMatrix> p_rghEqnComps(mixture.phases().size()); label phasei = 0; forAllConstIter ( PtrDictionary<phaseModel>, - multiphaseProperties.phases(), + mixture.phases(), phase ) { @@ -74,7 +74,7 @@ forAllConstIter ( PtrDictionary<phaseModel>, - multiphaseProperties.phases(), + mixture.phases(), phase ) { @@ -105,14 +105,14 @@ if (pimple.finalNonOrthogonalIter()) { - // p = max(p_rgh + multiphaseProperties.rho()*gh, pMin); - // p_rgh = p - multiphaseProperties.rho()*gh; + // p = max(p_rgh + mixture.rho()*gh, pMin); + // p_rgh = p - mixture.rho()*gh; phasei = 0; forAllIter ( PtrDictionary<phaseModel>, - multiphaseProperties.phases(), + mixture.phases(), phase ) { @@ -129,11 +129,11 @@ } } - p = max(p_rgh + multiphaseProperties.rho()*gh, pMin); + p = max(p_rgh + mixture.rho()*gh, pMin); // Update densities from change in p_rgh - multiphaseProperties.correctRho(p_rgh - p_rgh_0); - rho = multiphaseProperties.rho(); + mixture.correctRho(p_rgh - p_rgh_0); + rho = mixture.rho(); K = 0.5*magSqr(U); diff --git a/applications/solvers/multiphase/interFoam/Allwclean b/applications/solvers/multiphase/interFoam/Allwclean index 8b080006674..d91472696f7 100755 --- a/applications/solvers/multiphase/interFoam/Allwclean +++ b/applications/solvers/multiphase/interFoam/Allwclean @@ -4,7 +4,6 @@ set -x wclean wclean interDyMFoam -wclean MRFInterFoam wclean porousInterFoam wclean LTSInterFoam wclean interMixingFoam diff --git a/applications/solvers/multiphase/interFoam/Allwmake b/applications/solvers/multiphase/interFoam/Allwmake index cc883614b89..035b0079344 100755 --- a/applications/solvers/multiphase/interFoam/Allwmake +++ b/applications/solvers/multiphase/interFoam/Allwmake @@ -4,7 +4,6 @@ set -x wmake wmake interDyMFoam -wmake MRFInterFoam wmake porousInterFoam wmake LTSInterFoam wmake interMixingFoam diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C index 33d83161ce0..1e870c42a93 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C @@ -40,8 +40,7 @@ Description #include "fvCFD.H" #include "CMULES.H" #include "subCycle.H" -#include "interfaceProperties.H" -#include "incompressibleTwoPhaseMixture.H" +#include "immiscibleIncompressibleTwoPhaseMixture.H" #include "turbulenceModel.H" #include "fvcSmooth.H" #include "pimpleControl.H" @@ -82,12 +81,12 @@ int main(int argc, char *argv[]) { #include "alphaControls.H" - twoPhaseProperties.correct(); - #define LTSSOLVE #include "alphaEqnSubCycle.H" #undef LTSSOLVE + mixture.correct(); + turbulence->correct(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options b/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options index 33560b54e64..14861f2b880 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options @@ -5,16 +5,14 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/fvOptions/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -linterfaceProperties \ - -ltwoPhaseMixture \ - -ltwoPhaseProperties \ - -lincompressibleTransportModels \ + -limmiscibleIncompressibleTwoPhaseMixture \ -lincompressibleTurbulenceModel \ -lincompressibleRASModels \ -lincompressibleLESModels \ diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files b/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files deleted file mode 100644 index 9610e63ee14..00000000000 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -MRFInterFoam.C - -EXE = $(FOAM_APPBIN)/MRFInterFoam diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H deleted file mode 100644 index c0a9b615a06..00000000000 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H +++ /dev/null @@ -1,38 +0,0 @@ - surfaceScalarField muEff - ( - "muEff", - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nut()) - ); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(rhoPhi, U) - - fvm::laplacian(muEff, U) - - (fvc::grad(U) & fvc::grad(muEff)) - //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) - == - fvOptions(rho, U) - ); - - mrfZones.addCoriolis(rho, UEqn); - UEqn.relax(); - fvOptions.constrain(UEqn); - - if (pimple.momentumPredictor()) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - - ghf*fvc::snGrad(rho) - - fvc::snGrad(p_rgh) - ) * mesh.magSf() - ) - ); - } diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H deleted file mode 100644 index dba2f7ae629..00000000000 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H +++ /dev/null @@ -1,2 +0,0 @@ - IOMRFZoneList mrfZones(mesh); - mrfZones.correctBoundaryVelocity(U); diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H deleted file mode 100644 index 6c315c8eb85..00000000000 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H +++ /dev/null @@ -1,72 +0,0 @@ -{ - volScalarField rAU("rAU", 1.0/UEqn.A()); - surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); - - volVectorField HbyA("HbyA", U); - HbyA = rAU*UEqn.H(); - - surfaceScalarField phiHbyA - ( - "phiHbyA", - (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi) - ); - adjustPhi(phiHbyA, U, p_rgh); - mrfZones.makeRelative(phiHbyA); - - surfaceScalarField phig - ( - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - - ghf*fvc::snGrad(rho) - )*rAUf*mesh.magSf() - ); - - phiHbyA += phig; - - // Update the fixedFluxPressure BCs to ensure flux consistency - setSnGrad<fixedFluxPressureFvPatchScalarField> - ( - p_rgh.boundaryField(), - ( - phiHbyA.boundaryField() - - mrfZones.relative(mesh.Sf().boundaryField() & U.boundaryField()) - )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) - ); - - while (pimple.correctNonOrthogonal()) - { - fvScalarMatrix p_rghEqn - ( - fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA) - ); - - p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - - p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); - - if (pimple.finalNonOrthogonalIter()) - { - phi = phiHbyA - p_rghEqn.flux(); - - U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf); - U.correctBoundaryConditions(); - fvOptions.correct(U); - } - } - - #include "continuityErrs.H" - - p == p_rgh + rho*gh; - - if (p_rgh.needReference()) - { - p += dimensionedScalar - ( - "p", - p.dimensions(), - pRefValue - getRefCellValue(p, pRefCell) - ); - p_rgh = p - rho*gh; - } -} diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H deleted file mode 100644 index e0355fe4b14..00000000000 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H +++ /dev/null @@ -1,21 +0,0 @@ -{ - const scalarField& V = mesh.V(); - - forAll(mesh.cellZones(), czi) - { - const labelList& cellLabels = mesh.cellZones()[czi]; - - scalar phaseVolume = 0; - - forAll(cellLabels, cli) - { - label celli = cellLabels[cli]; - phaseVolume += alpha1[celli]*V[celli]; - } - - reduce(phaseVolume, sumOp<scalar>()); - - Info<< "Phase volume in zone " << mesh.cellZones()[czi].name() - << " = " << phaseVolume*1e6 << " ml " << endl; - } -} diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options index 8811a53df65..207a796b1da 100644 --- a/applications/solvers/multiphase/interFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/Make/options @@ -1,23 +1,21 @@ -EXE_INC = -ggdb3 \ +EXE_INC = \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -ltwoPhaseMixture \ - -linterfaceProperties \ - -ltwoPhaseProperties \ - -lincompressibleTransportModels \ + -limmiscibleIncompressibleTwoPhaseMixture \ -lincompressibleTurbulenceModel \ -lincompressibleRASModels \ -lincompressibleLESModels \ -lfiniteVolume \ - -lmeshTools \ -lfvOptions \ + -lmeshTools \ -lsampling diff --git a/applications/solvers/multiphase/interFoam/UEqn.H b/applications/solvers/multiphase/interFoam/UEqn.H index 7cc250a66a2..10bc0fac6f5 100644 --- a/applications/solvers/multiphase/interFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/UEqn.H @@ -3,10 +3,14 @@ fvm::ddt(rho, U) + fvm::div(rhoPhi, U) + turbulence->divDevRhoReff(rho, U) + == + fvOptions(rho, U) ); UEqn.relax(); + fvOptions.constrain(UEqn); + if (pimple.momentumPredictor()) { solve @@ -16,10 +20,12 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) ) * mesh.magSf() ) ); + + fvOptions.correct(U); } diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/alphaCourantNo.H index c1f69ab802a..95ad609a510 100644 --- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interFoam/alphaCourantNo.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -41,7 +41,7 @@ if (mesh.nInternalFaces()) { scalarField sumPhi ( - pos(alpha1 - 0.01)*pos(0.99 - alpha1) + mixture.nearInterface()().internalField() *fvc::surfaceSum(mag(phi))().internalField() ); diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H index 764d2aee56d..b25d12511c4 100644 --- a/applications/solvers/multiphase/interFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interFoam/alphaEqn.H @@ -3,13 +3,13 @@ word alpharScheme("div(phirb,alpha)"); // Standard face-flux compression coefficient - surfaceScalarField phic(interface.cAlpha()*mag(phi/mesh.magSf())); + surfaceScalarField phic(mixture.cAlpha()*mag(phi/mesh.magSf())); // Add the optional isotropic compression contribution if (icAlpha > 0) { phic *= (1.0 - icAlpha); - phic += (interface.cAlpha()*icAlpha)*fvc::interpolate(mag(U)); + phic += (mixture.cAlpha()*icAlpha)*fvc::interpolate(mag(U)); } // Do not compress interface at non-coupled boundary faces @@ -74,12 +74,12 @@ alpha2 = 1.0 - alpha1; - interface.correct(); + mixture.correct(); } for (int aCorr=0; aCorr<nAlphaCorr; aCorr++) { - surfaceScalarField phir(phic*interface.nHatf()); + surfaceScalarField phir(phic*mixture.nHatf()); tmp<surfaceScalarField> tphiAlphaUn ( @@ -132,7 +132,7 @@ alpha2 = 1.0 - alpha1; - interface.correct(); + mixture.correct(); } rhoPhi = tphiAlpha()*(rho1 - rho2) + phi*rho2; diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H index 1c91f280bc7..a87673b0f70 100644 --- a/applications/solvers/multiphase/interFoam/createFields.H +++ b/applications/solvers/multiphase/interFoam/createFields.H @@ -30,13 +30,13 @@ Info<< "Reading transportProperties\n" << endl; - incompressibleTwoPhaseMixture twoPhaseProperties(U, phi); + immiscibleIncompressibleTwoPhaseMixture mixture(U, phi); - volScalarField& alpha1(twoPhaseProperties.alpha1()); - volScalarField& alpha2(twoPhaseProperties.alpha2()); + volScalarField& alpha1(mixture.alpha1()); + volScalarField& alpha2(mixture.alpha2()); - const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); - const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); + const dimensionedScalar& rho1 = mixture.rho1(); + const dimensionedScalar& rho2 = mixture.rho2(); // Need to store rho for ddt(rho, U) @@ -70,14 +70,10 @@ ); - // Construct interface from alpha1 distribution - interfaceProperties interface(alpha1, U, twoPhaseProperties); - - // Construct incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) + incompressible::turbulenceModel::New(U, phi, mixture) ); #include "readGravitationalAcceleration.H" @@ -131,7 +127,9 @@ p_rgh = p - rho*gh; } + fv::IOoptionList fvOptions(mesh); + // MULES Correction tmp<surfaceScalarField> tphiAlphaCorr0; diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options index 2a5429f7a8a..b9638e612be 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options @@ -5,6 +5,7 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ @@ -13,10 +14,7 @@ EXE_INC = \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -ltwoPhaseMixture \ - -linterfaceProperties \ - -ltwoPhaseProperties \ - -lincompressibleTransportModels \ + -limmiscibleIncompressibleTwoPhaseMixture \ -lincompressibleTurbulenceModel \ -lincompressibleRASModels \ -lincompressibleLESModels \ diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C index 32ee5aee06f..58d74a62550 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C @@ -36,8 +36,7 @@ Description #include "dynamicFvMesh.H" #include "CMULES.H" #include "subCycle.H" -#include "interfaceProperties.H" -#include "incompressibleTwoPhaseMixture.H" +#include "immiscibleIncompressibleTwoPhaseMixture.H" #include "turbulenceModel.H" #include "pimpleControl.H" #include "fvIOoptionList.H" @@ -121,7 +120,7 @@ int main(int argc, char *argv[]) // Make the flux relative to the mesh motion fvc::makeRelative(phi, U); - interface.correct(); + mixture.correct(); } if (mesh.changing() && checkMeshCourantNo) @@ -131,11 +130,9 @@ int main(int argc, char *argv[]) } #include "alphaControls.H" - - twoPhaseProperties.correct(); - #include "alphaEqnSubCycle.H" - interface.correct(); + + mixture.correct(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H index ec99a638838..2ef484b18e6 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H @@ -22,7 +22,7 @@ surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C index 8c59d0f9d4e..6b6168bf0e7 100644 --- a/applications/solvers/multiphase/interFoam/interFoam.C +++ b/applications/solvers/multiphase/interFoam/interFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -40,8 +40,7 @@ Description #include "fvCFD.H" #include "CMULES.H" #include "subCycle.H" -#include "interfaceProperties.H" -#include "incompressibleTwoPhaseMixture.H" +#include "immiscibleIncompressibleTwoPhaseMixture.H" #include "turbulenceModel.H" #include "pimpleControl.H" #include "fvIOoptionList.H" @@ -84,11 +83,9 @@ int main(int argc, char *argv[]) while (pimple.loop()) { #include "alphaControls.H" - - twoPhaseProperties.correct(); - #include "alphaEqnSubCycle.H" - interface.correct(); + + mixture.correct(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files index f179f42761f..92e2916a74b 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files @@ -1,5 +1,6 @@ -incompressibleThreePhaseMixture/threePhaseMixture.C +incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C threePhaseInterfaceProperties/threePhaseInterfaceProperties.C +immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C interMixingFoam.C EXE = $(FOAM_APPBIN)/interMixingFoam diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options index cc09aeb2f35..43456c90472 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options @@ -1,6 +1,7 @@ EXE_INC = \ -I.. \ -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ + -IimmiscibleIncompressibleThreePhaseMixture \ -IincompressibleThreePhaseMixture \ -IthreePhaseInterfaceProperties \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H index 970da9fc925..a3278090207 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H @@ -12,7 +12,7 @@ IOobject::NO_READ, IOobject::NO_WRITE ), - interface.cAlpha()*mag(phi/mesh.magSf())*interface.nHatf() + mixture.cAlpha()*mag(phi/mesh.magSf())*mixture.nHatf() ); for (int gCorr=0; gCorr<nAlphaCorr; gCorr++) diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H index 3fd5874d5b4..16f3a213627 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H @@ -28,17 +28,17 @@ #include "createPhi.H" - threePhaseMixture threePhaseProperties(U, phi); + immiscibleIncompressibleThreePhaseMixture mixture(U, phi); - volScalarField& alpha1(threePhaseProperties.alpha1()); - volScalarField& alpha2(threePhaseProperties.alpha2()); - volScalarField& alpha3(threePhaseProperties.alpha3()); + volScalarField& alpha1(mixture.alpha1()); + volScalarField& alpha2(mixture.alpha2()); + volScalarField& alpha3(mixture.alpha3()); - const dimensionedScalar& rho1 = threePhaseProperties.rho1(); - const dimensionedScalar& rho2 = threePhaseProperties.rho2(); - const dimensionedScalar& rho3 = threePhaseProperties.rho3(); + const dimensionedScalar& rho1 = mixture.rho1(); + const dimensionedScalar& rho2 = mixture.rho2(); + const dimensionedScalar& rho3 = mixture.rho3(); - dimensionedScalar D23(threePhaseProperties.lookup("D23")); + dimensionedScalar D23(mixture.lookup("D23")); // Need to store rho for ddt(rho, U) volScalarField rho @@ -73,14 +73,10 @@ ); - // Construct interface from alpha distribution - threePhaseInterfaceProperties interface(threePhaseProperties); - - // Construct incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::turbulenceModel::New(U, phi, threePhaseProperties) + incompressible::turbulenceModel::New(U, phi, mixture) ); diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C similarity index 61% rename from applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H rename to applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C index 1fd68ffb790..2dcc2a09eca 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -21,37 +21,26 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -Global - CourantNo - -Description - Calculates and outputs the mean and maximum Courant Numbers. - \*---------------------------------------------------------------------------*/ -scalar maxAlphaCo -( - readScalar(runTime.controlDict().lookup("maxAlphaCo")) -); +#include "immiscibleIncompressibleThreePhaseMixture.H" -scalar alphaCoNum = 0.0; -scalar meanAlphaCoNum = 0.0; -if (mesh.nInternalFaces()) -{ - scalarField sumPhi - ( - multiphaseProperties.nearInterface()().internalField() - * fvc::surfaceSum(mag(phi))().internalField() - ); +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - - meanAlphaCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); -} +Foam::immiscibleIncompressibleThreePhaseMixture:: +immiscibleIncompressibleThreePhaseMixture +( + const volVectorField& U, + const surfaceScalarField& phi +) +: + incompressibleThreePhaseMixture(U, phi), + threePhaseInterfaceProperties + ( + static_cast<incompressibleThreePhaseMixture&>(*this) + ) +{} -Info<< "Interface Courant Number mean: " << meanAlphaCoNum - << " max: " << alphaCoNum << endl; // ************************************************************************* // diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H new file mode 100644 index 00000000000..43352753aca --- /dev/null +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H @@ -0,0 +1,92 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::immiscibleIncompressibleThreePhaseMixture + +Description + An immiscible incompressible two-phase mixture transport model + +SourceFiles + immiscibleIncompressibleThreePhaseMixture.C + +\*---------------------------------------------------------------------------*/ + +#ifndef immiscibleIncompressibleThreePhaseMixture_H +#define immiscibleIncompressibleThreePhaseMixture_H + +#include "incompressibleThreePhaseMixture.H" +#include "threePhaseInterfaceProperties.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class immiscibleIncompressibleThreePhaseMixture Declaration +\*---------------------------------------------------------------------------*/ + +class immiscibleIncompressibleThreePhaseMixture +: + public incompressibleThreePhaseMixture, + public threePhaseInterfaceProperties +{ + +public: + + // Constructors + + //- Construct from components + immiscibleIncompressibleThreePhaseMixture + ( + const volVectorField& U, + const surfaceScalarField& phi + ); + + + //- Destructor + virtual ~immiscibleIncompressibleThreePhaseMixture() + {} + + + // Member Functions + + //- Correct the transport and interface properties + virtual void correct() + { + incompressibleThreePhaseMixture::correct(); + threePhaseInterfaceProperties::correct(); + } +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C similarity index 91% rename from applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C rename to applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C index 50494062d5c..0894f3c6f36 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -23,7 +23,7 @@ License \*---------------------------------------------------------------------------*/ -#include "threePhaseMixture.H" +#include "incompressibleThreePhaseMixture.H" #include "addToRunTimeSelectionTable.H" #include "surfaceFields.H" #include "fvc.H" @@ -31,7 +31,7 @@ License // * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // //- Calculate and return the laminar viscosity -void Foam::threePhaseMixture::calcNu() +void Foam::incompressibleThreePhaseMixture::calcNu() { nuModel1_->correct(); nuModel2_->correct(); @@ -44,7 +44,7 @@ void Foam::threePhaseMixture::calcNu() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::threePhaseMixture::threePhaseMixture +Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture ( const volVectorField& U, const surfaceScalarField& phi @@ -163,7 +163,8 @@ Foam::threePhaseMixture::threePhaseMixture // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -Foam::tmp<Foam::volScalarField> Foam::threePhaseMixture::mu() const +Foam::tmp<Foam::volScalarField> +Foam::incompressibleThreePhaseMixture::mu() const { return tmp<volScalarField> ( @@ -178,7 +179,8 @@ Foam::tmp<Foam::volScalarField> Foam::threePhaseMixture::mu() const } -Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::muf() const +Foam::tmp<Foam::surfaceScalarField> +Foam::incompressibleThreePhaseMixture::muf() const { surfaceScalarField alpha1f(fvc::interpolate(alpha1_)); surfaceScalarField alpha2f(fvc::interpolate(alpha2_)); @@ -197,7 +199,8 @@ Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::muf() const } -Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::nuf() const +Foam::tmp<Foam::surfaceScalarField> +Foam::incompressibleThreePhaseMixture::nuf() const { surfaceScalarField alpha1f(fvc::interpolate(alpha1_)); surfaceScalarField alpha2f(fvc::interpolate(alpha2_)); @@ -218,7 +221,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::nuf() const } -bool Foam::threePhaseMixture::read() +bool Foam::incompressibleThreePhaseMixture::read() { if (transportModel::read()) { diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H similarity index 93% rename from applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H rename to applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H index 16337521d3b..766e06215ef 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,17 +22,17 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - threePhaseMixture + incompressibleThreePhaseMixture Description SourceFiles - threePhaseMixture.C + incompressibleThreePhaseMixture.C \*---------------------------------------------------------------------------*/ -#ifndef threePhaseMixture_H -#define threePhaseMixture_H +#ifndef incompressibleThreePhaseMixture_H +#define incompressibleThreePhaseMixture_H #include "incompressible/transportModel/transportModel.H" #include "IOdictionary.H" @@ -46,10 +46,10 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class threePhaseMixture Declaration + Class incompressibleThreePhaseMixture Declaration \*---------------------------------------------------------------------------*/ -class threePhaseMixture +class incompressibleThreePhaseMixture : public IOdictionary, public transportModel @@ -89,7 +89,7 @@ public: // Constructors //- Construct from components - threePhaseMixture + incompressibleThreePhaseMixture ( const volVectorField& U, const surfaceScalarField& phi @@ -97,7 +97,7 @@ public: //- Destructor - ~threePhaseMixture() + ~incompressibleThreePhaseMixture() {} diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C index edeab9ac703..09cb7f1c7eb 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C @@ -33,8 +33,7 @@ Description #include "fvCFD.H" #include "CMULES.H" #include "subCycle.H" -#include "threePhaseMixture.H" -#include "threePhaseInterfaceProperties.H" +#include "immiscibleIncompressibleThreePhaseMixture.H" #include "turbulenceModel.H" #include "pimpleControl.H" #include "fvIOoptionList.H" @@ -78,13 +77,9 @@ int main(int argc, char *argv[]) while (pimple.loop()) { #include "alphaControls.H" - - threePhaseProperties.correct(); - #include "alphaEqnsSubCycle.H" - interface.correct(); - #define twoPhaseProperties threePhaseProperties + mixture.correct(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C index f812b472e08..486e442982d 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,6 +37,7 @@ Description #include "surfaceInterpolate.H" #include "fvcDiv.H" #include "fvcGrad.H" +#include "fvcSnGrad.H" // * * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * // @@ -166,7 +167,7 @@ void Foam::threePhaseInterfaceProperties::calculateK() Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties ( - const threePhaseMixture& mixture + const incompressibleThreePhaseMixture& mixture ) : mixture_(mixture), @@ -212,4 +213,25 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties } +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +Foam::tmp<Foam::surfaceScalarField> +Foam::threePhaseInterfaceProperties::surfaceTensionForce() const +{ + return fvc::interpolate(sigmaK())*fvc::snGrad(mixture_.alpha1()); +} + + +Foam::tmp<Foam::volScalarField> +Foam::threePhaseInterfaceProperties::nearInterface() const +{ + return max + ( + pos(mixture_.alpha1() - 0.01)*pos(0.99 - mixture_.alpha1()), + pos(mixture_.alpha2() - 0.01)*pos(0.99 - mixture_.alpha2()) + ); +} + + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H index 0653ab0a206..266bedb470a 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,7 +37,7 @@ SourceFiles #ifndef threePhaseInterfaceProperties_H #define threePhaseInterfaceProperties_H -#include "threePhaseMixture.H" +#include "incompressibleThreePhaseMixture.H" #include "surfaceFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -53,7 +53,7 @@ class threePhaseInterfaceProperties { // Private data - const threePhaseMixture& mixture_; + const incompressibleThreePhaseMixture& mixture_; //- Compression coefficient scalar cAlpha_; @@ -98,7 +98,10 @@ public: // Constructors //- Construct from volume fraction field alpha and IOdictionary - threePhaseInterfaceProperties(const threePhaseMixture& mixture); + threePhaseInterfaceProperties + ( + const incompressibleThreePhaseMixture& mixture + ); // Member Functions @@ -138,6 +141,12 @@ public: return sigma()*K_; } + tmp<surfaceScalarField> surfaceTensionForce() const; + + //- Indicator of the proximity of the interface + // Field values are 1 near and 0 away for the interface. + tmp<volScalarField> nearInterface() const; + void correct() { calculateK(); diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H index 227c075fa27..81a0391d6de 100644 --- a/applications/solvers/multiphase/interFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/pEqn.H @@ -11,13 +11,13 @@ (fvc::interpolate(HbyA) & mesh.Sf()) + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi) ); - adjustPhi(phiHbyA, U, p_rgh); + fvOptions.makeRelative(phiHbyA); surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); @@ -30,7 +30,7 @@ p_rgh.boundaryField(), ( phiHbyA.boundaryField() - - (mesh.Sf().boundaryField() & U.boundaryField()) + - fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) ); diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options b/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options index db2e1736ee2..fffa41da94c 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options @@ -4,6 +4,7 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ + -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \ -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ @@ -11,9 +12,7 @@ EXE_INC = \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -ltwoPhaseMixture \ - -linterfaceProperties \ - -ltwoPhaseProperties \ + -limmiscibleIncompressibleTwoPhaseMixture \ -lincompressibleTransportModels \ -lincompressibleTurbulenceModel \ -lincompressibleRASModels \ diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H index f8dcecf6acf..e175dcb92c4 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H @@ -1,12 +1,12 @@ surfaceScalarField muEff ( "muEff", - twoPhaseProperties.muf() + mixture.muf() + fvc::interpolate(rho*turbulence->nut()) ); // Calculate and cache mu for the porous media - volScalarField mu(twoPhaseProperties.mu()); + volScalarField mu(mixture.mu()); fvVectorMatrix UEqn ( @@ -33,7 +33,7 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + mixture.surfaceTensionForce() - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C index c3018878441..c17847bd3da 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C @@ -41,8 +41,7 @@ Description #include "fvCFD.H" #include "CMULES.H" #include "subCycle.H" -#include "interfaceProperties.H" -#include "incompressibleTwoPhaseMixture.H" +#include "immiscibleIncompressibleTwoPhaseMixture.H" #include "turbulenceModel.H" #include "IOporosityModelList.H" #include "pimpleControl.H" @@ -87,11 +86,9 @@ int main(int argc, char *argv[]) while (pimple.loop()) { #include "alphaControls.H" - - twoPhaseProperties.correct(); - #include "alphaEqnSubCycle.H" - interface.correct(); + + mixture.correct(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H index 062c5523c9d..1e27597292e 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H @@ -17,7 +17,7 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H index 1172cf07071..5d915ecc14a 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H @@ -5,7 +5,7 @@ surfaceScalarField phir("phir", phic*interface.nHatf()); Pair<tmp<volScalarField> > vDotAlphal = - twoPhaseProperties->vDotAlphal(); + mixture->vDotAlphal(); const volScalarField& vDotcAlphal = vDotAlphal[0](); const volScalarField& vDotvAlphal = vDotAlphal[1](); const volScalarField vDotvmcAlphal(vDotvAlphal - vDotcAlphal); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H index 0e45fa495e8..79fc0a1405d 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H @@ -30,15 +30,15 @@ Info<< "Creating phaseChangeTwoPhaseMixture\n" << endl; - autoPtr<phaseChangeTwoPhaseMixture> twoPhaseProperties = + autoPtr<phaseChangeTwoPhaseMixture> mixture = phaseChangeTwoPhaseMixture::New(U, phi); - volScalarField& alpha1(twoPhaseProperties->alpha1()); - volScalarField& alpha2(twoPhaseProperties->alpha2()); + volScalarField& alpha1(mixture->alpha1()); + volScalarField& alpha2(mixture->alpha2()); - const dimensionedScalar& rho1 = twoPhaseProperties->rho1(); - const dimensionedScalar& rho2 = twoPhaseProperties->rho2(); - const dimensionedScalar& pSat = twoPhaseProperties->pSat(); + const dimensionedScalar& rho1 = mixture->rho1(); + const dimensionedScalar& rho2 = mixture->rho2(); + const dimensionedScalar& pSat = mixture->pSat(); // Need to store rho for ddt(rho, U) @@ -58,12 +58,12 @@ // Construct interface from alpha1 distribution - interfaceProperties interface(alpha1, U, twoPhaseProperties()); + interfaceProperties interface(alpha1, U, mixture()); // Construct incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::turbulenceModel::New(U, phi, twoPhaseProperties()) + incompressible::turbulenceModel::New(U, phi, mixture()) ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C index 86b19912cff..e336e4a0c3d 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C @@ -154,7 +154,7 @@ int main(int argc, char *argv[]) dimensionedScalar("0", dimMass/dimTime, 0) ); - twoPhaseProperties->correct(); + mixture->correct(); #include "alphaEqnSubCycle.H" interface.correct(); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H index 5915b680359..b759081eeae 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H @@ -22,7 +22,7 @@ surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); @@ -39,7 +39,7 @@ )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) ); - Pair<tmp<volScalarField> > vDotP = twoPhaseProperties->vDotP(); + Pair<tmp<volScalarField> > vDotP = mixture->vDotP(); const volScalarField& vDotcP = vDotP[0](); const volScalarField& vDotvP = vDotP[1](); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C index bea114da804..3296d0f0fb1 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C @@ -100,7 +100,7 @@ int main(int argc, char *argv[]) dimensionedScalar("0", dimMass/dimTime, 0) ); - twoPhaseProperties->correct(); + mixture->correct(); #include "alphaEqnSubCycle.H" interface.correct(); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H index 6714fce91c1..4a174eb980f 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H @@ -16,7 +16,7 @@ surfaceScalarField phig ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + interface.surfaceTensionForce() - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() ); @@ -33,7 +33,7 @@ )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) ); - Pair<tmp<volScalarField> > vDotP = twoPhaseProperties->vDotP(); + Pair<tmp<volScalarField> > vDotP = mixture->vDotP(); const volScalarField& vDotcP = vDotP[0](); const volScalarField& vDotvP = vDotP[1](); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Allwclean b/applications/solvers/multiphase/multiphaseInterFoam/Allwclean index 6b5dc2e5c65..7edca3f5d1c 100755 --- a/applications/solvers/multiphase/multiphaseInterFoam/Allwclean +++ b/applications/solvers/multiphase/multiphaseInterFoam/Allwclean @@ -4,5 +4,6 @@ set -x wclean libso multiphaseMixture wclean +wclean multiphaseInterDyMFoam # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Allwmake b/applications/solvers/multiphase/multiphaseInterFoam/Allwmake index 6ceded9c1a9..2a03ac9b6cb 100755 --- a/applications/solvers/multiphase/multiphaseInterFoam/Allwmake +++ b/applications/solvers/multiphase/multiphaseInterFoam/Allwmake @@ -4,5 +4,6 @@ set -x wmake libso multiphaseMixture wmake +wmake multiphaseInterDyMFoam # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H deleted file mode 100644 index 5dd13a4ecf5..00000000000 --- a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H +++ /dev/null @@ -1,31 +0,0 @@ - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(mixture.rhoPhi(), U) - + turbulence->divDevRhoReff(rho, U) - == - fvOptions(rho, U) - ); - - UEqn.relax(); - - fvOptions.constrain(UEqn); - - if (pimple.momentumPredictor()) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - mixture.surfaceTensionForce() - - ghf*fvc::snGrad(rho) - - fvc::snGrad(p_rgh) - ) * mesh.magSf() - ) - ); - - fvOptions.correct(U); - } diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H index c19f9ea9e3e..a3550dbdb7a 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H @@ -44,6 +44,7 @@ ); rho.oldTime(); + const surfaceScalarField& rhoPhi(mixture.rhoPhi()); // Construct incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files new file mode 100644 index 00000000000..3fb8d0245ff --- /dev/null +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files @@ -0,0 +1,3 @@ +multiphaseInterDyMFoam.C + +EXE = $(FOAM_APPBIN)/multiphaseInterDyMFoam diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options similarity index 70% rename from applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options rename to applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options index db2e1736ee2..83653482210 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options @@ -1,24 +1,30 @@ EXE_INC = \ -I.. \ - -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \ + -I../../interFoam/interDyMFoam \ + -I../../interFoam \ + -I../multiphaseMixture/lnInclude \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -ltwoPhaseMixture \ + -lmultiphaseInterFoam \ -linterfaceProperties \ - -ltwoPhaseProperties \ -lincompressibleTransportModels \ -lincompressibleTurbulenceModel \ -lincompressibleRASModels \ -lincompressibleLESModels \ -lfiniteVolume \ - -lmeshTools \ + -ldynamicMesh \ + -ldynamicFvMesh \ + -ltopoChangerFvMesh \ -lfvOptions \ + -lmeshTools \ -lsampling diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C similarity index 62% rename from applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C rename to applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C index f6386bde485..acfa7eb3eea 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C @@ -22,27 +22,20 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Application - MRFInterFoam + multiphaseInterFoam Description - Solver for 2 incompressible, isothermal immiscible fluids using a VOF - (volume of fluid) phase-fraction based interface capturing approach. - The momentum and other fluid properties are of the "mixture" and a single - momentum equation is solved. + Solver for n incompressible fluids which captures the interfaces and + includes surface-tension and contact-angle effects for each phase. Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. - For a two-fluid approach see twoPhaseEulerFoam. - \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "CMULES.H" -#include "subCycle.H" -#include "interfaceProperties.H" -#include "incompressibleTwoPhaseMixture.H" +#include "dynamicFvMesh.H" +#include "multiphaseMixture.H" #include "turbulenceModel.H" -#include "IOMRFZoneList.H" #include "pimpleControl.H" #include "fvIOoptionList.H" #include "fixedFluxPressureFvPatchScalarField.H" @@ -53,16 +46,31 @@ int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" - #include "createMesh.H" + #include "createDynamicFvMesh.H" #include "initContinuityErrs.H" - #include "createFields.H" - #include "createMRFZones.H" - #include "readTimeControls.H" pimpleControl pimple(mesh); + #include "createFields.H" + #include "readTimeControls.H" #include "createPrghCorrTypes.H" + + volScalarField rAU + ( + IOobject + ( + "rAU", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1.0) + ); + #include "correctPhi.H" + #include "createUf.H" #include "CourantNo.H" #include "setInitialDeltaT.H" @@ -72,9 +80,10 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readTimeControls.H" + #include "readControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" + #include "setDeltaT.H" runTime++; @@ -84,13 +93,43 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { - #include "alphaControls.H" + if (pimple.firstIter() || moveMeshOuterCorrectors) + { + scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime(); - twoPhaseProperties.correct(); + mesh.update(); + + if (mesh.changing()) + { + Info<< "Execution time for mesh.update() = " + << runTime.elapsedCpuTime() - timeBeforeMeshUpdate + << " s" << endl; + + gh = g & mesh.C(); + ghf = g & mesh.Cf(); + } + + if (mesh.changing() && correctPhi) + { + // Calculate absolute flux from the mapped surface velocity + phi = mesh.Sf() & Uf; + + #include "correctPhi.H" + + // Make the flux relative to the mesh motion + fvc::makeRelative(phi, U); + + mixture.correct(); + } + + if (mesh.changing() && checkMeshCourantNo) + { + #include "meshCourantNo.H" + } + } - #include "alphaEqnSubCycle.H" - interface.correct(); - #include "zonePhaseVolumes.H" + mixture.solve(); + rho = mixture.rho(); #include "UEqn.H" diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index b7ba2bc9c92..9edc7a78b30 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -298,10 +298,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const void Foam::multiphaseMixture::solve() { - forAllIter(PtrDictionary<phase>, phases_, iter) - { - iter().correct(); - } + correct(); const Time& runTime = mesh_.time(); @@ -347,7 +344,12 @@ void Foam::multiphaseMixture::solve() void Foam::multiphaseMixture::correct() -{} +{ + forAllIter(PtrDictionary<phase>, phases_, iter) + { + iter().correct(); + } +} Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseMixture::nHatfv diff --git a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H deleted file mode 100644 index 8ce663528d1..00000000000 --- a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H +++ /dev/null @@ -1,72 +0,0 @@ -{ - volScalarField rAU("rAU", 1.0/UEqn.A()); - surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); - - volVectorField HbyA("HbyA", U); - HbyA = rAU*UEqn.H(); - - surfaceScalarField phiHbyA - ( - "phiHbyA", - (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi) - ); - adjustPhi(phiHbyA, U, p_rgh); - fvOptions.makeRelative(phiHbyA); - - surfaceScalarField phig - ( - ( - mixture.surfaceTensionForce() - - ghf*fvc::snGrad(rho) - )*rAUf*mesh.magSf() - ); - - phiHbyA += phig; - - // Update the fixedFluxPressure BCs to ensure flux consistency - setSnGrad<fixedFluxPressureFvPatchScalarField> - ( - p_rgh.boundaryField(), - ( - phiHbyA.boundaryField() - - fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) - ); - - while (pimple.correctNonOrthogonal()) - { - fvScalarMatrix p_rghEqn - ( - fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA) - ); - - p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - - p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); - - if (pimple.finalNonOrthogonalIter()) - { - phi = phiHbyA - p_rghEqn.flux(); - - U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf); - U.correctBoundaryConditions(); - fvOptions.correct(U); - } - } - - #include "continuityErrs.H" - - p == p_rgh + rho*gh; - - if (p_rgh.needReference()) - { - p += dimensionedScalar - ( - "p", - p.dimensions(), - pRefValue - getRefCellValue(p, pRefCell) - ); - p_rgh = p - rho*gh; - } -} diff --git a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H similarity index 90% rename from applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H rename to applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H index 98444a065f6..6ea204b00b1 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Global - CourantNo + alphaCourantNo Description Calculates and outputs the mean and maximum Courant Numbers. @@ -41,8 +41,8 @@ if (mesh.nInternalFaces()) { scalarField sumPhi ( - mixture.nearInterface()().internalField() - * fvc::surfaceSum(mag(phi))().internalField() + pos(alpha1 - 0.01)*pos(0.99 - alpha1) + *fvc::surfaceSum(mag(phi))().internalField() ); alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H index 31e1e61d5d3..dc6325d0af6 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H @@ -29,18 +29,18 @@ #include "createPhi.H" Info<< "Reading transportProperties\n" << endl; - incompressibleTwoPhaseMixture twoPhaseProperties(U, phi); + incompressibleTwoPhaseMixture mixture(U, phi); - volScalarField& alpha1(twoPhaseProperties.alpha1()); - volScalarField& alpha2(twoPhaseProperties.alpha2()); + volScalarField& alpha1(mixture.alpha1()); + volScalarField& alpha2(mixture.alpha2()); - const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); - const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); + const dimensionedScalar& rho1 = mixture.rho1(); + const dimensionedScalar& rho2 = mixture.rho2(); - dimensionedScalar Dab(twoPhaseProperties.lookup("Dab")); + dimensionedScalar Dab(mixture.lookup("Dab")); // Read the reciprocal of the turbulent Schmidt number - dimensionedScalar alphatab(twoPhaseProperties.lookup("alphatab")); + dimensionedScalar alphatab(mixture.lookup("alphatab")); // Need to store rho for ddt(rho, U) volScalarField rho("rho", alpha1*rho1 + alpha2*rho2); @@ -66,7 +66,7 @@ // Construct incompressible turbulence model autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) + incompressible::turbulenceModel::New(U, phi, mixture) ); Info<< "Calculating field g.h\n" << endl; diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C index 247c12a8b50..7593aeab113 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -70,7 +70,7 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << nl << endl; - twoPhaseProperties.correct(); + mixture.correct(); #include "alphaEqnSubCycle.H" #include "alphaDiffusionEqn.H" diff --git a/src/transportModels/Allwmake b/src/transportModels/Allwmake index 120dfae74a9..07272706a69 100755 --- a/src/transportModels/Allwmake +++ b/src/transportModels/Allwmake @@ -7,5 +7,7 @@ wmake $makeType twoPhaseMixture wmake $makeType interfaceProperties wmake $makeType twoPhaseProperties wmake $makeType incompressible +wmake $makeType compressible +wmake $makeType immiscibleIncompressibleTwoPhaseMixture # ----------------------------------------------------------------- end-of-file diff --git a/src/transportModels/compressible/Make/files b/src/transportModels/compressible/Make/files new file mode 100644 index 00000000000..136b8b7a939 --- /dev/null +++ b/src/transportModels/compressible/Make/files @@ -0,0 +1,3 @@ +compressibleTransportModel/compressibleTransportModel.C + +LIB = $(FOAM_LIBBIN)/libcompressibleTransportModels diff --git a/src/transportModels/compressible/Make/options b/src/transportModels/compressible/Make/options new file mode 100644 index 00000000000..71b7873964d --- /dev/null +++ b/src/transportModels/compressible/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +LIB_LIBS = \ + -lfiniteVolume diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C similarity index 59% rename from applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H rename to src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C index 06e1da1ae49..f59261cc0cb 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H +++ b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -21,40 +21,29 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -Global - CourantNo - -Description - Calculates and outputs the mean and maximum Courant Numbers. - \*---------------------------------------------------------------------------*/ -scalar maxAlphaCo -( - readScalar(runTime.controlDict().lookup("maxAlphaCo")) -); +#include "compressibleTransportModel.H" -scalar alphaCoNum = 0.0; -scalar meanAlphaCoNum = 0.0; +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -if (mesh.nInternalFaces()) +namespace Foam { - scalarField sumPhi - ( - max - ( - pos(alpha1 - 0.01)*pos(0.99 - alpha1), - pos(alpha2 - 0.01)*pos(0.99 - alpha2) - )*fvc::surfaceSum(mag(phi))().internalField() - ); - - alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - - meanAlphaCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); + defineTypeNameAndDebug(compressibleTransportModel, 0); } -Info<< "Interface Courant Number mean: " << meanAlphaCoNum - << " max: " << alphaCoNum << endl; + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::compressibleTransportModel::compressibleTransportModel +() +{} + + +// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * // + +Foam::compressibleTransportModel::~compressibleTransportModel() +{} + // ************************************************************************* // diff --git a/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H new file mode 100644 index 00000000000..6b89ac6978c --- /dev/null +++ b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H @@ -0,0 +1,104 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::compressibleTransportModel + +Description + Base-class for all transport models used by the compressible turbulence + models. + +SourceFiles + compressibleTransportModel.C + +\*---------------------------------------------------------------------------*/ + +#ifndef compressibleTransportModel_H +#define compressibleTransportModel_H + +#include "primitiveFieldsFwd.H" +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class compressibleTransportModel Declaration +\*---------------------------------------------------------------------------*/ + +class compressibleTransportModel +{ + // Private Member Functions + + //- Disallow copy construct + compressibleTransportModel(const compressibleTransportModel&); + + //- Disallow default bitwise assignment + void operator=(const compressibleTransportModel&); + + +public: + + //- Runtime type information + TypeName("compressibleTransportModel"); + + + // Constructors + + //- Construct from components + compressibleTransportModel + (); + + + //- Destructor + virtual ~compressibleTransportModel(); + + + // Member Functions + + //- Return the dynamic laminar viscosity + virtual tmp<volScalarField> mu() const = 0; + + //- Return the dynamic laminar viscosity for patch + virtual tmp<scalarField> mu(const label patchi) const = 0; + + //- Return the laminar viscosity + virtual tmp<volScalarField> nu() const = 0; + + //- Return the laminar viscosity for patch + virtual tmp<scalarField> nu(const label patchi) const = 0; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files new file mode 100644 index 00000000000..1ad9d911170 --- /dev/null +++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files @@ -0,0 +1,3 @@ +immiscibleIncompressibleTwoPhaseMixture.C + +LIB = $(FOAM_LIBBIN)/libimmiscibleIncompressibleTwoPhaseMixture diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options new file mode 100644 index 00000000000..4ae2fbf9664 --- /dev/null +++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options @@ -0,0 +1,13 @@ +EXE_INC = \ + -I.. \ + -I../incompressible/lnInclude \ + -I../interfaceProperties/lnInclude \ + -I../twoPhaseMixture/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +LIB_LIBS = \ + -ltwoPhaseMixture \ + -lincompressibleTransportModels \ + -linterfaceProperties \ + -ltwoPhaseProperties \ + -lfiniteVolume diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C new file mode 100644 index 00000000000..532a9af34fb --- /dev/null +++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "immiscibleIncompressibleTwoPhaseMixture.H" + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::immiscibleIncompressibleTwoPhaseMixture:: +immiscibleIncompressibleTwoPhaseMixture +( + const volVectorField& U, + const surfaceScalarField& phi +) +: + incompressibleTwoPhaseMixture(U, phi), + interfaceProperties(alpha1(), U, *this) +{} + + +// ************************************************************************* // diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H new file mode 100644 index 00000000000..84140229f52 --- /dev/null +++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H @@ -0,0 +1,92 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::immiscibleIncompressibleTwoPhaseMixture + +Description + An immiscible incompressible two-phase mixture transport model + +SourceFiles + immiscibleIncompressibleTwoPhaseMixture.C + +\*---------------------------------------------------------------------------*/ + +#ifndef immiscibleIncompressibleTwoPhaseMixture_H +#define immiscibleIncompressibleTwoPhaseMixture_H + +#include "incompressibleTwoPhaseMixture.H" +#include "interfaceProperties.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class immiscibleIncompressibleTwoPhaseMixture Declaration +\*---------------------------------------------------------------------------*/ + +class immiscibleIncompressibleTwoPhaseMixture +: + public incompressibleTwoPhaseMixture, + public interfaceProperties +{ + +public: + + // Constructors + + //- Construct from components + immiscibleIncompressibleTwoPhaseMixture + ( + const volVectorField& U, + const surfaceScalarField& phi + ); + + + //- Destructor + virtual ~immiscibleIncompressibleTwoPhaseMixture() + {} + + + // Member Functions + + //- Correct the transport and interface properties + virtual void correct() + { + incompressibleTwoPhaseMixture::correct(); + interfaceProperties::correct(); + } +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C index 9387769caee..1750a59df51 100644 --- a/src/transportModels/interfaceProperties/interfaceProperties.C +++ b/src/transportModels/interfaceProperties/interfaceProperties.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -206,4 +206,20 @@ Foam::interfaceProperties::interfaceProperties } +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +Foam::tmp<Foam::surfaceScalarField> +Foam::interfaceProperties::surfaceTensionForce() const +{ + return fvc::interpolate(sigmaK())*fvc::snGrad(alpha1_); +} + + +Foam::tmp<Foam::volScalarField> +Foam::interfaceProperties::nearInterface() const +{ + return pos(alpha1_ - 0.01)*pos(0.99 - alpha1_); +} + + // ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H index fd296db689f..b14f118ac51 100644 --- a/src/transportModels/interfaceProperties/interfaceProperties.H +++ b/src/transportModels/interfaceProperties/interfaceProperties.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -142,6 +142,12 @@ public: return sigma_*K_; } + tmp<surfaceScalarField> surfaceTensionForce() const; + + //- Indicator of the proximity of the interface + // Field values are 1 near and 0 away for the interface. + tmp<volScalarField> nearInterface() const; + void correct() { calculateK(); diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water b/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water deleted file mode 100644 index 10bf5279e5d..00000000000 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water +++ /dev/null @@ -1,3119 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | -| \\ / A nd | Web: www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - location "0"; - object alpha.water; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 0 0 0 0 0 0]; - -internalField nonuniform List<scalar> -3072 -( -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -) -; - -boundaryField -{ - rotor - { - type zeroGradient; - } - stator - { - type zeroGradient; - } - front - { - type empty; - } - back - { - type empty; - } -} - - -// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/Allclean b/tutorials/multiphase/interFoam/laminar/Allclean index d5d1e50d10f..df028ca46d6 100755 --- a/tutorials/multiphase/interFoam/laminar/Allclean +++ b/tutorials/multiphase/interFoam/laminar/Allclean @@ -4,7 +4,7 @@ cd ${0%/*} || exit 1 # run from this directory # Source tutorial clean functions . $WM_PROJECT_DIR/bin/tools/CleanFunctions -keepCases="damBreak capillaryRise" +keepCases="damBreak capillaryRise mixerVessel2D" loseCases="damBreakFine" for case in $keepCases diff --git a/tutorials/multiphase/interFoam/laminar/Allrun b/tutorials/multiphase/interFoam/laminar/Allrun index c0e6661c4b4..909399dc9f4 100755 --- a/tutorials/multiphase/interFoam/laminar/Allrun +++ b/tutorials/multiphase/interFoam/laminar/Allrun @@ -52,13 +52,10 @@ cloneCase damBreak damBreakFine ) # Do capillaryRise -( - cd capillaryRise || exit +(cd capillaryRise && foamRunTutorials) + +# Do mixerVessel2D +(cd mixerVessel2D && foamRunTutorials) - runApplication blockMesh - cp 0/alpha.water.org 0/alpha.water - runApplication setFields - runApplication `getApplication` -) # ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun b/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun new file mode 100755 index 00000000000..664a02ae5e4 --- /dev/null +++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun @@ -0,0 +1,14 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application=`getApplication` + +runApplication blockMesh +cp 0/alpha.water.org 0/alpha.water +runApplication setFields +runApplication $application + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary index 837f47df2a9..a0a9db56d9c 100644 --- a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary +++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -32,6 +32,7 @@ FoamFile walls { type wall; + inGroups 1(wall); nFaces 800; startFace 15620; } diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U index b2024d5b773..b13f9a2d8cb 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org index 613e7cf1e90..cfa5d44c55d 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh index 3ea5cd88c81..7b7a6e046b2 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun similarity index 83% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun index a718eaf7e66..500455cc515 100755 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun @@ -7,6 +7,8 @@ cd ${0%/*} || exit 1 # run from this directory application=`getApplication` runApplication ./makeMesh +cp 0/alpha.water.org 0/alpha.water +runApplication setFields runApplication $application # ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties index c9bc352a738..75bfead7573 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g similarity index 93% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g index 36eafd9d27f..099c2ee8a62 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 similarity index 99% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 index baeabd14140..2b215888a71 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary similarity index 91% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary index 7ee4864d8bb..e1125126de8 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -20,12 +20,14 @@ FoamFile rotor { type wall; + inGroups 1(wall); nFaces 192; startFace 5952; } stator { type wall; + inGroups 1(wall); nFaces 192; startFace 6144; } diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties index c18d754f0be..f6088e38475 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties similarity index 92% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties index b2fc0a43429..8e0954f7116 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/makeMesh b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/makeMesh similarity index 100% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/makeMesh rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/makeMesh diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict similarity index 92% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict index 5cba6c5db81..01591d95542 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application MRFInterFoam; +application interFoam; startFrom startTime; diff --git a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions new file mode 100644 index 00000000000..6cc02ab9a77 --- /dev/null +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions @@ -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 dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +MRF1 +{ + type MRFSource; + active yes; + selectionMode cellZone; + cellZone rotor; + + MRFSourceCoeffs + { + // Fixed patches (by default they 'move' with the MRF zone) + nonRotatingPatches (); + + origin (0 0 0); + axis (0 0 1); + omega constant 6.2831853; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes similarity index 95% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes index 54c05f04fdb..46f7af5d2b2 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution similarity index 96% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution index a125dad16da..995f86cf48d 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict similarity index 94% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict index 2163936c1df..12179b37240 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict similarity index 93% rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict index 439171e72f2..8aa466295f7 100644 --- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict +++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | +| \\ / O peration | Version: 2.3.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water index de2d1f50be4..3baa5ab1b9c 100644 --- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water +++ b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water @@ -11,2285 +11,13 @@ FoamFile format ascii; class volScalarField; location "0"; - object alpha.water; + object alpha.water.org; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 0 0 0 0]; -internalField nonuniform List<scalar> -2268 -( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -) -; +internalField uniform 0; boundaryField { diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U new file mode 100644 index 00000000000..74f1880f7c6 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + rotor + { + type movingWallVelocity; + value uniform (0 0 0); + } + + stator + { + type fixedValue; + value uniform (0 0 0); + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air new file mode 100644 index 00000000000..71c9e3523f0 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air @@ -0,0 +1,56 @@ +/*--------------------------------*- 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 alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury new file mode 100644 index 00000000000..ac2bcc21b76 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury @@ -0,0 +1,56 @@ +/*--------------------------------*- 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 alpha.mercury; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil new file mode 100644 index 00000000000..ce5a044db20 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil @@ -0,0 +1,56 @@ +/*--------------------------------*- 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 alpha.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water new file mode 100644 index 00000000000..87dd05c4bd3 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water @@ -0,0 +1,56 @@ +/*--------------------------------*- 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 alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh new file mode 100644 index 00000000000..b3f5f4df9ca --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh @@ -0,0 +1,56 @@ +/*--------------------------------*- 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_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type fixedFluxPressure; + } + + stator + { + type fixedFluxPressure; + } + + front + { + type empty; + } + + back + { + type empty; + } + + AMI1 + { + type cyclicAMI; + value $internalField; + } + + AMI2 + { + type cyclicAMI; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun new file mode 100755 index 00000000000..98d1164778a --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun @@ -0,0 +1,20 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application=`getApplication` + +./makeMesh + +rm -rf 0 +cp -r 0.org 0 +setFields + +#runApplication $application +#runApplication decomposePar +#runParallel $application 4 +#runApplication reconstructPar + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties new file mode 100644 index 00000000000..d964d3c8627 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- 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 RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +RASModel kEpsilon; + +turbulence on; + +printCoeffs on; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict new file mode 100644 index 00000000000..daa58cd741b --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict @@ -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 "constant"; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +motionSolverLibs ( "libfvMotionSolvers.so" ); + +solidBodyMotionFvMeshCoeffs +{ + cellZone rotor; + + solidBodyMotionFunction rotatingMotion; + rotatingMotionCoeffs + { + origin (0 0 0); + axis (0 0 1); + omega 6.2832; // rad/s + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g new file mode 100644 index 00000000000..099c2ee8a62 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- 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 0 0); + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 00000000000..1095ba9a193 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,924 @@ +/*--------------------------------*- 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; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General macros to create 2D/extruded-2D meshes + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'print ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) +define(pi, 3.14159265) + +define(hex2D, hex ($1b $2b $3b $4b $1t $2t $3t $4t)) +define(quad2D, ($1b $2b $2t $1t)) +define(frontQuad, ($1t $2t $3t $4t)) +define(backQuad, ($1b $4b $3b $2b)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.1; + +// Hub radius +define(r, 0.2) + +// Impeller-tip radius +define(rb, 0.5) + +// Baffle-tip radius +define(Rb, 0.7) + +// Tank radius +define(R, 1) + +// MRF region radius +define(ri, calc(0.5*(rb + Rb))) + +// Thickness of 2D slab +define(z, 0.1) + +// Base z +define(Zb, 0) + +// Top z +define(Zt, calc(Zb + z)) + +// Number of cells radially between hub and impeller tip +define(Nr, 12) + +// Number of cells radially in each of the two regions between +// impeller and baffle tips +define(Ni, 4) + +// Number of cells radially between baffle tip and tank +define(NR, 12) + +// Number of cells azimuthally in each of the 8 blocks +define(Na, 12) + +// Number of cells in the thickness of the slab +define(Nz, 1) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +define(vert, (x$1$2 y$1$2 $3)) +define(evert, (ex$1$2 ey$1$2 $3)) + +define(a0, 0) +define(a1, -45) +define(a2, -90) +define(a3, -135) +define(a4, 180) +define(a5, 135) +define(a6, 90) +define(a7, 45) + +define(ea0, -22.5) +define(ea1, -67.5) +define(ea2, -112.5) +define(ea3, -157.5) +define(ea4, 157.5) +define(ea5, 112.5) +define(ea6, 67.5) +define(ea7, 22.5) + +define(ca0, calc(cos((pi/180)*a0))) +define(ca1, calc(cos((pi/180)*a1))) +define(ca2, calc(cos((pi/180)*a2))) +define(ca3, calc(cos((pi/180)*a3))) +define(ca4, calc(cos((pi/180)*a4))) +define(ca5, calc(cos((pi/180)*a5))) +define(ca6, calc(cos((pi/180)*a6))) +define(ca7, calc(cos((pi/180)*a7))) + +define(sa0, calc(sin((pi/180)*a0))) +define(sa1, calc(sin((pi/180)*a1))) +define(sa2, calc(sin((pi/180)*a2))) +define(sa3, calc(sin((pi/180)*a3))) +define(sa4, calc(sin((pi/180)*a4))) +define(sa5, calc(sin((pi/180)*a5))) +define(sa6, calc(sin((pi/180)*a6))) +define(sa7, calc(sin((pi/180)*a7))) + +define(cea0, calc(cos((pi/180)*ea0))) +define(cea1, calc(cos((pi/180)*ea1))) +define(cea2, calc(cos((pi/180)*ea2))) +define(cea3, calc(cos((pi/180)*ea3))) +define(cea4, calc(cos((pi/180)*ea4))) +define(cea5, calc(cos((pi/180)*ea5))) +define(cea6, calc(cos((pi/180)*ea6))) +define(cea7, calc(cos((pi/180)*ea7))) + +define(sea0, calc(sin((pi/180)*ea0))) +define(sea1, calc(sin((pi/180)*ea1))) +define(sea2, calc(sin((pi/180)*ea2))) +define(sea3, calc(sin((pi/180)*ea3))) +define(sea4, calc(sin((pi/180)*ea4))) +define(sea5, calc(sin((pi/180)*ea5))) +define(sea6, calc(sin((pi/180)*ea6))) +define(sea7, calc(sin((pi/180)*ea7))) + +define(x00, calc(r*ca0)) +define(x01, calc(r*ca1)) +define(x02, calc(r*ca2)) +define(x03, calc(r*ca3)) +define(x04, calc(r*ca4)) +define(x05, calc(r*ca5)) +define(x06, calc(r*ca6)) +define(x07, calc(r*ca7)) + +define(x10, calc(rb*ca0)) +define(x11, calc(rb*ca1)) +define(x12, calc(rb*ca2)) +define(x13, calc(rb*ca3)) +define(x14, calc(rb*ca4)) +define(x15, calc(rb*ca5)) +define(x16, calc(rb*ca6)) +define(x17, calc(rb*ca7)) + +define(x20, calc(ri*ca0)) +define(x21, calc(ri*ca1)) +define(x22, calc(ri*ca2)) +define(x23, calc(ri*ca3)) +define(x24, calc(ri*ca4)) +define(x25, calc(ri*ca5)) +define(x26, calc(ri*ca6)) +define(x27, calc(ri*ca7)) + +define(x30, calc(Rb*ca0)) +define(x31, calc(Rb*ca1)) +define(x32, calc(Rb*ca2)) +define(x33, calc(Rb*ca3)) +define(x34, calc(Rb*ca4)) +define(x35, calc(Rb*ca5)) +define(x36, calc(Rb*ca6)) +define(x37, calc(Rb*ca7)) + +define(x40, calc(R*ca0)) +define(x41, calc(R*ca1)) +define(x42, calc(R*ca2)) +define(x43, calc(R*ca3)) +define(x44, calc(R*ca4)) +define(x45, calc(R*ca5)) +define(x46, calc(R*ca6)) +define(x47, calc(R*ca7)) + +define(y00, calc(r*sa0)) +define(y01, calc(r*sa1)) +define(y02, calc(r*sa2)) +define(y03, calc(r*sa3)) +define(y04, calc(r*sa4)) +define(y05, calc(r*sa5)) +define(y06, calc(r*sa6)) +define(y07, calc(r*sa7)) + +define(y10, calc(rb*sa0)) +define(y11, calc(rb*sa1)) +define(y12, calc(rb*sa2)) +define(y13, calc(rb*sa3)) +define(y14, calc(rb*sa4)) +define(y15, calc(rb*sa5)) +define(y16, calc(rb*sa6)) +define(y17, calc(rb*sa7)) + +define(y20, calc(ri*sa0)) +define(y21, calc(ri*sa1)) +define(y22, calc(ri*sa2)) +define(y23, calc(ri*sa3)) +define(y24, calc(ri*sa4)) +define(y25, calc(ri*sa5)) +define(y26, calc(ri*sa6)) +define(y27, calc(ri*sa7)) + +define(y30, calc(Rb*sa0)) +define(y31, calc(Rb*sa1)) +define(y32, calc(Rb*sa2)) +define(y33, calc(Rb*sa3)) +define(y34, calc(Rb*sa4)) +define(y35, calc(Rb*sa5)) +define(y36, calc(Rb*sa6)) +define(y37, calc(Rb*sa7)) + +define(y40, calc(R*sa0)) +define(y41, calc(R*sa1)) +define(y42, calc(R*sa2)) +define(y43, calc(R*sa3)) +define(y44, calc(R*sa4)) +define(y45, calc(R*sa5)) +define(y46, calc(R*sa6)) +define(y47, calc(R*sa7)) + +define(ex00, calc(r*cea0)) +define(ex01, calc(r*cea1)) +define(ex02, calc(r*cea2)) +define(ex03, calc(r*cea3)) +define(ex04, calc(r*cea4)) +define(ex05, calc(r*cea5)) +define(ex06, calc(r*cea6)) +define(ex07, calc(r*cea7)) + +define(ex10, calc(rb*cea0)) +define(ex11, calc(rb*cea1)) +define(ex12, calc(rb*cea2)) +define(ex13, calc(rb*cea3)) +define(ex14, calc(rb*cea4)) +define(ex15, calc(rb*cea5)) +define(ex16, calc(rb*cea6)) +define(ex17, calc(rb*cea7)) + +define(ex20, calc(ri*cea0)) +define(ex21, calc(ri*cea1)) +define(ex22, calc(ri*cea2)) +define(ex23, calc(ri*cea3)) +define(ex24, calc(ri*cea4)) +define(ex25, calc(ri*cea5)) +define(ex26, calc(ri*cea6)) +define(ex27, calc(ri*cea7)) + +define(ex30, calc(Rb*cea0)) +define(ex31, calc(Rb*cea1)) +define(ex32, calc(Rb*cea2)) +define(ex33, calc(Rb*cea3)) +define(ex34, calc(Rb*cea4)) +define(ex35, calc(Rb*cea5)) +define(ex36, calc(Rb*cea6)) +define(ex37, calc(Rb*cea7)) + +define(ex40, calc(R*cea0)) +define(ex41, calc(R*cea1)) +define(ex42, calc(R*cea2)) +define(ex43, calc(R*cea3)) +define(ex44, calc(R*cea4)) +define(ex45, calc(R*cea5)) +define(ex46, calc(R*cea6)) +define(ex47, calc(R*cea7)) + +define(ey00, calc(r*sea0)) +define(ey01, calc(r*sea1)) +define(ey02, calc(r*sea2)) +define(ey03, calc(r*sea3)) +define(ey04, calc(r*sea4)) +define(ey05, calc(r*sea5)) +define(ey06, calc(r*sea6)) +define(ey07, calc(r*sea7)) + +define(ey10, calc(rb*sea0)) +define(ey11, calc(rb*sea1)) +define(ey12, calc(rb*sea2)) +define(ey13, calc(rb*sea3)) +define(ey14, calc(rb*sea4)) +define(ey15, calc(rb*sea5)) +define(ey16, calc(rb*sea6)) +define(ey17, calc(rb*sea7)) + +define(ey20, calc(ri*sea0)) +define(ey21, calc(ri*sea1)) +define(ey22, calc(ri*sea2)) +define(ey23, calc(ri*sea3)) +define(ey24, calc(ri*sea4)) +define(ey25, calc(ri*sea5)) +define(ey26, calc(ri*sea6)) +define(ey27, calc(ri*sea7)) + +define(ey30, calc(Rb*sea0)) +define(ey31, calc(Rb*sea1)) +define(ey32, calc(Rb*sea2)) +define(ey33, calc(Rb*sea3)) +define(ey34, calc(Rb*sea4)) +define(ey35, calc(Rb*sea5)) +define(ey36, calc(Rb*sea6)) +define(ey37, calc(Rb*sea7)) + +define(ey40, calc(R*sea0)) +define(ey41, calc(R*sea1)) +define(ey42, calc(R*sea2)) +define(ey43, calc(R*sea3)) +define(ey44, calc(R*sea4)) +define(ey45, calc(R*sea5)) +define(ey46, calc(R*sea6)) +define(ey47, calc(R*sea7)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +vertices +( + vert(0, 0, Zb) vlabel(r0b) + vert(0, 0, Zb) vlabel(r0sb) + vert(0, 1, Zb) vlabel(r1b) + vert(0, 2, Zb) vlabel(r2b) + vert(0, 2, Zb) vlabel(r2sb) + vert(0, 3, Zb) vlabel(r3b) + vert(0, 4, Zb) vlabel(r4b) + vert(0, 4, Zb) vlabel(r4sb) + vert(0, 5, Zb) vlabel(r5b) + vert(0, 6, Zb) vlabel(r6b) + vert(0, 6, Zb) vlabel(r6sb) + vert(0, 7, Zb) vlabel(r7b) + + vert(1, 0, Zb) vlabel(rb0b) + vert(1, 1, Zb) vlabel(rb1b) + vert(1, 2, Zb) vlabel(rb2b) + vert(1, 3, Zb) vlabel(rb3b) + vert(1, 4, Zb) vlabel(rb4b) + vert(1, 5, Zb) vlabel(rb5b) + vert(1, 6, Zb) vlabel(rb6b) + vert(1, 7, Zb) vlabel(rb7b) + + vert(2, 0, Zb) vlabel(ri0b) + vert(2, 1, Zb) vlabel(ri1b) + vert(2, 2, Zb) vlabel(ri2b) + vert(2, 3, Zb) vlabel(ri3b) + vert(2, 4, Zb) vlabel(ri4b) + vert(2, 5, Zb) vlabel(ri5b) + vert(2, 6, Zb) vlabel(ri6b) + vert(2, 7, Zb) vlabel(ri7b) + + vert(2, 0, Zb) vlabel(ris0b) + vert(2, 1, Zb) vlabel(ris1b) + vert(2, 2, Zb) vlabel(ris2b) + vert(2, 3, Zb) vlabel(ris3b) + vert(2, 4, Zb) vlabel(ris4b) + vert(2, 5, Zb) vlabel(ris5b) + vert(2, 6, Zb) vlabel(ris6b) + vert(2, 7, Zb) vlabel(ris7b) + + vert(3, 0, Zb) vlabel(Rb0b) + vert(3, 1, Zb) vlabel(Rb1b) + vert(3, 2, Zb) vlabel(Rb2b) + vert(3, 3, Zb) vlabel(Rb3b) + vert(3, 4, Zb) vlabel(Rb4b) + vert(3, 5, Zb) vlabel(Rb5b) + vert(3, 6, Zb) vlabel(Rb6b) + vert(3, 7, Zb) vlabel(Rb7b) + + vert(4, 0, Zb) vlabel(R0b) + vert(4, 1, Zb) vlabel(R1b) + vert(4, 1, Zb) vlabel(R1sb) + vert(4, 2, Zb) vlabel(R2b) + vert(4, 3, Zb) vlabel(R3b) + vert(4, 3, Zb) vlabel(R3sb) + vert(4, 4, Zb) vlabel(R4b) + vert(4, 5, Zb) vlabel(R5b) + vert(4, 5, Zb) vlabel(R5sb) + vert(4, 6, Zb) vlabel(R6b) + vert(4, 7, Zb) vlabel(R7b) + vert(4, 7, Zb) vlabel(R7sb) + + vert(0, 0, Zt) vlabel(r0t) + vert(0, 0, Zt) vlabel(r0st) + vert(0, 1, Zt) vlabel(r1t) + vert(0, 2, Zt) vlabel(r2t) + vert(0, 2, Zt) vlabel(r2st) + vert(0, 3, Zt) vlabel(r3t) + vert(0, 4, Zt) vlabel(r4t) + vert(0, 4, Zt) vlabel(r4st) + vert(0, 5, Zt) vlabel(r5t) + vert(0, 6, Zt) vlabel(r6t) + vert(0, 6, Zt) vlabel(r6st) + vert(0, 7, Zt) vlabel(r7t) + + vert(1, 0, Zt) vlabel(rb0t) + vert(1, 1, Zt) vlabel(rb1t) + vert(1, 2, Zt) vlabel(rb2t) + vert(1, 3, Zt) vlabel(rb3t) + vert(1, 4, Zt) vlabel(rb4t) + vert(1, 5, Zt) vlabel(rb5t) + vert(1, 6, Zt) vlabel(rb6t) + vert(1, 7, Zt) vlabel(rb7t) + + vert(2, 0, Zt) vlabel(ri0t) + vert(2, 1, Zt) vlabel(ri1t) + vert(2, 2, Zt) vlabel(ri2t) + vert(2, 3, Zt) vlabel(ri3t) + vert(2, 4, Zt) vlabel(ri4t) + vert(2, 5, Zt) vlabel(ri5t) + vert(2, 6, Zt) vlabel(ri6t) + vert(2, 7, Zt) vlabel(ri7t) + + vert(2, 0, Zt) vlabel(ris0t) + vert(2, 1, Zt) vlabel(ris1t) + vert(2, 2, Zt) vlabel(ris2t) + vert(2, 3, Zt) vlabel(ris3t) + vert(2, 4, Zt) vlabel(ris4t) + vert(2, 5, Zt) vlabel(ris5t) + vert(2, 6, Zt) vlabel(ris6t) + vert(2, 7, Zt) vlabel(ris7t) + + vert(3, 0, Zt) vlabel(Rb0t) + vert(3, 1, Zt) vlabel(Rb1t) + vert(3, 2, Zt) vlabel(Rb2t) + vert(3, 3, Zt) vlabel(Rb3t) + vert(3, 4, Zt) vlabel(Rb4t) + vert(3, 5, Zt) vlabel(Rb5t) + vert(3, 6, Zt) vlabel(Rb6t) + vert(3, 7, Zt) vlabel(Rb7t) + + vert(4, 0, Zt) vlabel(R0t) + vert(4, 1, Zt) vlabel(R1t) + vert(4, 1, Zt) vlabel(R1st) + vert(4, 2, Zt) vlabel(R2t) + vert(4, 3, Zt) vlabel(R3t) + vert(4, 3, Zt) vlabel(R3st) + vert(4, 4, Zt) vlabel(R4t) + vert(4, 5, Zt) vlabel(R5t) + vert(4, 5, Zt) vlabel(R5st) + vert(4, 6, Zt) vlabel(R6t) + vert(4, 7, Zt) vlabel(R7t) + vert(4, 7, Zt) vlabel(R7st) +); + +blocks +( + // block0 + hex2D(r0, r1, rb1, rb0) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block1 + hex2D(r1, r2s, rb2, rb1) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block2 + hex2D(r2, r3, rb3, rb2) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block3 + hex2D(r3, r4s, rb4, rb3) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block4 + hex2D(r4, r5, rb5, rb4) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block5 + hex2D(r5, r6s, rb6, rb5) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block6 + hex2D(r6, r7, rb7, rb6) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block7 + hex2D(r7, r0s, rb0, rb7) + rotor + (Na Nr Nz) + simpleGrading (1 1 1) + + // block0 + hex2D(rb0, rb1, ri1, ri0) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block1 + hex2D(rb1, rb2, ri2, ri1) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block2 + hex2D(rb2, rb3, ri3, ri2) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block3 + hex2D(rb3, rb4, ri4, ri3) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block4 + hex2D(rb4, rb5, ri5, ri4) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block5 + hex2D(rb5, rb6, ri6, ri5) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block6 + hex2D(rb6, rb7, ri7, ri6) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block7 + hex2D(rb7, rb0, ri0, ri7) + rotor + (Na Ni Nz) + simpleGrading (1 1 1) + + // block0 + hex2D(ris0, ris1, Rb1, Rb0) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block1 + hex2D(ris1, ris2, Rb2, Rb1) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block2 + hex2D(ris2, ris3, Rb3, Rb2) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block3 + hex2D(ris3, ris4, Rb4, Rb3) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block4 + hex2D(ris4, ris5, Rb5, Rb4) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block5 + hex2D(ris5, ris6, Rb6, Rb5) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block6 + hex2D(ris6, ris7, Rb7, Rb6) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block7 + hex2D(ris7, ris0, Rb0, Rb7) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block0 + hex2D(Rb0, Rb1, R1s, R0) + (Na NR Nz) + simpleGrading (1 1 1) + + // block1 + hex2D(Rb1, Rb2, R2, R1) + (Na NR Nz) + simpleGrading (1 1 1) + + // block2 + hex2D(Rb2, Rb3, R3s, R2) + (Na NR Nz) + simpleGrading (1 1 1) + + // block3 + hex2D(Rb3, Rb4, R4, R3) + (Na NR Nz) + simpleGrading (1 1 1) + + // block4 + hex2D(Rb4, Rb5, R5s, R4) + (Na NR Nz) + simpleGrading (1 1 1) + + // block5 + hex2D(Rb5, Rb6, R6, R5) + (Na NR Nz) + simpleGrading (1 1 1) + + // block6 + hex2D(Rb6, Rb7, R7s, R6) + (Na NR Nz) + simpleGrading (1 1 1) + + // block7 + hex2D(Rb7, Rb0, R0, R7) + (Na NR Nz) + simpleGrading (1 1 1) +); + +edges +( + arc r0b r1b evert(0, 0, Zb) + arc r1b r2sb evert(0, 1, Zb) + arc r2b r3b evert(0, 2, Zb) + arc r3b r4sb evert(0, 3, Zb) + arc r4b r5b evert(0, 4, Zb) + arc r5b r6sb evert(0, 5, Zb) + arc r6b r7b evert(0, 6, Zb) + arc r7b r0sb evert(0, 7, Zb) + + arc rb0b rb1b evert(1, 0, Zb) + arc rb1b rb2b evert(1, 1, Zb) + arc rb2b rb3b evert(1, 2, Zb) + arc rb3b rb4b evert(1, 3, Zb) + arc rb4b rb5b evert(1, 4, Zb) + arc rb5b rb6b evert(1, 5, Zb) + arc rb6b rb7b evert(1, 6, Zb) + arc rb7b rb0b evert(1, 7, Zb) + + arc ri0b ri1b evert(2, 0, Zb) + arc ri1b ri2b evert(2, 1, Zb) + arc ri2b ri3b evert(2, 2, Zb) + arc ri3b ri4b evert(2, 3, Zb) + arc ri4b ri5b evert(2, 4, Zb) + arc ri5b ri6b evert(2, 5, Zb) + arc ri6b ri7b evert(2, 6, Zb) + arc ri7b ri0b evert(2, 7, Zb) + + arc ris0b ris1b evert(2, 0, Zb) + arc ris1b ris2b evert(2, 1, Zb) + arc ris2b ris3b evert(2, 2, Zb) + arc ris3b ris4b evert(2, 3, Zb) + arc ris4b ris5b evert(2, 4, Zb) + arc ris5b ris6b evert(2, 5, Zb) + arc ris6b ris7b evert(2, 6, Zb) + arc ris7b ris0b evert(2, 7, Zb) + + arc Rb0b Rb1b evert(3, 0, Zb) + arc Rb1b Rb2b evert(3, 1, Zb) + arc Rb2b Rb3b evert(3, 2, Zb) + arc Rb3b Rb4b evert(3, 3, Zb) + arc Rb4b Rb5b evert(3, 4, Zb) + arc Rb5b Rb6b evert(3, 5, Zb) + arc Rb6b Rb7b evert(3, 6, Zb) + arc Rb7b Rb0b evert(3, 7, Zb) + + arc R0b R1sb evert(4, 0, Zb) + arc R1b R2b evert(4, 1, Zb) + arc R2b R3sb evert(4, 2, Zb) + arc R3b R4b evert(4, 3, Zb) + arc R4b R5sb evert(4, 4, Zb) + arc R5b R6b evert(4, 5, Zb) + arc R6b R7sb evert(4, 6, Zb) + arc R7b R0b evert(4, 7, Zb) + + arc r0t r1t evert(0, 0, Zt) + arc r1t r2st evert(0, 1, Zt) + arc r2t r3t evert(0, 2, Zt) + arc r3t r4st evert(0, 3, Zt) + arc r4t r5t evert(0, 4, Zt) + arc r5t r6st evert(0, 5, Zt) + arc r6t r7t evert(0, 6, Zt) + arc r7t r0st evert(0, 7, Zt) + + arc rb0t rb1t evert(1, 0, Zt) + arc rb1t rb2t evert(1, 1, Zt) + arc rb2t rb3t evert(1, 2, Zt) + arc rb3t rb4t evert(1, 3, Zt) + arc rb4t rb5t evert(1, 4, Zt) + arc rb5t rb6t evert(1, 5, Zt) + arc rb6t rb7t evert(1, 6, Zt) + arc rb7t rb0t evert(1, 7, Zt) + + arc ri0t ri1t evert(2, 0, Zt) + arc ri1t ri2t evert(2, 1, Zt) + arc ri2t ri3t evert(2, 2, Zt) + arc ri3t ri4t evert(2, 3, Zt) + arc ri4t ri5t evert(2, 4, Zt) + arc ri5t ri6t evert(2, 5, Zt) + arc ri6t ri7t evert(2, 6, Zt) + arc ri7t ri0t evert(2, 7, Zt) + + arc ris0t ris1t evert(2, 0, Zt) + arc ris1t ris2t evert(2, 1, Zt) + arc ris2t ris3t evert(2, 2, Zt) + arc ris3t ris4t evert(2, 3, Zt) + arc ris4t ris5t evert(2, 4, Zt) + arc ris5t ris6t evert(2, 5, Zt) + arc ris6t ris7t evert(2, 6, Zt) + arc ris7t ris0t evert(2, 7, Zt) + + arc Rb0t Rb1t evert(3, 0, Zt) + arc Rb1t Rb2t evert(3, 1, Zt) + arc Rb2t Rb3t evert(3, 2, Zt) + arc Rb3t Rb4t evert(3, 3, Zt) + arc Rb4t Rb5t evert(3, 4, Zt) + arc Rb5t Rb6t evert(3, 5, Zt) + arc Rb6t Rb7t evert(3, 6, Zt) + arc Rb7t Rb0t evert(3, 7, Zt) + + arc R0t R1st evert(4, 0, Zt) + arc R1t R2t evert(4, 1, Zt) + arc R2t R3st evert(4, 2, Zt) + arc R3t R4t evert(4, 3, Zt) + arc R4t R5st evert(4, 4, Zt) + arc R5t R6t evert(4, 5, Zt) + arc R6t R7st evert(4, 6, Zt) + arc R7t R0t evert(4, 7, Zt) +); + +boundary +( + rotor + { + type wall; + faces + ( + quad2D(r0, r1) + quad2D(r1, r2s) + quad2D(r2, r3) + quad2D(r3, r4s) + quad2D(r4, r5) + quad2D(r5, r6s) + quad2D(r6, r7) + quad2D(r7, r0s) + + quad2D(r0, rb0) + quad2D(r0s, rb0) + + quad2D(r2, rb2) + quad2D(r2s, rb2) + + quad2D(r4, rb4) + quad2D(r4s, rb4) + + quad2D(r6, rb6) + quad2D(r6s, rb6) + ); + } + + stator + { + type wall; + faces + ( + quad2D(R0, R1s) + quad2D(R1, R2) + quad2D(R2, R3s) + quad2D(R3, R4) + quad2D(R4, R5s) + quad2D(R5, R6) + quad2D(R6, R7s) + quad2D(R7, R0) + + quad2D(R1, Rb1) + quad2D(R1s, Rb1) + + quad2D(R3, Rb3) + quad2D(R3s, Rb3) + + quad2D(R5, Rb5) + quad2D(R5s, Rb5) + + quad2D(R7, Rb7) + quad2D(R7s, Rb7) + ); + } + + AMI1 + { + type cyclicAMI; + neighbourPatch AMI2; + transform noOrdering; +/* optional + surface + { + type searchableCylinder; // none + point1 (0 0 -1); + point2 (0 0 1); + radius 0.5; + } +*/ + faces + ( + quad2D(ri1, ri0) + quad2D(ri2, ri1) + quad2D(ri3, ri2) + quad2D(ri4, ri3) + quad2D(ri5, ri4) + quad2D(ri6, ri5) + quad2D(ri7, ri6) + quad2D(ri0, ri7) + ); + } + + AMI2 + { + type cyclicAMI; + neighbourPatch AMI1; + transform noOrdering; +/* optional + surface + { + type searchableCylinder; // none + point1 (0 0 -1); + point2 (0 0 1); + radius 0.5; + } +*/ + faces + ( + quad2D(ris1, ris0) + quad2D(ris2, ris1) + quad2D(ris3, ris2) + quad2D(ris4, ris3) + quad2D(ris5, ris4) + quad2D(ris6, ris5) + quad2D(ris7, ris6) + quad2D(ris0, ris7) + ); + } + + front + { + type empty; + faces + ( + frontQuad(r0, r1, rb1, rb0) + frontQuad(r1, r2s, rb2, rb1) + frontQuad(r2, r3, rb3, rb2) + frontQuad(r3, r4s, rb4, rb3) + frontQuad(r4, r5, rb5, rb4) + frontQuad(r5, r6s, rb6, rb5) + frontQuad(r6, r7, rb7, rb6) + frontQuad(r7, r0s, rb0, rb7) + frontQuad(rb0, rb1, ri1, ri0) + frontQuad(rb1, rb2, ri2, ri1) + frontQuad(rb2, rb3, ri3, ri2) + frontQuad(rb3, rb4, ri4, ri3) + frontQuad(rb4, rb5, ri5, ri4) + frontQuad(rb5, rb6, ri6, ri5) + frontQuad(rb6, rb7, ri7, ri6) + frontQuad(rb7, rb0, ri0, ri7) + frontQuad(ris0, ris1, Rb1, Rb0) + frontQuad(ris1, ris2, Rb2, Rb1) + frontQuad(ris2, ris3, Rb3, Rb2) + frontQuad(ris3, ris4, Rb4, Rb3) + frontQuad(ris4, ris5, Rb5, Rb4) + frontQuad(ris5, ris6, Rb6, Rb5) + frontQuad(ris6, ris7, Rb7, Rb6) + frontQuad(ris7, ris0, Rb0, Rb7) + frontQuad(Rb0, Rb1, R1s, R0) + frontQuad(Rb1, Rb2, R2, R1) + frontQuad(Rb2, Rb3, R3s, R2) + frontQuad(Rb3, Rb4, R4, R3) + frontQuad(Rb4, Rb5, R5s, R4) + frontQuad(Rb5, Rb6, R6, R5) + frontQuad(Rb6, Rb7, R7s, R6) + frontQuad(Rb7, Rb0, R0, R7) + ); + } + + back + { + type empty; + faces + ( + backQuad(r0, r1, rb1, rb0) + backQuad(r1, r2s, rb2, rb1) + backQuad(r2, r3, rb3, rb2) + backQuad(r3, r4s, rb4, rb3) + backQuad(r4, r5, rb5, rb4) + backQuad(r5, r6s, rb6, rb5) + backQuad(r6, r7, rb7, rb6) + backQuad(r7, r0s, rb0, rb7) + backQuad(rb0, rb1, ri1, ri0) + backQuad(rb1, rb2, ri2, ri1) + backQuad(rb2, rb3, ri3, ri2) + backQuad(rb3, rb4, ri4, ri3) + backQuad(rb4, rb5, ri5, ri4) + backQuad(rb5, rb6, ri6, ri5) + backQuad(rb6, rb7, ri7, ri6) + backQuad(rb7, rb0, ri0, ri7) + backQuad(ris0, ris1, Rb1, Rb0) + backQuad(ris1, ris2, Rb2, Rb1) + backQuad(ris2, ris3, Rb3, Rb2) + backQuad(ris3, ris4, Rb4, Rb3) + backQuad(ris4, ris5, Rb5, Rb4) + backQuad(ris5, ris6, Rb6, Rb5) + backQuad(ris6, ris7, Rb7, Rb6) + backQuad(ris7, ris0, Rb0, Rb7) + backQuad(Rb0, Rb1, R1s, R0) + backQuad(Rb1, Rb2, R2, R1) + backQuad(Rb2, Rb3, R3s, R2) + backQuad(Rb3, Rb4, R4, R3) + backQuad(Rb4, Rb5, R5s, R4) + backQuad(Rb5, Rb6, R6, R5) + backQuad(Rb6, Rb7, R7s, R6) + backQuad(Rb7, Rb0, R0, R7) + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary new file mode 100644 index 00000000000..baf50c92d09 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary @@ -0,0 +1,70 @@ +/*--------------------------------*- 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; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + rotor + { + type wall; + inGroups 1(wall); + nFaces 192; + startFace 5856; + } + stator + { + type wall; + inGroups 1(wall); + nFaces 192; + startFace 6048; + } + AMI1 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + nFaces 96; + startFace 6240; + matchTolerance 0.0001; + transform noOrdering; + neighbourPatch AMI2; + } + AMI2 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + nFaces 96; + startFace 6336; + matchTolerance 0.0001; + transform noOrdering; + neighbourPatch AMI1; + } + front + { + type empty; + inGroups 1(empty); + nFaces 3072; + startFace 6432; + } + back + { + type empty; + inGroups 1(empty); + nFaces 3072; + startFace 9504; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties new file mode 100644 index 00000000000..79b59a2cbbd --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phases +( + water + { + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1e-06; + rho rho [ 1 -3 0 0 0 0 0 ] 1000; + } + + oil + { + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1e-06; + rho rho [ 1 -3 0 0 0 0 0 ] 500; + } + + mercury + { + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1.125e-07; + rho rho [ 1 -3 0 0 0 0 0 ] 13529; + } + + air + { + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1.48e-05; + rho rho [ 1 -3 0 0 0 0 0 ] 1; + } +); + +sigmas +( + (air water) 0.07 + (air oil) 0.07 + (air mercury) 0.07 + (water oil) 0.07 + (water mercury) 0.07 + (oil mercury) 0.07 +); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl new file mode 100644 index 00000000000..94883275879 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl @@ -0,0 +1,1346 @@ +solid AMI1 + facet normal 0.999464 -0.0327281 0 + outer loop + vertex 0.06 0 0 + vertex 0.06 0 0.01 + vertex 0.0598715 -0.00392419 0.01 + endloop + endfacet + facet normal 0.999464 -0.0327281 0 + outer loop + vertex 0.0598715 -0.00392419 0.01 + vertex 0.0598715 -0.00392419 0 + vertex 0.06 0 0 + endloop + endfacet + facet normal 0.995186 -0.0980062 0 + outer loop + vertex 0.0598715 -0.00392419 0 + vertex 0.0598715 -0.00392419 0.01 + vertex 0.0594867 -0.00783157 0.01 + endloop + endfacet + facet normal 0.995186 -0.0980062 0 + outer loop + vertex 0.0594867 -0.00783157 0.01 + vertex 0.0594867 -0.00783157 0 + vertex 0.0598715 -0.00392419 0 + endloop + endfacet + facet normal 0.986642 -0.162902 0 + outer loop + vertex 0.0594867 -0.00783157 0 + vertex 0.0594867 -0.00783157 0.01 + vertex 0.0588471 -0.0117054 0.01 + endloop + endfacet + facet normal 0.986642 -0.162902 0 + outer loop + vertex 0.0588471 -0.0117054 0.01 + vertex 0.0588471 -0.0117054 0 + vertex 0.0594867 -0.00783157 0 + endloop + endfacet + facet normal 0.973875 -0.227085 0 + outer loop + vertex 0.0588471 -0.0117054 0 + vertex 0.0588471 -0.0117054 0.01 + vertex 0.0579555 -0.0155291 0.01 + endloop + endfacet + facet normal 0.973875 -0.227085 0 + outer loop + vertex 0.0579555 -0.0155291 0.01 + vertex 0.0579555 -0.0155291 0 + vertex 0.0588471 -0.0117054 0 + endloop + endfacet + facet normal 0.956945 -0.29027 0 + outer loop + vertex 0.0579555 -0.0155291 0 + vertex 0.0579555 -0.0155291 0.01 + vertex 0.0568158 -0.0192864 0.01 + endloop + endfacet + facet normal 0.956945 -0.29027 0 + outer loop + vertex 0.0568158 -0.0192864 0.01 + vertex 0.0568158 -0.0192864 0 + vertex 0.0579555 -0.0155291 0 + endloop + endfacet + facet normal 0.935908 -0.352245 0 + outer loop + vertex 0.0568158 -0.0192864 0 + vertex 0.0568158 -0.0192864 0.01 + vertex 0.0554328 -0.022961 0.01 + endloop + endfacet + facet normal 0.935908 -0.352245 0 + outer loop + vertex 0.0554328 -0.022961 0.01 + vertex 0.0554328 -0.022961 0 + vertex 0.0568158 -0.0192864 0 + endloop + endfacet + facet normal 0.910864 -0.412707 0 + outer loop + vertex 0.0554328 -0.022961 0 + vertex 0.0554328 -0.022961 0.01 + vertex 0.0538124 -0.0265373 0.01 + endloop + endfacet + facet normal 0.910864 -0.412707 0 + outer loop + vertex 0.0538124 -0.0265373 0.01 + vertex 0.0538124 -0.0265373 0 + vertex 0.0554328 -0.022961 0 + endloop + endfacet + facet normal 0.881916 -0.471406 0 + outer loop + vertex 0.0538124 -0.0265373 0 + vertex 0.0538124 -0.0265373 0.01 + vertex 0.0519615 -0.03 0.01 + endloop + endfacet + facet normal 0.881916 -0.471406 0 + outer loop + vertex 0.0519615 -0.03 0.01 + vertex 0.0519615 -0.03 0 + vertex 0.0538124 -0.0265373 0 + endloop + endfacet + facet normal 0.849207 -0.528061 0 + outer loop + vertex 0.0519615 -0.03 0 + vertex 0.0519615 -0.03 0.01 + vertex 0.0498882 -0.0333342 0.01 + endloop + endfacet + facet normal 0.849207 -0.528061 0 + outer loop + vertex 0.0498882 -0.0333342 0.01 + vertex 0.0498882 -0.0333342 0 + vertex 0.0519615 -0.03 0 + endloop + endfacet + facet normal 0.812846 -0.582478 0 + outer loop + vertex 0.0498882 -0.0333342 0 + vertex 0.0498882 -0.0333342 0.01 + vertex 0.0476012 -0.0365257 0.01 + endloop + endfacet + facet normal 0.812846 -0.582478 0 + outer loop + vertex 0.0476012 -0.0365257 0.01 + vertex 0.0476012 -0.0365257 0 + vertex 0.0498882 -0.0333342 0 + endloop + endfacet + facet normal 0.773005 -0.634399 0 + outer loop + vertex 0.0476012 -0.0365257 0 + vertex 0.0476012 -0.0365257 0.01 + vertex 0.0451104 -0.0395607 0.01 + endloop + endfacet + facet normal 0.773005 -0.634399 0 + outer loop + vertex 0.0451104 -0.0395607 0.01 + vertex 0.0451104 -0.0395607 0 + vertex 0.0476012 -0.0365257 0 + endloop + endfacet + facet normal 0.729867 -0.683589 0 + outer loop + vertex 0.0451104 -0.0395607 0 + vertex 0.0451104 -0.0395607 0.01 + vertex 0.0424264 -0.0424264 0.01 + endloop + endfacet + facet normal 0.729867 -0.683589 0 + outer loop + vertex 0.0424264 -0.0424264 0.01 + vertex 0.0424264 -0.0424264 0 + vertex 0.0451104 -0.0395607 0 + endloop + endfacet + facet normal 0.683589 -0.729867 0 + outer loop + vertex 0.0424264 -0.0424264 0 + vertex 0.0424264 -0.0424264 0.01 + vertex 0.0395607 -0.0451104 0.01 + endloop + endfacet + facet normal 0.683589 -0.729867 0 + outer loop + vertex 0.0395607 -0.0451104 0.01 + vertex 0.0395607 -0.0451104 0 + vertex 0.0424264 -0.0424264 0 + endloop + endfacet + facet normal 0.634399 -0.773005 0 + outer loop + vertex 0.0395607 -0.0451104 0 + vertex 0.0395607 -0.0451104 0.01 + vertex 0.0365257 -0.0476012 0.01 + endloop + endfacet + facet normal 0.634399 -0.773005 0 + outer loop + vertex 0.0365257 -0.0476012 0.01 + vertex 0.0365257 -0.0476012 0 + vertex 0.0395607 -0.0451104 0 + endloop + endfacet + facet normal 0.582478 -0.812846 0 + outer loop + vertex 0.0365257 -0.0476012 0 + vertex 0.0365257 -0.0476012 0.01 + vertex 0.0333342 -0.0498882 0.01 + endloop + endfacet + facet normal 0.582478 -0.812846 0 + outer loop + vertex 0.0333342 -0.0498882 0.01 + vertex 0.0333342 -0.0498882 0 + vertex 0.0365257 -0.0476012 0 + endloop + endfacet + facet normal 0.528061 -0.849207 0 + outer loop + vertex 0.0333342 -0.0498882 0 + vertex 0.0333342 -0.0498882 0.01 + vertex 0.03 -0.0519615 0.01 + endloop + endfacet + facet normal 0.528061 -0.849207 0 + outer loop + vertex 0.03 -0.0519615 0.01 + vertex 0.03 -0.0519615 0 + vertex 0.0333342 -0.0498882 0 + endloop + endfacet + facet normal 0.471406 -0.881916 0 + outer loop + vertex 0.03 -0.0519615 0 + vertex 0.03 -0.0519615 0.01 + vertex 0.0265373 -0.0538124 0.01 + endloop + endfacet + facet normal 0.471406 -0.881916 0 + outer loop + vertex 0.0265373 -0.0538124 0.01 + vertex 0.0265373 -0.0538124 0 + vertex 0.03 -0.0519615 0 + endloop + endfacet + facet normal 0.412707 -0.910864 0 + outer loop + vertex 0.0265373 -0.0538124 0 + vertex 0.0265373 -0.0538124 0.01 + vertex 0.022961 -0.0554328 0.01 + endloop + endfacet + facet normal 0.412707 -0.910864 0 + outer loop + vertex 0.022961 -0.0554328 0.01 + vertex 0.022961 -0.0554328 0 + vertex 0.0265373 -0.0538124 0 + endloop + endfacet + facet normal 0.352245 -0.935908 0 + outer loop + vertex 0.022961 -0.0554328 0 + vertex 0.022961 -0.0554328 0.01 + vertex 0.0192864 -0.0568158 0.01 + endloop + endfacet + facet normal 0.352245 -0.935908 0 + outer loop + vertex 0.0192864 -0.0568158 0.01 + vertex 0.0192864 -0.0568158 0 + vertex 0.022961 -0.0554328 0 + endloop + endfacet + facet normal 0.29027 -0.956945 0 + outer loop + vertex 0.0192864 -0.0568158 0 + vertex 0.0192864 -0.0568158 0.01 + vertex 0.0155291 -0.0579555 0.01 + endloop + endfacet + facet normal 0.29027 -0.956945 0 + outer loop + vertex 0.0155291 -0.0579555 0.01 + vertex 0.0155291 -0.0579555 0 + vertex 0.0192864 -0.0568158 0 + endloop + endfacet + facet normal 0.227085 -0.973875 0 + outer loop + vertex 0.0155291 -0.0579555 0 + vertex 0.0155291 -0.0579555 0.01 + vertex 0.0117054 -0.0588471 0.01 + endloop + endfacet + facet normal 0.227085 -0.973875 0 + outer loop + vertex 0.0117054 -0.0588471 0.01 + vertex 0.0117054 -0.0588471 0 + vertex 0.0155291 -0.0579555 0 + endloop + endfacet + facet normal 0.162902 -0.986642 0 + outer loop + vertex 0.0117054 -0.0588471 0 + vertex 0.0117054 -0.0588471 0.01 + vertex 0.00783157 -0.0594867 0.01 + endloop + endfacet + facet normal 0.162902 -0.986642 0 + outer loop + vertex 0.00783157 -0.0594867 0.01 + vertex 0.00783157 -0.0594867 0 + vertex 0.0117054 -0.0588471 0 + endloop + endfacet + facet normal 0.0980062 -0.995186 0 + outer loop + vertex 0.00783157 -0.0594867 0 + vertex 0.00783157 -0.0594867 0.01 + vertex 0.00392419 -0.0598715 0.01 + endloop + endfacet + facet normal 0.0980062 -0.995186 0 + outer loop + vertex 0.00392419 -0.0598715 0.01 + vertex 0.00392419 -0.0598715 0 + vertex 0.00783157 -0.0594867 0 + endloop + endfacet + facet normal 0.0327281 -0.999464 0 + outer loop + vertex 0.00392419 -0.0598715 0 + vertex 0.00392419 -0.0598715 0.01 + vertex 1.07694e-10 -0.06 0.01 + endloop + endfacet + facet normal 0.0327281 -0.999464 0 + outer loop + vertex 1.07694e-10 -0.06 0.01 + vertex 1.07694e-10 -0.06 0 + vertex 0.00392419 -0.0598715 0 + endloop + endfacet + facet normal -0.0327281 -0.999464 0 + outer loop + vertex 1.07694e-10 -0.06 0 + vertex 1.07694e-10 -0.06 0.01 + vertex -0.00392419 -0.0598715 0.01 + endloop + endfacet + facet normal -0.0327281 -0.999464 -0 + outer loop + vertex -0.00392419 -0.0598715 0.01 + vertex -0.00392419 -0.0598715 0 + vertex 1.07694e-10 -0.06 0 + endloop + endfacet + facet normal -0.0980062 -0.995186 0 + outer loop + vertex -0.00392419 -0.0598715 0 + vertex -0.00392419 -0.0598715 0.01 + vertex -0.00783157 -0.0594867 0.01 + endloop + endfacet + facet normal -0.0980062 -0.995186 -0 + outer loop + vertex -0.00783157 -0.0594867 0.01 + vertex -0.00783157 -0.0594867 0 + vertex -0.00392419 -0.0598715 0 + endloop + endfacet + facet normal -0.162902 -0.986642 0 + outer loop + vertex -0.00783157 -0.0594867 0 + vertex -0.00783157 -0.0594867 0.01 + vertex -0.0117054 -0.0588471 0.01 + endloop + endfacet + facet normal -0.162902 -0.986642 -0 + outer loop + vertex -0.0117054 -0.0588471 0.01 + vertex -0.0117054 -0.0588471 0 + vertex -0.00783157 -0.0594867 0 + endloop + endfacet + facet normal -0.227085 -0.973875 0 + outer loop + vertex -0.0117054 -0.0588471 0 + vertex -0.0117054 -0.0588471 0.01 + vertex -0.0155291 -0.0579555 0.01 + endloop + endfacet + facet normal -0.227085 -0.973875 -0 + outer loop + vertex -0.0155291 -0.0579555 0.01 + vertex -0.0155291 -0.0579555 0 + vertex -0.0117054 -0.0588471 0 + endloop + endfacet + facet normal -0.29027 -0.956945 0 + outer loop + vertex -0.0155291 -0.0579555 0 + vertex -0.0155291 -0.0579555 0.01 + vertex -0.0192864 -0.0568158 0.01 + endloop + endfacet + facet normal -0.29027 -0.956945 -0 + outer loop + vertex -0.0192864 -0.0568158 0.01 + vertex -0.0192864 -0.0568158 0 + vertex -0.0155291 -0.0579555 0 + endloop + endfacet + facet normal -0.352245 -0.935908 0 + outer loop + vertex -0.0192864 -0.0568158 0 + vertex -0.0192864 -0.0568158 0.01 + vertex -0.022961 -0.0554328 0.01 + endloop + endfacet + facet normal -0.352245 -0.935908 -0 + outer loop + vertex -0.022961 -0.0554328 0.01 + vertex -0.022961 -0.0554328 0 + vertex -0.0192864 -0.0568158 0 + endloop + endfacet + facet normal -0.412707 -0.910864 0 + outer loop + vertex -0.022961 -0.0554328 0 + vertex -0.022961 -0.0554328 0.01 + vertex -0.0265373 -0.0538124 0.01 + endloop + endfacet + facet normal -0.412707 -0.910864 -0 + outer loop + vertex -0.0265373 -0.0538124 0.01 + vertex -0.0265373 -0.0538124 0 + vertex -0.022961 -0.0554328 0 + endloop + endfacet + facet normal -0.471406 -0.881916 0 + outer loop + vertex -0.0265373 -0.0538124 0 + vertex -0.0265373 -0.0538124 0.01 + vertex -0.03 -0.0519615 0.01 + endloop + endfacet + facet normal -0.471406 -0.881916 -0 + outer loop + vertex -0.03 -0.0519615 0.01 + vertex -0.03 -0.0519615 0 + vertex -0.0265373 -0.0538124 0 + endloop + endfacet + facet normal -0.528061 -0.849207 0 + outer loop + vertex -0.03 -0.0519615 0 + vertex -0.03 -0.0519615 0.01 + vertex -0.0333342 -0.0498882 0.01 + endloop + endfacet + facet normal -0.528061 -0.849207 -0 + outer loop + vertex -0.0333342 -0.0498882 0.01 + vertex -0.0333342 -0.0498882 0 + vertex -0.03 -0.0519615 0 + endloop + endfacet + facet normal -0.582478 -0.812846 0 + outer loop + vertex -0.0333342 -0.0498882 0 + vertex -0.0333342 -0.0498882 0.01 + vertex -0.0365257 -0.0476012 0.01 + endloop + endfacet + facet normal -0.582478 -0.812846 -0 + outer loop + vertex -0.0365257 -0.0476012 0.01 + vertex -0.0365257 -0.0476012 0 + vertex -0.0333342 -0.0498882 0 + endloop + endfacet + facet normal -0.634399 -0.773005 0 + outer loop + vertex -0.0365257 -0.0476012 0 + vertex -0.0365257 -0.0476012 0.01 + vertex -0.0395607 -0.0451104 0.01 + endloop + endfacet + facet normal -0.634399 -0.773005 -0 + outer loop + vertex -0.0395607 -0.0451104 0.01 + vertex -0.0395607 -0.0451104 0 + vertex -0.0365257 -0.0476012 0 + endloop + endfacet + facet normal -0.683589 -0.729867 0 + outer loop + vertex -0.0395607 -0.0451104 0 + vertex -0.0395607 -0.0451104 0.01 + vertex -0.0424264 -0.0424264 0.01 + endloop + endfacet + facet normal -0.683589 -0.729867 -0 + outer loop + vertex -0.0424264 -0.0424264 0.01 + vertex -0.0424264 -0.0424264 0 + vertex -0.0395607 -0.0451104 0 + endloop + endfacet + facet normal -0.729867 -0.683589 0 + outer loop + vertex -0.0424264 -0.0424264 0 + vertex -0.0424264 -0.0424264 0.01 + vertex -0.0451104 -0.0395607 0.01 + endloop + endfacet + facet normal -0.729867 -0.683589 -0 + outer loop + vertex -0.0451104 -0.0395607 0.01 + vertex -0.0451104 -0.0395607 0 + vertex -0.0424264 -0.0424264 0 + endloop + endfacet + facet normal -0.773005 -0.634399 0 + outer loop + vertex -0.0451104 -0.0395607 0 + vertex -0.0451104 -0.0395607 0.01 + vertex -0.0476012 -0.0365257 0.01 + endloop + endfacet + facet normal -0.773005 -0.634399 -0 + outer loop + vertex -0.0476012 -0.0365257 0.01 + vertex -0.0476012 -0.0365257 0 + vertex -0.0451104 -0.0395607 0 + endloop + endfacet + facet normal -0.812846 -0.582478 0 + outer loop + vertex -0.0476012 -0.0365257 0 + vertex -0.0476012 -0.0365257 0.01 + vertex -0.0498882 -0.0333342 0.01 + endloop + endfacet + facet normal -0.812846 -0.582478 -0 + outer loop + vertex -0.0498882 -0.0333342 0.01 + vertex -0.0498882 -0.0333342 0 + vertex -0.0476012 -0.0365257 0 + endloop + endfacet + facet normal -0.849207 -0.528061 0 + outer loop + vertex -0.0498882 -0.0333342 0 + vertex -0.0498882 -0.0333342 0.01 + vertex -0.0519615 -0.03 0.01 + endloop + endfacet + facet normal -0.849207 -0.528061 -0 + outer loop + vertex -0.0519615 -0.03 0.01 + vertex -0.0519615 -0.03 0 + vertex -0.0498882 -0.0333342 0 + endloop + endfacet + facet normal -0.881916 -0.471406 0 + outer loop + vertex -0.0519615 -0.03 0 + vertex -0.0519615 -0.03 0.01 + vertex -0.0538124 -0.0265373 0.01 + endloop + endfacet + facet normal -0.881916 -0.471406 -0 + outer loop + vertex -0.0538124 -0.0265373 0.01 + vertex -0.0538124 -0.0265373 0 + vertex -0.0519615 -0.03 0 + endloop + endfacet + facet normal -0.910864 -0.412707 0 + outer loop + vertex -0.0538124 -0.0265373 0 + vertex -0.0538124 -0.0265373 0.01 + vertex -0.0554328 -0.022961 0.01 + endloop + endfacet + facet normal -0.910864 -0.412707 -0 + outer loop + vertex -0.0554328 -0.022961 0.01 + vertex -0.0554328 -0.022961 0 + vertex -0.0538124 -0.0265373 0 + endloop + endfacet + facet normal -0.935908 -0.352245 0 + outer loop + vertex -0.0554328 -0.022961 0 + vertex -0.0554328 -0.022961 0.01 + vertex -0.0568158 -0.0192864 0.01 + endloop + endfacet + facet normal -0.935908 -0.352245 -0 + outer loop + vertex -0.0568158 -0.0192864 0.01 + vertex -0.0568158 -0.0192864 0 + vertex -0.0554328 -0.022961 0 + endloop + endfacet + facet normal -0.956945 -0.29027 0 + outer loop + vertex -0.0568158 -0.0192864 0 + vertex -0.0568158 -0.0192864 0.01 + vertex -0.0579555 -0.0155291 0.01 + endloop + endfacet + facet normal -0.956945 -0.29027 -0 + outer loop + vertex -0.0579555 -0.0155291 0.01 + vertex -0.0579555 -0.0155291 0 + vertex -0.0568158 -0.0192864 0 + endloop + endfacet + facet normal -0.973875 -0.227085 0 + outer loop + vertex -0.0579555 -0.0155291 0 + vertex -0.0579555 -0.0155291 0.01 + vertex -0.0588471 -0.0117054 0.01 + endloop + endfacet + facet normal -0.973875 -0.227085 -0 + outer loop + vertex -0.0588471 -0.0117054 0.01 + vertex -0.0588471 -0.0117054 0 + vertex -0.0579555 -0.0155291 0 + endloop + endfacet + facet normal -0.986642 -0.162902 0 + outer loop + vertex -0.0588471 -0.0117054 0 + vertex -0.0588471 -0.0117054 0.01 + vertex -0.0594867 -0.00783157 0.01 + endloop + endfacet + facet normal -0.986642 -0.162902 -0 + outer loop + vertex -0.0594867 -0.00783157 0.01 + vertex -0.0594867 -0.00783157 0 + vertex -0.0588471 -0.0117054 0 + endloop + endfacet + facet normal -0.995186 -0.0980062 0 + outer loop + vertex -0.0594867 -0.00783157 0 + vertex -0.0594867 -0.00783157 0.01 + vertex -0.0598715 -0.00392419 0.01 + endloop + endfacet + facet normal -0.995186 -0.0980062 -0 + outer loop + vertex -0.0598715 -0.00392419 0.01 + vertex -0.0598715 -0.00392419 0 + vertex -0.0594867 -0.00783157 0 + endloop + endfacet + facet normal -0.999464 -0.0327281 0 + outer loop + vertex -0.0598715 -0.00392419 0 + vertex -0.0598715 -0.00392419 0.01 + vertex -0.06 2.15388e-10 0.01 + endloop + endfacet + facet normal -0.999464 -0.0327281 -0 + outer loop + vertex -0.06 2.15388e-10 0.01 + vertex -0.06 2.15388e-10 0 + vertex -0.0598715 -0.00392419 0 + endloop + endfacet + facet normal -0.999464 0.0327281 0 + outer loop + vertex -0.06 2.15388e-10 0 + vertex -0.06 2.15388e-10 0.01 + vertex -0.0598715 0.00392419 0.01 + endloop + endfacet + facet normal -0.999464 0.0327281 0 + outer loop + vertex -0.0598715 0.00392419 0.01 + vertex -0.0598715 0.00392419 0 + vertex -0.06 2.15388e-10 0 + endloop + endfacet + facet normal -0.995186 0.0980062 0 + outer loop + vertex -0.0598715 0.00392419 0 + vertex -0.0598715 0.00392419 0.01 + vertex -0.0594867 0.00783157 0.01 + endloop + endfacet + facet normal -0.995186 0.0980062 0 + outer loop + vertex -0.0594867 0.00783157 0.01 + vertex -0.0594867 0.00783157 0 + vertex -0.0598715 0.00392419 0 + endloop + endfacet + facet normal -0.986642 0.162902 0 + outer loop + vertex -0.0594867 0.00783157 0 + vertex -0.0594867 0.00783157 0.01 + vertex -0.0588471 0.0117054 0.01 + endloop + endfacet + facet normal -0.986642 0.162902 0 + outer loop + vertex -0.0588471 0.0117054 0.01 + vertex -0.0588471 0.0117054 0 + vertex -0.0594867 0.00783157 0 + endloop + endfacet + facet normal -0.973875 0.227085 0 + outer loop + vertex -0.0588471 0.0117054 0 + vertex -0.0588471 0.0117054 0.01 + vertex -0.0579555 0.0155291 0.01 + endloop + endfacet + facet normal -0.973875 0.227085 0 + outer loop + vertex -0.0579555 0.0155291 0.01 + vertex -0.0579555 0.0155291 0 + vertex -0.0588471 0.0117054 0 + endloop + endfacet + facet normal -0.956945 0.29027 0 + outer loop + vertex -0.0579555 0.0155291 0 + vertex -0.0579555 0.0155291 0.01 + vertex -0.0568158 0.0192864 0.01 + endloop + endfacet + facet normal -0.956945 0.29027 0 + outer loop + vertex -0.0568158 0.0192864 0.01 + vertex -0.0568158 0.0192864 0 + vertex -0.0579555 0.0155291 0 + endloop + endfacet + facet normal -0.935908 0.352245 0 + outer loop + vertex -0.0568158 0.0192864 0 + vertex -0.0568158 0.0192864 0.01 + vertex -0.0554328 0.022961 0.01 + endloop + endfacet + facet normal -0.935908 0.352245 0 + outer loop + vertex -0.0554328 0.022961 0.01 + vertex -0.0554328 0.022961 0 + vertex -0.0568158 0.0192864 0 + endloop + endfacet + facet normal -0.910864 0.412707 0 + outer loop + vertex -0.0554328 0.022961 0 + vertex -0.0554328 0.022961 0.01 + vertex -0.0538124 0.0265373 0.01 + endloop + endfacet + facet normal -0.910864 0.412707 0 + outer loop + vertex -0.0538124 0.0265373 0.01 + vertex -0.0538124 0.0265373 0 + vertex -0.0554328 0.022961 0 + endloop + endfacet + facet normal -0.881916 0.471406 0 + outer loop + vertex -0.0538124 0.0265373 0 + vertex -0.0538124 0.0265373 0.01 + vertex -0.0519615 0.03 0.01 + endloop + endfacet + facet normal -0.881916 0.471406 0 + outer loop + vertex -0.0519615 0.03 0.01 + vertex -0.0519615 0.03 0 + vertex -0.0538124 0.0265373 0 + endloop + endfacet + facet normal -0.849207 0.528061 0 + outer loop + vertex -0.0519615 0.03 0 + vertex -0.0519615 0.03 0.01 + vertex -0.0498882 0.0333342 0.01 + endloop + endfacet + facet normal -0.849207 0.528061 0 + outer loop + vertex -0.0498882 0.0333342 0.01 + vertex -0.0498882 0.0333342 0 + vertex -0.0519615 0.03 0 + endloop + endfacet + facet normal -0.812846 0.582478 0 + outer loop + vertex -0.0498882 0.0333342 0 + vertex -0.0498882 0.0333342 0.01 + vertex -0.0476012 0.0365257 0.01 + endloop + endfacet + facet normal -0.812846 0.582478 0 + outer loop + vertex -0.0476012 0.0365257 0.01 + vertex -0.0476012 0.0365257 0 + vertex -0.0498882 0.0333342 0 + endloop + endfacet + facet normal -0.773005 0.634399 0 + outer loop + vertex -0.0476012 0.0365257 0 + vertex -0.0476012 0.0365257 0.01 + vertex -0.0451104 0.0395607 0.01 + endloop + endfacet + facet normal -0.773005 0.634399 0 + outer loop + vertex -0.0451104 0.0395607 0.01 + vertex -0.0451104 0.0395607 0 + vertex -0.0476012 0.0365257 0 + endloop + endfacet + facet normal -0.729867 0.683589 0 + outer loop + vertex -0.0451104 0.0395607 0 + vertex -0.0451104 0.0395607 0.01 + vertex -0.0424264 0.0424264 0.01 + endloop + endfacet + facet normal -0.729867 0.683589 0 + outer loop + vertex -0.0424264 0.0424264 0.01 + vertex -0.0424264 0.0424264 0 + vertex -0.0451104 0.0395607 0 + endloop + endfacet + facet normal -0.683589 0.729867 0 + outer loop + vertex -0.0424264 0.0424264 0 + vertex -0.0424264 0.0424264 0.01 + vertex -0.0395607 0.0451104 0.01 + endloop + endfacet + facet normal -0.683589 0.729867 0 + outer loop + vertex -0.0395607 0.0451104 0.01 + vertex -0.0395607 0.0451104 0 + vertex -0.0424264 0.0424264 0 + endloop + endfacet + facet normal -0.634399 0.773005 0 + outer loop + vertex -0.0395607 0.0451104 0 + vertex -0.0395607 0.0451104 0.01 + vertex -0.0365257 0.0476012 0.01 + endloop + endfacet + facet normal -0.634399 0.773005 0 + outer loop + vertex -0.0365257 0.0476012 0.01 + vertex -0.0365257 0.0476012 0 + vertex -0.0395607 0.0451104 0 + endloop + endfacet + facet normal -0.582478 0.812846 0 + outer loop + vertex -0.0365257 0.0476012 0 + vertex -0.0365257 0.0476012 0.01 + vertex -0.0333342 0.0498882 0.01 + endloop + endfacet + facet normal -0.582478 0.812846 0 + outer loop + vertex -0.0333342 0.0498882 0.01 + vertex -0.0333342 0.0498882 0 + vertex -0.0365257 0.0476012 0 + endloop + endfacet + facet normal -0.528061 0.849207 0 + outer loop + vertex -0.0333342 0.0498882 0 + vertex -0.0333342 0.0498882 0.01 + vertex -0.03 0.0519615 0.01 + endloop + endfacet + facet normal -0.528061 0.849207 0 + outer loop + vertex -0.03 0.0519615 0.01 + vertex -0.03 0.0519615 0 + vertex -0.0333342 0.0498882 0 + endloop + endfacet + facet normal -0.471406 0.881916 0 + outer loop + vertex -0.03 0.0519615 0 + vertex -0.03 0.0519615 0.01 + vertex -0.0265373 0.0538124 0.01 + endloop + endfacet + facet normal -0.471406 0.881916 0 + outer loop + vertex -0.0265373 0.0538124 0.01 + vertex -0.0265373 0.0538124 0 + vertex -0.03 0.0519615 0 + endloop + endfacet + facet normal -0.412707 0.910864 0 + outer loop + vertex -0.0265373 0.0538124 0 + vertex -0.0265373 0.0538124 0.01 + vertex -0.022961 0.0554328 0.01 + endloop + endfacet + facet normal -0.412707 0.910864 0 + outer loop + vertex -0.022961 0.0554328 0.01 + vertex -0.022961 0.0554328 0 + vertex -0.0265373 0.0538124 0 + endloop + endfacet + facet normal -0.352245 0.935908 0 + outer loop + vertex -0.022961 0.0554328 0 + vertex -0.022961 0.0554328 0.01 + vertex -0.0192864 0.0568158 0.01 + endloop + endfacet + facet normal -0.352245 0.935908 0 + outer loop + vertex -0.0192864 0.0568158 0.01 + vertex -0.0192864 0.0568158 0 + vertex -0.022961 0.0554328 0 + endloop + endfacet + facet normal -0.29027 0.956945 0 + outer loop + vertex -0.0192864 0.0568158 0 + vertex -0.0192864 0.0568158 0.01 + vertex -0.0155291 0.0579555 0.01 + endloop + endfacet + facet normal -0.29027 0.956945 0 + outer loop + vertex -0.0155291 0.0579555 0.01 + vertex -0.0155291 0.0579555 0 + vertex -0.0192864 0.0568158 0 + endloop + endfacet + facet normal -0.227085 0.973875 0 + outer loop + vertex -0.0155291 0.0579555 0 + vertex -0.0155291 0.0579555 0.01 + vertex -0.0117054 0.0588471 0.01 + endloop + endfacet + facet normal -0.227085 0.973875 0 + outer loop + vertex -0.0117054 0.0588471 0.01 + vertex -0.0117054 0.0588471 0 + vertex -0.0155291 0.0579555 0 + endloop + endfacet + facet normal -0.162902 0.986642 0 + outer loop + vertex -0.0117054 0.0588471 0 + vertex -0.0117054 0.0588471 0.01 + vertex -0.00783157 0.0594867 0.01 + endloop + endfacet + facet normal -0.162902 0.986642 0 + outer loop + vertex -0.00783157 0.0594867 0.01 + vertex -0.00783157 0.0594867 0 + vertex -0.0117054 0.0588471 0 + endloop + endfacet + facet normal -0.0980062 0.995186 0 + outer loop + vertex -0.00783157 0.0594867 0 + vertex -0.00783157 0.0594867 0.01 + vertex -0.00392419 0.0598715 0.01 + endloop + endfacet + facet normal -0.0980062 0.995186 0 + outer loop + vertex -0.00392419 0.0598715 0.01 + vertex -0.00392419 0.0598715 0 + vertex -0.00783157 0.0594867 0 + endloop + endfacet + facet normal -0.0327281 0.999464 0 + outer loop + vertex -0.00392419 0.0598715 0 + vertex -0.00392419 0.0598715 0.01 + vertex 1.07694e-10 0.06 0.01 + endloop + endfacet + facet normal -0.0327281 0.999464 0 + outer loop + vertex 1.07694e-10 0.06 0.01 + vertex 1.07694e-10 0.06 0 + vertex -0.00392419 0.0598715 0 + endloop + endfacet + facet normal 0.0327281 0.999464 -0 + outer loop + vertex 1.07694e-10 0.06 0 + vertex 1.07694e-10 0.06 0.01 + vertex 0.00392419 0.0598715 0.01 + endloop + endfacet + facet normal 0.0327281 0.999464 0 + outer loop + vertex 0.00392419 0.0598715 0.01 + vertex 0.00392419 0.0598715 0 + vertex 1.07694e-10 0.06 0 + endloop + endfacet + facet normal 0.0980062 0.995186 -0 + outer loop + vertex 0.00392419 0.0598715 0 + vertex 0.00392419 0.0598715 0.01 + vertex 0.00783157 0.0594867 0.01 + endloop + endfacet + facet normal 0.0980062 0.995186 0 + outer loop + vertex 0.00783157 0.0594867 0.01 + vertex 0.00783157 0.0594867 0 + vertex 0.00392419 0.0598715 0 + endloop + endfacet + facet normal 0.162902 0.986642 -0 + outer loop + vertex 0.00783157 0.0594867 0 + vertex 0.00783157 0.0594867 0.01 + vertex 0.0117054 0.0588471 0.01 + endloop + endfacet + facet normal 0.162902 0.986642 0 + outer loop + vertex 0.0117054 0.0588471 0.01 + vertex 0.0117054 0.0588471 0 + vertex 0.00783157 0.0594867 0 + endloop + endfacet + facet normal 0.227085 0.973875 -0 + outer loop + vertex 0.0117054 0.0588471 0 + vertex 0.0117054 0.0588471 0.01 + vertex 0.0155291 0.0579555 0.01 + endloop + endfacet + facet normal 0.227085 0.973875 0 + outer loop + vertex 0.0155291 0.0579555 0.01 + vertex 0.0155291 0.0579555 0 + vertex 0.0117054 0.0588471 0 + endloop + endfacet + facet normal 0.29027 0.956945 -0 + outer loop + vertex 0.0155291 0.0579555 0 + vertex 0.0155291 0.0579555 0.01 + vertex 0.0192864 0.0568158 0.01 + endloop + endfacet + facet normal 0.29027 0.956945 0 + outer loop + vertex 0.0192864 0.0568158 0.01 + vertex 0.0192864 0.0568158 0 + vertex 0.0155291 0.0579555 0 + endloop + endfacet + facet normal 0.352245 0.935908 -0 + outer loop + vertex 0.0192864 0.0568158 0 + vertex 0.0192864 0.0568158 0.01 + vertex 0.022961 0.0554328 0.01 + endloop + endfacet + facet normal 0.352245 0.935908 0 + outer loop + vertex 0.022961 0.0554328 0.01 + vertex 0.022961 0.0554328 0 + vertex 0.0192864 0.0568158 0 + endloop + endfacet + facet normal 0.412707 0.910864 -0 + outer loop + vertex 0.022961 0.0554328 0 + vertex 0.022961 0.0554328 0.01 + vertex 0.0265373 0.0538124 0.01 + endloop + endfacet + facet normal 0.412707 0.910864 0 + outer loop + vertex 0.0265373 0.0538124 0.01 + vertex 0.0265373 0.0538124 0 + vertex 0.022961 0.0554328 0 + endloop + endfacet + facet normal 0.471406 0.881916 -0 + outer loop + vertex 0.0265373 0.0538124 0 + vertex 0.0265373 0.0538124 0.01 + vertex 0.03 0.0519615 0.01 + endloop + endfacet + facet normal 0.471406 0.881916 0 + outer loop + vertex 0.03 0.0519615 0.01 + vertex 0.03 0.0519615 0 + vertex 0.0265373 0.0538124 0 + endloop + endfacet + facet normal 0.528061 0.849207 -0 + outer loop + vertex 0.03 0.0519615 0 + vertex 0.03 0.0519615 0.01 + vertex 0.0333342 0.0498882 0.01 + endloop + endfacet + facet normal 0.528061 0.849207 0 + outer loop + vertex 0.0333342 0.0498882 0.01 + vertex 0.0333342 0.0498882 0 + vertex 0.03 0.0519615 0 + endloop + endfacet + facet normal 0.582478 0.812846 -0 + outer loop + vertex 0.0333342 0.0498882 0 + vertex 0.0333342 0.0498882 0.01 + vertex 0.0365257 0.0476012 0.01 + endloop + endfacet + facet normal 0.582478 0.812846 0 + outer loop + vertex 0.0365257 0.0476012 0.01 + vertex 0.0365257 0.0476012 0 + vertex 0.0333342 0.0498882 0 + endloop + endfacet + facet normal 0.634399 0.773005 -0 + outer loop + vertex 0.0365257 0.0476012 0 + vertex 0.0365257 0.0476012 0.01 + vertex 0.0395607 0.0451104 0.01 + endloop + endfacet + facet normal 0.634399 0.773005 0 + outer loop + vertex 0.0395607 0.0451104 0.01 + vertex 0.0395607 0.0451104 0 + vertex 0.0365257 0.0476012 0 + endloop + endfacet + facet normal 0.683589 0.729867 -0 + outer loop + vertex 0.0395607 0.0451104 0 + vertex 0.0395607 0.0451104 0.01 + vertex 0.0424264 0.0424264 0.01 + endloop + endfacet + facet normal 0.683589 0.729867 0 + outer loop + vertex 0.0424264 0.0424264 0.01 + vertex 0.0424264 0.0424264 0 + vertex 0.0395607 0.0451104 0 + endloop + endfacet + facet normal 0.729867 0.683589 -0 + outer loop + vertex 0.0424264 0.0424264 0 + vertex 0.0424264 0.0424264 0.01 + vertex 0.0451104 0.0395607 0.01 + endloop + endfacet + facet normal 0.729867 0.683589 0 + outer loop + vertex 0.0451104 0.0395607 0.01 + vertex 0.0451104 0.0395607 0 + vertex 0.0424264 0.0424264 0 + endloop + endfacet + facet normal 0.773005 0.634399 -0 + outer loop + vertex 0.0451104 0.0395607 0 + vertex 0.0451104 0.0395607 0.01 + vertex 0.0476012 0.0365257 0.01 + endloop + endfacet + facet normal 0.773005 0.634399 0 + outer loop + vertex 0.0476012 0.0365257 0.01 + vertex 0.0476012 0.0365257 0 + vertex 0.0451104 0.0395607 0 + endloop + endfacet + facet normal 0.812846 0.582478 -0 + outer loop + vertex 0.0476012 0.0365257 0 + vertex 0.0476012 0.0365257 0.01 + vertex 0.0498882 0.0333342 0.01 + endloop + endfacet + facet normal 0.812846 0.582478 0 + outer loop + vertex 0.0498882 0.0333342 0.01 + vertex 0.0498882 0.0333342 0 + vertex 0.0476012 0.0365257 0 + endloop + endfacet + facet normal 0.849207 0.528061 -0 + outer loop + vertex 0.0498882 0.0333342 0 + vertex 0.0498882 0.0333342 0.01 + vertex 0.0519615 0.03 0.01 + endloop + endfacet + facet normal 0.849207 0.528061 0 + outer loop + vertex 0.0519615 0.03 0.01 + vertex 0.0519615 0.03 0 + vertex 0.0498882 0.0333342 0 + endloop + endfacet + facet normal 0.881916 0.471406 -0 + outer loop + vertex 0.0519615 0.03 0 + vertex 0.0519615 0.03 0.01 + vertex 0.0538124 0.0265373 0.01 + endloop + endfacet + facet normal 0.881916 0.471406 0 + outer loop + vertex 0.0538124 0.0265373 0.01 + vertex 0.0538124 0.0265373 0 + vertex 0.0519615 0.03 0 + endloop + endfacet + facet normal 0.910864 0.412707 -0 + outer loop + vertex 0.0538124 0.0265373 0 + vertex 0.0538124 0.0265373 0.01 + vertex 0.0554328 0.022961 0.01 + endloop + endfacet + facet normal 0.910864 0.412707 0 + outer loop + vertex 0.0554328 0.022961 0.01 + vertex 0.0554328 0.022961 0 + vertex 0.0538124 0.0265373 0 + endloop + endfacet + facet normal 0.935908 0.352245 -0 + outer loop + vertex 0.0554328 0.022961 0 + vertex 0.0554328 0.022961 0.01 + vertex 0.0568158 0.0192864 0.01 + endloop + endfacet + facet normal 0.935908 0.352245 0 + outer loop + vertex 0.0568158 0.0192864 0.01 + vertex 0.0568158 0.0192864 0 + vertex 0.0554328 0.022961 0 + endloop + endfacet + facet normal 0.956945 0.29027 -0 + outer loop + vertex 0.0568158 0.0192864 0 + vertex 0.0568158 0.0192864 0.01 + vertex 0.0579555 0.0155291 0.01 + endloop + endfacet + facet normal 0.956945 0.29027 0 + outer loop + vertex 0.0579555 0.0155291 0.01 + vertex 0.0579555 0.0155291 0 + vertex 0.0568158 0.0192864 0 + endloop + endfacet + facet normal 0.973875 0.227085 -0 + outer loop + vertex 0.0579555 0.0155291 0 + vertex 0.0579555 0.0155291 0.01 + vertex 0.0588471 0.0117054 0.01 + endloop + endfacet + facet normal 0.973875 0.227085 0 + outer loop + vertex 0.0588471 0.0117054 0.01 + vertex 0.0588471 0.0117054 0 + vertex 0.0579555 0.0155291 0 + endloop + endfacet + facet normal 0.986642 0.162902 -0 + outer loop + vertex 0.0588471 0.0117054 0 + vertex 0.0588471 0.0117054 0.01 + vertex 0.0594867 0.00783157 0.01 + endloop + endfacet + facet normal 0.986642 0.162902 0 + outer loop + vertex 0.0594867 0.00783157 0.01 + vertex 0.0594867 0.00783157 0 + vertex 0.0588471 0.0117054 0 + endloop + endfacet + facet normal 0.995186 0.0980062 -0 + outer loop + vertex 0.0594867 0.00783157 0 + vertex 0.0594867 0.00783157 0.01 + vertex 0.0598715 0.00392419 0.01 + endloop + endfacet + facet normal 0.995186 0.0980062 0 + outer loop + vertex 0.0598715 0.00392419 0.01 + vertex 0.0598715 0.00392419 0 + vertex 0.0594867 0.00783157 0 + endloop + endfacet + facet normal 0.999464 0.0327281 -0 + outer loop + vertex 0.0598715 0.00392419 0 + vertex 0.0598715 0.00392419 0.01 + vertex 0.06 0 0.01 + endloop + endfacet + facet normal 0.999464 0.0327281 0 + outer loop + vertex 0.06 0 0.01 + vertex 0.06 0 0 + vertex 0.0598715 0.00392419 0 + endloop + endfacet +endsolid AMI1 diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties new file mode 100644 index 00000000000..8e0954f7116 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- 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; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh new file mode 100755 index 00000000000..937765f7cb7 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh @@ -0,0 +1,13 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict + +runApplication blockMesh + +runApplication topoSet + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict new file mode 100644 index 00000000000..940e361d363 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/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 multiphaseInterDyMFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5; + +deltaT 1e-6; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.1; +maxAlphaCo 0.1; + +maxDeltaT 1; + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict new file mode 100644 index 00000000000..e043204bfb3 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict @@ -0,0 +1,31 @@ +/*--------------------------------*- 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 decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//- Force AMI to be on single processor. Can cause imbalance with some +// decomposers. +//singleProcessorFaceSets ((AMI -1)); + +numberOfSubdomains 4; + +method scotch; + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes new file mode 100644 index 00000000000..1d6bf988557 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 +{ + div(rhoPhi,U) Gauss limitedLinearV 1; + div(phi,alpha) Gauss vanLeer; + div(phirb,alpha) Gauss linear; + div((muEff*dev(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pcorr; + p_rgh; + "alpha.*"; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution new file mode 100644 index 00000000000..454667421f2 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/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 + { + nAlphaSubCycles 1; + cAlpha 1; + } + + "pcorr.*" + { + solver PCG; + preconditioner DIC; + tolerance 1e-3; + relTol 0; + } + + p_rgh + { + solver PCG; + preconditioner DIC; + tolerance 1e-07; + relTol 0.05; + } + + p_rghFinal + { + solver PCG; + preconditioner DIC; + tolerance 1e-07; + relTol 0; + } + + "(U|alpha)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0; + } +} + +PIMPLE +{ + correctPhi yes; + momentumPredictor no; + nOuterCorrectors 1; + nCorrectors 4; + nNonOrthogonalCorrectors 0; + + pRefCell 0; + pRefValue 0; +} + +relaxationFactors +{ + fields + { + } + equations + { + "U.*" 1; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict new file mode 100644 index 00000000000..6e8f2f034c8 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict @@ -0,0 +1,64 @@ +/*--------------------------------*- 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 alpha.air 1 + volScalarFieldValue alpha.water 0 + volScalarFieldValue alpha.oil 0 + volScalarFieldValue alpha.mercury 0 +); + +regions +( + boxToCell + { + box (0 0 -1) (1 1 1); + fieldValues + ( + volScalarFieldValue alpha.water 1 + volScalarFieldValue alpha.oil 0 + volScalarFieldValue alpha.mercury 0 + volScalarFieldValue alpha.air 0 + ); + } + boxToCell + { + box (0 -1 -1) (1 0 1); + fieldValues + ( + volScalarFieldValue alpha.water 0 + volScalarFieldValue alpha.oil 1 + volScalarFieldValue alpha.mercury 0 + volScalarFieldValue alpha.air 0 + ); + } + boxToCell + { + box (-1 -1 -1) (0 0 1); + fieldValues + ( + volScalarFieldValue alpha.water 0 + volScalarFieldValue alpha.oil 0 + volScalarFieldValue alpha.mercury 1 + volScalarFieldValue alpha.air 0 + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict new file mode 100644 index 00000000000..07786ad6b03 --- /dev/null +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict @@ -0,0 +1,35 @@ +/*--------------------------------*- 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 topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + // Get both sides of ami + // ~~~~~~~~~~~~~~~~~~~~~ + + // Get all faces in cellSet + { + name AMI; + type faceSet; + action new; + source patchToFace; + sourceInfo + { + name "AMI.*"; + } + } +); + +// ************************************************************************* // -- GitLab