diff --git a/bin/foamTemplates/foamScript b/bin/foamTemplates/foamScript index 6dd5781ac1af9aef4c4d809bfa235f1547533d9b..e8a160860c298189fb416e8ccdd8cacdedadd5ca 100644 --- a/bin/foamTemplates/foamScript +++ b/bin/foamTemplates/foamScript @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------ # License diff --git a/bin/foamTemplates/source/foamAppTemplate.C b/bin/foamTemplates/source/foamAppTemplate.C index 2c75d7e107e02b0ee790ca1c0c49a5724bb2536b..46c089c1a865c2884cd4f62323db9f5c67442dce 100644 --- a/bin/foamTemplates/source/foamAppTemplate.C +++ b/bin/foamTemplates/source/foamAppTemplate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/source/foamTemplate.C b/bin/foamTemplates/source/foamTemplate.C index 97251605e82048d4607ab495094cdc129e7659a8..903fe66b5f50909b991291f4608f89491a96da35 100644 --- a/bin/foamTemplates/source/foamTemplate.C +++ b/bin/foamTemplates/source/foamTemplate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/source/foamTemplate.H b/bin/foamTemplates/source/foamTemplate.H index 963fc74cdf486bc0e0f9baae13fd52b659086c36..e0b6cf21577a30947428b32ef1da7e8947d5900b 100644 --- a/bin/foamTemplates/source/foamTemplate.H +++ b/bin/foamTemplates/source/foamTemplate.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/source/foamTemplateI.H b/bin/foamTemplates/source/foamTemplateI.H index 42bc929311152d7464c792bf0b3378adda1da890..10e8e4fec8ff30bc0e113d06c5081a217cfb6944 100644 --- a/bin/foamTemplates/source/foamTemplateI.H +++ b/bin/foamTemplates/source/foamTemplateI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/source/foamTemplateIO.C b/bin/foamTemplates/source/foamTemplateIO.C index 2d95dc47de4b741469a521ac8d96da5110843cd1..d9119ed354a4bce766750b5afd1a4c997245db29 100644 --- a/bin/foamTemplates/source/foamTemplateIO.C +++ b/bin/foamTemplates/source/foamTemplateIO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/source/newSource b/bin/foamTemplates/source/newSource old mode 100755 new mode 100644 index a06d1bcc732219f35c4772a1d22622b24c87880e..927ad36b31d407b723573fc2eef6abcaf03990c5 --- a/bin/foamTemplates/source/newSource +++ b/bin/foamTemplates/source/newSource @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License diff --git a/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.C b/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.C index 674341d11c2243dcd463f75119270915273dd2f6..5acafb25e79133c97b4a9a7ee277d687e01ab14f 100644 --- a/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.C +++ b/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.H b/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.H index 79250a7019e8a81a4689ce6bf062315d49fde131..fa32697e0a82449b8b9c7642ac06a3d6100db9b5 100644 --- a/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.H +++ b/bin/foamTemplates/sourceTemplate/foamTemplateTemplate.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/sourceTemplate/foamTemplateTemplateI.H b/bin/foamTemplates/sourceTemplate/foamTemplateTemplateI.H index 42bc929311152d7464c792bf0b3378adda1da890..10e8e4fec8ff30bc0e113d06c5081a217cfb6944 100644 --- a/bin/foamTemplates/sourceTemplate/foamTemplateTemplateI.H +++ b/bin/foamTemplates/sourceTemplate/foamTemplateTemplateI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/sourceTemplate/foamTemplateTemplateIO.C b/bin/foamTemplates/sourceTemplate/foamTemplateTemplateIO.C index 41bd21f5c359b520241fbcf98f3d860ee96c83ae..1c805f6f6a39e5883e96d06d9f4b4531902c811b 100644 --- a/bin/foamTemplates/sourceTemplate/foamTemplateTemplateIO.C +++ b/bin/foamTemplates/sourceTemplate/foamTemplateTemplateIO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/bin/foamTemplates/sourceTemplate/newSourceTemplate b/bin/foamTemplates/sourceTemplate/newSourceTemplate old mode 100755 new mode 100644 index 238c6f43316623b2772853197c30e9fb33aa359c..b62a7f4c0e9f45150c30218f83bf8b28c5574f07 --- a/bin/foamTemplates/sourceTemplate/newSourceTemplate +++ b/bin/foamTemplates/sourceTemplate/newSourceTemplate @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C index ce32ad5b84c2ac57f520161ad93bd8ec1f8a14d5..3618d87ef5dfa6ea4ea03003cf5928d4d3c3c2e0 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C @@ -312,6 +312,31 @@ void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn) const } +void Foam::MRFZone::addCoriolis +( + const volScalarField& rho, + fvVectorMatrix& UEqn +) const +{ + if (cellZoneID_ == -1) + { + return; + } + + const labelList& cells = mesh_.cellZones()[cellZoneID_]; + const scalarField& V = mesh_.V(); + vectorField& Usource = UEqn.source(); + const vectorField& U = UEqn.psi(); + const vector& Omega = Omega_.value(); + + forAll(cells, i) + { + label celli = cells[i]; + Usource[celli] -= V[celli]*rho[celli]*(Omega ^ U[celli]); + } +} + + void Foam::MRFZone::relativeVelocity(volVectorField& U) const { const volVectorField& C = mesh_.C(); diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H index 9fa3085914151d22df5fe9c59b0fef097878749d..d5554a5b0810ea1fab45d5474df22397db3390d7 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H @@ -154,6 +154,9 @@ public: //- Add the Coriolis force contribution to the momentum equation void addCoriolis(fvVectorMatrix& UEqn) const; + //- Add the Coriolis force contribution to the momentum equation + void addCoriolis(const volScalarField& rho, fvVectorMatrix& UEqn) const; + //- Make the given absolute velocity relative within the MRF region void relativeVelocity(volVectorField& U) const; diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZones.C b/src/finiteVolume/cfdTools/general/MRF/MRFZones.C index 3e6854e3de3de0e92d8ace6ae528d9febf31b5b5..5ef8b3ee83ffbac7bdb843f8873d842aedd5208d 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZones.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZones.C @@ -65,6 +65,19 @@ void Foam::MRFZones::addCoriolis(fvVectorMatrix& UEqn) const } +void Foam::MRFZones::addCoriolis +( + const volScalarField& rho, + fvVectorMatrix& UEqn +) const +{ + forAll(*this, i) + { + operator[](i).addCoriolis(rho, UEqn); + } +} + + void Foam::MRFZones::relativeVelocity(volVectorField& U) const { forAll(*this, i) diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZones.H b/src/finiteVolume/cfdTools/general/MRF/MRFZones.H index 8895963606eaa46f167d3e4213ba5195d9d9322c..6e979903a9b803fa4b897863876b3f23765517ff 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZones.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZones.H @@ -76,6 +76,9 @@ public: //- Add the Coriolis force contribution to the momentum equation void addCoriolis(fvVectorMatrix& UEqn) const; + //- Add the Coriolis force contribution to the momentum equation + void addCoriolis(const volScalarField& rho, fvVectorMatrix& UEqn) const; + //- Make the given absolute velocity relative within the MRF region void relativeVelocity(volVectorField& U) const; diff --git a/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C b/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C index 34e6af4a236fa16f845dd02c1dcc57f0b3b44ef8..2d9fa9bf7c0bae992d97bb7d131d43c9bd712f54 100644 --- a/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C +++ b/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C @@ -30,24 +30,22 @@ License #include "mathematicalConstants.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + namespace Foam { - -defineTypeNameAndDebug(swirlInjector, 0); - -addToRunTimeSelectionTable -( - injectorType, - swirlInjector, - dictionary -); + defineTypeNameAndDebug(swirlInjector, 0); + + addToRunTimeSelectionTable + ( + injectorType, + swirlInjector, + dictionary + ); } -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -// Construct from components Foam::swirlInjector::swirlInjector ( const Foam::Time& t, @@ -75,31 +73,47 @@ Foam::swirlInjector::swirlInjector // convert CA to real time forAll(massFlowRateProfile_, i) { - massFlowRateProfile_[i][0] = t.userTimeToTime(massFlowRateProfile_[i][0]); + massFlowRateProfile_[i][0] = + t.userTimeToTime(massFlowRateProfile_[i][0]); } forAll(injectionPressureProfile_, i) { - injectionPressureProfile_[i][0] = t.userTimeToTime(injectionPressureProfile_[i][0]); + injectionPressureProfile_[i][0] = + t.userTimeToTime(injectionPressureProfile_[i][0]); } // check if time entries match if (mag(massFlowRateProfile_[0][0]-injectionPressureProfile_[0][0]) > SMALL) { - FatalError << "swirlInjector::swirlInjector(const time& t, const dictionary dict) " << endl - << " start-times do not match for injectionPressureProfile and massFlowRateProfile." + FatalErrorIn + ( + "swirlInjector::swirlInjector(const time& t, const dictionary dict)" + ) << "Start-times do not match for " + "injectionPressureProfile and massFlowRateProfile." << abort(FatalError); } // check if time entries match - if (mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]-injectionPressureProfile_[injectionPressureProfile_.size()-1][0]) > SMALL) + if + ( + mag + ( + massFlowRateProfile_[massFlowRateProfile_.size() - 1][0] + - injectionPressureProfile_[injectionPressureProfile_.size() - 1][0] + ) > SMALL + ) { - FatalError << "swirlInjector::swirlInjector(const time& t, const dictionary dict) " << endl - << " end-times do not match for injectionPressureProfile and massFlowRateProfile." + FatalErrorIn + ( + "swirlInjector::swirlInjector(const time& t, const dictionary dict)" + ) << "End-times do not match for " + "injectionPressureProfile and massFlowRateProfile." << abort(FatalError); } scalar integratedMFR = integrateTable(massFlowRateProfile_); - scalar integratedPressure = integrateTable(injectionPressureProfile_)/(teoi()-tsoi()); + scalar integratedPressure = + integrateTable(injectionPressureProfile_)/(teoi()-tsoi()); forAll(massFlowRateProfile_, i) { @@ -118,12 +132,13 @@ Foam::swirlInjector::swirlInjector forAll(injectionPressureProfile_, i) { // correct the pressureProfile to match the injection pressure - injectionPressureProfile_[i][1] *= injectionPressure_/integratedPressure; + injectionPressureProfile_[i][1] *= + injectionPressure_/integratedPressure; } // Normalize the direction vector direction_ /= mag(direction_); - + setTangentialVectors(); // check molar fractions @@ -135,17 +150,19 @@ Foam::swirlInjector::swirlInjector if (mag(Xsum - 1.0) > SMALL) { - Info << "Warning!!!\n swirlInjector::swirlInjector(const time& t, Istream& is)" - << "X does not add up to 1.0, correcting molar fractions." - << endl; + WarningIn + ( + "swirlInjector::swirlInjector(const time& t, const dictionary dict)" + ) << "X does not add up to 1.0, correcting molar fractions." << endl; + forAll(X_, i) { X_[i] /= Xsum; } } - } + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::swirlInjector::~swirlInjector() @@ -170,10 +187,8 @@ void Foam::swirlInjector::setTangentialVectors() tangentialInjectionVector1_ = tangent/magV; tangentialInjectionVector2_ = direction_ ^ tangentialInjectionVector1_; - } - Foam::label Foam::swirlInjector::nParcelsToInject ( const scalar time0, @@ -183,7 +198,7 @@ Foam::label Foam::swirlInjector::nParcelsToInject scalar mInj = mass_*(fractionOfInjection(time1)-fractionOfInjection(time0)); label nParcels = label(mInj/averageParcelMass_ + 0.49); - + return nParcels; } @@ -223,7 +238,7 @@ Foam::vector Foam::swirlInjector::position scalar iAngle = 2.0*mathematicalConstant::pi*rndGen.scalar01(); return - ( + ( position_ + iRadius * ( @@ -231,7 +246,7 @@ Foam::vector Foam::swirlInjector::position + tangentialInjectionVector2_*sin(iAngle) ) ); - + } return position_; @@ -266,7 +281,7 @@ Foam::scalar Foam::swirlInjector::mass { scalar mInj = mass_*(fractionOfInjection(time1)-fractionOfInjection(time0)); - // correct mass if calculation is 2D + // correct mass if calculation is 2D if (twoD) { mInj *= 0.5*angleOfWedge/mathematicalConstant::pi; @@ -280,7 +295,8 @@ Foam::scalar Foam::swirlInjector::mass() const return mass_; } -Foam::List<Foam::swirlInjector::pair> Foam::swirlInjector::massFlowRateProfile() const +Foam::List<Foam::swirlInjector::pair> +Foam::swirlInjector::massFlowRateProfile() const { return massFlowRateProfile_; } @@ -290,7 +306,8 @@ Foam::scalar Foam::swirlInjector::massFlowRate(const scalar time) const return getTableValue(massFlowRateProfile_, time); } -Foam::List<Foam::swirlInjector::pair> Foam::swirlInjector::injectionPressureProfile() const +Foam::List<Foam::swirlInjector::pair> +Foam::swirlInjector::injectionPressureProfile() const { return injectionPressureProfile_; } @@ -300,7 +317,8 @@ Foam::scalar Foam::swirlInjector::injectionPressure(const scalar time) const return getTableValue(injectionPressureProfile_, time); } -Foam::List<Foam::swirlInjector::pair> Foam::swirlInjector::velocityProfile() const +Foam::List<Foam::swirlInjector::pair> +Foam::swirlInjector::velocityProfile() const { return velocityProfile_; } @@ -309,7 +327,7 @@ Foam::scalar Foam::swirlInjector::velocity(const scalar time) const { return getTableValue(velocityProfile_, time); } - + Foam::List<Foam::swirlInjector::pair> Foam::swirlInjector::CdProfile() const { return CdProfile_; @@ -350,7 +368,6 @@ Foam::scalar Foam::swirlInjector::fractionOfInjection(const scalar time) const return integrateTable(massFlowRateProfile_, time)/mass_; } - Foam::scalar Foam::swirlInjector::injectedMass ( const scalar t @@ -372,7 +389,11 @@ void Foam::swirlInjector::correctProfiles forAll(velocityProfile_, i) { - scalar Pinj = getTableValue(injectionPressureProfile_, massFlowRateProfile_[i][0]); + scalar Pinj = getTableValue + ( + injectionPressureProfile_, + massFlowRateProfile_[i][0] + ); scalar mfr = massFlowRateProfile_[i][1]/(rho*A); scalar v = sqrt(2.0*(Pinj - referencePressure)/rho); velocityProfile_[i][1] = v; @@ -390,4 +411,5 @@ Foam::vector Foam::swirlInjector::tan2(const label n) const return tangentialInjectionVector2_; } + // ************************************************************************* // diff --git a/tutorials/combustion/engineFoam/kivaTest/system/controlDict b/tutorials/combustion/engineFoam/kivaTest/system/controlDict index 359d4d135af67717be49fb54cd02cb64b8b16c58..2ae209cb5f6c44f1723423ec922326436a2e7b58 100644 --- a/tutorials/combustion/engineFoam/kivaTest/system/controlDict +++ b/tutorials/combustion/engineFoam/kivaTest/system/controlDict @@ -11,10 +11,12 @@ FoamFile format ascii; class dictionary; location "system"; - object controlDict; + object controlDict.1st; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +applicationClass engineFoam; + startFrom startTime; startTime -180; diff --git a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C index 241b6930fc533a640da3e2074eca1754de2bbcb6..9225fe4cb7c20e4456307054f6ade7afa7aec3d3 100644 --- a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C +++ b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C @@ -40,15 +40,14 @@ Description int main(int argc, char *argv[]) { + #include "setRootCase.H" -# include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "createFields.H" + #include "initContinuityErrs.H" -# include "createTime.H" -# include "createMesh.H" -# include "createFields.H" -# include "initContinuityErrs.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -56,7 +55,7 @@ int main(int argc, char *argv[]) { Info<< "Time = " << runTime.timeName() << nl << endl; -# include "readSIMPLEControls.H" + #include "readSIMPLEControls.H" p.storePrevIter(); @@ -101,7 +100,7 @@ int main(int argc, char *argv[]) } } -# include "continuityErrs.H" + #include "continuityErrs.H" // Explicitly relax pressure for momentum corrector p.relax(); diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/MRFInterFoam.C b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/MRFInterFoam.C new file mode 100644 index 0000000000000000000000000000000000000000..9f1efad337fce1be11e0728662c8980823f3ab80 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/MRFInterFoam.C @@ -0,0 +1,109 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Application + MRFInterFoam + +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. + + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + + For a two-fluid approach see twoPhaseEulerFoam. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "MULES.H" +#include "subCycle.H" +#include "interfaceProperties.H" +#include "twoPhaseMixture.H" +#include "turbulenceModel.H" +#include "MRFZones.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "readEnvironmentalProperties.H" + #include "readPISOControls.H" + #include "initContinuityErrs.H" + #include "createFields.H" + #include "createMRFZones.H" + #include "readTimeControls.H" + #include "correctPhi.H" + #include "CourantNo.H" + #include "setInitialDeltaT.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.run()) + { + #include "readPISOControls.H" + #include "readTimeControls.H" + #include "CourantNo.H" + #include "setDeltaT.H" + + runTime++; + + Info<< "Time = " << runTime.timeName() << nl << endl; + + twoPhaseProperties.correct(); + + #include "alphaEqnSubCycle.H" + + #include "UEqn.H" + + // --- PISO loop + for (int corr=0; corr<nCorr; corr++) + { + #include "pEqn.H" + } + + #include "continuityErrs.H" + + turbulence->correct(); + + runTime.write(); + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/files b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..706858442e6a56a1a60fb8bb7377b9879e221fd0 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/files @@ -0,0 +1,3 @@ +MRFInterFoam.C + +EXE = $(FOAM_USER_APPBIN)/MRFInterFoam diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/options b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..e4acc4ce993fdad66ddeb7fb84c06b2824ccbc53 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/Make/options @@ -0,0 +1,14 @@ +EXE_INC = \ + -I$(FOAM_SOLVERS)/multiphase/interFoam \ + -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 + +EXE_LIBS = \ + -linterfaceProperties \ + -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lincompressibleLESModels \ + -lfiniteVolume diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/UEqn.H b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/UEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..ae944a9d0e5b4060da256b629f1ff0326d014967 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/UEqn.H @@ -0,0 +1,35 @@ + 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())) + ); + mrfZones.addCoriolis(rho, UEqn); + + UEqn.relax(); + + if (momentumPredictor) + { + solve + ( + UEqn + == + fvc::reconstruct + ( + fvc::interpolate(rho)*(g & mesh.Sf()) + + ( + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) + - fvc::snGrad(p) + ) * mesh.magSf() + ) + ); + } diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/createMRFZones.H b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/createMRFZones.H new file mode 100644 index 0000000000000000000000000000000000000000..161446a8e6f2397982c0579c232b8ce3e458053d --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/createMRFZones.H @@ -0,0 +1,2 @@ + MRFZones mrfZones(mesh); + mrfZones.correctBoundaryVelocity(U); diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..5a67dd0497b150c4a46f62f306afdf814cfe17aa --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H @@ -0,0 +1,48 @@ +{ + volScalarField rUA = 1.0/UEqn.A(); + surfaceScalarField rUAf = fvc::interpolate(rUA); + + U = rUA*UEqn.H(); + + surfaceScalarField phiU + ( + "phiU", + (fvc::interpolate(U) & mesh.Sf()) + //+ fvc::ddtPhiCorr(rUA, rho, U, phi) + ); + mrfZones.relativeFlux(phiU); + + phi = phiU + + ( + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)*mesh.magSf() + + fvc::interpolate(rho)*(g & mesh.Sf()) + )*rUAf; + adjustPhi(phi, U, p); + + for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + { + fvScalarMatrix pEqn + ( + fvm::laplacian(rUAf, p) == fvc::div(phi) + ); + + pEqn.setReference(pRefCell, pRefValue); + + if (corr == nCorr-1 && nonOrth == nNonOrthCorr) + { + pEqn.solve(mesh.solver(p.name() + "Final")); + } + else + { + pEqn.solve(mesh.solver(p.name())); + } + + if (nonOrth == nNonOrthCorr) + { + phi -= pEqn.flux(); + } + } + + U += rUA*fvc::reconstruct((phi - phiU)/rUAf); + U.correctBoundaryConditions(); +} diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/U b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/U new file mode 100644 index 0000000000000000000000000000000000000000..500a0fbea165c8862b993215de7a33f21267fd13 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/U @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 fixedValue; + value uniform (0 0 0); + } + stator + { + type fixedValue; + value uniform (0 0 0); + } + front + { + type empty; + } + back + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/alpha1 b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/alpha1 new file mode 100644 index 0000000000000000000000000000000000000000..f4e647e372dc3641e186e02d763fdb92a4217d95 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/alpha1 @@ -0,0 +1,3119 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alpha1; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +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/MRFInterFoam/mixerVessel2D/0/alpha1.org b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/alpha1.org new file mode 100644 index 0000000000000000000000000000000000000000..adc19d7f15a738efc8b7f2d48da4e25141e3e6d3 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/alpha1.org @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object alpha1; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/p b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/p new file mode 100644 index 0000000000000000000000000000000000000000..25b3e3f0d4d589ff4a01f1f88a5c627252dd7288 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/0/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/Allrun b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..e8e310bf86a0faa6481cf8e4284b6fbfaf5780ce --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="MRFInterFoam" + +./makeMesh +runApplication $application diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/MRFZones b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/MRFZones new file mode 100644 index 0000000000000000000000000000000000000000..855e3864ce8f3fcf79fe47d6301ddaa13ae78306 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/MRFZones @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object MRFZones; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + rotor + { + // Fixed patches (by default they 'move' with the MRF zone) + nonRotatingPatches (); + + origin origin [0 1 0 0 0 0 0] (0 0 0); + axis axis [0 0 0 0 0 0 0] (0 0 1); + omega omega [0 0 -1 0 0 0 0] 6.2831853; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/environmentalProperties b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..1f0ea06a3cb5296cd1202223d4955977d562ca1f --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/environmentalProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 0); + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..554df2afd61191c9b3b121c440c6fad3d4ceb429 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict @@ -0,0 +1,818 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General macros to create 2D/extruded-2D meshes + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.1; + +// Hub radius + + +// Impeller-tip radius + + +// Baffle-tip radius + + +// Tank radius + + +// MRF region radius + + +// Thickness of 2D slab + + +// Base z + + +// Top z + + +// Number of cells radially between hub and impeller tip + + +// Number of cells radially in each of the two regions between +// impeller and baffle tips + + +// Number of cells radially between baffle tip and tank + + +// Number of cells azimuthally in each of the 8 blocks + + +// Number of cells in the thickness of the slab + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +vertices +( + (0.2 0 0) // Vertex r0b = 0 + (0.2 0 0) // Vertex r0sb = 1 + (0.141421356364228 -0.141421356110391 0) // Vertex r1b = 2 + (3.58979347393082e-10 -0.2 0) // Vertex r2b = 3 + (3.58979347393082e-10 -0.2 0) // Vertex r2sb = 4 + (-0.141421355856554 -0.141421356618065 0) // Vertex r3b = 5 + (-0.2 7.17958694786164e-10 0) // Vertex r4b = 6 + (-0.2 7.17958694786164e-10 0) // Vertex r4sb = 7 + (-0.141421355856554 0.141421356618065 0) // Vertex r5b = 8 + (3.58979347393082e-10 0.2 0) // Vertex r6b = 9 + (3.58979347393082e-10 0.2 0) // Vertex r6sb = 10 + (0.141421356364228 0.141421356110391 0) // Vertex r7b = 11 + + (0.5 0 0) // Vertex rb0b = 12 + (0.353553390910569 -0.353553390275978 0) // Vertex rb1b = 13 + (8.97448368482705e-10 -0.5 0) // Vertex rb2b = 14 + (-0.353553389641386 -0.353553391545162 0) // Vertex rb3b = 15 + (-0.5 1.79489673696541e-09 0) // Vertex rb4b = 16 + (-0.353553389641386 0.353553391545162 0) // Vertex rb5b = 17 + (8.97448368482705e-10 0.5 0) // Vertex rb6b = 18 + (0.353553390910569 0.353553390275978 0) // Vertex rb7b = 19 + + (0.6 0 0) // Vertex ri0b = 20 + (0.424264069092683 -0.424264068331174 0) // Vertex ri1b = 21 + (1.07693804217925e-09 -0.6 0) // Vertex ri2b = 22 + (-0.424264067569663 -0.424264069854194 0) // Vertex ri3b = 23 + (-0.6 2.15387608435849e-09 0) // Vertex ri4b = 24 + (-0.424264067569663 0.424264069854194 0) // Vertex ri5b = 25 + (1.07693804217925e-09 0.6 0) // Vertex ri6b = 26 + (0.424264069092683 0.424264068331174 0) // Vertex ri7b = 27 + + (0.7 0 0) // Vertex Rb0b = 28 + (0.494974747274797 -0.494974746386369 0) // Vertex Rb1b = 29 + (1.25642771587579e-09 -0.7 0) // Vertex Rb2b = 30 + (-0.49497474549794 -0.494974748163226 0) // Vertex Rb3b = 31 + (-0.7 2.51285543175157e-09 0) // Vertex Rb4b = 32 + (-0.49497474549794 0.494974748163226 0) // Vertex Rb5b = 33 + (1.25642771587579e-09 0.7 0) // Vertex Rb6b = 34 + (0.494974747274797 0.494974746386369 0) // Vertex Rb7b = 35 + + (1 0 0) // Vertex R0b = 36 + (0.707106781821139 -0.707106780551956 0) // Vertex R1b = 37 + (0.707106781821139 -0.707106780551956 0) // Vertex R1sb = 38 + (1.79489673696541e-09 -1 0) // Vertex R2b = 39 + (-0.707106779282772 -0.707106783090323 0) // Vertex R3b = 40 + (-0.707106779282772 -0.707106783090323 0) // Vertex R3sb = 41 + (-1 3.58979347393082e-09 0) // Vertex R4b = 42 + (-0.707106779282772 0.707106783090323 0) // Vertex R5b = 43 + (-0.707106779282772 0.707106783090323 0) // Vertex R5sb = 44 + (1.79489673696541e-09 1 0) // Vertex R6b = 45 + (0.707106781821139 0.707106780551956 0) // Vertex R7b = 46 + (0.707106781821139 0.707106780551956 0) // Vertex R7sb = 47 + + (0.2 0 0.1) // Vertex r0t = 48 + (0.2 0 0.1) // Vertex r0st = 49 + (0.141421356364228 -0.141421356110391 0.1) // Vertex r1t = 50 + (3.58979347393082e-10 -0.2 0.1) // Vertex r2t = 51 + (3.58979347393082e-10 -0.2 0.1) // Vertex r2st = 52 + (-0.141421355856554 -0.141421356618065 0.1) // Vertex r3t = 53 + (-0.2 7.17958694786164e-10 0.1) // Vertex r4t = 54 + (-0.2 7.17958694786164e-10 0.1) // Vertex r4st = 55 + (-0.141421355856554 0.141421356618065 0.1) // Vertex r5t = 56 + (3.58979347393082e-10 0.2 0.1) // Vertex r6t = 57 + (3.58979347393082e-10 0.2 0.1) // Vertex r6st = 58 + (0.141421356364228 0.141421356110391 0.1) // Vertex r7t = 59 + + (0.5 0 0.1) // Vertex rb0t = 60 + (0.353553390910569 -0.353553390275978 0.1) // Vertex rb1t = 61 + (8.97448368482705e-10 -0.5 0.1) // Vertex rb2t = 62 + (-0.353553389641386 -0.353553391545162 0.1) // Vertex rb3t = 63 + (-0.5 1.79489673696541e-09 0.1) // Vertex rb4t = 64 + (-0.353553389641386 0.353553391545162 0.1) // Vertex rb5t = 65 + (8.97448368482705e-10 0.5 0.1) // Vertex rb6t = 66 + (0.353553390910569 0.353553390275978 0.1) // Vertex rb7t = 67 + + (0.6 0 0.1) // Vertex ri0t = 68 + (0.424264069092683 -0.424264068331174 0.1) // Vertex ri1t = 69 + (1.07693804217925e-09 -0.6 0.1) // Vertex ri2t = 70 + (-0.424264067569663 -0.424264069854194 0.1) // Vertex ri3t = 71 + (-0.6 2.15387608435849e-09 0.1) // Vertex ri4t = 72 + (-0.424264067569663 0.424264069854194 0.1) // Vertex ri5t = 73 + (1.07693804217925e-09 0.6 0.1) // Vertex ri6t = 74 + (0.424264069092683 0.424264068331174 0.1) // Vertex ri7t = 75 + + (0.7 0 0.1) // Vertex Rb0t = 76 + (0.494974747274797 -0.494974746386369 0.1) // Vertex Rb1t = 77 + (1.25642771587579e-09 -0.7 0.1) // Vertex Rb2t = 78 + (-0.49497474549794 -0.494974748163226 0.1) // Vertex Rb3t = 79 + (-0.7 2.51285543175157e-09 0.1) // Vertex Rb4t = 80 + (-0.49497474549794 0.494974748163226 0.1) // Vertex Rb5t = 81 + (1.25642771587579e-09 0.7 0.1) // Vertex Rb6t = 82 + (0.494974747274797 0.494974746386369 0.1) // Vertex Rb7t = 83 + + (1 0 0.1) // Vertex R0t = 84 + (0.707106781821139 -0.707106780551956 0.1) // Vertex R1t = 85 + (0.707106781821139 -0.707106780551956 0.1) // Vertex R1st = 86 + (1.79489673696541e-09 -1 0.1) // Vertex R2t = 87 + (-0.707106779282772 -0.707106783090323 0.1) // Vertex R3t = 88 + (-0.707106779282772 -0.707106783090323 0.1) // Vertex R3st = 89 + (-1 3.58979347393082e-09 0.1) // Vertex R4t = 90 + (-0.707106779282772 0.707106783090323 0.1) // Vertex R5t = 91 + (-0.707106779282772 0.707106783090323 0.1) // Vertex R5st = 92 + (1.79489673696541e-09 1 0.1) // Vertex R6t = 93 + (0.707106781821139 0.707106780551956 0.1) // Vertex R7t = 94 + (0.707106781821139 0.707106780551956 0.1) // Vertex R7st = 95 +); + +blocks +( + // block0 + hex (0 2 13 12 48 50 61 60) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block1 + hex (2 4 14 13 50 52 62 61) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block2 + hex (3 5 15 14 51 53 63 62) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block3 + hex (5 7 16 15 53 55 64 63) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block4 + hex (6 8 17 16 54 56 65 64) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block5 + hex (8 10 18 17 56 58 66 65) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block6 + hex (9 11 19 18 57 59 67 66) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block7 + hex (11 1 12 19 59 49 60 67) + rotor + (12 12 1) + simpleGrading (1 1 1) + + // block0 + hex (12 13 21 20 60 61 69 68) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block1 + hex (13 14 22 21 61 62 70 69) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block2 + hex (14 15 23 22 62 63 71 70) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block3 + hex (15 16 24 23 63 64 72 71) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block4 + hex (16 17 25 24 64 65 73 72) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block5 + hex (17 18 26 25 65 66 74 73) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block6 + hex (18 19 27 26 66 67 75 74) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block7 + hex (19 12 20 27 67 60 68 75) + rotor + (12 4 1) + simpleGrading (1 1 1) + + // block0 + hex (20 21 29 28 68 69 77 76) + (12 4 1) + simpleGrading (1 1 1) + + // block1 + hex (21 22 30 29 69 70 78 77) + (12 4 1) + simpleGrading (1 1 1) + + // block2 + hex (22 23 31 30 70 71 79 78) + (12 4 1) + simpleGrading (1 1 1) + + // block3 + hex (23 24 32 31 71 72 80 79) + (12 4 1) + simpleGrading (1 1 1) + + // block4 + hex (24 25 33 32 72 73 81 80) + (12 4 1) + simpleGrading (1 1 1) + + // block5 + hex (25 26 34 33 73 74 82 81) + (12 4 1) + simpleGrading (1 1 1) + + // block6 + hex (26 27 35 34 74 75 83 82) + (12 4 1) + simpleGrading (1 1 1) + + // block7 + hex (27 20 28 35 75 68 76 83) + (12 4 1) + simpleGrading (1 1 1) + + // block0 + hex (28 29 38 36 76 77 86 84) + (12 12 1) + simpleGrading (1 1 1) + + // block1 + hex (29 30 39 37 77 78 87 85) + (12 12 1) + simpleGrading (1 1 1) + + // block2 + hex (30 31 41 39 78 79 89 87) + (12 12 1) + simpleGrading (1 1 1) + + // block3 + hex (31 32 42 40 79 80 90 88) + (12 12 1) + simpleGrading (1 1 1) + + // block4 + hex (32 33 44 42 80 81 92 90) + (12 12 1) + simpleGrading (1 1 1) + + // block5 + hex (33 34 45 43 81 82 93 91) + (12 12 1) + simpleGrading (1 1 1) + + // block6 + hex (34 35 47 45 82 83 95 93) + (12 12 1) + simpleGrading (1 1 1) + + // block7 + hex (35 28 36 46 83 76 84 94) + (12 12 1) + simpleGrading (1 1 1) +); + +edges +( + arc 0 2 (0.184775906536601 -0.0765366863901046 0) + arc 2 4 (0.0765366867217582 -0.184775906399226 0) + arc 3 5 (-0.0765366860584508 -0.184775906673977 0) + arc 5 7 (-0.18477590626185 -0.0765366870534118 0) + arc 6 8 (-0.18477590626185 0.0765366870534118 0) + arc 8 10 (-0.0765366860584508 0.184775906673977 0) + arc 9 11 (0.0765366867217582 0.184775906399226 0) + arc 11 1 (0.184775906536601 0.0765366863901046 0) + + arc 12 13 (0.461939766341503 -0.191341715975262 0) + arc 13 14 (0.191341716804395 -0.461939765998065 0) + arc 14 15 (-0.191341715146127 -0.461939766684942 0) + arc 15 16 (-0.461939765654626 -0.19134171763353 0) + arc 16 17 (-0.461939765654626 0.19134171763353 0) + arc 17 18 (-0.191341715146127 0.461939766684942 0) + arc 18 19 (0.191341716804395 0.461939765998065 0) + arc 19 12 (0.461939766341503 0.191341715975262 0) + + arc 20 21 (0.554327719609804 -0.229610059170314 0) + arc 21 22 (0.229610060165275 -0.554327719197677 0) + arc 22 23 (-0.229610058175352 -0.55432772002193 0) + arc 23 24 (-0.554327718785551 -0.229610061160235 0) + arc 24 25 (-0.554327718785551 0.229610061160235 0) + arc 25 26 (-0.229610058175352 0.55432772002193 0) + arc 26 27 (0.229610060165275 0.554327719197677 0) + arc 27 20 (0.554327719609804 0.229610059170314 0) + + arc 28 29 (0.646715672878104 -0.267878402365366 0) + arc 29 30 (0.267878403526154 -0.64671567239729 0) + arc 30 31 (-0.267878401204578 -0.646715673358918 0) + arc 31 32 (-0.646715671916476 -0.267878404686941 0) + arc 32 33 (-0.646715671916476 0.267878404686941 0) + arc 33 34 (-0.267878401204578 0.646715673358918 0) + arc 34 35 (0.267878403526154 0.64671567239729 0) + arc 35 28 (0.646715672878104 0.267878402365366 0) + + arc 36 38 (0.923879532683006 -0.382683431950523 0) + arc 37 39 (0.382683433608791 -0.923879531996129 0) + arc 39 41 (-0.382683430292254 -0.923879533369883 0) + arc 40 42 (-0.923879531309252 -0.382683435267059 0) + arc 42 44 (-0.923879531309252 0.382683435267059 0) + arc 43 45 (-0.382683430292254 0.923879533369883 0) + arc 45 47 (0.382683433608791 0.923879531996129 0) + arc 46 36 (0.923879532683006 0.382683431950523 0) + + arc 48 50 (0.184775906536601 -0.0765366863901046 0.1) + arc 50 52 (0.0765366867217582 -0.184775906399226 0.1) + arc 51 53 (-0.0765366860584508 -0.184775906673977 0.1) + arc 53 55 (-0.18477590626185 -0.0765366870534118 0.1) + arc 54 56 (-0.18477590626185 0.0765366870534118 0.1) + arc 56 58 (-0.0765366860584508 0.184775906673977 0.1) + arc 57 59 (0.0765366867217582 0.184775906399226 0.1) + arc 59 49 (0.184775906536601 0.0765366863901046 0.1) + + arc 60 61 (0.461939766341503 -0.191341715975262 0.1) + arc 61 62 (0.191341716804395 -0.461939765998065 0.1) + arc 62 63 (-0.191341715146127 -0.461939766684942 0.1) + arc 63 64 (-0.461939765654626 -0.19134171763353 0.1) + arc 64 65 (-0.461939765654626 0.19134171763353 0.1) + arc 65 66 (-0.191341715146127 0.461939766684942 0.1) + arc 66 67 (0.191341716804395 0.461939765998065 0.1) + arc 67 60 (0.461939766341503 0.191341715975262 0.1) + + arc 68 69 (0.554327719609804 -0.229610059170314 0.1) + arc 69 70 (0.229610060165275 -0.554327719197677 0.1) + arc 70 71 (-0.229610058175352 -0.55432772002193 0.1) + arc 71 72 (-0.554327718785551 -0.229610061160235 0.1) + arc 72 73 (-0.554327718785551 0.229610061160235 0.1) + arc 73 74 (-0.229610058175352 0.55432772002193 0.1) + arc 74 75 (0.229610060165275 0.554327719197677 0.1) + arc 75 68 (0.554327719609804 0.229610059170314 0.1) + + arc 76 77 (0.646715672878104 -0.267878402365366 0.1) + arc 77 78 (0.267878403526154 -0.64671567239729 0.1) + arc 78 79 (-0.267878401204578 -0.646715673358918 0.1) + arc 79 80 (-0.646715671916476 -0.267878404686941 0.1) + arc 80 81 (-0.646715671916476 0.267878404686941 0.1) + arc 81 82 (-0.267878401204578 0.646715673358918 0.1) + arc 82 83 (0.267878403526154 0.64671567239729 0.1) + arc 83 76 (0.646715672878104 0.267878402365366 0.1) + + arc 84 86 (0.923879532683006 -0.382683431950523 0.1) + arc 85 87 (0.382683433608791 -0.923879531996129 0.1) + arc 87 89 (-0.382683430292254 -0.923879533369883 0.1) + arc 88 90 (-0.923879531309252 -0.382683435267059 0.1) + arc 90 92 (-0.923879531309252 0.382683435267059 0.1) + arc 91 93 (-0.382683430292254 0.923879533369883 0.1) + arc 93 95 (0.382683433608791 0.923879531996129 0.1) + arc 94 84 (0.923879532683006 0.382683431950523 0.1) +); + +patches +( + wall rotor + ( + (0 2 50 48) + (2 4 52 50) + (3 5 53 51) + (5 7 55 53) + (6 8 56 54) + (8 10 58 56) + (9 11 59 57) + (11 1 49 59) + + (0 12 60 48) + (1 12 60 49) + + (3 14 62 51) + (4 14 62 52) + + (6 16 64 54) + (7 16 64 55) + + (9 18 66 57) + (10 18 66 58) + ) + + wall stator + ( + (36 38 86 84) + (37 39 87 85) + (39 41 89 87) + (40 42 90 88) + (42 44 92 90) + (43 45 93 91) + (45 47 95 93) + (46 36 84 94) + + (37 29 77 85) + (38 29 77 86) + + (40 31 79 88) + (41 31 79 89) + + (43 33 81 91) + (44 33 81 92) + + (46 35 83 94) + (47 35 83 95) + ) + + empty front + ( + (48 50 61 60) + (50 52 62 61) + (51 53 63 62) + (53 55 64 63) + (54 56 65 64) + (56 58 66 65) + (57 59 67 66) + (59 49 60 67) + (60 61 69 68) + (61 62 70 69) + (62 63 71 70) + (63 64 72 71) + (64 65 73 72) + (65 66 74 73) + (66 67 75 74) + (67 60 68 75) + (68 69 77 76) + (69 70 78 77) + (70 71 79 78) + (71 72 80 79) + (72 73 81 80) + (73 74 82 81) + (74 75 83 82) + (75 68 76 83) + (76 77 86 84) + (77 78 87 85) + (78 79 89 87) + (79 80 90 88) + (80 81 92 90) + (81 82 93 91) + (82 83 95 93) + (83 76 84 94) + ) + + empty back + ( + (0 12 13 2) + (2 13 14 4) + (3 14 15 5) + (5 15 16 7) + (6 16 17 8) + (8 17 18 10) + (9 18 19 11) + (11 19 12 1) + (12 20 21 13) + (13 21 22 14) + (14 22 23 15) + (15 23 24 16) + (16 24 25 17) + (17 25 26 18) + (18 26 27 19) + (19 27 20 12) + (20 28 29 21) + (21 29 30 22) + (22 30 31 23) + (23 31 32 24) + (24 32 33 25) + (25 33 34 26) + (26 34 35 27) + (27 35 28 20) + (28 36 38 29) + (29 37 39 30) + (30 39 41 31) + (31 40 42 32) + (32 42 44 33) + (33 43 45 34) + (34 45 47 35) + (35 46 36 28) + ) +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..eaa448596c06a89b270603aaabd722cf44fa7f3e --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,818 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: http://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(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(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(ri0, ri1, Rb1, Rb0) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block1 + hex2D(ri1, ri2, Rb2, Rb1) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block2 + hex2D(ri2, ri3, Rb3, Rb2) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block3 + hex2D(ri3, ri4, Rb4, Rb3) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block4 + hex2D(ri4, ri5, Rb5, Rb4) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block5 + hex2D(ri5, ri6, Rb6, Rb5) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block6 + hex2D(ri6, ri7, Rb7, Rb6) + (Na Ni Nz) + simpleGrading (1 1 1) + + // block7 + hex2D(ri7, ri0, 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 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 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) +); + +patches +( + wall rotor + ( + 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) + ) + + wall stator + ( + 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) + ) + + empty front + ( + 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(ri0, ri1, Rb1, Rb0) + frontQuad(ri1, ri2, Rb2, Rb1) + frontQuad(ri2, ri3, Rb3, Rb2) + frontQuad(ri3, ri4, Rb4, Rb3) + frontQuad(ri4, ri5, Rb5, Rb4) + frontQuad(ri5, ri6, Rb6, Rb5) + frontQuad(ri6, ri7, Rb7, Rb6) + frontQuad(ri7, ri0, 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) + ) + + empty back + ( + 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(ri0, ri1, Rb1, Rb0) + backQuad(ri1, ri2, Rb2, Rb1) + backQuad(ri2, ri3, Rb3, Rb2) + backQuad(ri3, ri4, Rb4, Rb3) + backQuad(ri4, ri5, Rb5, Rb4) + backQuad(ri5, ri6, Rb6, Rb5) + backQuad(ri6, ri7, Rb7, Rb6) + backQuad(ri7, ri0, 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/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..292f25b806357d9df75c7731f74dee0ec0aa3a40 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +4 +( + rotor + { + type wall; + nFaces 192; + startFace 5952; + } + stator + { + type wall; + nFaces 192; + startFace 6144; + } + front + { + type empty; + nFaces 3072; + startFace 6336; + } + back + { + type empty; + nFaces 3072; + startFace 9408; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..e29c7f9fc04be3aafc3bf54d2ac9208b0250c4e6 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/transportProperties @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1e-4; + rho rho [ 1 -3 0 0 0 0 0 ] 1000; +} + +phase2 +{ + transportModel Newtonian; + nu nu [ 0 2 -1 0 0 0 0 ] 1e-4; + rho rho [ 1 -3 0 0 0 0 0 ] 500; +} + +sigma sigma [ 1 0 -2 0 0 0 0 ] 0.05; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties new file mode 100644 index 0000000000000000000000000000000000000000..886d34bdef135c39216d342240a96bf0530bdd62 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / 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/interFoam/MRFInterFoam/mixerVessel2D/makeMesh b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/makeMesh new file mode 100755 index 0000000000000000000000000000000000000000..b0be10d8e5f2b0525cec8f23c93585fde73f5879 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/makeMesh @@ -0,0 +1,11 @@ +#!/bin/sh + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +blockMesh +cellSet +#- MRF determines its own faceZone if not supplied +#cp system/faceSetDict_rotorFaces system/faceSetDict +#faceSet +#cp system/faceSetDict_noBoundaryFaces system/faceSetDict +#faceSet +setsToZones -noFlipMap diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/cellSetDict b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/cellSetDict new file mode 100644 index 0000000000000000000000000000000000000000..6d1af846e3c61c753852a90c8c8bcc5cfd68cf4d --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/cellSetDict @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object cellSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +name rotor; + +action new; + +topoSetSources ( zoneToCell { name rotor ; } ); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/controlDict b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..249378f87cac7f374e958053846a949d585e047e --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/controlDict @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 4; + +deltaT 1e-3; + +writeControl adjustableRunTime; + +writeInterval 0.125; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression uncompressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict new file mode 100644 index 0000000000000000000000000000000000000000..5507dbd729453219d583c8c3f7e8867eee0ac1a4 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object faceSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +name rotor; + +action delete; + +topoSetSources ( boundaryToFace { } ); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_noBoundaryFaces b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_noBoundaryFaces new file mode 100644 index 0000000000000000000000000000000000000000..062727698328907a23480d3aaae086f2030a1537 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_noBoundaryFaces @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object faceSetDict_noBoundaryFaces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +name rotor; + +action delete; + +topoSetSources ( boundaryToFace { } ); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_rotorFaces b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_rotorFaces new file mode 100644 index 0000000000000000000000000000000000000000..5e7917b2fe4f3eae8b3dd4db38d66a39f29a92a3 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/faceSetDict_rotorFaces @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object faceSetDict_rotorFaces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +name rotor; + +action new; + +topoSetSources ( cellToFace { set rotor ; option all ; } ); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..75d5813812fc769d95a0204eab2181acc078ca8c --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / 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; + grad(U) Gauss linear; + grad(alpha1) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss linear; + div(phi,alpha) Gauss vanLeer; + div(phirb,alpha) Gauss interfaceCompression; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + p ; + pcorr ; + alpha1 ; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..febd619c4824c91a5fee8280895288ecf80e408e --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/fvSolution @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr + { + solver PCG; + preconditioner DIC; + tolerance 1e-10; + relTol 0; + } + + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-07; + relTol 0.05; + } + + pFinal + { + solver PCG; + preconditioner DIC; + tolerance 1e-07; + relTol 0; + } + + U + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-06; + relTol 0; + } +} + +PISO +{ + momentumPredictor no; + nCorrectors 3; + nNonOrthogonalCorrectors 0; + nAlphaCorr 1; + nAlphaSubCycles 2; + cAlpha 1; + pRefCell 0; + pRefValue 0; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/setFieldsDict b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2de344506d223ab76e1bb8cc7b273c285b37d5a3 --- /dev/null +++ b/tutorials/multiphase/interFoam/MRFInterFoam/mixerVessel2D/system/setFieldsDict @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue alpha1 0 + volVectorFieldValue U (0 0 0) +); + +regions +( + boxToCell + { + box (0 0 -1) (1 1 1); + fieldValues + ( + volScalarFieldValue alpha1 1 + ); + } +); + + +// ************************************************************************* //