diff --git a/applications/solvers/multiphase/cavitatingFoam/createFields.H b/applications/solvers/multiphase/cavitatingFoam/createFields.H index 2c834dc51180128be9debf843ee2deb504ea5695..3c28de16c5c1fa214524ec5bd607a3be8855cf5b 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 035116d2d5723d4f0ef19facc19be5732966c612..54e9f74e4af7dbe9ba1978683edd8ed9316a95da 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 d97e8b2a3549db8ea23edc6c073a5bb160c6537c..a02b38a8d8c6ea06da447fc8613ede22316e4894 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 8fc397e8020c8d6c0786192d39dc386d57c0af4f..44be32aac22f201585518420fd22577ad48bd76a 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 cf9a1d85ecfb9f3452ac945cdc49057a25b8f1be..123645b4c3616bf3f8a53f6e2c4926059ce0af79 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 e7fd7241db93d9e82c1c2c06a289c8afda7d6c30..89089fe616f3a513449e661da797e19df58218ba 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 c4edc961d887231dfa7be0afe4f105f39379862c..5f7b4dddadf88dc0621b0c3e24567fad7327d1d6 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 dbd859b954b7da6f4ed8fb154a39f852e449f47c..673f1c827101b537b0d72433d8f1a3afbc59d4c3 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 8dbf02aa064f4b84035f1add8501ab51a817af5f..5c8c8df239b6510608705ebafbf55c843b7870f0 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 0f47e6979edee7a5294823ff42e883991eb5279e..af7020f40f67acdba7bc2b56fc849692b59ba410 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 a7ee3a7bb4ba946d65f522cf716e0e1d66781e4b..66274441c3ee87385575f297d00c7d39baad53ff 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 38cfebde6f3c8412ae037cd96f68907953a30850..436b74e84615b86fe01fd6b6b9a3f51956b8ebf1 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 09018b603f0089b685ddcca2497877b1eb6db9d1..5648f2d3bd24831f9bc14c2a7405131421f2c767 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 5c7f723a875a0ef6fe8d93b8679f01b3cc5ee7f2..8ab0a9581a8f4b9be9e3a8355ef301adaf4ec76e 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 eab8cce15dde3c729b68afecb9510af3bb5967e1..3740cf38fe9ad904c10021aae3b108b85d3877fd 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 e42a54aabdac39c54c2db0468736bfda5052dc26..a8f4bcb9f2b8f9ba369c350b14ec8ee1d171fcdb 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 8b080006674b8874606ded342451a96c4de8ac26..d91472696f7451ef849f1521c5966d3b9361716b 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 cc883614b895212e67e6456ef21ad024c99857ca..035b007934439fef464b58712fe797044ff84dad 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 33d83161ce04ce0d5b392aed7f71943fcae681e3..1e870c42a93fc7e631af1f98e48d9561ead9f36c 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 33560b54e64a17538ef23339bd195840edaff4a7..14861f2b880c44239c4e31ec8b719e9df4f4459c 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 9610e63ee14feeaf4f2f1a9c84bcf731dc1ce8a7..0000000000000000000000000000000000000000 --- 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 c0a9b615a0667b6455f9cd75c942ff2b1b493087..0000000000000000000000000000000000000000 --- 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 dba2f7ae6296444051df84a196d432e898d9d1f8..0000000000000000000000000000000000000000 --- 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 6c315c8eb85421507cf8899fa7b6ca5e77225f73..0000000000000000000000000000000000000000 --- 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 e0355fe4b14c30c6fbf146f65f1fa36648359bee..0000000000000000000000000000000000000000 --- 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 8811a53df650d1ae1646edae2769d78846fbe4fa..207a796b1dab6264d98ac2066ab2f50bb9f4c57f 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 7cc250a66a2ab15a22680ab352f321e731b17c17..10bc0fac6f5147eb22e37edc49a46e600e58a36d 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 c1f69ab802a982d497e8fb6c61d6d5226ed30de0..95ad609a510785d579a60c5746b4abbfb0036eb2 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 764d2aee56d39c24be3415d55e0de5fa88b49c67..b25d12511c404ef8995f3089fe9b8e8d8560aa00 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 1c91f280bc7ee25611959953f903f834cc40c59a..a87673b0f70121d99334b5bc7944c10916f1c47a 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 2a5429f7a8a944497ef0d1a06da89c3dbb090948..b9638e612bee301aad0a5a00796c9b60169195be 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 32ee5aee06f9b298a7f56d95db03b428704e995b..58d74a625507d5ac712fedcc1ff0522fc87427fa 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 ec99a6388388b68f7ca55eccafdbc096e04d5f6c..2ef484b18e612ae8d19ee22ad4641b01d614efa5 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 8c59d0f9d4e89d462783e2ffea6ad07c5939e623..6b6168bf0e75b0d92903fc1a12b249ab9cc4b01a 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 f179f42761fe59e4e586a450e565080c1bb43d53..92e2916a74b67391c1b47ac904ae98e4c06a9f5d 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 cc09aeb2f35740e5b384a56d387317ac8859693b..43456c90472b61e73e03fb6b28b110f50fb8ece6 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 970da9fc925c8c15ef0e3aa54f7fde4a2197502f..a3278090207d02ba65bf44a714c5903191c2280f 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 3fd5874d5b479efc9288e9bf143970c2227a481e..16f3a21362752d90bee92216661faf15caf10037 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 1fd68ffb790d4bccb99e870e10f9f10577bc0d00..2dcc2a09eca35583fd5d4a60b1ea19788037f0f2 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 0000000000000000000000000000000000000000..43352753acab21a430298fb0a57c5c3a0a047dc8 --- /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 50494062d5ca547b1c3037e4f39990775728c96b..0894f3c6f36cad642f7fd5abac6e7911151f15e8 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 16337521d3bbd86c5b9e6a0368bfb80af15e2063..766e06215ef0a2dc185b05158094d177d59418e0 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 edeab9ac703687044804a91a905f09d3228bac3d..09cb7f1c7eb2b3faec8208e4a832c49910abe790 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 f812b472e0873fea65145819ca645c87bfe494ea..486e442982d5b077f7d8d398380296f651f17f56 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 0653ab0a2065be1d98b1d32fa53bd4b8aedf8cf9..266bedb470aa06535777385293900bd8c6e16ed0 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 227c075fa273cecd129fbdfb29469e20f4a03acf..81a0391d6deb1cdc1f0b48e44204d46f5c961fb9 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 db2e1736ee2101bfe80abb1e725574d36c3c320a..fffa41da94c813a8a5044f5560345ccf12fb7988 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 f8dcecf6acfc5d02c575781734799b9357893b05..e175dcb92c458e54da504df04767e1dd6a92e127 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 c30188784418303ee074e5f36ead2e4de87633ce..c17847bd3da1c6240550b551421f64379f70a200 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 062c5523c9d4c94a469e49e202b65e25ad1b285d..1e27597292e480808167b5a14fa0b15a5043ab29 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 1172cf07071c83c3fe1bd802202158c278d997f5..5d915ecc14a34b77035a9a4e78d9d7716d640248 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 0e45fa495e8aa5b1cfcbb6c06c51899c82488e5f..79fc0a1405dde18bb3693b54be04fc5a8d33ae31 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 86b19912cfff0992026970c571ccc8ba991c03eb..e336e4a0c3d42eaf4ea1e09f9a125596541999ea 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 5915b6803596f256e36c119b1a27d9a8c968d785..b759081eeae02721ab6ce6a3d4e36263273af693 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 bea114da8040e6b9a01dcd656dd3d0beddfe673f..3296d0f0fb11f12fa7db9a20e16c2c0b6c0081ce 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 6714fce91c18c54c453c0ad43b636255278d3a79..4a174eb980fe3243fb6ea039e5bd2a63f313c165 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 6b5dc2e5c65086adaceccd89880eb13770eb92c1..7edca3f5d1cf0b8a2fb9feb49388b1e8c120a973 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 6ceded9c1a94ccaf143640a65b5cd89bdfb67a7d..2a03ac9b6cbb89dc3f1c6c3b712166dfdfe41051 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 5dd13a4ecf5acc74371ee6695be0be1202ae1dd0..0000000000000000000000000000000000000000 --- 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 c19f9ea9e3effaca5c09d2c4f9b044039007f252..a3550dbdb7a4c54c417f66979c0feb572ce10aa0 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 0000000000000000000000000000000000000000..3fb8d0245ff1f576b034360b31b90d0abec036ba --- /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 db2e1736ee2101bfe80abb1e725574d36c3c320a..83653482210db89fcffe74b1c4ba1a84af2f2ae0 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 f6386bde4851f4f833533a055cb277d816b45c6f..acfa7eb3eea5194669528acd6016d1e56e6d4b1c 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 b7ba2bc9c92c94f17d8e6b77215035994df606b8..9edc7a78b305367c74e72dfe76062d5312fc5a6e 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 8ce663528d16962db57247c1d6453fd3726f4f4d..0000000000000000000000000000000000000000 --- 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 98444a065f6c3679ea63833ffc6f319f4b3d493a..6ea204b00b157f95b676f8c9b068548d9d5b2daa 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 31e1e61d5d3a6688952ee5b543c2efe96968c390..dc6325d0af67044d5336d5da1a1db229002c9b6c 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 247c12a8b508e14c431437da31851532c824ead2..7593aeab113c5349e6e8f5bedbb31feb27842986 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 120dfae74a90cfd1f3e9e80a52b03c94f8d665e0..07272706a690bf1f4a5fa6e02d9ce8db01a01b6f 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 0000000000000000000000000000000000000000..136b8b7a9393ffc069fa997846cd5467bc5ef59c --- /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 0000000000000000000000000000000000000000..71b7873964d544eddf96d22aa40f4c3372c23c9c --- /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 06e1da1ae49004eb5a3c97ea0020d0a61755b383..f59261cc0cb6b6cd9979ebd0ad33e65f4f14b72f 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 0000000000000000000000000000000000000000..6b89ac6978c9b95b832d0332cc025310edd81128 --- /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 0000000000000000000000000000000000000000..1ad9d9111706aedf3477fab78f2e8e5916e11d20 --- /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 0000000000000000000000000000000000000000..4ae2fbf96644b3ac1443ae0bea87926356d158fd --- /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 0000000000000000000000000000000000000000..532a9af34fbaf88c2996571a95108c5995257e7d --- /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 0000000000000000000000000000000000000000..84140229f520b5b80ebaf249085a5f73de8f3b57 --- /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 9387769caeebe0e8ffa9023d0ca95041a886368a..1750a59df51c372bffb0acdd0b431604226965aa 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 fd296db689f8ef411f434bce3bc7902780d3f130..b14f118ac516aa803abd00db411a81223dd36398 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 10bf5279e5d323ca7160b8ff2704117efba105d0..0000000000000000000000000000000000000000 --- 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 d5d1e50d10fd857db73859b2d4ac38a5792ddc2e..df028ca46d6a14b14fa135571022cd2449e2f37b 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 c0e6661c4b4fbd87655d60811595ee2c6cf89b8b..909399dc9f4f0ba3d20d47a6211354e5d36802bd 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 0000000000000000000000000000000000000000..664a02ae5e468ce04dfcb4aa5af71f4c77a26adc --- /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 837f47df2a9a26bcd44ad5640eecbff3b614d2dc..a0a9db56d9c006a2a37852d081080dbcac62b3bf 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 b2024d5b773409c0ff9c135f42cf79b8b96d8111..b13f9a2d8cba15ec76d481d1682aea55c02e654a 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 613e7cf1e9009cd088cd84c61bc88526c95c8ea1..cfa5d44c55d7c08a8e49bf9b452f080c5c707bc4 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 3ea5cd88c81a7b9f0626293c405cf5a46d30dfd2..7b7a6e046b268bb733b4a49ae7fbbec2b671fe3d 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 a718eaf7e662bad616179bd183caa9fd72de8b79..500455cc5155c163dda03fb1053b7a7fafc9fa84 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 c9bc352a738b3fc246e66e410d5924d8c171622f..75bfead7573a509e6338074b5d263cc60fb3c545 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 36eafd9d27f4de5efbe8142b0e846e5a812d6360..099c2ee8a62844bf34ffe9a2ea32e432404ccf87 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 baeabd1414066827d3ef646a62627bfe042992f6..2b215888a71c4f049ce41ce41a9c6154f2946c2a 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 7ee4864d8bbaaf41eac0ae71fef2adeef519200b..e1125126de82d454ab3ac4da655292f87261882b 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 c18d754f0be766d322e859793f9a1302477f3c36..f6088e3847593a59ac8095c9d1d7c861045cf73d 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 b2fc0a43429976f47ac3533c8284c22d1f81909d..8e0954f71164cc422e17f963f55e7813f8e8c6a8 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 5cba6c5db813619436505fbbb6638b29b40b06fd..01591d95542f6e60356b19eba3fead9b7ae2ba93 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 0000000000000000000000000000000000000000..6cc02ab9a77c8b61117b079fbbbcf6024859ff6d --- /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 54c05f04fdb8e8dfcd5b355bde86045382bb33a9..46f7af5d2b269357a4947021bfa94f1d98e64828 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 a125dad16da62e97ac22c0106e0bed1913043d94..995f86cf48d4387a393caac22da5fab22ead8c1a 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 2163936c1dff43692cdf9374b3c546351f6fdf00..12179b3724097a560a45c45da201bf091f5dc936 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 439171e72f2aac910b45762f3788a7356153fb45..8aa466295f7f3e8f5019b4d3adb936147f7cc26f 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 de2d1f50be4b9e3767ac1f2e49ef808e34c04db6..3baa5ab1b9c7c25acdb5dbd93299eefbba490105 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 0000000000000000000000000000000000000000..74f1880f7c67b6ef2361c32eefd35ce217306d67 --- /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 0000000000000000000000000000000000000000..71c9e3523f076401b8f25676754261c6cb978e2d --- /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 0000000000000000000000000000000000000000..ac2bcc21b7650d203c12448af1ceffe757abdf3c --- /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 0000000000000000000000000000000000000000..ce5a044db20041bdb65251a689c090312da53246 --- /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 0000000000000000000000000000000000000000..87dd05c4bd397bf3774f01c2dbb4c0e466f128f5 --- /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 0000000000000000000000000000000000000000..b3f5f4df9ca5b3668e91d56c74f2deb6e3c7abb8 --- /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 0000000000000000000000000000000000000000..98d1164778a305e6cdce049ae7ee892b9fa4430c --- /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 0000000000000000000000000000000000000000..d964d3c86279abddc56f08cb6dd09ff387094fa7 --- /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 0000000000000000000000000000000000000000..daa58cd741bd0e865754eedaca153ecc0e552ca7 --- /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 0000000000000000000000000000000000000000..099c2ee8a62844bf34ffe9a2ea32e432404ccf87 --- /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 0000000000000000000000000000000000000000..1095ba9a19349a9a6ec676ff4aa515bdf9da8adc --- /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 0000000000000000000000000000000000000000..baf50c92d09e9a049bffc9508476cd13c976a9a4 --- /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 0000000000000000000000000000000000000000..79b59a2cbbd6ec3083cf6bd6a7565b2881a2c3f3 --- /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 0000000000000000000000000000000000000000..94883275879023b9df36a37fd55359261b95f1fd --- /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 0000000000000000000000000000000000000000..8e0954f71164cc422e17f963f55e7813f8e8c6a8 --- /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 0000000000000000000000000000000000000000..937765f7cb7b519acdc5f2be2b23d0cd13c59ed9 --- /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 0000000000000000000000000000000000000000..940e361d3636f53f3e91adf32fc617ad28d916bf --- /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 0000000000000000000000000000000000000000..e043204bfb374e38754a467d053e6d790cf39921 --- /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 0000000000000000000000000000000000000000..1d6bf9885578993c2e1f1d9c3121cce91e33012b --- /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 0000000000000000000000000000000000000000..454667421f20573bdbfff266241047adb3fafbbc --- /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 0000000000000000000000000000000000000000..6e8f2f034c8ef44b05bd30e21e1d55c4a6aac48b --- /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 0000000000000000000000000000000000000000..07786ad6b03c42df1c7cf507ab8a479b3b73cc52 --- /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.*"; + } + } +); + +// ************************************************************************* //