diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C index 73dbee5664c3e5186ade28cb04347a88813bc5fc..e09c1bbd14080664322c3840bccf33bbcb2039d5 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C @@ -55,7 +55,7 @@ PDRkEpsilon::PDRkEpsilon const word& modelName ) : - Foam::RASModels::kEpsilon<eddyDiffusivity<compressible::turbulenceModel> > + Foam::RASModels::kEpsilon<EddyDiffusivity<compressible::turbulenceModel> > ( geometricOneField(), rho, diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H index 689a47844a4ca25066c7f8e1a9c126e3b1417826..1ee0719076a7ca58155ef168f86cf90948612ad3 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H +++ b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H @@ -80,7 +80,7 @@ class PDRkEpsilon : public Foam::RASModels::kEpsilon < - eddyDiffusivity + EddyDiffusivity < compressible::turbulenceModel > diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C index 2045c175fdc8b138b6abc373f4e239ffae2e50b0..79deedb763fbefe580b7c0c54b6a65bbf9528861 100644 --- a/applications/solvers/combustion/reactingFoam/reactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C index 743db294542a6e87ede92d03f8e285bed1e6dbf5..e8645bb47c0b8a7d59c9c85d701a3b26e7a84727 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C +++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C @@ -59,7 +59,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C index cdb1c64d560ef0db360f3942b227c8707fcbc599..6eb245028d0c5c07714b63d0fcb982c11f628d08 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C @@ -59,7 +59,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H index 0e214011dee27ee9645a852eda71d2911911735e..96a8ea84213810748eaad1f490df26b9fa87a90a 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H +++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H @@ -45,8 +45,8 @@ dimensionedScalar rhoMax ( "rhoMax", pimple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -56,8 +56,8 @@ dimensionedScalar rhoMin ( "rhoMin", pimple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C index 530d66ce5d53e2e03fb0d74de7c17f371473277a..bd30b60a90ca78efe08e2f5888a829906b28eb12 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C @@ -63,12 +63,11 @@ int main(int argc, char *argv[]) #include "createMRF.H" #include "createFvOptions.H" #include "createRhoUf.H" - #include "CourantNo.H" #include "createControls.H" if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 5a54c9845f02433755bb1151201ef8633b810327..382d041fd956c3bdeb8b02ab887073fd7c5de45e 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -61,7 +61,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H index 2d89e2b56675f0cbdc46190b145e0b4a06701a39..fdf8a2a769e20bfbe12939cf91cd0c16c1c64d52 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H +++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H @@ -52,8 +52,8 @@ dimensionedScalar rhoMax ( "rhoMax", simple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -63,8 +63,8 @@ dimensionedScalar rhoMin ( "rhoMin", simple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H index 3ce8270b5e027444a5fdea912cd0fa6535322cd8..149049e63ee4a727beb791fecc47f1bc7c5a9e60 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H @@ -51,8 +51,8 @@ dimensionedScalar rhoMax ( "rhoMax", simple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -62,8 +62,8 @@ dimensionedScalar rhoMin ( "rhoMin", simple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C index 1fc630ca62c35a1f3b75bebf40f93ff923179500..8d913919d29d99dba9c587c0d5595292b44f786c 100644 --- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C @@ -57,7 +57,7 @@ int main(int argc, char *argv[]) #include "createMRF.H" #include "createFvOptions.H" #include "createRhoUf.H" - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H index bd7452ae9e39ad73b7bdd45108ecbdbcdb6b2c9f..1811878bd738453bf1a8f4eebc23cc7396b8d39d 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H @@ -187,8 +187,8 @@ forAll(fluidRegions, i) ( "rhoMax", simpleDict, - GREAT, - dimDensity + dimDensity, + GREAT ) ) ); @@ -202,8 +202,8 @@ forAll(fluidRegions, i) ( "rhoMin", simpleDict, - 0, - dimDensity + dimDensity, + 0 ) ) ); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H index 49a945989d4875149861d30ae4cb9c8b3be7a41a..0600a1c65087524b1e38a03e59e97707ebe5f1d5 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H @@ -24,4 +24,5 @@ thermo.correct(); -Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl; +Info<< "Min/max T:" << min(thermo.T()).value() << ' ' + << max(thermo.T()).value() << endl; diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H old mode 100644 new mode 100755 index 27f1737e52a25378d617c58a24e90bcb2f221ab4..49fd39e45b78e2a7ad389897076677352afdc1ee --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H @@ -30,7 +30,8 @@ if (finalIter) thermo.correct(); -Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl; +Info<< "Min/max T:" << min(thermo.T()).value() << ' ' + << max(thermo.T()).value() << endl; if (finalIter) { diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C index 99fc9feed17a10588fc1d62a1e4da29abecf3486..3bfb2be7764b0fca8f2ac5d0184c7355a118b3fc 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C +++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C @@ -70,7 +70,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H index 43c3d45e320490676f3f551974662d3b7011383b..9d05da04250c41c34fdb8e3d826aff657519c79b 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H @@ -64,8 +64,8 @@ dimensionedScalar rhoMax ( "rhoMax", pimple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -75,8 +75,8 @@ dimensionedScalar rhoMin ( "rhoMin", pimple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index e314d8b31882a8fb04090201d7b50798abbc5d1c..b3e758df12fedefb9e3a5a4d9aef460dd0e68309 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) if (!LTS) { - #include "CourantNo.H" + #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H index 7e79f9fb7db552b4e2dcb78150f250a003d7947e..cfabbfb5b05fa41b8717fec5162d29292c1ad5f5 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H @@ -64,8 +64,8 @@ dimensionedScalar rhoMax ( "rhoMax", simple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -75,8 +75,8 @@ dimensionedScalar rhoMin ( "rhoMin", simple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/lagrangian/sprayFoam/createFields.H b/applications/solvers/lagrangian/sprayFoam/createFields.H index 721c3f8319ecda938c20533daf8c301e945cf5c6..7cc45050ce4dbfe94fabfaf9fc163a0608967506 100644 --- a/applications/solvers/lagrangian/sprayFoam/createFields.H +++ b/applications/solvers/lagrangian/sprayFoam/createFields.H @@ -64,8 +64,8 @@ dimensionedScalar rhoMax ( "rhoMax", pimple.dict(), - GREAT, - dimDensity + dimDensity, + GREAT ) ); @@ -75,8 +75,8 @@ dimensionedScalar rhoMin ( "rhoMin", pimple.dict(), - 0, - dimDensity + dimDensity, + 0 ) ); diff --git a/applications/solvers/multiphase/cavitatingFoam/setInitialDeltaT.H b/applications/solvers/multiphase/cavitatingFoam/setInitialDeltaT.H index b0516d1101f003523edd0a1ff541120eaefa9580..52c04603c429048c65e4d43c6b729c212a566450 100644 --- a/applications/solvers/multiphase/cavitatingFoam/setInitialDeltaT.H +++ b/applications/solvers/multiphase/cavitatingFoam/setInitialDeltaT.H @@ -32,8 +32,6 @@ Description if (adjustTimeStep) { - #include "CourantNo.H" - if (CoNum > SMALL) { scalar maxDeltaTFact = diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H index 41ed1cf9c0af6e7bf72c5936d4959f95452b7bd1..51dad81e77ee8563b432bef427ddac4db003d548 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H +++ b/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H @@ -45,7 +45,7 @@ } - surfaceScalarField phiAlpha1 + surfaceScalarField alphaPhi1 ( fvc::flux ( @@ -66,7 +66,7 @@ geometricOneField(), alpha1, phi, - phiAlpha1, + alphaPhi1, Sp, Su, 1, @@ -75,7 +75,7 @@ surfaceScalarField rho1f(fvc::interpolate(rho1)); surfaceScalarField rho2f(fvc::interpolate(rho2)); - rhoPhi = phiAlpha1*(rho1f - rho2f) + phi*rho2f; + rhoPhi = alphaPhi1*(rho1f - rho2f) + phi*rho2f; alpha2 = scalar(1) - alpha1; } diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C index 6eda25f9ff83899df17b0fab0e6a819d4fe2f9f3..7733cf13646be2b2af4a33742289dde88fc5c4a2 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C @@ -942,14 +942,14 @@ void Foam::multiphaseMixtureThermo::solveAlphas surfaceScalarField phic(mag(phi_/mesh_.magSf())); phic = min(cAlpha*phic, max(phic)); - PtrList<surfaceScalarField> phiAlphaCorrs(phases_.size()); + PtrList<surfaceScalarField> alphaPhiCorrs(phases_.size()); int phasei = 0; forAllIter(PtrDictionary<phaseModel>, phases_, phase) { phaseModel& alpha = phase(); - phiAlphaCorrs.set + alphaPhiCorrs.set ( phasei, new surfaceScalarField @@ -964,7 +964,7 @@ void Foam::multiphaseMixtureThermo::solveAlphas ) ); - surfaceScalarField& phiAlphaCorr = phiAlphaCorrs[phasei]; + surfaceScalarField& alphaPhiCorr = alphaPhiCorrs[phasei]; forAllIter(PtrDictionary<phaseModel>, phases_, phase2) { @@ -974,7 +974,7 @@ void Foam::multiphaseMixtureThermo::solveAlphas surfaceScalarField phir(phic*nHatf(alpha, alpha2)); - phiAlphaCorr += fvc::flux + alphaPhiCorr += fvc::flux ( -fvc::flux(-phir, alpha2, alpharScheme), alpha, @@ -988,7 +988,7 @@ void Foam::multiphaseMixtureThermo::solveAlphas geometricOneField(), alpha, phi_, - phiAlphaCorr, + alphaPhiCorr, zeroField(), zeroField(), 1, @@ -999,7 +999,7 @@ void Foam::multiphaseMixtureThermo::solveAlphas phasei++; } - MULES::limitSum(phiAlphaCorrs); + MULES::limitSum(alphaPhiCorrs); rhoPhi_ = dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0); @@ -1025,8 +1025,8 @@ void Foam::multiphaseMixtureThermo::solveAlphas { phaseModel& alpha = phase(); - surfaceScalarField& phiAlpha = phiAlphaCorrs[phasei]; - phiAlpha += upwind<scalar>(mesh_, phi_).flux(alpha); + surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei]; + alphaPhi += upwind<scalar>(mesh_, phi_).flux(alpha); volScalarField::DimensionedInternalField Sp ( @@ -1096,12 +1096,12 @@ void Foam::multiphaseMixtureThermo::solveAlphas ( geometricOneField(), alpha, - phiAlpha, + alphaPhi, Sp, Su ); - rhoPhi_ += fvc::interpolate(alpha.thermo().rho())*phiAlpha; + rhoPhi_ += fvc::interpolate(alpha.thermo().rho())*alphaPhi; Info<< alpha.name() << " volume fraction, min, max = " << alpha.weightedAverage(mesh_.V()).value() diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H index 6d797d16c5bbcd3f43a6f91fa92a0c4850946295..a769a459144993492da0b12100b587312eb1258d 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H @@ -254,14 +254,14 @@ public: virtual volScalarField& he() { notImplemented("multiphaseMixtureThermo::he()"); - return phases_[0]->thermo().he(); + return phases_[0].thermo().he(); } //- Enthalpy/Internal energy [J/kg] virtual const volScalarField& he() const { notImplemented("multiphaseMixtureThermo::he() const"); - return phases_[0]->thermo().he(); + return phases_[0].thermo().he(); } //- Enthalpy/Internal energy diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H b/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H index 954b2a8b3a9c1c7311a0c5dc99636e7735fea205..68f027cd2463e750c63e09b01966799816634b27 100644 --- a/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H +++ b/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H @@ -23,32 +23,32 @@ << " Max(" << alpha1.name() << ") = " << max(alpha1).value() << endl; - tmp<surfaceScalarField> tphiAlphaUD(alpha1Eqn.flux()); - phiAlpha = tphiAlphaUD(); + tmp<surfaceScalarField> talphaPhiUD(alpha1Eqn.flux()); + alphaPhi = talphaPhiUD(); - if (alphaApplyPrevCorr && tphiAlphaCorr0.valid()) + if (alphaApplyPrevCorr && talphaPhiCorr0.valid()) { Info<< "Applying the previous iteration correction flux" << endl; MULES::correct ( alpha1, - phiAlpha, - tphiAlphaCorr0(), + alphaPhi, + talphaPhiCorr0(), mixture.alphaMax(), 0 ); - phiAlpha += tphiAlphaCorr0(); + alphaPhi += talphaPhiCorr0(); } // Cache the upwind-flux - tphiAlphaCorr0 = tphiAlphaUD; + talphaPhiCorr0 = talphaPhiUD; } for (int aCorr=0; aCorr<nAlphaCorr; aCorr++) { - tmp<surfaceScalarField> tphiAlphaUn + tmp<surfaceScalarField> talphaPhiUn ( fvc::flux ( @@ -66,14 +66,14 @@ if (MULESCorr) { - tmp<surfaceScalarField> tphiAlphaCorr(tphiAlphaUn() - phiAlpha); + tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi); volScalarField alpha10("alpha10", alpha1); MULES::correct ( alpha1, - tphiAlphaUn(), - tphiAlphaCorr(), + talphaPhiUn(), + talphaPhiCorr(), mixture.alphaMax(), 0 ); @@ -81,23 +81,23 @@ // Under-relax the correction for all but the 1st corrector if (aCorr == 0) { - phiAlpha += tphiAlphaCorr(); + alphaPhi += talphaPhiCorr(); } else { alpha1 = 0.5*alpha1 + 0.5*alpha10; - phiAlpha += 0.5*tphiAlphaCorr(); + alphaPhi += 0.5*talphaPhiCorr(); } } else { - phiAlpha = tphiAlphaUn; + alphaPhi = talphaPhiUn; MULES::explicitSolve ( alpha1, phi, - phiAlpha, + alphaPhi, mixture.alphaMax(), 0 ); @@ -106,7 +106,7 @@ if (alphaApplyPrevCorr && MULESCorr) { - tphiAlphaCorr0 = phiAlpha - tphiAlphaCorr0; + talphaPhiCorr0 = alphaPhi - talphaPhiCorr0; } alpha2 = 1.0 - alpha1; diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H index 956bacf48dce00e2412aef5d62732cb077bddc5c..b586e77fad5a2928a4aac611f5dae8076c7e2b97 100644 --- a/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H +++ b/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H @@ -1,9 +1,9 @@ { - surfaceScalarField phiAlpha + surfaceScalarField alphaPhi ( IOobject ( - "phiAlpha", + "alphaPhi", runTime.timeName(), mesh ), @@ -19,11 +19,11 @@ if (nAlphaSubCycles > 1) { dimensionedScalar totalDeltaT = runTime.deltaT(); - surfaceScalarField phiAlphaSum + surfaceScalarField alphaPhiSum ( IOobject ( - "phiAlphaSum", + "alphaPhiSum", runTime.timeName(), mesh ), @@ -38,10 +38,10 @@ ) { #include "alphaEqn.H" - phiAlphaSum += (runTime.deltaT()/totalDeltaT)*phiAlpha; + alphaPhiSum += (runTime.deltaT()/totalDeltaT)*alphaPhi; } - phiAlpha = phiAlphaSum; + alphaPhi = alphaPhiSum; } else { @@ -59,7 +59,7 @@ alpha1Eqn.solve(mesh.solver("alpha1Diffusion")); - phiAlpha += alpha1Eqn.flux(); + alphaPhi += alpha1Eqn.flux(); alpha2 = 1.0 - alpha1; Info<< "Phase-1 volume fraction = " @@ -69,6 +69,6 @@ << endl; } - rhoPhi = phiAlpha*(rho1 - rho2) + phi*rho2; + rhoPhi = alphaPhi*(rho1 - rho2) + phi*rho2; rho = mixture.rho(); } diff --git a/applications/solvers/multiphase/driftFluxFoam/createFields.H b/applications/solvers/multiphase/driftFluxFoam/createFields.H index d2e8d1d93e1fcba1b91d78df9abca27d7a29d1dd..65d3d38eaec3c6e0f0375826e935709587931e1f 100644 --- a/applications/solvers/multiphase/driftFluxFoam/createFields.H +++ b/applications/solvers/multiphase/driftFluxFoam/createFields.H @@ -135,4 +135,4 @@ mesh.setFluxRequired(p_rgh.name()); mesh.setFluxRequired(alpha1.name()); // MULES Correction -tmp<surfaceScalarField> tphiAlphaCorr0; +tmp<surfaceScalarField> talphaPhiCorr0; diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H index 4405c5801535762e1a15fe046b734838643d98be..a2e9097e309c1e108145a00eed2748ca2312d4b4 100644 --- a/applications/solvers/multiphase/interFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interFoam/alphaEqn.H @@ -98,19 +98,19 @@ << " Max(" << alpha1.name() << ") = " << max(alpha1).value() << endl; - tmp<surfaceScalarField> tphiAlphaUD(alpha1Eqn.flux()); - phiAlpha = tphiAlphaUD(); + tmp<surfaceScalarField> talphaPhiUD(alpha1Eqn.flux()); + alphaPhi = talphaPhiUD(); - if (alphaApplyPrevCorr && tphiAlphaCorr0.valid()) + if (alphaApplyPrevCorr && talphaPhiCorr0.valid()) { Info<< "Applying the previous iteration compression flux" << endl; - MULES::correct(alpha1, phiAlpha, tphiAlphaCorr0(), 1, 0); + MULES::correct(alpha1, alphaPhi, talphaPhiCorr0(), 1, 0); - phiAlpha += tphiAlphaCorr0(); + alphaPhi += talphaPhiCorr0(); } // Cache the upwind-flux - tphiAlphaCorr0 = tphiAlphaUD; + talphaPhiCorr0 = talphaPhiUD; alpha2 = 1.0 - alpha1; @@ -122,7 +122,7 @@ { surfaceScalarField phir(phic*mixture.nHatf()); - tmp<surfaceScalarField> tphiAlphaUn + tmp<surfaceScalarField> talphaPhiUn ( fvc::flux ( @@ -141,33 +141,33 @@ // Calculate the Crank-Nicolson off-centred alpha flux if (ocCoeff > 0) { - tphiAlphaUn = - cnCoeff*tphiAlphaUn + (1.0 - cnCoeff)*phiAlpha.oldTime(); + talphaPhiUn = + cnCoeff*talphaPhiUn + (1.0 - cnCoeff)*alphaPhi.oldTime(); } if (MULESCorr) { - tmp<surfaceScalarField> tphiAlphaCorr(tphiAlphaUn() - phiAlpha); + tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi); volScalarField alpha10("alpha10", alpha1); - MULES::correct(alpha1, tphiAlphaUn(), tphiAlphaCorr(), 1, 0); + MULES::correct(alpha1, talphaPhiUn(), talphaPhiCorr(), 1, 0); // Under-relax the correction for all but the 1st corrector if (aCorr == 0) { - phiAlpha += tphiAlphaCorr(); + alphaPhi += talphaPhiCorr(); } else { alpha1 = 0.5*alpha1 + 0.5*alpha10; - phiAlpha += 0.5*tphiAlphaCorr(); + alphaPhi += 0.5*talphaPhiCorr(); } } else { - phiAlpha = tphiAlphaUn; + alphaPhi = talphaPhiUn; - MULES::explicitSolve(alpha1, phiCN, phiAlpha, 1, 0); + MULES::explicitSolve(alpha1, phiCN, alphaPhi, 1, 0); } alpha2 = 1.0 - alpha1; @@ -177,7 +177,7 @@ if (alphaApplyPrevCorr && MULESCorr) { - tphiAlphaCorr0 = phiAlpha - tphiAlphaCorr0; + talphaPhiCorr0 = alphaPhi - talphaPhiCorr0; } if @@ -186,18 +186,18 @@ == fv::EulerDdtScheme<vector>::typeName ) { - rhoPhi = phiAlpha*(rho1 - rho2) + phiCN*rho2; + rhoPhi = alphaPhi*(rho1 - rho2) + phiCN*rho2; } else { if (ocCoeff > 0) { // Calculate the end-of-time-step alpha flux - phiAlpha = (phiAlpha - (1.0 - cnCoeff)*phiAlpha.oldTime())/cnCoeff; + alphaPhi = (alphaPhi - (1.0 - cnCoeff)*alphaPhi.oldTime())/cnCoeff; } // Calculate the end-of-time-step mass flux - rhoPhi = phiAlpha*(rho1 - rho2) + phi*rho2; + rhoPhi = alphaPhi*(rho1 - rho2) + phi*rho2; } Info<< "Phase-1 volume fraction = " diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H index fc682190ce1a0b1c36acfe0f79ad3db44cb4bd4d..c3e65f24e36c8db20ac9281f966e0883b1fe8f4f 100644 --- a/applications/solvers/multiphase/interFoam/createFields.H +++ b/applications/solvers/multiphase/interFoam/createFields.H @@ -121,11 +121,11 @@ mesh.setFluxRequired(p_rgh.name()); mesh.setFluxRequired(alpha1.name()); // MULES flux from previous time-step -surfaceScalarField phiAlpha +surfaceScalarField alphaPhi ( IOobject ( - "phiAlpha", + "alphaPhi", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, @@ -135,4 +135,4 @@ surfaceScalarField phiAlpha ); // MULES Correction -tmp<surfaceScalarField> tphiAlphaCorr0; +tmp<surfaceScalarField> talphaPhiCorr0; diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H index 9585905c08442f7c401e28b4e5325a2484a12770..d720aa97f654aa5d4f835efc4fe9f128b8f59a86 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H @@ -40,7 +40,7 @@ // Create the complete convection flux for alpha1 - surfaceScalarField phiAlpha1 + surfaceScalarField alphaPhi1 ( fvc::flux ( @@ -63,13 +63,13 @@ ); // Create the bounded (upwind) flux for alpha1 - surfaceScalarField phiAlpha1BD + surfaceScalarField alphaPhi1BD ( upwind<scalar>(mesh, phi).flux(alpha1) ); // Calculate the flux correction for alpha1 - phiAlpha1 -= phiAlpha1BD; + alphaPhi1 -= alphaPhi1BD; // Calculate the limiter for alpha1 if (LTS) @@ -83,8 +83,8 @@ rDeltaT, geometricOneField(), alpha1, - phiAlpha1BD, - phiAlpha1, + alphaPhi1BD, + alphaPhi1, zeroField(), zeroField(), 1, @@ -99,8 +99,8 @@ 1.0/runTime.deltaT().value(), geometricOneField(), alpha1, - phiAlpha1BD, - phiAlpha1, + alphaPhi1BD, + alphaPhi1, zeroField(), zeroField(), 1, @@ -109,7 +109,7 @@ } // Create the complete flux for alpha2 - surfaceScalarField phiAlpha2 + surfaceScalarField alphaPhi2 ( fvc::flux ( @@ -126,13 +126,13 @@ ); // Create the bounded (upwind) flux for alpha2 - surfaceScalarField phiAlpha2BD + surfaceScalarField alphaPhi2BD ( upwind<scalar>(mesh, phi).flux(alpha2) ); // Calculate the flux correction for alpha2 - phiAlpha2 -= phiAlpha2BD; + alphaPhi2 -= alphaPhi2BD; // Further limit the limiter for alpha2 if (LTS) @@ -146,8 +146,8 @@ rDeltaT, geometricOneField(), alpha2, - phiAlpha2BD, - phiAlpha2, + alphaPhi2BD, + alphaPhi2, zeroField(), zeroField(), 1, @@ -162,8 +162,8 @@ 1.0/runTime.deltaT().value(), geometricOneField(), alpha2, - phiAlpha2BD, - phiAlpha2, + alphaPhi2BD, + alphaPhi2, zeroField(), zeroField(), 1, @@ -172,32 +172,32 @@ } // Construct the limited fluxes - phiAlpha1 = phiAlpha1BD + lambda*phiAlpha1; - phiAlpha2 = phiAlpha2BD + lambda*phiAlpha2; + alphaPhi1 = alphaPhi1BD + lambda*alphaPhi1; + alphaPhi2 = alphaPhi2BD + lambda*alphaPhi2; // Solve for alpha1 - solve(fvm::ddt(alpha1) + fvc::div(phiAlpha1)); + solve(fvm::ddt(alpha1) + fvc::div(alphaPhi1)); // Create the diffusion coefficients for alpha2<->alpha3 volScalarField Dc23(D23*max(alpha3, scalar(0))*pos(alpha2)); volScalarField Dc32(D23*max(alpha2, scalar(0))*pos(alpha3)); // Add the diffusive flux for alpha3->alpha2 - phiAlpha2 -= fvc::interpolate(Dc32)*mesh.magSf()*fvc::snGrad(alpha1); + alphaPhi2 -= fvc::interpolate(Dc32)*mesh.magSf()*fvc::snGrad(alpha1); // Solve for alpha2 fvScalarMatrix alpha2Eqn ( fvm::ddt(alpha2) - + fvc::div(phiAlpha2) + + fvc::div(alphaPhi2) - fvm::laplacian(Dc23 + Dc32, alpha2) ); alpha2Eqn.solve(); // Construct the complete mass flux rhoPhi = - phiAlpha1*(rho1 - rho3) - + (phiAlpha2 + alpha2Eqn.flux())*(rho2 - rho3) + alphaPhi1*(rho1 - rho3) + + (alphaPhi2 + alpha2Eqn.flux())*(rho2 - rho3) + phi*rho3; alpha3 = 1.0 - alpha1 - alpha2; diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H index bf506c2a70fa7a0d40532e96f9578068cea1ba52..172676b97fd4502b1e13ec686755934a643a9a8d 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H @@ -10,7 +10,7 @@ const volScalarField& vDotvAlphal = vDotAlphal[1](); const volScalarField vDotvmcAlphal(vDotvAlphal - vDotcAlphal); - tmp<surfaceScalarField> tphiAlpha; + tmp<surfaceScalarField> talphaPhi; if (MULESCorr) { @@ -37,14 +37,14 @@ << " Max(" << alpha1.name() << ") = " << max(alpha1).value() << endl; - tphiAlpha = alpha1Eqn.flux(); + talphaPhi = alpha1Eqn.flux(); } volScalarField alpha10("alpha10", alpha1); for (int aCorr=0; aCorr<nAlphaCorr; aCorr++) { - tmp<surfaceScalarField> tphiAlphaCorr + tmp<surfaceScalarField> talphaPhiCorr ( fvc::flux ( @@ -62,7 +62,7 @@ if (MULESCorr) { - tphiAlphaCorr() -= tphiAlpha(); + talphaPhiCorr() -= talphaPhi(); volScalarField alpha100("alpha100", alpha10); alpha10 = alpha1; @@ -71,8 +71,8 @@ ( geometricOneField(), alpha1, - tphiAlpha(), - tphiAlphaCorr(), + talphaPhi(), + talphaPhiCorr(), vDotvmcAlphal, ( divU*(alpha10 - alpha100) @@ -85,12 +85,12 @@ // Under-relax the correction for all but the 1st corrector if (aCorr == 0) { - tphiAlpha() += tphiAlphaCorr(); + talphaPhi() += talphaPhiCorr(); } else { alpha1 = 0.5*alpha1 + 0.5*alpha10; - tphiAlpha() += 0.5*tphiAlphaCorr(); + talphaPhi() += 0.5*talphaPhiCorr(); } } else @@ -100,20 +100,20 @@ geometricOneField(), alpha1, phi, - tphiAlphaCorr(), + talphaPhiCorr(), vDotvmcAlphal, (divU*alpha1 + vDotcAlphal)(), 1, 0 ); - tphiAlpha = tphiAlphaCorr; + talphaPhi = talphaPhiCorr; } alpha2 = 1.0 - alpha1; } - rhoPhi = tphiAlpha()*(rho1 - rho2) + phi*rho2; + rhoPhi = talphaPhi()*(rho1 - rho2) + phi*rho2; Info<< "Liquid phase volume fraction = " << alpha1.weightedAverage(mesh.V()).value() diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H b/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H index 6b9174def73d96be3889f36502b6fd8fd440136f..abad0dfaf042dc43be9b57fdc3040a18030195e1 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H @@ -18,7 +18,7 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter) new fvVectorMatrix ( fvm::ddt(alpha, U) - + fvm::div(phase.phiAlpha(), U) + + fvm::div(phase.alphaPhi(), U) + (alpha/phase.rho())*fluid.Cvm(phase)* ( diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C index 01637a6cc153be6de55ef8d1c5787088aad25760..767600e394011a6cedce9e0b389ee4b489034b92 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C @@ -61,7 +61,7 @@ void Foam::multiphaseSystem::calcAlphas() void Foam::multiphaseSystem::solveAlphas() { - PtrList<surfaceScalarField> phiAlphaCorrs(phases_.size()); + PtrList<surfaceScalarField> alphaPhiCorrs(phases_.size()); int phasei = 0; forAllIter(PtrDictionary<phaseModel>, phases_, iter) @@ -69,10 +69,10 @@ void Foam::multiphaseSystem::solveAlphas() phaseModel& phase1 = iter(); volScalarField& alpha1 = phase1; - phase1.phiAlpha() = + phase1.alphaPhi() = dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0); - phiAlphaCorrs.set + alphaPhiCorrs.set ( phasei, new surfaceScalarField @@ -87,7 +87,7 @@ void Foam::multiphaseSystem::solveAlphas() ) ); - surfaceScalarField& phiAlphaCorr = phiAlphaCorrs[phasei]; + surfaceScalarField& alphaPhiCorr = alphaPhiCorrs[phasei]; forAllIter(PtrDictionary<phaseModel>, phases_, iter2) { @@ -118,7 +118,7 @@ void Foam::multiphaseSystem::solveAlphas() "div(phir," + alpha2.name() + ',' + alpha1.name() + ')' ); - phiAlphaCorr += fvc::flux + alphaPhiCorr += fvc::flux ( -fvc::flux(-phir, phase2, phirScheme), phase1, @@ -127,21 +127,21 @@ void Foam::multiphaseSystem::solveAlphas() } // Ensure that the flux at inflow BCs is preserved - forAll(phiAlphaCorr.boundaryField(), patchi) + forAll(alphaPhiCorr.boundaryField(), patchi) { - fvsPatchScalarField& phiAlphaCorrp = - phiAlphaCorr.boundaryField()[patchi]; + fvsPatchScalarField& alphaPhiCorrp = + alphaPhiCorr.boundaryField()[patchi]; - if (!phiAlphaCorrp.coupled()) + if (!alphaPhiCorrp.coupled()) { const scalarField& phi1p = phase1.phi().boundaryField()[patchi]; const scalarField& alpha1p = alpha1.boundaryField()[patchi]; - forAll(phiAlphaCorrp, facei) + forAll(alphaPhiCorrp, facei) { if (phi1p[facei] < 0) { - phiAlphaCorrp[facei] = alpha1p[facei]*phi1p[facei]; + alphaPhiCorrp[facei] = alpha1p[facei]*phi1p[facei]; } } } @@ -153,7 +153,7 @@ void Foam::multiphaseSystem::solveAlphas() geometricOneField(), phase1, phi_, - phiAlphaCorr, + alphaPhiCorr, zeroField(), zeroField(), 1, @@ -164,7 +164,7 @@ void Foam::multiphaseSystem::solveAlphas() phasei++; } - MULES::limitSum(phiAlphaCorrs); + MULES::limitSum(alphaPhiCorrs); volScalarField sumAlpha ( @@ -184,19 +184,19 @@ void Foam::multiphaseSystem::solveAlphas() { phaseModel& phase1 = iter(); - surfaceScalarField& phiAlpha = phiAlphaCorrs[phasei]; - phiAlpha += upwind<scalar>(mesh_, phi_).flux(phase1); + surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei]; + alphaPhi += upwind<scalar>(mesh_, phi_).flux(phase1); MULES::explicitSolve ( geometricOneField(), phase1, - phiAlpha, + alphaPhi, zeroField(), zeroField() ); - phase1.phiAlpha() += phiAlpha; + phase1.alphaPhi() += alphaPhi; Info<< phase1.name() << " volume fraction, min, max = " << phase1.weightedAverage(mesh_.V()).value() @@ -888,7 +888,7 @@ void Foam::multiphaseSystem::solve() dimensionedScalar totalDeltaT = runTime.deltaT(); PtrList<volScalarField> alpha0s(phases_.size()); - PtrList<surfaceScalarField> phiSums(phases_.size()); + PtrList<surfaceScalarField> alphaPhiSums(phases_.size()); int phasei = 0; forAllIter(PtrDictionary<phaseModel>, phases_, iter) @@ -902,7 +902,7 @@ void Foam::multiphaseSystem::solve() new volScalarField(alpha.oldTime()) ); - phiSums.set + alphaPhiSums.set ( phasei, new surfaceScalarField @@ -936,7 +936,7 @@ void Foam::multiphaseSystem::solve() int phasei = 0; forAllIter(PtrDictionary<phaseModel>, phases_, iter) { - phiSums[phasei] += (runTime.deltaT()/totalDeltaT)*iter().phi(); + alphaPhiSums[phasei] += iter().alphaPhi()/nAlphaSubCycles; phasei++; } } @@ -947,7 +947,7 @@ void Foam::multiphaseSystem::solve() phaseModel& phase = iter(); volScalarField& alpha = phase; - phase.phi() = phiSums[phasei]; + phase.alphaPhi() = alphaPhiSums[phasei]; // Correct the time index of the field // to correspond to the global time diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C index 9f6ed4ac731b7a57593fa8f785f569c3fc6b7660..f107cfb44059078808556c01ecfd3d4e3fe60a32 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C @@ -100,11 +100,11 @@ Foam::phaseModel::phaseModel mesh, dimensionedVector("0", dimVelocity/dimTime, vector::zero) ), - phiAlpha_ + alphaPhi_ ( IOobject ( - IOobject::groupName("phiAlpha", phaseName), + IOobject::groupName("alphaPhi", phaseName), mesh.time().timeName(), mesh ), diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H index 54d6119e493e72b1208413cc6312df9a2150371f..d1f1157b9a1896da0e71281f4a058670e7a938d7 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H @@ -80,7 +80,7 @@ class phaseModel volVectorField DDtU_; //- Volumetric flux of the phase - surfaceScalarField phiAlpha_; + surfaceScalarField alphaPhi_; //- Volumetric flux for the phase autoPtr<surfaceScalarField> phiPtr_; @@ -198,14 +198,14 @@ public: return phiPtr_(); } - const surfaceScalarField& phiAlpha() const + const surfaceScalarField& alphaPhi() const { - return phiAlpha_; + return alphaPhi_; } - surfaceScalarField& phiAlpha() + surfaceScalarField& alphaPhi() { - return phiAlpha_; + return alphaPhi_; } //- Correct the phase properties diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index 16d1b5f80961de0a20eb0205deee8df7cf75500b..f1305897ba10d1b24bb0a52e6175c20e8d20ef65 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -573,14 +573,14 @@ void Foam::multiphaseMixture::solveAlphas surfaceScalarField phic(mag(phi_/mesh_.magSf())); phic = min(cAlpha*phic, max(phic)); - PtrList<surfaceScalarField> phiAlphaCorrs(phases_.size()); + PtrList<surfaceScalarField> alphaPhiCorrs(phases_.size()); int phasei = 0; forAllIter(PtrDictionary<phase>, phases_, iter) { phase& alpha = iter(); - phiAlphaCorrs.set + alphaPhiCorrs.set ( phasei, new surfaceScalarField @@ -595,7 +595,7 @@ void Foam::multiphaseMixture::solveAlphas ) ); - surfaceScalarField& phiAlphaCorr = phiAlphaCorrs[phasei]; + surfaceScalarField& alphaPhiCorr = alphaPhiCorrs[phasei]; forAllIter(PtrDictionary<phase>, phases_, iter2) { @@ -605,7 +605,7 @@ void Foam::multiphaseMixture::solveAlphas surfaceScalarField phir(phic*nHatf(alpha, alpha2)); - phiAlphaCorr += fvc::flux + alphaPhiCorr += fvc::flux ( -fvc::flux(-phir, alpha2, alpharScheme), alpha, @@ -619,7 +619,7 @@ void Foam::multiphaseMixture::solveAlphas geometricOneField(), alpha, phi_, - phiAlphaCorr, + alphaPhiCorr, zeroField(), zeroField(), 1, @@ -630,7 +630,7 @@ void Foam::multiphaseMixture::solveAlphas phasei++; } - MULES::limitSum(phiAlphaCorrs); + MULES::limitSum(alphaPhiCorrs); rhoPhi_ = dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0); @@ -652,19 +652,19 @@ void Foam::multiphaseMixture::solveAlphas { phase& alpha = iter(); - surfaceScalarField& phiAlpha = phiAlphaCorrs[phasei]; - phiAlpha += upwind<scalar>(mesh_, phi_).flux(alpha); + surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei]; + alphaPhi += upwind<scalar>(mesh_, phi_).flux(alpha); MULES::explicitSolve ( geometricOneField(), alpha, - phiAlpha, + alphaPhi, zeroField(), zeroField() ); - rhoPhi_ += phiAlpha*alpha.rho(); + rhoPhi_ += alphaPhi*alpha.rho(); Info<< alpha.name() << " volume fraction, min, max = " << alpha.weightedAverage(mesh_.V()).value() diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwclean b/applications/solvers/multiphase/reactingEulerFoam/Allwclean similarity index 77% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwclean rename to applications/solvers/multiphase/reactingEulerFoam/Allwclean index ac1a48d1a8e04429798b107d93682def88ecfc3a..618570ccbb216ece90b34917fb8af9962bf6016e 100755 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwclean +++ b/applications/solvers/multiphase/reactingEulerFoam/Allwclean @@ -5,7 +5,7 @@ set -x wclean libso phaseSystems wclean libso interfacialModels wclean libso interfacialCompositionModels -wclean libso phaseCompressibleTurbulenceModels -wclean +reactingTwoPhaseEulerFoam/Allwclean +reactingMultiphaseEulerFoam/Allwclean # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwmake b/applications/solvers/multiphase/reactingEulerFoam/Allwmake similarity index 81% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwmake rename to applications/solvers/multiphase/reactingEulerFoam/Allwmake index 2566b5a1eb0c768e79d638cde3c1f3b22529fc72..91c6cd94917756b6b2dc8d0fa72f6545aa3ef3b8 100755 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Allwmake +++ b/applications/solvers/multiphase/reactingEulerFoam/Allwmake @@ -7,7 +7,7 @@ wmakeLnInclude interfacialCompositionModels wmake libso phaseSystems wmake libso interfacialModels wmake libso interfacialCompositionModels -wmake libso phaseCompressibleTurbulenceModels -wmake +reactingTwoPhaseEulerFoam/Allwmake +reactingMultiphaseEulerFoam/Allwmake # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/options rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options index 088d504706bbd4e2989e16e4bc6982ca225edffc..b25751cd2d0b5bd8cdb7371d3f5659130819cbb4 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/options +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options @@ -21,7 +21,6 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude LIB_LIBS = \ - -lreactingTwoPhaseSystem \ -lfluidThermophysicalModels \ -lreactionThermophysicalModels \ -lspecie diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModels.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModels.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModels.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/InterfaceCompositionModel/InterfaceCompositionModels.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Raoult/Raoult.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/interfaceCompositionModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/Frossling/Frossling.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/massTransferModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/sphericalMassTransfer/sphericalMassTransfer.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/Make/files rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/Make/options rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options index ba5bb85f9930a4c9504525e4941d938b31d701c7..1e5f8f0aea9bcef1a5c8740a80c1941b44464674 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/Make/options +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options @@ -10,7 +10,6 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude LIB_LIBS = \ - -lreactingTwoPhaseSystem \ -lcompressibleTransportModels \ -lfluidThermophysicalModels \ -lspecie diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/aspectRatioModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/IshiiZuber/IshiiZuber.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Lain/Lain.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Lain/Lain.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Lain/Lain.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Lain/Lain.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaAnalytic/TomiyamaAnalytic.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/TomiyamaCorrelated/TomiyamaCorrelated.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/segregated/segregated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C similarity index 96% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/segregated/segregated.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C index 4b1fc88ddc5e6be40b99f12f341c5d75c390798e..2f3e0db69922a1e91b84b60393beed349d13b1a8 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/segregated/segregated.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C @@ -132,7 +132,10 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::segregated::K() const volScalarField muAlphaI ( alpha1*rho1*nu1*alpha2*rho2*nu2 - /(alpha1*rho1*nu1 + alpha2*rho2*nu2) + /( + max(alpha1, pair_.phase1().residualAlpha())*rho1*nu1 + + max(alpha2, pair_.phase2().residualAlpha())*rho2*nu2 + ) ); volScalarField ReI diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/segregated/segregated.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/dragModels/segregated/segregated.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C index 7e1693dfed28aea4c31021fbbb78c482773feb5c..9b65bb82f77c922998b1cc6a57602b77515f0bd9 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C @@ -60,13 +60,13 @@ Foam::heatTransferModels::RanzMarshall::~RanzMarshall() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> -Foam::heatTransferModels::RanzMarshall::K() const +Foam::heatTransferModels::RanzMarshall::K(const scalar residualAlpha) const { volScalarField Nu(scalar(2) + 0.6*sqrt(pair_.Re())*cbrt(pair_.Pr())); return 6.0 - *max(pair_.dispersed(), residualAlpha_) + *max(pair_.dispersed(), residualAlpha) *pair_.continuous().kappa() *Nu /sqr(pair_.dispersed().d()); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H index c02126528a03c8ddd8c503120b0263a03cb17492..a4987ab0afb0d560298ee35368727f7dc45c5fc5 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H @@ -79,7 +79,7 @@ public: // Member Functions //- The heat transfer function K used in the enthalpy equation - tmp<volScalarField> K() const; + tmp<volScalarField> K(const scalar residualAlpha) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C similarity index 91% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C index 1621b6be19dbeb3fdcaee31f379d0569c8a201cd..3a75fbf3d1f809cc99dfd57b1eab34c487466176 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C @@ -65,4 +65,13 @@ Foam::heatTransferModel::~heatTransferModel() {} +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp<Foam::volScalarField> +Foam::heatTransferModel::K() const +{ + return K(residualAlpha_.value()); +} + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H similarity index 90% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H index 6276e8aee14661d8c789eca3872ec45833a7540a..130b82198b336641f39f1d789aa64c1339daaf78 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H @@ -117,7 +117,13 @@ public: //- The heat transfer function K used in the enthalpy equation // ddt(alpha1*rho1*ha) + ... = ... K*(Ta - Tb) // ddt(alpha2*rho2*hb) + ... = ... K*(Tb - Ta) - virtual tmp<volScalarField> K() const = 0; + tmp<volScalarField> K() const; + + //- The heat transfer function K used in the enthalpy equation + // ddt(alpha1*rho1*ha) + ... = ... K*(Ta - Tb) + // ddt(alpha2*rho2*hb) + ... = ... K*(Tb - Ta) + // with a specified residual volume fraction + virtual tmp<volScalarField> K(const scalar residualAlpha) const = 0; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C index 4eec6de0283456fdf08fa62eab746a36275b8fe5..0672f16ef8a3a91a4811f042729013f490c7bffa 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.C @@ -65,11 +65,14 @@ Foam::heatTransferModels::sphericalHeatTransfer::~sphericalHeatTransfer() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> -Foam::heatTransferModels::sphericalHeatTransfer::K() const +Foam::heatTransferModels::sphericalHeatTransfer::K +( + const scalar residualAlpha +) const { return 60.0 - *max(pair_.dispersed(), residualAlpha_) + *max(pair_.dispersed(), residualAlpha) *pair_.continuous().kappa() /sqr(pair_.dispersed().d()); } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H index 88d098668fa581edb0add1c704e187b590565282..f3164df9bd82239277b36fa478c241434223d6b9 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer/sphericalHeatTransfer.H @@ -79,7 +79,7 @@ public: // Member Functions //- The heat transfer function K used in the enthalpy equation - tmp<volScalarField> K() const; + tmp<volScalarField> K(const scalar residualAlpha) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/TomiyamaLift/TomiyamaLift.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/constantLiftCoefficient/constantLiftCoefficient.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/liftModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/liftModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/liftModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/liftModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/liftModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/liftModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/liftModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/liftModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/noLift/noLift.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/noLift/noLift.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/noLift/noLift.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/noLift/noLift.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/noLift/noLift.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/noLift/noLift.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/liftModels/noLift/noLift.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/noLift/noLift.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/noSwarm/noSwarm.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/swarmCorrection.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C similarity index 91% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C index d5d805c08511d4a44431b0b4ffee006f08eeceb6..0bb29c1bea3c7db63dd72a8a8881ba5d0b262dff 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C @@ -26,6 +26,8 @@ License #include "turbulentDispersionModel.H" #include "phasePair.H" #include "fvcGrad.H" +#include "surfaceInterpolate.H" +#include "fvcSnGrad.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -66,4 +68,11 @@ Foam::turbulentDispersionModel::F() const } +Foam::tmp<Foam::surfaceScalarField> +Foam::turbulentDispersionModel::Ff() const +{ + return fvc::interpolate(D())*fvc::snGrad(pair_.dispersed()); +} + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H index 932fdb3801c3017939ff20fa2fed3d0d9e430bc0..56e72ebcacb60c763dd41ed925c18abc3f6a9c26 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H @@ -120,6 +120,9 @@ public: //- Turbulent dispersion force virtual tmp<volVectorField> F() const; + + //- Turbulent dispersion force on faces + virtual tmp<surfaceScalarField> Ff() const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/Lamb/Lamb.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/noVirtualMass/noVirtualMass.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/virtualMassModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDependentModel/wallDependentModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/noWallLubrication/noWallLubrication.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C similarity index 89% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C index da6c62ade5912aa6ac5c89fc4e2eb73722f9778b..36e31630a49daedc405f2057caba294528aa0a63 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C @@ -223,6 +223,66 @@ Foam::BlendedInterfacialModel<ModelType>::K() const } +template<class ModelType> +Foam::tmp<Foam::volScalarField> +Foam::BlendedInterfacialModel<ModelType>::K(const scalar residualAlpha) const +{ + tmp<volScalarField> f1, f2; + + if (model_.valid() || model1In2_.valid()) + { + f1 = blending_.f1(phase1_, phase2_); + } + + if (model_.valid() || model2In1_.valid()) + { + f2 = blending_.f2(phase1_, phase2_); + } + + tmp<volScalarField> x + ( + new volScalarField + ( + IOobject + ( + ModelType::typeName + ":K", + phase1_.mesh().time().timeName(), + phase1_.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + phase1_.mesh(), + dimensionedScalar("zero", ModelType::dimK, 0) + ) + ); + + if (model_.valid()) + { + x() += model_->K(residualAlpha)*(scalar(1) - f1() - f2()); + } + if (model1In2_.valid()) + { + x() += model1In2_->K(residualAlpha)*f1; + } + if (model2In1_.valid()) + { + x() += model2In1_->K(residualAlpha)*f2; + } + + if + ( + correctFixedFluxBCs_ + && (model_.valid() || model1In2_.valid() || model2In1_.valid()) + ) + { + correctFixedFluxBCs(x()); + } + + return x; +} + + template<class ModelType> Foam::tmp<Foam::surfaceScalarField> Foam::BlendedInterfacialModel<ModelType>::Kf() const diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H index bd2ec60235624af8b37d191120ab2a0278e5863b..4be8f0b347ea5178e9317f44ce55616893052e59 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.H @@ -136,6 +136,9 @@ public: //- Return the blended force coefficient tmp<volScalarField> K() const; + //- Return the blended force coefficient with a specified residual alpha + tmp<volScalarField> K(const scalar residualAlpha) const; + //- Return the face blended force coefficient tmp<surfaceScalarField> Kf() const; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/noBlending/noBlending.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/Make/files b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files similarity index 63% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/Make/files rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files index 538bd7d63712f1a3b809a33767310e28931e5264..1f516dc2437c5f1a0eb3b03dc9e1388511a686c1 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/Make/files +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files @@ -13,20 +13,12 @@ diameterModels/diameterModel/newDiameterModel.C diameterModels/constantDiameter/constantDiameter.C diameterModels/isothermalDiameter/isothermalDiameter.C -diameterModels/IATE/IATE.C -diameterModels/IATE/IATEsources/IATEsource/IATEsource.C -diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C -diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C -diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C - BlendedInterfacialModel/blendingMethods/blendingMethod/blendingMethod.C BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C BlendedInterfacialModel/blendingMethods/noBlending/noBlending.C BlendedInterfacialModel/blendingMethods/linear/linear.C BlendedInterfacialModel/blendingMethods/hyperbolic/hyperbolic.C -twoPhaseSystem/twoPhaseSystem.C -twoPhaseSystem/newTwoPhaseSystem.C -twoPhaseSystem/twoPhaseSystems.C +reactionThermo/hRefConstThermos.C -LIB = $(FOAM_LIBBIN)/libreactingTwoPhaseSystem +LIB = $(FOAM_LIBBIN)/libreactingPhaseSystem diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/Make/options b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/Make/options rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C similarity index 80% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C index ff4fb10e9dddaf69fb27da3418c39a9516ba56a8..3db07ef8044bd6357e5e2cebc13732914ec2a2b9 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.C @@ -151,6 +151,16 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>:: // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // +template<class BasePhaseSystem> +bool Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::transfersMass +( + const phaseModel& phase +) const +{ + return true; +} + + template<class BasePhaseSystem> Foam::tmp<Foam::volScalarField> Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::dmdt @@ -164,6 +174,60 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::dmdt } +template<class BasePhaseSystem> +Foam::tmp<Foam::volScalarField> +Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::dmdt +( + const Foam::phaseModel& phase +) const +{ + tmp<volScalarField> tdmdt + ( + new volScalarField + ( + IOobject + ( + IOobject::groupName("dmdt", phase.name()), + this->mesh_.time().timeName(), + this->mesh_ + ), + this->mesh_, + dimensionedScalar("zero", dimDensity/dimTime, 0) + ) + ); + + forAllConstIter + ( + phaseSystem::phasePairTable, + this->phasePairs_, + phasePairIter + ) + { + const phasePair& pair(phasePairIter()); + + if (pair.ordered()) + { + continue; + } + + const phaseModel* phase1 = &pair.phase1(); + const phaseModel* phase2 = &pair.phase2(); + + forAllConstIter(phasePair, pair, iter) + { + if (phase1 == &phase) + { + tdmdt() += this->dmdt(pair); + } + + Swap(phase1, phase2); + } + } + + return tdmdt; +} + + template<class BasePhaseSystem> Foam::autoPtr<Foam::phaseSystem::momentumTransferTable> Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const @@ -192,11 +256,11 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const const volVectorField& U2(pair.phase2().U()); const volScalarField dmdt(this->dmdt(pair)); - const volScalarField dmdt12(posPart(dmdt)); - const volScalarField dmdt21(negPart(dmdt)); + const volScalarField dmdt21(posPart(dmdt)); + const volScalarField dmdt12(negPart(dmdt)); - *eqns[pair.phase1().name()] += fvm::Sp(dmdt21, U1) - dmdt21*U2; - *eqns[pair.phase2().name()] += dmdt12*U1 - fvm::Sp(dmdt12, U2); + *eqns[pair.phase1().name()] += dmdt21*U2 - fvm::Sp(dmdt21, U1); + *eqns[pair.phase2().name()] -= dmdt12*U1 - fvm::Sp(dmdt12, U2); } return eqnsPtr; @@ -214,14 +278,9 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::heatTransfer() const phaseSystem::heatTransferTable& eqns = eqnsPtr(); - forAllConstIter - ( - phaseSystem::phaseModelTable, - this->phaseModels_, - phaseModelIter - ) + forAll(this->phaseModels_, phasei) { - const phaseModel& phase(phaseModelIter()); + const phaseModel& phase = this->phaseModels_[phasei]; eqns.insert ( @@ -283,7 +342,7 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::heatTransfer() const } } - // Source term due to mass trasfer + // Source term due to mass transfer forAllConstIter ( phaseSystem::phasePairTable, @@ -308,17 +367,19 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::heatTransfer() const const volScalarField& K2(phase2.K()); const volScalarField dmdt(this->dmdt(pair)); - const volScalarField dmdt12(posPart(dmdt)); - const volScalarField dmdt21(negPart(dmdt)); + const volScalarField dmdt21(posPart(dmdt)); + const volScalarField dmdt12(negPart(dmdt)); const volScalarField& Tf(*Tf_[pair]); *eqns[phase1.name()] += - fvm::Sp(dmdt21, he1) + dmdt21*K1 - - dmdt21*(phase2.thermo().he(phase2.thermo().p(), Tf) + K2); - - *eqns[phase2.name()] += - dmdt12*(phase1.thermo().he(phase1.thermo().p(), Tf) + K1) - - fvm::Sp(dmdt12, he2) - dmdt12*K2; + dmdt21*(phase1.thermo().he(phase1.thermo().p(), Tf)) + - fvm::Sp(dmdt21, he1) + + dmdt21*(K2 - K1); + + *eqns[phase2.name()] -= + dmdt12*(phase2.thermo().he(phase2.thermo().p(), Tf)) + - fvm::Sp(dmdt12, he2) + + dmdt12*(K1 - K2); } return eqnsPtr; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H similarity index 92% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H index 3f20c575f83d4abccd2d1504c1134373eb7c2325..3a0cbd4ba23dd7c3e2eafe8e17c519f3798cbba6 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatAndMassTransferPhaseSystem/HeatAndMassTransferPhaseSystem.H @@ -120,11 +120,14 @@ public: // Member Functions + //- Return true if there is mass transfer for phase + virtual bool transfersMass(const phaseModel& phase) const; + //- Return the interfacial mass flow rate - virtual tmp<volScalarField> dmdt - ( - const phasePairKey& key - ) const; + virtual tmp<volScalarField> dmdt(const phasePairKey& key) const; + + //- Return the total interfacial mass transfer rate for phase + virtual tmp<volScalarField> dmdt(const phaseModel& phase) const; //- Return the momentum transfer matrices virtual autoPtr<phaseSystem::momentumTransferTable> diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C similarity index 90% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C index 0a5d8a7060b2afd5a16173fb70ea27a7d4ed291d..07b41eb77109d58fc0fc99c4a2cac2d4b940e65f 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C @@ -57,6 +57,16 @@ Foam::HeatTransferPhaseSystem<BasePhaseSystem>::~HeatTransferPhaseSystem() // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // +template<class BasePhaseSystem> +bool Foam::HeatTransferPhaseSystem<BasePhaseSystem>::transfersMass +( + const phaseModel& phase +) const +{ + return false; +} + + template<class BasePhaseSystem> Foam::tmp<Foam::volScalarField> Foam::HeatTransferPhaseSystem<BasePhaseSystem>::dmdt @@ -85,6 +95,17 @@ Foam::HeatTransferPhaseSystem<BasePhaseSystem>::dmdt } +template<class BasePhaseSystem> +Foam::tmp<Foam::volScalarField> +Foam::HeatTransferPhaseSystem<BasePhaseSystem>::dmdt +( + const Foam::phaseModel& phase +) const +{ + return tmp<volScalarField>(NULL); +} + + template<class BasePhaseSystem> Foam::autoPtr<Foam::phaseSystem::heatTransferTable> Foam::HeatTransferPhaseSystem<BasePhaseSystem>::heatTransfer() const @@ -96,14 +117,9 @@ Foam::HeatTransferPhaseSystem<BasePhaseSystem>::heatTransfer() const phaseSystem::heatTransferTable& eqns = eqnsPtr(); - forAllConstIter - ( - phaseSystem::phaseModelTable, - this->phaseModels_, - phaseModelIter - ) + forAll(this->phaseModels_, phasei) { - const phaseModel& phase(phaseModelIter()); + const phaseModel& phase = this->phaseModels_[phasei]; eqns.insert ( diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H similarity index 92% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H index 6bb96c90baeacb80ae3ed46d15168a899258fbfd..0c908239fdb9a18f451a305c35d8f6f47584aa03 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H @@ -89,12 +89,18 @@ public: // Member Functions + //- Return true if there is mass transfer for phase + virtual bool transfersMass(const phaseModel& phase) const; + //- Return the interfacial mass flow rate virtual tmp<volScalarField> dmdt ( const phasePairKey& key ) const; + //- Return the total interfacial mass transfer rate for phase + virtual tmp<volScalarField> dmdt(const phaseModel& phase) const; + //- Return the heat transfer matrices virtual autoPtr<phaseSystem::heatTransferTable> heatTransfer() const; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C index 47c994334d63bcc48c9be3fd696b4f21fb68647c..fe0343b2ac47f04649a3919ef8de8499675d631f 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C @@ -69,14 +69,9 @@ massTransfer() const phaseSystem::massTransferTable& eqns = eqnsPtr(); - forAllConstIter - ( - phaseSystem::phaseModelTable, - this->phaseModels_, - phaseModelIter - ) + forAll(this->phaseModels_, phasei) { - const phaseModel& phase(phaseModelIter()); + const phaseModel& phase = this->phaseModels_[phasei]; const PtrList<volScalarField>& Yi = phase.Y(); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C similarity index 72% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C index 9646a6a80c1c167f9eebf08285ee963778224507..f50bd61f9ea540d88f3b4822eb5dbc5395f98128 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C @@ -38,6 +38,7 @@ License #include "fvmDiv.H" #include "fvmSup.H" #include "fvcDiv.H" +#include "fvcSnGrad.H" #include "fvMatrix.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -155,6 +156,62 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Kdf } +template<class BasePhaseSystem> +Foam::tmp<Foam::volScalarField> +Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Kd +( + const Foam::phaseModel& phase +) const +{ + tmp<volScalarField> tKd + ( + new volScalarField + ( + IOobject + ( + IOobject::groupName("Kd", phase.name()), + this->mesh_.time().timeName(), + this->mesh_ + ), + this->mesh_, + dimensionedScalar + ( + IOobject::groupName("Kd", phase.name()), + dimensionSet(1, -3, -1, 0, 0), + 0 + ) + ) + ); + + forAllConstIter + ( + phaseSystem::KdTable, + Kds_, + KdIter + ) + { + const volScalarField& K(*KdIter()); + + const phasePair& pair(this->phasePairs_[KdIter.key()]); + + const phaseModel* phase1 = &pair.phase1(); + const phaseModel* phase2 = &pair.phase2(); + + forAllConstIter(phasePair, pair, iter) + { + if (phase1 == &phase) + { + tKd() += K; + } + + Swap(phase1, phase2); + } + } + + return tKd; +} + + template<class BasePhaseSystem> Foam::tmp<Foam::volScalarField> Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Vm @@ -357,14 +414,9 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const phaseSystem::momentumTransferTable& eqns = eqnsPtr(); - forAllConstIter - ( - phaseSystem::phaseModelTable, - this->phaseModels_, - phaseModelIter - ) + forAll(this->phaseModels_, phasei) { - const phaseModel& phase(phaseModelIter()); + const phaseModel& phase = this->phaseModels_[phasei]; eqns.insert ( @@ -401,7 +453,7 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const forAllConstIter(phasePair, pair, iter) { - const volVectorField& U(phase->U()); + const volVectorField& U = phase->U(); *eqns[phase->name()] -= fvm::Sp(K, U); @@ -437,23 +489,69 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const forAllConstIter(phasePair, pair, iter) { - const volVectorField& U(phase->U()); - const surfaceScalarField& phi(phase->phi()); + const volVectorField& U = phase->U(); + const surfaceScalarField& phi = phase->phi(); - *eqns[phase->name()] += - - Vm + *eqns[phase->name()] -= + Vm *( fvm::ddt(U) + fvm::div(phi, U) - fvm::Sp(fvc::div(phi), U) - otherPhase->DUDt() ) - - this->MRF_.DDt(Vm, U - otherPhase->U()); + + this->MRF_.DDt(Vm, U - otherPhase->U()); Swap(phase, otherPhase); } } + return eqnsPtr; +} + + +template<class BasePhaseSystem> +Foam::volVectorField& Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::setF +( + PtrList<volVectorField>& Fs, const label phasei +) const +{ + if (!Fs.set(phasei)) + { + Fs.set + ( + phasei, + new volVectorField + ( + IOobject + ( + liftModel::typeName + ":F", + this->mesh_.time().timeName(), + this->mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + this->mesh_, + dimensionedVector("zero", liftModel::dimF, vector::zero) + ) + ); + } + + return Fs[phasei]; +} + + +template<class BasePhaseSystem> +Foam::autoPtr<Foam::PtrList<Foam::volVectorField> > +Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Fs() const +{ + autoPtr<PtrList<volVectorField> > tFs + ( + new PtrList<volVectorField>(this->phases().size()) + ); + PtrList<volVectorField>& Fs = tFs(); + // Add the lift force forAllConstIter ( @@ -466,8 +564,8 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const const phasePair& pair(this->phasePairs_[liftModelIter.key()]); - *eqns[pair.phase1().name()] += F; - *eqns[pair.phase2().name()] -= F; + setF(Fs, pair.phase1().index()) += F; + setF(Fs, pair.phase2().index()) -= F; } // Add the wall lubrication force @@ -483,10 +581,65 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const const phasePair& pair(this->phasePairs_[wallLubricationModelIter.key()]); - *eqns[pair.phase1().name()] += F; - *eqns[pair.phase2().name()] -= F; + setF(Fs, pair.phase1().index()) += F; + setF(Fs, pair.phase2().index()) -= F; + } + + return tFs; +} + + +template<class BasePhaseSystem> +Foam::surfaceScalarField& +Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::setPhiD +( + PtrList<surfaceScalarField>& phiDs, const label phasei +) const +{ + if (!phiDs.set(phasei)) + { + phiDs.set + ( + phasei, + new surfaceScalarField + ( + IOobject + ( + turbulentDispersionModel::typeName + ":phiD", + this->mesh_.time().timeName(), + this->mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + this->mesh_, + dimensionedScalar + ( + "zero", + dimTime*dimArea*turbulentDispersionModel::dimF/dimDensity, + 0 + ) + ) + ); } + return phiDs[phasei]; +} + + +template<class BasePhaseSystem> +Foam::autoPtr<Foam::PtrList<Foam::surfaceScalarField> > +Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::phiDs +( + const PtrList<volScalarField>& rAUs +) const +{ + autoPtr<PtrList<surfaceScalarField> > tphiDs + ( + new PtrList<surfaceScalarField>(this->phases().size()) + ); + PtrList<surfaceScalarField>& phiDs = tphiDs(); + // Add the turbulent dispersion force forAllConstIter ( @@ -495,16 +648,22 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::momentumTransfer() const turbulentDispersionModelIter ) { - const volVectorField F(turbulentDispersionModelIter()->F<vector>()); - const phasePair& pair(this->phasePairs_[turbulentDispersionModelIter.key()]); - *eqns[pair.phase1().name()] += F; - *eqns[pair.phase2().name()] -= F; + const volScalarField D(turbulentDispersionModelIter()->D()); + const surfaceScalarField snGradAlpha1 + ( + fvc::snGrad(pair.phase1())*this->mesh_.magSf() + ); + + setPhiD(phiDs, pair.phase1().index()) += + fvc::interpolate(rAUs[pair.phase1().index()]*D)*snGradAlpha1; + setPhiD(phiDs, pair.phase2().index()) -= + fvc::interpolate(rAUs[pair.phase2().index()]*D)*snGradAlpha1; } - return eqnsPtr; + return tphiDs; } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H similarity index 84% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H index 5c9f057bedc2fa2f8871325a735e4416cad4ce00..2f787ed004a96329fc1cd8b11fd81d517286ac85 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.H @@ -133,6 +133,20 @@ private: //- Turbulent dispersion models turbulentDispersionModelTable turbulentDispersionModels_; + //- Construct element phasei of Fs if not set and return + // Used by Fs() + volVectorField& setF + ( + PtrList<volVectorField>& Fs, const label phasei + ) const; + + //- Construct element phasei of phiDs if not set and return + // Used by phiDs() + surfaceScalarField& setPhiD + ( + PtrList<surfaceScalarField>& phiDs, const label phasei + ) const; + public: @@ -148,12 +162,21 @@ public: // Member Functions + //- Constant access to drag coefficients + virtual const phaseSystem::KdTable& Kds() const + { + return Kds_; + } + //- Return the drag coefficient virtual tmp<volScalarField> Kd(const phasePairKey& key) const; //- Return the face drag coefficient virtual tmp<surfaceScalarField> Kdf(const phasePairKey& key) const; + //- Return the drag coefficient for phase + virtual tmp<volScalarField> Kd(const phaseModel& phase) const; + //- Return the virtual mass coefficient virtual tmp<volScalarField> Vm(const phasePairKey& key) const; @@ -163,6 +186,15 @@ public: //- Return the combined force (lift + wall-lubrication) virtual tmp<volVectorField> F(const phasePairKey& key) const; + //- Return the combined force (lift + wall-lubrication) + virtual autoPtr<PtrList<volVectorField> > Fs() const; + + //- Return the turbulent dispersion force on faces for phase pair + virtual autoPtr<PtrList<surfaceScalarField> > phiDs + ( + const PtrList<volScalarField>& rAUs + ) const; + //- Return the combined face-force (lift + wall-lubrication) virtual tmp<surfaceScalarField> Ff(const phasePairKey& key) const; diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C new file mode 100644 index 0000000000000000000000000000000000000000..175a993e304c087b685d6aed02137ce16940719e --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C @@ -0,0 +1,372 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "ThermalPhaseChangePhaseSystem.H" +#include "fvCFD.H" +#include "alphatPhaseChangeWallFunctionFvPatchScalarField.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class BasePhaseSystem> +Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>:: +ThermalPhaseChangePhaseSystem +( + const fvMesh& mesh +) +: + HeatAndMassTransferPhaseSystem<BasePhaseSystem>(mesh), + volatile_(this->lookup("volatile")), + saturationModel_(saturationModel::New(this->subDict("saturationModel"))), + massTransfer_(this->lookup("massTransfer")) +{ + + forAllConstIter + ( + phaseSystem::phasePairTable, + this->phasePairs_, + phasePairIter + ) + { + const phasePair& pair(phasePairIter()); + + if (pair.ordered()) + { + continue; + } + + // Initially assume no mass transfer + iDmdt_.insert + ( + pair, + new volScalarField + ( + IOobject + ( + IOobject::groupName("iDmdt", pair.name()), + this->mesh().time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + this->mesh(), + dimensionedScalar("zero", dimDensity/dimTime, 0) + ) + ); + + // Initially assume no mass transfer + wDmdt_.insert + ( + pair, + new volScalarField + ( + IOobject + ( + IOobject::groupName("wDmdt", pair.name()), + this->mesh().time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + this->mesh(), + dimensionedScalar("zero", dimDensity/dimTime, 0) + ) + ); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +template<class BasePhaseSystem> +Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>:: +~ThermalPhaseChangePhaseSystem() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +template<class BasePhaseSystem> +const Foam::saturationModel& +Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::saturation() const +{ + return saturationModel_(); +} + + +template<class BasePhaseSystem> +Foam::autoPtr<Foam::phaseSystem::massTransferTable> +Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::massTransfer() const +{ + // Create a mass transfer matrix for each species of each phase + autoPtr<phaseSystem::massTransferTable> eqnsPtr + ( + new phaseSystem::massTransferTable() + ); + + phaseSystem::massTransferTable& eqns = eqnsPtr(); + + forAll(this->phaseModels_, phasei) + { + const phaseModel& phase = this->phaseModels_[phasei]; + + const PtrList<volScalarField>& Yi = phase.Y(); + + forAll(Yi, i) + { + eqns.insert + ( + Yi[i].name(), + new fvScalarMatrix(Yi[i], dimMass/dimTime) + ); + } + } + + forAllConstIter + ( + phaseSystem::phasePairTable, + this->phasePairs_, + phasePairIter + ) + { + const phasePair& pair(phasePairIter()); + + if (pair.ordered()) + { + continue; + } + const phaseModel& phase = pair.phase1(); + const phaseModel& otherPhase = pair.phase2(); + + const word name + ( + IOobject::groupName(volatile_, phase.name()) + ); + + const word otherName + ( + IOobject::groupName(volatile_, otherPhase.name()) + ); + + const volScalarField dmdt(this->dmdt(pair)); + const volScalarField dmdt12(posPart(dmdt)); + const volScalarField dmdt21(negPart(dmdt)); + + *eqns[name] += fvm::Sp(dmdt21, eqns[name]->psi()) - dmdt21; + *eqns[otherName] += dmdt12 - fvm::Sp(dmdt12, eqns[otherName]->psi()); + } + + return eqnsPtr; +} + + +template<class BasePhaseSystem> +void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo() +{ + typedef compressible::alphatPhaseChangeWallFunctionFvPatchScalarField + alphatPhaseChangeWallFunction; + + BasePhaseSystem::correctThermo(); + + forAllConstIter + ( + phaseSystem::phasePairTable, + this->phasePairs_, + phasePairIter + ) + { + const phasePair& pair(phasePairIter()); + + if (pair.ordered()) + { + continue; + } + + const phaseModel& phase1 = pair.phase1(); + const phaseModel& phase2 = pair.phase2(); + + const volScalarField& T1(phase1.thermo().T()); + const volScalarField& T2(phase2.thermo().T()); + + const volScalarField& he1(phase1.thermo().he()); + const volScalarField& he2(phase2.thermo().he()); + + volScalarField& dmdt(*this->dmdt_[pair]); + volScalarField& iDmdt(*this->iDmdt_[pair]); + volScalarField& wDmdt(*this->wDmdt_[pair]); + + volScalarField& Tf = *this->Tf_[pair]; + + volScalarField hef1(phase1.thermo().he(phase1.thermo().p(), Tf)); + volScalarField hef2(phase2.thermo().he(phase2.thermo().p(), Tf)); + + if (massTransfer_ ) + { + volScalarField H1 + ( + this->heatTransferModels_[pair][pair.first()]->K(0) + ); + + volScalarField H2 + ( + this->heatTransferModels_[pair][pair.second()]->K(0) + ); + + Tf = saturationModel_->Tsat(phase1.thermo().p()); + + scalar iDmdtRelax(this->mesh().fieldRelaxationFactor("iDmdt")); + + iDmdt = + (1 - iDmdtRelax)*iDmdt + + iDmdtRelax*(H1*(Tf - T1) + H2*(Tf - T2)) + /min + ( + (pos(iDmdt)*he2 + neg(iDmdt)*hef2) + - (neg(iDmdt)*he1 + pos(iDmdt)*hef1), + 0.3*mag(hef2 - hef1) + ); + + Info<< "iDmdt." << pair.name() + << ": min = " << min(iDmdt.internalField()) + << ", mean = " << average(iDmdt.internalField()) + << ", max = " << max(iDmdt.internalField()) + << ", integral = " << fvc::domainIntegrate(iDmdt).value() + << endl; + } + else + { + iDmdt == dimensionedScalar("0", dmdt.dimensions(), 0); + } + + volScalarField H1(this->heatTransferModels_[pair][pair.first()]->K()); + volScalarField H2(this->heatTransferModels_[pair][pair.second()]->K()); + + // Limit the H[12] boundary field to avoid /0 + const scalar HLimit = 1e-4; + H1.boundaryField() = + max(H1.boundaryField(), phase1.boundaryField()*HLimit); + H2.boundaryField() = + max(H2.boundaryField(), phase2.boundaryField()*HLimit); + + volScalarField mDotL + ( + iDmdt* + ( + (pos(iDmdt)*he2 + neg(iDmdt)*hef2) + - (neg(iDmdt)*he1 + pos(iDmdt)*hef1) + ) + ); + + Tf = (H1*T1 + H2*T2 + mDotL)/(H1 + H2); + + Info<< "Tf." << pair.name() + << ": min = " << min(Tf.internalField()) + << ", mean = " << average(Tf.internalField()) + << ", max = " << max(Tf.internalField()) + << endl; + + // Accumulate dmdt contributions from boundaries + if + ( + phase2.mesh().foundObject<volScalarField> + ( + "alphat." + phase2.name() + ) + ) + { + scalar wDmdtRelax(this->mesh().fieldRelaxationFactor("wDmdt")); + wDmdt *= (1 - wDmdtRelax); + + const volScalarField& alphat = + phase2.mesh().lookupObject<volScalarField> + ( + "alphat." + phase2.name() + ); + + const fvPatchList& patches = this->mesh().boundary(); + forAll(patches, patchi) + { + const fvPatch& currPatch = patches[patchi]; + + if + ( + isA<alphatPhaseChangeWallFunction> + ( + alphat.boundaryField()[patchi] + ) + ) + { + const scalarField& patchDmdt = + refCast<const alphatPhaseChangeWallFunction> + ( + alphat.boundaryField()[patchi] + ).dmdt(); + + forAll(patchDmdt,facei) + { + label faceCelli = currPatch.faceCells()[facei]; + wDmdt[faceCelli] += wDmdtRelax*patchDmdt[facei]; + } + } + } + + Info<< "wDmdt." << pair.name() + << ": min = " << min(wDmdt.internalField()) + << ", mean = " << average(wDmdt.internalField()) + << ", max = " << max(wDmdt.internalField()) + << ", integral = " << fvc::domainIntegrate(wDmdt).value() + << endl; + } + + dmdt = wDmdt + iDmdt; + + Info<< "dmdt." << pair.name() + << ": min = " << min(dmdt.internalField()) + << ", mean = " << average(dmdt.internalField()) + << ", max = " << max(dmdt.internalField()) + << ", integral = " << fvc::domainIntegrate(dmdt).value() + << endl; + } +} + + +template<class BasePhaseSystem> +bool Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::read() +{ + if (BasePhaseSystem::read()) + { + bool readOK = true; + + // Models ... + + return readOK; + } + else + { + return false; + } +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H similarity index 88% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H index 9a0a0d109a446a09a79c29dfd62cce912ccb3453..e67b8209fe28c3773a0a72524d0d4e50036428c1 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H @@ -43,6 +43,7 @@ SourceFiles #include "HeatAndMassTransferPhaseSystem.H" #include "saturationModel.H" +#include "Switch.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -69,6 +70,17 @@ protected: //- The saturation model used to evaluate Tsat = Tf autoPtr<saturationModel> saturationModel_; + // Mass transfer enabled + Switch massTransfer_; + + //- Interfacial Mass transfer rate + HashPtrTable<volScalarField, phasePairKey, phasePairKey::hash> + iDmdt_; + + //- Wall Mass transfer rate + HashPtrTable<volScalarField, phasePairKey, phasePairKey::hash> + wDmdt_; + public: @@ -84,6 +96,9 @@ public: // Member Functions + //- Return the saturationModel + const saturationModel& saturation() const; + //- Return the mass transfer matrices virtual autoPtr<phaseSystem::massTransferTable> massTransfer() const; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/constantDiameter/constantDiameter.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/isothermalDiameter/isothermalDiameter.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C similarity index 84% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C index 3a2786d75c1851d2d1d7d5c0de0fc67addcaadba..8d705049f79da933f93d29c1fa03de9127348374 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C @@ -32,21 +32,12 @@ template<class BasePhaseModel> Foam::AnisothermalPhaseModel<BasePhaseModel>::AnisothermalPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName), - divU_ - ( - IOobject - ( - IOobject::groupName("divU", this->name()), - fluid.mesh().time().timeName(), - fluid.mesh() - ), - fluid.mesh(), - dimensionedScalar("divU", dimless/dimTime, 0) - ), + BasePhaseModel(fluid, phaseName, index), + divU_(NULL), K_ ( IOobject @@ -104,7 +95,7 @@ Foam::AnisothermalPhaseModel<BasePhaseModel>::heEqn() volScalarField& he = this->thermo_->he(); - return + tmp<fvScalarMatrix> tEEqn ( fvm::ddt(alpha, this->rho(), he) + fvm::div(alphaRhoPhi, he) - fvm::Sp(contErr, he) @@ -118,28 +109,35 @@ Foam::AnisothermalPhaseModel<BasePhaseModel>::heEqn() *fvc::interpolate(alphaEff), he ) - - + ( - he.name() == this->thermo_->phasePropertyName("e") - ? fvc::ddt(alpha)*this->thermo().p() - + fvc::div(alphaPhi, this->thermo().p()) - : -alpha*this->fluid().dpdt() - ) == this->Sh() ); + + // Add the appropriate pressure-work term + if (he.name() == this->thermo_->phasePropertyName("e")) + { + tEEqn() += + fvc::ddt(alpha)*this->thermo().p() + + fvc::div(alphaPhi, this->thermo().p()); + } + else if (this->thermo_->dpdt()) + { + tEEqn() -= alpha*this->fluid().dpdt(); + } + + return tEEqn; } template<class BasePhaseModel> bool Foam::AnisothermalPhaseModel<BasePhaseModel>::compressible() const { - return true; + return !this->thermo().incompressible(); } template<class BasePhaseModel> -const Foam::volScalarField& +const Foam::tmp<Foam::volScalarField>& Foam::AnisothermalPhaseModel<BasePhaseModel>::divU() const { return divU_; @@ -148,7 +146,10 @@ Foam::AnisothermalPhaseModel<BasePhaseModel>::divU() const template<class BasePhaseModel> void -Foam::AnisothermalPhaseModel<BasePhaseModel>::divU(const volScalarField& divU) +Foam::AnisothermalPhaseModel<BasePhaseModel>::divU +( + const tmp<volScalarField>& divU +) { divU_ = divU; } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H similarity index 91% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H index e7a76bf496e24375cb3956492abc254ee800ccd4..a8c4be694a98d09b48b616287148bd192d37b36a 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H @@ -55,7 +55,7 @@ class AnisothermalPhaseModel // Private data //- Dilatation rate - volScalarField divU_; + tmp<volScalarField> divU_; //- Kinetic energy volScalarField K_; @@ -65,7 +65,12 @@ public: // Constructors - AnisothermalPhaseModel(const phaseSystem& fluid, const word& phaseName); + AnisothermalPhaseModel + ( + const phaseSystem& fluid, + const word& phaseName, + const label index + ); //- Destructor @@ -90,10 +95,10 @@ public: virtual bool compressible() const; //- Return the phase dilatation rate (d(alpha)/dt + div(alpha*phi)) - virtual const volScalarField& divU() const; + virtual const tmp<volScalarField>& divU() const; //- Set the phase dilatation rate (d(alpha)/dt + div(alpha*phi)) - virtual void divU(const volScalarField& divU); + virtual void divU(const tmp<volScalarField>& divU); //- Return the phase kinetic energy virtual const volScalarField& K() const; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C similarity index 96% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C index 909a5418b92ca77c9154671dab4334810244e493..ba5e90459bf7da610f725cfa9173c607d8e28887 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C @@ -32,10 +32,11 @@ template<class BasePhaseModel> Foam::InertPhaseModel<BasePhaseModel>::InertPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName) + BasePhaseModel(fluid, phaseName, index) {} diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H index c74088eaa505413fa79731e47dc6834b708f3bdd..77823d44913610eebdabda9bbabac558445b7685 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H @@ -56,7 +56,12 @@ public: // Constructors - InertPhaseModel(const phaseSystem& fluid, const word& phaseName); + InertPhaseModel + ( + const phaseSystem& fluid, + const word& phaseName, + const label index + ); //- Destructor diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C index 07f99c5a5d23dc2d5cf315705a72e127f44b5bd2..19b7b73ebe10fb1654d7b05e6790a01eff49e6f9 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.C @@ -32,10 +32,11 @@ template<class BasePhaseModel> Foam::IsothermalPhaseModel<BasePhaseModel>::IsothermalPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName) + BasePhaseModel(fluid, phaseName, index) {} diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H index d43a1a6119b6efbcb8148e620074e04850454cc2..bdf1a14aed60fd762c52d544f122b24c1c55dab7 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/IsothermalPhaseModel/IsothermalPhaseModel.H @@ -57,7 +57,12 @@ public: // Constructors - IsothermalPhaseModel(const phaseSystem& fluid, const word& phaseName); + IsothermalPhaseModel + ( + const phaseSystem& fluid, + const word& phaseName, + const label index + ); //- Destructor diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C index b1869b9fbfe2ac7f0e85b3bbdbd3523e999f7951..d06c61987a6dcb4c4ec128cbbfbb25a176903e6a 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C @@ -123,10 +123,11 @@ template<class BasePhaseModel> Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName), + BasePhaseModel(fluid, phaseName, index), U_ ( IOobject @@ -197,6 +198,7 @@ Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel dimensionedScalar("0", dimDensity/dimTime, 0) ) { + phi_.writeOpt() = IOobject::AUTO_WRITE; correctKinematics(); } @@ -243,6 +245,14 @@ void Foam::MovingPhaseModel<BasePhaseModel>::correctTurbulence() } +template<class BasePhaseModel> +void Foam::MovingPhaseModel<BasePhaseModel>::correctEnergyTransport() +{ + BasePhaseModel::correctEnergyTransport(); + turbulence_->correctEnergyTransport(); +} + + template<class BasePhaseModel> Foam::tmp<Foam::fvVectorMatrix> Foam::MovingPhaseModel<BasePhaseModel>::UEqn() @@ -252,6 +262,7 @@ Foam::MovingPhaseModel<BasePhaseModel>::UEqn() fvm::ddt(*this, this->thermo().rho(), U_) + fvm::div(alphaRhoPhi_, U_) - fvm::Sp(continuityError_, U_) + + this->fluid().MRF().DDt(*this*this->thermo().rho(), U_) + turbulence_->divDevRhoReff(U_) ); } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H index 14e9c057b7eaaaf2f92db29eea3c0b73abab3bf4..b78762fd533688c58744124292c272f0eb947d5d 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.H @@ -106,7 +106,8 @@ public: MovingPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ); @@ -125,6 +126,9 @@ public: //- Correct the turbulence virtual void correctTurbulence(); + //- Correct the energy transport e.g. alphat + virtual void correctEnergyTransport(); + //- Return the momentum equation virtual tmp<fvVectorMatrix> UEqn(); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C index d6e05a51397501881f736b519f4e1a66a0af53b2..efa486a0e471748e286e1154ab47bf6650249c80 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C @@ -41,10 +41,11 @@ template<class BasePhaseModel> Foam::MultiComponentPhaseModel<BasePhaseModel>::MultiComponentPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName), + BasePhaseModel(fluid, phaseName, index), Sc_ ( "Sc", diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H index 272e520eeb311d2196e09438e3a5b912d49d16a1..94ca80582c4c056d10ead927d564e1ba06511d06 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H @@ -73,7 +73,8 @@ public: MultiComponentPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C similarity index 96% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C index c3e1831158af975200e8b012ebf99415198f89f4..be2800574465399ff8a6bdaea97f10df3b5b9360 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.C @@ -32,10 +32,11 @@ template<class BasePhaseModel> Foam::PurePhaseModel<BasePhaseModel>::PurePhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName) + BasePhaseModel(fluid, phaseName, index) {} diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H index f17c60cb6f8c91b9f7aacac25341390a2b84f525..2aa8034ede7ca95a15e643afe54fc5274ffcd418 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/PurePhaseModel/PurePhaseModel.H @@ -64,7 +64,12 @@ public: // Constructors - PurePhaseModel(const phaseSystem& fluid, const word& phaseName); + PurePhaseModel + ( + const phaseSystem& fluid, + const word& phaseName, + const label index + ); //- Destructor diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C index a6ab32d2fcb8c0c91daef702360400c87eb6b86d..96a76de1698c4eeaf61e944ee599c89978fe7a22 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C @@ -33,13 +33,14 @@ template<class BasePhaseModel, class ReactionType> Foam::ReactingPhaseModel<BasePhaseModel, ReactionType>::ReactingPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : - BasePhaseModel(fluid, phaseName, false), + BasePhaseModel(fluid, phaseName, index, false), reaction_ ( - ReactionType::New(fluid.mesh(), phaseName) + ReactionType::New(fluid.mesh(), this->name()) ) { this->thermo_ = &reaction_->thermo(); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H index 988674d55c8fa8010fbae34e6b2b0a12c294692c..305b62590a891248d759e1f1304909a9e88437d3 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H @@ -67,7 +67,8 @@ public: ReactingPhaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C similarity index 69% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C index 2befe1585afb66487fcd56f38a52c895cbed32ce..2367cda41475e051775ab2fef141beb6b5893a95 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.C @@ -41,16 +41,17 @@ Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::ThermoPhaseModel ( const phaseSystem& fluid, const word& phaseName, + const label index, const bool createThermo ) : - BasePhaseModel(fluid, phaseName) + BasePhaseModel(fluid, phaseName, index) { if (createThermo) { thermoPtr_.set ( - ThermoType::New(fluid.mesh(), phaseName).ptr() + ThermoType::New(fluid.mesh(), this->name()).ptr() ); thermo_ = thermoPtr_.ptr(); @@ -110,10 +111,10 @@ template<class BasePhaseModel, class ThermoType> Foam::tmp<Foam::scalarField> Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::mu ( - const label patchI + const label patchi ) const { - return thermo_->mu(patchI); + return thermo_->mu(patchi); } @@ -129,10 +130,10 @@ template<class BasePhaseModel, class ThermoType> Foam::tmp<Foam::scalarField> Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::nu ( - const label patchI + const label patchi ) const { - return thermo_->nu(patchI); + return thermo_->nu(patchi); } @@ -148,10 +149,75 @@ template<class BasePhaseModel, class ThermoType> Foam::tmp<Foam::scalarField> Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappa ( - const label patchI + const label patchi ) const { - return thermo_->kappa(patchI); + return thermo_->kappa(patchi); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::volScalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff +( + const volScalarField& alphat +) const +{ + return thermo_->kappaEff(alphat); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::scalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff +( + const scalarField& alphat, + const label patchi +) const +{ + return thermo_->kappaEff(alphat, patchi); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::volScalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alpha() const +{ + return thermo_->alpha(); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::scalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alpha +( + const label patchi +) const +{ + return thermo_->alpha(patchi); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::volScalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphaEff +( + const volScalarField& alphat +) const +{ + return thermo_->alphaEff(alphat); +} + + +template<class BasePhaseModel, class ThermoType> +Foam::tmp<Foam::scalarField> +Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphaEff +( + const scalarField& alphat, + const label patchi +) const +{ + return thermo_->alphaEff(alphat, patchi); } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H similarity index 74% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H index 0c2b243a83c2d7e2613ceded67c82cf479194e1c..960d2c1ba68c1b01cce98ffa1a0ac72f578579cd 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ThermoPhaseModel/ThermoPhaseModel.H @@ -76,6 +76,7 @@ public: ( const phaseSystem& fluid, const word& phaseName, + const label index, const bool createThermo = true ); @@ -105,19 +106,51 @@ public: virtual tmp<volScalarField> mu() const; //- Access the laminar dynamic viscosity - virtual tmp<scalarField> mu(const label patchI) const; + virtual tmp<scalarField> mu(const label patchi) const; //- Return the laminar kinematic viscosity virtual tmp<volScalarField> nu() const; //- Access the laminar kinematic viscosity - virtual tmp<scalarField> nu(const label patchI) const; + virtual tmp<scalarField> nu(const label patchi) const; //- Return the laminar thermal conductivity virtual tmp<volScalarField> kappa() const; //- Access the laminar thermal conductivity - virtual tmp<scalarField> kappa(const label patchI) const; + virtual tmp<scalarField> kappa(const label patchi) const; + + //- Return the laminar thermal conductivity + virtual tmp<volScalarField> kappaEff + ( + const volScalarField& alphat + ) const; + + //- Access the laminar thermal conductivity + virtual tmp<scalarField> kappaEff + ( + const scalarField& alphat, + const label patchi + ) const; + + //- Return the thermal diffusivity for enthalpy + virtual tmp<volScalarField> alpha() const; + + //- Return the thermal diffusivity for enthalpy on a patch + virtual tmp<scalarField> alpha(const label patchi) const; + + //- Return the thermal diffusivity for enthalpy + virtual tmp<volScalarField> alphaEff + ( + const volScalarField& alphat + ) const; + + //- Return the thermal diffusivity for enthalpy on a patch + virtual tmp<scalarField> alphaEff + ( + const scalarField& alphat, + const label patchi + ) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C index f2686cedb5c764f55f286cba302b0b6df697a279..0a577313b22f6b0adbd0aa71d4ce3c1afb9d8906 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/newPhaseModel.C @@ -31,7 +31,8 @@ License Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::New ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) { word phaseModelType(fluid.subDict(phaseName).lookup("type")); @@ -52,7 +53,7 @@ Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::New << exit(FatalError); } - return cstrIter()(fluid, phaseName); + return cstrIter()(fluid, phaseName, index); } // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C similarity index 85% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C index 61ea75e586c4c1c27e64bb3e88866d87e12aad6f..eb2e8715300b75aac87f94fef5fb467fe4e8ef71 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C @@ -41,7 +41,8 @@ namespace Foam Foam::phaseModel::phaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ) : volScalarField @@ -60,6 +61,7 @@ Foam::phaseModel::phaseModel fluid_(fluid), name_(phaseName), + index_(index), residualAlpha_ ( "residualAlpha", @@ -72,6 +74,13 @@ Foam::phaseModel::phaseModel } +Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::clone() const +{ + notImplemented("phaseModel::clone() const"); + return autoPtr<phaseModel>(NULL); +} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::phaseModel::~phaseModel() @@ -86,6 +95,18 @@ const Foam::word& Foam::phaseModel::name() const } +const Foam::word& Foam::phaseModel::keyword() const +{ + return name_; +} + + +Foam::label Foam::phaseModel::index() const +{ + return index_; +} + + const Foam::phaseSystem& Foam::phaseModel::fluid() const { return fluid_; @@ -128,6 +149,10 @@ void Foam::phaseModel::correctTurbulence() {} +void Foam::phaseModel::correctEnergyTransport() +{} + + bool Foam::phaseModel::read() { return diameterModel_->read(fluid_.subDict(name_)); @@ -140,16 +165,17 @@ bool Foam::phaseModel::compressible() const } -const Foam::volScalarField& Foam::phaseModel::divU() const +const Foam::tmp<Foam::volScalarField>& Foam::phaseModel::divU() const { notImplemented("Foam::phaseModel::divU()"); - return volScalarField::null(); + static tmp<Foam::volScalarField> divU_(NULL); + return divU_; } -void Foam::phaseModel::divU(const volScalarField& divU) +void Foam::phaseModel::divU(const tmp<volScalarField>& divU) { - WarningIn("phaseModel::divU(const volScalarField& divU)") + WarningIn("phaseModel::divU(const tmp<volScalarField>& divU)") << "Attempt to set the dilatation rate of an incompressible phase" << endl; } diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H similarity index 73% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H index 082bb6c019169e69038b8fe7870ef5519601d609..27d78390cac64c6e4005004a2b715d53561773e2 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H @@ -67,6 +67,9 @@ class phaseModel //- Name of phase word name_; + //- Index of phase + label index_; + //- Return the residual phase-fraction for given phase // Used to stabilize the phase momentum as the phase-fraction -> 0 dimensionedScalar residualAlpha_; @@ -93,9 +96,10 @@ public: phaseSystem, ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ), - (fluid, phaseName) + (fluid, phaseName, index) ); @@ -104,12 +108,12 @@ public: phaseModel ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ); - - //- Destructor - virtual ~phaseModel(); + //- Return clone + autoPtr<phaseModel> clone() const; // Selectors @@ -117,15 +121,54 @@ public: static autoPtr<phaseModel> New ( const phaseSystem& fluid, - const word& phaseName + const word& phaseName, + const label index ); + //- Return a pointer to a new phase created on freestore + // from Istream + class iNew + { + const phaseSystem& fluid_; + mutable label indexCounter_; + + public: + + iNew + ( + const phaseSystem& fluid + ) + : + fluid_(fluid), + indexCounter_(-1) + {} + + autoPtr<phaseModel> operator()(Istream& is) const + { + indexCounter_++; + return autoPtr<phaseModel> + ( + phaseModel::New(fluid_, word(is), indexCounter_) + ); + } + }; + + + //- Destructor + virtual ~phaseModel(); + // Member Functions //- Return the name of this phase const word& name() const; + //- Return the name of the phase for use as the keyword in PtrDictionary + const word& keyword() const; + + //- Return the index of the phase + label index() const; + //- Return the system to which this phase belongs const phaseSystem& fluid() const; @@ -151,6 +194,9 @@ public: //- Correct the turbulence virtual void correctTurbulence(); + //- Correct the energy transport e.g. alphat + virtual void correctEnergyTransport(); + //- Return the momentum equation virtual tmp<fvVectorMatrix> UEqn() = 0; @@ -170,10 +216,10 @@ public: virtual bool compressible() const; //- Return the phase dilatation rate (d(alpha)/dt + div(alpha*phi)) - virtual const volScalarField& divU() const; + virtual const tmp<volScalarField>& divU() const; //- Set the phase dilatation rate (d(alpha)/dt + div(alpha*phi)) - virtual void divU(const volScalarField& divU); + virtual void divU(const tmp<volScalarField>& divU); //- Return the phase kinetic energy virtual const volScalarField& K() const; @@ -246,19 +292,51 @@ public: virtual tmp<volScalarField> mu() const = 0; //- Return the laminar dynamic viscosity on a patch - virtual tmp<scalarField> mu(const label patchI) const = 0; + virtual tmp<scalarField> mu(const label patchi) const = 0; //- Return the laminar kinematic viscosity virtual tmp<volScalarField> nu() const = 0; //- Return the laminar kinematic viscosity on a patch - virtual tmp<scalarField> nu(const label patchI) const = 0; + virtual tmp<scalarField> nu(const label patchi) const = 0; //- Return the laminar thermal conductivity virtual tmp<volScalarField> kappa() const = 0; //- Return the laminar thermal conductivity on a patch - virtual tmp<scalarField> kappa(const label patchI) const = 0; + virtual tmp<scalarField> kappa(const label patchi) const = 0; + + //- Return the effective thermal conductivity + virtual tmp<volScalarField> kappaEff + ( + const volScalarField& alphat + ) const = 0; + + //- Access the effective thermal conductivity + virtual tmp<scalarField> kappaEff + ( + const scalarField& alphat, + const label patchi + ) const = 0; + + //- Return the laminar thermal diffusivity for enthalpy + virtual tmp<volScalarField> alpha() const = 0; + + //- Return the laminar thermal diffusivity for enthalpy on a patch + virtual tmp<scalarField> alpha(const label patchi) const = 0; + + //- Return the effective thermal diffusivity for enthalpy + virtual tmp<volScalarField> alphaEff + ( + const volScalarField& alphat + ) const = 0; + + //- Return the effective thermal diffusivity for enthalpy on a patch + virtual tmp<scalarField> alphaEff + ( + const scalarField& alphat, + const label patchi + ) const = 0; // Turbulence diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModels.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModels.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModels.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModels.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair/orderedPhasePair.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePair.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePair.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePair.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePair.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePair.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePair.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePair.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePair.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePairI.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePairI.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePair/phasePairI.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePair/phasePairI.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C similarity index 72% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C index 3bbb6e82de4df8022efa20d1580c2c1533857838..aa9380758d386d7d82310edbff77199d5d5b8007 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C @@ -41,53 +41,24 @@ const Foam::word Foam::phaseSystem::propertiesName("phaseProperties"); // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // -Foam::phaseSystem::phaseModelTable -Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const -{ - phaseModelTable phaseModels; - - forAllConstIter(wordList, phaseNames, phaseNameIter) - { - phaseModels.insert - ( - *phaseNameIter, - phaseModel::New - ( - *this, - *phaseNameIter - ) - ); - } - - // normalise ? - - return phaseModels; -} - - -Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::generatePhi +Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::calcPhi ( - const phaseModelTable& phaseModels + const phaseModelList& phaseModels ) const { - phaseModelTable::const_iterator phaseModelIter = phaseModels.begin(); - tmp<surfaceScalarField> tmpPhi ( new surfaceScalarField ( "phi", - fvc::interpolate(phaseModelIter()())*phaseModelIter()->phi() + fvc::interpolate(phaseModels[0])*phaseModels[0].phi() ) ); - ++phaseModelIter; - - for (; phaseModelIter != phaseModels.end(); ++ phaseModelIter) + for (label phasei=1; phasei<phaseModels.size(); phasei++) { tmpPhi() += - fvc::interpolate(phaseModelIter()()) - *phaseModelIter()->phi(); + fvc::interpolate(phaseModels[phasei])*phaseModels[phasei].phi(); } return tmpPhi; @@ -167,11 +138,9 @@ Foam::phaseSystem::phaseSystem mesh_(mesh), - phaseNames_(lookup("phases")), - - phaseModels_(generatePhaseModels(phaseNames_)), + phaseModels_(lookup("phases"), phaseModel::iNew(*this)), - phi_(generatePhi(phaseModels_)), + phi_(calcPhi(phaseModels_)), dpdt_ ( @@ -188,6 +157,8 @@ Foam::phaseSystem::phaseSystem MRF_(mesh_), fvOptions_(mesh_) { + phi_.writeOpt() = IOobject::AUTO_WRITE; + // Blending methods forAllConstIter(dictionary, subDict("blending"), iter) { @@ -197,7 +168,7 @@ Foam::phaseSystem::phaseSystem blendingMethod::New ( iter().dict(), - wordList(lookup("phases")) + phaseModels_.toc() ) ); } @@ -220,16 +191,14 @@ Foam::phaseSystem::~phaseSystem() Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const { - phaseModelTable::const_iterator phaseModelIter = phaseModels_.begin(); - tmp<volScalarField> tmpRho ( - phaseModelIter()()*phaseModelIter()->rho() + phaseModels_[0]*phaseModels_[0].rho() ); - for (; phaseModelIter != phaseModels_.end(); ++ phaseModelIter) + for (label phasei=1; phasei<phaseModels_.size(); phasei++) { - tmpRho() += phaseModelIter()()*phaseModelIter()->rho(); + tmpRho() += phaseModels_[phasei]*phaseModels_[phasei].rho(); } return tmpRho; @@ -238,16 +207,14 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const { - phaseModelTable::const_iterator phaseModelIter = phaseModels_.begin(); - tmp<volVectorField> tmpU ( - phaseModelIter()()*phaseModelIter()->U() + phaseModels_[0]*phaseModels_[0].U() ); - for (; phaseModelIter != phaseModels_.end(); ++ phaseModelIter) + for (label phasei=1; phasei<phaseModels_.size(); phasei++) { - tmpU() += phaseModelIter()()*phaseModelIter()->U(); + tmpU() += phaseModels_[phasei]*phaseModels_[phasei].U(); } return tmpU; @@ -290,9 +257,9 @@ void Foam::phaseSystem::solve() void Foam::phaseSystem::correct() { - forAllIter(phaseModelTable, phaseModels_, phaseModelIter) + forAll(phaseModels_, phasei) { - phaseModelIter()->correct(); + phaseModels_[phasei].correct(); } } @@ -301,35 +268,44 @@ void Foam::phaseSystem::correctKinematics() { bool updateDpdt = false; - forAllIter(phaseModelTable, phaseModels_, phaseModelIter) + forAll(phaseModels_, phasei) { - phaseModelIter()->correctKinematics(); + phaseModels_[phasei].correctKinematics(); - updateDpdt = updateDpdt || phaseModelIter()->thermo().dpdt(); + updateDpdt = updateDpdt || phaseModels_[phasei].thermo().dpdt(); } // Update the pressure time-derivative if required if (updateDpdt) { - dpdt_ = fvc::ddt(phaseModels_.begin()()().thermo().p()); + dpdt_ = fvc::ddt(phaseModels_.begin()().thermo().p()); } } void Foam::phaseSystem::correctThermo() { - forAllIter(phaseModelTable, phaseModels_, phaseModelIter) + forAll(phaseModels_, phasei) { - phaseModelIter()->correctThermo(); + phaseModels_[phasei].correctThermo(); } } void Foam::phaseSystem::correctTurbulence() { - forAllIter(phaseModelTable, phaseModels_, phaseModelIter) + forAll(phaseModels_, phasei) + { + phaseModels_[phasei].correctTurbulence(); + } +} + + +void Foam::phaseSystem::correctEnergyTransport() +{ + forAll(phaseModels_, phasei) { - phaseModelIter()->correctTurbulence(); + phaseModels_[phasei].correctEnergyTransport(); } } @@ -340,9 +316,9 @@ bool Foam::phaseSystem::read() { bool readOK = true; - forAllIter(phaseModelTable, phaseModels_, phaseModelIter) + forAll(phaseModels_, phasei) { - readOK &= phaseModelIter()->read(); + readOK &= phaseModels_[phasei].read(); } // models ... diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.H similarity index 71% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.H index 81bfd708f8ac9dbe652b250bfd6203ff61d9a514..001f1acdd34d2e30c444fe96e65c4f78cc6126ab 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.H @@ -42,6 +42,7 @@ SourceFiles #include "phasePair.H" #include "orderedPhasePair.H" #include "HashPtrTable.H" +#include "PtrListDictionary.H" #include "IOMRFZoneList.H" #include "fvIOoptionList.H" @@ -117,15 +118,13 @@ public: > massTransferTable; + typedef PtrListDictionary<phaseModel> phaseModelList; + protected: // Protected typedefs - typedef - HashTable<autoPtr<phaseModel>, word, word::hash> - phaseModelTable; - typedef HashTable<dictionary, phasePairKey, phasePairKey::hash> dictTable; @@ -162,11 +161,8 @@ protected: //- Reference to the mesh const fvMesh& mesh_; - //- Phase names - wordList phaseNames_; - //- Phase models - phaseModelTable phaseModels_; + phaseModelList phaseModels_; //- Phase pairs phasePairTable phasePairs_; @@ -198,16 +194,10 @@ protected: // Protected member functions - //- Generate the phases - HashTable<autoPtr<phaseModel> > generatePhaseModels + //- Calculate and return the mixture flux + tmp<surfaceScalarField> calcPhi ( - const wordList& names - ) const; - - //- Generate the mixture flux - tmp<surfaceScalarField> generatePhi - ( - const HashTable<autoPtr<phaseModel> >& phaseModels + const phaseModelList& phaseModels ) const; //- Generate pairs @@ -290,48 +280,56 @@ public: // Member Functions + //- Constant access the mesh + inline const fvMesh& mesh() const; + + //- Constant access the phase models + inline const phaseModelList& phases() const; + + //- Access the phase models + inline phaseModelList& phases(); + + //- Constant access the phase pairs + inline const phasePairTable& phasePairs() const; + //- Return the mixture density tmp<volScalarField> rho() const; //- Return the mixture velocity tmp<volVectorField> U() const; - //- Return the surface tension coefficient - tmp<volScalarField> sigma(const phasePairKey& key) const; - - //- Return the drag coefficient - virtual tmp<volScalarField> Kd(const phasePairKey& key) const = 0; - - //- Return the face drag coefficient - virtual tmp<surfaceScalarField> Kdf(const phasePairKey& key) const = 0; + //- Constant access the mixture flux + inline const surfaceScalarField& phi() const; - //- Return the virtual mass coefficient - virtual tmp<volScalarField> Vm(const phasePairKey& key) const = 0; + //- Access the mixture flux + inline surfaceScalarField& phi(); - //- Return the face virtual mass coefficient - virtual tmp<surfaceScalarField> Vmf(const phasePairKey& key) const = 0; + //- Constant access the rate of change of the pressure + inline const volScalarField& dpdt() const; - //- Return the combined force (lift + wall-lubrication) - virtual tmp<volVectorField> F(const phasePairKey& key) const = 0; + //- Access the rate of change of the pressure + inline volScalarField& dpdt(); - //- Return the combined face-force (lift + wall-lubrication) - virtual tmp<surfaceScalarField> Ff(const phasePairKey& key) const = 0; - - //- Return the turbulent diffusivity - // Multiplies the phase-fraction gradient - virtual tmp<volScalarField> D(const phasePairKey& key) const = 0; + //- Return the surface tension coefficient + tmp<volScalarField> sigma(const phasePairKey& key) const; - //- Return the interfacial mass flow rate - virtual tmp<volScalarField> dmdt(const phasePairKey& key) const = 0; + //- Return MRF zones + inline const IOMRFZoneList& MRF() const; - //- Return the momentum transfer matrices - virtual autoPtr<momentumTransferTable> momentumTransfer() const = 0; + //- Optional FV-options + inline fv::IOoptionList& fvOptions() const; - //- Return the heat transfer matrices - virtual autoPtr<heatTransferTable> heatTransfer() const = 0; + //- Access a sub model between a phase pair + template <class modelType> + const modelType& lookupSubModel(const phasePair& key) const; - //- Return the mass transfer matrices - virtual autoPtr<massTransferTable> massTransfer() const = 0; + //- Access a sub model between two phases + template <class modelType> + const modelType& lookupSubModel + ( + const phaseModel& dispersed, + const phaseModel& continuous + ) const; //- Solve for the phase fractions virtual void solve(); @@ -348,44 +346,11 @@ public: //- Correct the turbulence virtual void correctTurbulence(); + //- Correct the energy transport e.g. alphat + virtual void correctEnergyTransport(); + //- Read base phaseProperties dictionary virtual bool read(); - - - // Access - - //- Constant access the mesh - inline const fvMesh& mesh() const; - - //- Constant access the mixture flux - inline const surfaceScalarField& phi() const; - - //- Access the mixture flux - inline surfaceScalarField& phi(); - - //- Constant access the rate of change of the pressure - inline const volScalarField& dpdt() const; - - //- Access the rate of change of the pressure - inline volScalarField& dpdt(); - - //- Return MRF zones - inline const IOMRFZoneList& MRF() const; - - //- Optional FV-options - inline fv::IOoptionList& fvOptions() const; - - //- Access a sub model between a phase pair - template <class modelType> - const modelType& lookupSubModel(const phasePair& key) const; - - //- Access a sub model between two phases - template <class modelType> - const modelType& lookupSubModel - ( - const phaseModel& dispersed, - const phaseModel& continuous - ) const; }; @@ -400,7 +365,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "phaseSystemTemplates.H" +# include "phaseSystemTemplates.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H similarity index 85% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H index 3d7e837533ac4372487e7a5ec09b4e4558557d7b..0f9aef50335a4fcc63b38db1a4b9fff90a5d1c32 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemI.H @@ -31,6 +31,27 @@ inline const Foam::fvMesh& Foam::phaseSystem::mesh() const } +inline const Foam::phaseSystem::phaseModelList& +Foam::phaseSystem::phases() const +{ + return phaseModels_; +} + + +inline Foam::phaseSystem::phaseModelList& +Foam::phaseSystem::phases() +{ + return phaseModels_; +} + + +inline const Foam::phaseSystem::phasePairTable& +Foam::phaseSystem::phasePairs() const +{ + return phasePairs_; +} + + inline const Foam::surfaceScalarField& Foam::phaseSystem::phi() const { return phi_; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.H rename to applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C index 48d17166123dcf075f49c0bc644f2b52340bffb8..eee3fcd3b3f948310157a878b0b4e0027d682d05 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.H +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C @@ -151,12 +151,12 @@ void Foam::phaseSystem::generatePairsAndSubModels HashTable<autoPtr<modelType>, phasePairKey, phasePairKey::hash> modelTypeTable; - forAllConstIter(wordList, phaseNames_, phaseNameIter) + forAll(phaseModels_, phasei) { modelTypeTable tempModels; generatePairsAndSubModels ( - IOobject::groupName(modelName, *phaseNameIter), + IOobject::groupName(modelName, phaseModels_[phasei].name()), tempModels ); @@ -175,7 +175,7 @@ void Foam::phaseSystem::generatePairsAndSubModels models[tempModelIter.key()].insert ( - *phaseNameIter, + phaseModels_[phasei].name(), *tempModelIter ); } diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C new file mode 100644 index 0000000000000000000000000000000000000000..f43303a2b7ecb5671e0fc962bc25e8d80a58e60b --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C @@ -0,0 +1,271 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "makeReactionThermo.H" +#include "makeThermo.H" + +#include "rhoReactionThermo.H" +#include "heRhoThermo.H" + +#include "specie.H" +#include "perfectGas.H" +#include "perfectFluid.H" +#include "rhoConst.H" + +#include "sensibleEnthalpy.H" + +#include "hRefConstThermo.H" + +#include "constTransport.H" + +#include "pureMixture.H" +#include "multiComponentMixture.H" + +#include "thermoPhysicsTypes.H" + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Thermo type typedefs: + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + perfectGas<specie> + >, + sensibleEnthalpy + > +> constRefGasHThermoPhysics; + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + perfectFluid<specie> + >, + sensibleEnthalpy + > +> constRefFluidHThermoPhysics; + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + perfectGas<specie> + >, + sensibleInternalEnergy + > +> constRefGasEThermoPhysics; + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + perfectFluid<specie> + >, + sensibleInternalEnergy + > +> constRefFluidEThermoPhysics; + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + rhoConst<specie> + >, + sensibleInternalEnergy + > +> constRefRhoConstEThermoPhysics; + +typedef +constTransport +< + species::thermo + < + hRefConstThermo + < + rhoConst<specie> + >, + sensibleEnthalpy + > +> constRefRhoConstHThermoPhysics; + + +// pureMixture, sensibleEnthalpy: + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleEnthalpy, + hRefConstThermo, + perfectGas, + specie +); + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleEnthalpy, + hRefConstThermo, + perfectFluid, + specie +); + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleEnthalpy, + hRefConstThermo, + rhoConst, + specie +); + + +// pureMixture, sensibleInternalEnergy: + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleInternalEnergy, + hRefConstThermo, + perfectGas, + specie +); + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleInternalEnergy, + hRefConstThermo, + perfectFluid, + specie +); + +makeThermo +( + rhoThermo, + heRhoThermo, + pureMixture, + constTransport, + sensibleInternalEnergy, + hRefConstThermo, + rhoConst, + specie +); + + +// multiComponentMixture, sensibleInternalEnergy: + +makeReactionMixtureThermo +( + rhoThermo, + rhoReactionThermo, + heRhoThermo, + multiComponentMixture, + constRefGasEThermoPhysics +); + +makeReactionMixtureThermo +( + rhoThermo, + rhoReactionThermo, + heRhoThermo, + multiComponentMixture, + constRefFluidEThermoPhysics +); + +makeReactionMixtureThermo +( + rhoThermo, + rhoReactionThermo, + heRhoThermo, + multiComponentMixture, + constRefRhoConstEThermoPhysics +); + + +// multiComponentMixture, sensibleEnthalpy: + +makeReactionMixtureThermo +( + rhoThermo, + rhoReactionThermo, + heRhoThermo, + multiComponentMixture, + constRefRhoConstHThermoPhysics +); + + +makeReactionMixtureThermo +( + rhoThermo, + rhoReactionThermo, + heRhoThermo, + multiComponentMixture, + constRefGasHThermoPhysics +); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwclean b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwclean new file mode 100755 index 0000000000000000000000000000000000000000..93ee94face2158640ba291e93b2489cd0e9917c2 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwclean @@ -0,0 +1,9 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +set -x + +wclean libso multiphaseSystem +wclean libso multiphaseCompressibleTurbulenceModels +wclean + +# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake new file mode 100755 index 0000000000000000000000000000000000000000..c60b665df4f0c0cf68d749bddb9aa3d7cb8186f4 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake @@ -0,0 +1,9 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +set -x + +wmake libso multiphaseSystem +wmake libso multiphaseCompressibleTurbulenceModels +wmake + +# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/CourantNo.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/CourantNo.H new file mode 100644 index 0000000000000000000000000000000000000000..d7d1cc66d88a5ba6310172052b7781ec5ff2055e --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/CourantNo.H @@ -0,0 +1,60 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Global + CourantNo + +Description + Calculates and outputs the mean and maximum Courant Numbers. + +\*---------------------------------------------------------------------------*/ + +scalar CoNum = 0.0; +scalar meanCoNum = 0.0; + +if (mesh.nInternalFaces()) +{ + scalarField sumPhi + ( + fvc::surfaceSum(mag(phi))().internalField() + ); + + forAll(phases, phasei) + { + sumPhi = max + ( + sumPhi, + fvc::surfaceSum(mag(phases[phasei].phi()))().internalField() + ); + } + + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); + + meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); +} + +Info<< "Courant Number mean: " << meanCoNum + << " max: " << CoNum << endl; + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/EEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/EEqns.H new file mode 100644 index 0000000000000000000000000000000000000000..386331e0ee9073212a88c0bc1719e4227fcdfd36 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/EEqns.H @@ -0,0 +1,48 @@ +{ + fluid.correctEnergyTransport(); + + autoPtr<phaseSystem::heatTransferTable> + heatTransferPtr(fluid.heatTransfer()); + + phaseSystem::heatTransferTable& heatTransfer = heatTransferPtr(); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + const volScalarField& alpha = phase; + const volScalarField& rho = phase.rho(); + const volVectorField& U = phase.U(); + + tmp<fvScalarMatrix> EEqn(phase.heEqn()); + + if (EEqn.valid()) + { + EEqn = + ( + EEqn + == + *heatTransfer[phase.name()] + + alpha*rho*(U&g) + + fvOptions(alpha, rho, phase.thermo().he()) + ); + + EEqn->relax(); + fvOptions.constrain(EEqn()); + EEqn->solve(); + } + } +} + +fluid.correctThermo(); + +forAll(phases, phasei) +{ + phaseModel& phase = phases[phasei]; + + Info<< phase.name() << " min/max T " + << min(phase.thermo().T()).value() + << " - " + << max(phase.thermo().T()).value() + << endl; +} diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..0f1d5ae27115910e59fc07c5272daa814b73b18e --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/files @@ -0,0 +1,3 @@ +reactingMultiphaseEulerFoam.C + +EXE = $(FOAM_APPBIN)/reactingMultiphaseEulerFoam diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options similarity index 71% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options rename to applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options index f1f3b8dc8e38fafd84d8f3241372780f644ec8ff..9acc2a5f82df09feee7bf89a071fd985f405abf2 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options @@ -1,8 +1,8 @@ EXE_INC = \ - -IphaseSystems/lnInclude \ - -IinterfacialModels/lnInclude \ - -IinterfacialCompositionModels/lnInclude \ - -IphaseCompressibleTurbulenceModels/lnInclude \ + -ImultiphaseSystem/lnInclude \ + -I../phaseSystems/lnInclude \ + -I../interfacialModels/lnInclude \ + -I../interfacialCompositionModels/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ @@ -14,10 +14,11 @@ EXE_INC = \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ - -lreactingTwoPhaseSystem \ + -lreactingPhaseSystem \ + -lreactingMultiphaseSystem \ -lreactingEulerianInterfacialModels \ -lreactingEulerianInterfacialCompositionModels \ - -lphaseReactingTurbulenceModels \ + -lmultiphaseReactingTurbulenceModels \ -lfiniteVolume \ -lfvOptions \ -lmeshTools \ diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/YEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/YEqns.H new file mode 100644 index 0000000000000000000000000000000000000000..4094e185af08d0cd0ecd9832d61c4eaddf828b11 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/YEqns.H @@ -0,0 +1,37 @@ +{ + autoPtr<phaseSystem::massTransferTable> + massTransferPtr(fluid.massTransfer()); + + phaseSystem::massTransferTable& + massTransfer(massTransferPtr()); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + PtrList<volScalarField>& Y = phase.Y(); + const volScalarField& alpha = phase; + const volScalarField& rho = phase.rho(); + + forAll(Y, i) + { + tmp<fvScalarMatrix> YiEqn(phase.YiEqn(Y[i])); + + if (YiEqn.valid()) + { + YiEqn = + ( + YiEqn + == + *massTransfer[Y[i].name()] + + fvOptions(alpha, rho, Y[i]) + ); + + YiEqn->relax(); + YiEqn->solve(mesh.solver("Yi")); + } + } + } + + fluid.massTransfer(); // updates interfacial mass flow rates +} diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H new file mode 100644 index 0000000000000000000000000000000000000000..1375db8c406728e3c3247ebd06801e93f452fd39 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H @@ -0,0 +1,53 @@ +#include "readGravitationalAcceleration.H" +#include "readhRef.H" + +Info<< "Creating phaseSystem\n" << endl; + +autoPtr<multiphaseSystem> fluidPtr +( + multiphaseSystem::New(mesh) +); +multiphaseSystem& fluid = fluidPtr(); +multiphaseSystem::phaseModelList& phases = fluid.phases(); + +surfaceScalarField& phi = fluid.phi(); + +dimensionedScalar pMin +( + "pMin", + dimPressure, + fluid +); + +#include "gh.H" + +volScalarField& p = phases[0].thermo().p(); + +Info<< "Reading field p_rgh\n" << endl; +volScalarField p_rgh +( + IOobject + ( + "p_rgh", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +label pRefCell = 0; +scalar pRefValue = 0.0; +setRefCell +( + p, + p_rgh, + pimple.dict(), + pRefCell, + pRefValue +); +mesh.setFluxRequired(p_rgh.name()); + +const IOMRFZoneList& MRF = fluid.MRF(); +fv::IOoptionList& fvOptions = fluid.fvOptions(); diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..dd421b52a3d314467a51942a9a3bb099f88b2090 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/files @@ -0,0 +1,3 @@ +multiphaseCompressibleTurbulenceModels.C + +LIB = $(FOAM_LIBBIN)/libmultiphaseReactingTurbulenceModels diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/options similarity index 81% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options rename to applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/options index 832cefa73d09298b893f0e0c700a88dc5259ba53..553f60638c28ed062bcb58388b79661fa0e60695 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/Make/options @@ -1,11 +1,12 @@ EXE_INC = \ - -I../phaseSystems/lnInclude \ - -I../interfacialModels/lnInclude\ + -I../multiphaseSystem/lnInclude \ + -I../../phaseSystems/lnInclude \ + -I../../interfacialModels/lnInclude\ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/incompressible/transportModel \ - -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/fvOptions/lnInclude \ diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C new file mode 100644 index 0000000000000000000000000000000000000000..de792b433a76374791e7650a34fa7dbe63645272 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "PhaseCompressibleTurbulenceModel.H" +#include "phaseModel.H" +#include "multiphaseSystem.H" +#include "addToRunTimeSelectionTable.H" +#include "makeTurbulenceModel.H" + +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" + +#include "laminar.H" +#include "RASModel.H" +#include "LESModel.H" + +makeBaseTurbulenceModel +( + volScalarField, + volScalarField, + compressibleTurbulenceModel, + PhaseCompressibleTurbulenceModel, + ThermalDiffusivity, + phaseModel +); + +#define makeRASModel(Type) \ + makeTemplatedTurbulenceModel \ + (phaseModelPhaseCompressibleTurbulenceModel, RAS, Type) + +#define makeLESModel(Type) \ + makeTemplatedTurbulenceModel \ + (phaseModelPhaseCompressibleTurbulenceModel, LES, Type) + +#include "kEpsilon.H" +makeRASModel(kEpsilon); + +#include "kOmegaSST.H" +makeRASModel(kOmegaSST); + +#include "Smagorinsky.H" +makeLESModel(Smagorinsky); + +#include "kEqn.H" +makeLESModel(kEqn); + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..f1728bb33dcd72639cdbd864f5561e569a9febd2 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/files @@ -0,0 +1,6 @@ +alphaContactAngle/alphaContactAngleFvPatchScalarField.C +multiphaseSystem.C +newMultiphaseSystem.C +multiphaseSystems.C + +LIB = $(FOAM_LIBBIN)/libreactingMultiphaseSystem diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..222f3b3ba4f6695daa19ca3e0ae7236bee8a7928 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/Make/options @@ -0,0 +1,21 @@ +EXE_INC = \ + -I../../interfacialModels/lnInclude \ + -I../../interfacialCompositionModels/lnInclude \ + -I../../phaseSystems/lnInclude \ + -IalphaContactAngle \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ + -I$(LIB_SRC)/combustionModels/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +LIB_LIBS = \ + -lcombustionModels \ + -lreactingPhaseSystem diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C new file mode 100644 index 0000000000000000000000000000000000000000..b26ec2faa0829dbd7bca3f811d4572b489e6cee9 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C @@ -0,0 +1,146 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "alphaContactAngleFvPatchScalarField.H" +#include "addToRunTimeSelectionTable.H" +#include "fvPatchFieldMapper.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps +( + Istream& is +) +: + theta0_(readScalar(is)), + uTheta_(readScalar(is)), + thetaA_(readScalar(is)), + thetaR_(readScalar(is)) +{} + + +Istream& operator>> +( + Istream& is, + alphaContactAngleFvPatchScalarField::interfaceThetaProps& tp +) +{ + is >> tp.theta0_ >> tp.uTheta_ >> tp.thetaA_ >> tp.thetaR_; + return is; +} + + +Ostream& operator<< +( + Ostream& os, + const alphaContactAngleFvPatchScalarField::interfaceThetaProps& tp +) +{ + os << tp.theta0_ << token::SPACE + << tp.uTheta_ << token::SPACE + << tp.thetaA_ << token::SPACE + << tp.thetaR_; + + return os; +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF +) +: + zeroGradientFvPatchScalarField(p, iF) +{} + + +alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField +( + const alphaContactAngleFvPatchScalarField& gcpsf, + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + zeroGradientFvPatchScalarField(gcpsf, p, iF, mapper), + thetaProps_(gcpsf.thetaProps_) +{} + + +alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const dictionary& dict +) +: + zeroGradientFvPatchScalarField(p, iF), + thetaProps_(dict.lookup("thetaProperties")) +{ + evaluate(); +} + + +alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField +( + const alphaContactAngleFvPatchScalarField& gcpsf, + const DimensionedField<scalar, volMesh>& iF +) +: + zeroGradientFvPatchScalarField(gcpsf, iF), + thetaProps_(gcpsf.thetaProps_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void alphaContactAngleFvPatchScalarField::write(Ostream& os) const +{ + fvPatchScalarField::write(os); + os.writeKeyword("thetaProperties") + << thetaProps_ << token::END_STATEMENT << nl; + writeEntry("value", os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makePatchTypeField +( + fvPatchScalarField, + alphaContactAngleFvPatchScalarField +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H new file mode 100644 index 0000000000000000000000000000000000000000..17fced8dfa620adb98b7ae43c86ff60f97507c7d --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H @@ -0,0 +1,215 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::alphaContactAngleFvPatchScalarField + +Description + Contact-angle boundary condition for multi-phase interface-capturing + simulations. Used in conjuction with multiphaseSystem. + +SourceFiles + alphaContactAngleFvPatchScalarField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef alphaContactAngleFvPatchScalarField_H +#define alphaContactAngleFvPatchScalarField_H + +#include "zeroGradientFvPatchFields.H" +#include "multiphaseSystem.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class alphaContactAngleFvPatch Declaration +\*---------------------------------------------------------------------------*/ + +class alphaContactAngleFvPatchScalarField +: + public zeroGradientFvPatchScalarField +{ +public: + + class interfaceThetaProps + { + //- Equilibrium contact angle + scalar theta0_; + + //- Dynamic contact angle velocity scale + scalar uTheta_; + + //- Limiting advancing contact angle + scalar thetaA_; + + //- Limiting receeding contact angle + scalar thetaR_; + + + public: + + // Constructors + interfaceThetaProps() + {} + + interfaceThetaProps(Istream&); + + + // Member functions + + //- Return the equilibrium contact angle theta0 + scalar theta0(bool matched=true) const + { + if (matched) return theta0_; + else return 180.0 - theta0_; + } + + //- Return the dynamic contact angle velocity scale + scalar uTheta() const + { + return uTheta_; + } + + //- Return the limiting advancing contact angle + scalar thetaA(bool matched=true) const + { + if (matched) return thetaA_; + else return 180.0 - thetaA_; + } + + //- Return the limiting receeding contact angle + scalar thetaR(bool matched=true) const + { + if (matched) return thetaR_; + else return 180.0 - thetaR_; + } + + + // IO functions + + friend Istream& operator>>(Istream&, interfaceThetaProps&); + friend Ostream& operator<<(Ostream&, const interfaceThetaProps&); + }; + + typedef HashTable + < + interfaceThetaProps, + phasePairKey, + phasePairKey::hash + > thetaPropsTable; + + +private: + + // Private data + + thetaPropsTable thetaProps_; + + +public: + + //- Runtime type information + TypeName("alphaContactAngle"); + + + // Constructors + + //- Construct from patch and internal field + alphaContactAngleFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + alphaContactAngleFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given alphaContactAngleFvPatchScalarField + // onto a new patch + alphaContactAngleFvPatchScalarField + ( + const alphaContactAngleFvPatchScalarField&, + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct and return a clone + virtual tmp<fvPatchScalarField> clone() const + { + return tmp<fvPatchScalarField> + ( + new alphaContactAngleFvPatchScalarField(*this) + ); + } + + //- Construct as copy setting internal field reference + alphaContactAngleFvPatchScalarField + ( + const alphaContactAngleFvPatchScalarField&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct and return a clone setting internal field reference + virtual tmp<fvPatchScalarField> clone + ( + const DimensionedField<scalar, volMesh>& iF + ) const + { + return tmp<fvPatchScalarField> + ( + new alphaContactAngleFvPatchScalarField(*this, iF) + ); + } + + + // Member functions + + //- Return the contact angle properties + const thetaPropsTable& thetaProps() const + { + return thetaProps_; + } + + //- Write + virtual void write(Ostream&) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C new file mode 100644 index 0000000000000000000000000000000000000000..fe1e4d4a8dd4adc90ba909861f509701aef2de57 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C @@ -0,0 +1,725 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "multiphaseSystem.H" +#include "alphaContactAngleFvPatchScalarField.H" + +#include "MULES.H" +#include "subCycle.H" + +#include "fvcDdt.H" +#include "fvcDiv.H" +#include "fvcSnGrad.H" +#include "fvcFlux.H" +#include "fvcMeshPhi.H" +#include "fvcSup.H" + +#include "fvmDdt.H" +#include "fvmLaplacian.H" +#include "fvmSup.H" + +// * * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(multiphaseSystem, 0); + defineRunTimeSelectionTable(multiphaseSystem, dictionary); +} + +const Foam::scalar Foam::multiphaseSystem::convertToRad = + Foam::constant::mathematical::pi/180.0; + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::multiphaseSystem::calcAlphas() +{ + scalar level = 0.0; + alphas_ == 0.0; + + forAll(phases(), i) + { + alphas_ += level*phases()[i]; + level += 1.0; + } + + alphas_.correctBoundaryConditions(); +} + + +void Foam::multiphaseSystem::solveAlphas() +{ + PtrList<surfaceScalarField> alphaPhiCorrs(phases().size()); + forAll(phases(), phasei) + { + phaseModel& phase = phases()[phasei]; + volScalarField& alpha1 = phase; + + phase.alphaPhi() = + dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0); + + alphaPhiCorrs.set + ( + phasei, + new surfaceScalarField + ( + "phi" + alpha1.name() + "Corr", + fvc::flux + ( + phi_, + phase, + "div(phi," + alpha1.name() + ')' + ) + ) + ); + + surfaceScalarField& alphaPhiCorr = alphaPhiCorrs[phasei]; + + forAll(phases(), phasej) + { + phaseModel& phase2 = phases()[phasej]; + volScalarField& alpha2 = phase2; + + if (&phase2 == &phase) continue; + + surfaceScalarField phir(phase.phi() - phase2.phi()); + + cAlphaTable::const_iterator cAlpha + ( + cAlphas_.find(phasePairKey(phase.name(), phase2.name())) + ); + + if (cAlpha != cAlphas_.end()) + { + surfaceScalarField phic + ( + (mag(phi_) + mag(phir))/mesh_.magSf() + ); + + phir += min(cAlpha()*phic, max(phic))*nHatf(phase, phase2); + } + + word phirScheme + ( + "div(phir," + alpha2.name() + ',' + alpha1.name() + ')' + ); + + alphaPhiCorr += fvc::flux + ( + -fvc::flux(-phir, phase2, phirScheme), + phase, + phirScheme + ); + } + + // Ensure that the flux at inflow BCs is preserved + forAll(alphaPhiCorr.boundaryField(), patchi) + { + fvsPatchScalarField& alphaPhiCorrp = + alphaPhiCorr.boundaryField()[patchi]; + + if (!alphaPhiCorrp.coupled()) + { + const scalarField& phi1p = phase.phi().boundaryField()[patchi]; + const scalarField& alpha1p = alpha1.boundaryField()[patchi]; + + forAll(alphaPhiCorrp, facei) + { + if (phi1p[facei] < 0) + { + alphaPhiCorrp[facei] = alpha1p[facei]*phi1p[facei]; + } + } + } + } + + if (fv::localEulerDdt::enabled(mesh_)) + { + const volScalarField& rDeltaT = + fv::localEulerDdt::localRDeltaT(mesh_); + + MULES::limit + ( + rDeltaT, + geometricOneField(), + phase, + phi_, + alphaPhiCorr, + zeroField(), + zeroField(), + phase.alphaMax(), + 0, + true + ); + } + else + { + const scalar rDeltaT = 1.0/mesh_.time().deltaTValue(); + + MULES::limit + ( + rDeltaT, + geometricOneField(), + phase, + phi_, + alphaPhiCorr, + zeroField(), + zeroField(), + phase.alphaMax(), + 0, + true + ); + } + } + + MULES::limitSum(alphaPhiCorrs); + + volScalarField sumAlpha + ( + IOobject + ( + "sumAlpha", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("sumAlpha", dimless, 0) + ); + + + volScalarField divU(fvc::div(fvc::absolute(phi_, phases().first().U()))); + + forAll(phases(), phasei) + { + phaseModel& phase = phases()[phasei]; + volScalarField& alpha = phase; + + surfaceScalarField& alphaPhic = alphaPhiCorrs[phasei]; + alphaPhic += upwind<scalar>(mesh_, phi_).flux(phase); + + volScalarField::DimensionedInternalField Sp + ( + IOobject + ( + "Sp", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("Sp", divU.dimensions(), 0.0) + ); + + volScalarField::DimensionedInternalField Su + ( + IOobject + ( + "Su", + mesh_.time().timeName(), + mesh_ + ), + // Divergence term is handled explicitly to be + // consistent with the explicit transport solution + divU*min(alpha, scalar(1)) + ); + + if (phase.divU().valid()) + { + const scalarField& dgdt = phase.divU()(); + + forAll(dgdt, celli) + { + if (dgdt[celli] > 0.0) + { + Sp[celli] -= dgdt[celli]; + Su[celli] += dgdt[celli]; + } + else if (dgdt[celli] < 0.0) + { + Sp[celli] += + dgdt[celli] + *(1.0 - alpha[celli])/max(alpha[celli], 1e-4); + } + } + } + + forAll(phases(), phasej) + { + const phaseModel& phase2 = phases()[phasej]; + const volScalarField& alpha2 = phase2; + + if (&phase2 == &phase) continue; + + if (phase2.divU().valid()) + { + const scalarField& dgdt2 = phase2.divU()(); + + forAll(dgdt2, celli) + { + if (dgdt2[celli] < 0.0) + { + Sp[celli] += + dgdt2[celli] + *(1.0 - alpha2[celli])/max(alpha2[celli], 1e-4); + + Su[celli] -= + dgdt2[celli] + *alpha[celli]/max(alpha2[celli], 1e-4); + } + else if (dgdt2[celli] > 0.0) + { + Sp[celli] -= dgdt2[celli]; + } + } + } + } + + MULES::explicitSolve + ( + geometricOneField(), + alpha, + alphaPhic, + Sp, + Su + ); + + phase.alphaPhi() += alphaPhic; + + Info<< phase.name() << " volume fraction, min, max = " + << phase.weightedAverage(mesh_.V()).value() + << ' ' << min(phase).value() + << ' ' << max(phase).value() + << endl; + + sumAlpha += phase; + } + + Info<< "Phase-sum volume fraction, min, max = " + << sumAlpha.weightedAverage(mesh_.V()).value() + << ' ' << min(sumAlpha).value() + << ' ' << max(sumAlpha).value() + << endl; +} + + +Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseSystem::nHatfv +( + const volScalarField& alpha1, + const volScalarField& alpha2 +) const +{ + /* + // Cell gradient of alpha + volVectorField gradAlpha = + alpha2*fvc::grad(alpha1) - alpha1*fvc::grad(alpha2); + + // Interpolated face-gradient of alpha + surfaceVectorField gradAlphaf = fvc::interpolate(gradAlpha); + */ + + surfaceVectorField gradAlphaf + ( + fvc::interpolate(alpha2)*fvc::interpolate(fvc::grad(alpha1)) + - fvc::interpolate(alpha1)*fvc::interpolate(fvc::grad(alpha2)) + ); + + // Face unit interface normal + return gradAlphaf/(mag(gradAlphaf) + deltaN_); +} + + +Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::nHatf +( + const volScalarField& alpha1, + const volScalarField& alpha2 +) const +{ + // Face unit interface normal flux + return nHatfv(alpha1, alpha2) & mesh_.Sf(); +} + + +// Correction for the boundary condition on the unit normal nHat on +// walls to produce the correct contact angle. + +// The dynamic contact angle is calculated from the component of the +// velocity on the direction of the interface, parallel to the wall. + +void Foam::multiphaseSystem::correctContactAngle +( + const phaseModel& phase1, + const phaseModel& phase2, + surfaceVectorField::GeometricBoundaryField& nHatb +) const +{ + const volScalarField::GeometricBoundaryField& gbf + = phase1.boundaryField(); + + const fvBoundaryMesh& boundary = mesh_.boundary(); + + forAll(boundary, patchi) + { + if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi])) + { + const alphaContactAngleFvPatchScalarField& acap = + refCast<const alphaContactAngleFvPatchScalarField>(gbf[patchi]); + + vectorField& nHatPatch = nHatb[patchi]; + + vectorField AfHatPatch + ( + mesh_.Sf().boundaryField()[patchi] + /mesh_.magSf().boundaryField()[patchi] + ); + + alphaContactAngleFvPatchScalarField::thetaPropsTable:: + const_iterator tp = + acap.thetaProps() + .find(phasePairKey(phase1.name(), phase2.name())); + + if (tp == acap.thetaProps().end()) + { + FatalErrorIn + ( + "multiphaseSystem::correctContactAngle" + "(const phaseModel& phase1, const phaseModel& phase2, " + "fvPatchVectorFieldField& nHatb) const" + ) << "Cannot find interface " + << phasePairKey(phase1.name(), phase2.name()) + << "\n in table of theta properties for patch " + << acap.patch().name() + << exit(FatalError); + } + + bool matched = (tp.key().first() == phase1.name()); + + scalar theta0 = convertToRad*tp().theta0(matched); + scalarField theta(boundary[patchi].size(), theta0); + + scalar uTheta = tp().uTheta(); + + // Calculate the dynamic contact angle if required + if (uTheta > SMALL) + { + scalar thetaA = convertToRad*tp().thetaA(matched); + scalar thetaR = convertToRad*tp().thetaR(matched); + + // Calculated the component of the velocity parallel to the wall + vectorField Uwall + ( + phase1.U()().boundaryField()[patchi].patchInternalField() + - phase1.U()().boundaryField()[patchi] + ); + Uwall -= (AfHatPatch & Uwall)*AfHatPatch; + + // Find the direction of the interface parallel to the wall + vectorField nWall + ( + nHatPatch - (AfHatPatch & nHatPatch)*AfHatPatch + ); + + // Normalise nWall + nWall /= (mag(nWall) + SMALL); + + // Calculate Uwall resolved normal to the interface parallel to + // the interface + scalarField uwall(nWall & Uwall); + + theta += (thetaA - thetaR)*tanh(uwall/uTheta); + } + + + // Reset nHatPatch to correspond to the contact angle + + scalarField a12(nHatPatch & AfHatPatch); + + scalarField b1(cos(theta)); + + scalarField b2(nHatPatch.size()); + + forAll(b2, facei) + { + b2[facei] = cos(acos(a12[facei]) - theta[facei]); + } + + scalarField det(1.0 - a12*a12); + + scalarField a((b1 - a12*b2)/det); + scalarField b((b2 - a12*b1)/det); + + nHatPatch = a*AfHatPatch + b*nHatPatch; + + nHatPatch /= (mag(nHatPatch) + deltaN_.value()); + } + } +} + + +Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::K +( + const phaseModel& phase1, + const phaseModel& phase2 +) const +{ + tmp<surfaceVectorField> tnHatfv = nHatfv(phase1, phase2); + + correctContactAngle(phase1, phase2, tnHatfv().boundaryField()); + + // Simple expression for curvature + return -fvc::div(tnHatfv & mesh_.Sf()); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::multiphaseSystem::multiphaseSystem +( + const fvMesh& mesh +) +: + phaseSystem(mesh), + + alphas_ + ( + IOobject + ( + "alphas", + mesh_.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("alphas", dimless, 0.0), + zeroGradientFvPatchScalarField::typeName + ), + + cAlphas_(lookup("interfaceCompression")), + + deltaN_ + ( + "deltaN", + 1e-8/pow(average(mesh_.V()), 1.0/3.0) + ) +{ + forAll(phases(), phasei) + { + volScalarField& alphai = phases()[phasei]; + mesh_.setFluxRequired(alphai.name()); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::multiphaseSystem::~multiphaseSystem() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension +( + const phaseModel& phase1 +) const +{ + tmp<surfaceScalarField> tSurfaceTension + ( + new surfaceScalarField + ( + IOobject + ( + "surfaceTension", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar + ( + "surfaceTension", + dimensionSet(1, -2, -2, 0, 0), + 0 + ) + ) + ); + + forAll(phases(), phasej) + { + const phaseModel& phase2 = phases()[phasej]; + + if (&phase2 != &phase1) + { + phasePairKey key12(phase1.name(), phase2.name()); + + cAlphaTable::const_iterator cAlpha(cAlphas_.find(key12)); + + if (cAlpha != cAlphas_.end()) + { + tSurfaceTension() += + fvc::interpolate(sigma(key12)*K(phase1, phase2)) + *( + fvc::interpolate(phase2)*fvc::snGrad(phase1) + - fvc::interpolate(phase1)*fvc::snGrad(phase2) + ); + } + } + } + + return tSurfaceTension; +} + + +Foam::tmp<Foam::volScalarField> +Foam::multiphaseSystem::nearInterface() const +{ + tmp<volScalarField> tnearInt + ( + new volScalarField + ( + IOobject + ( + "nearInterface", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("nearInterface", dimless, 0.0) + ) + ); + + forAll(phases(), phasei) + { + tnearInt() = max + ( + tnearInt(), + pos(phases()[phasei] - 0.01)*pos(0.99 - phases()[phasei]) + ); + } + + return tnearInt; +} + + +void Foam::multiphaseSystem::solve() +{ + const Time& runTime = mesh_.time(); + + const dictionary& alphaControls = mesh_.solverDict("alpha"); + label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles"))); + + bool LTS = fv::localEulerDdt::enabled(mesh_); + + if (nAlphaSubCycles > 1) + { + tmp<volScalarField> trSubDeltaT; + + if (LTS) + { + trSubDeltaT = + fv::localEulerDdt::localRSubDeltaT(mesh_, nAlphaSubCycles); + } + + dimensionedScalar totalDeltaT = runTime.deltaT(); + + PtrList<volScalarField> alpha0s(phases().size()); + PtrList<surfaceScalarField> alphaPhiSums(phases().size()); + + forAll(phases(), phasei) + { + phaseModel& phase = phases()[phasei]; + volScalarField& alpha = phase; + + alpha0s.set + ( + phasei, + new volScalarField(alpha.oldTime()) + ); + + alphaPhiSums.set + ( + phasei, + new surfaceScalarField + ( + IOobject + ( + "phiSum" + alpha.name(), + runTime.timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0) + ) + ); + } + + for + ( + subCycleTime alphaSubCycle + ( + const_cast<Time&>(runTime), + nAlphaSubCycles + ); + !(++alphaSubCycle).end(); + ) + { + solveAlphas(); + + forAll(phases(), phasei) + { + alphaPhiSums[phasei] += phases()[phasei].alphaPhi(); + } + } + + forAll(phases(), phasei) + { + phaseModel& phase = phases()[phasei]; + volScalarField& alpha = phase; + + phase.alphaPhi() = alphaPhiSums[phasei]/nAlphaSubCycles; + + // Correct the time index of the field + // to correspond to the global time + alpha.timeIndex() = runTime.timeIndex(); + + // Reset the old-time field value + alpha.oldTime() = alpha0s[phasei]; + alpha.oldTime().timeIndex() = runTime.timeIndex(); + } + } + else + { + solveAlphas(); + } + + forAll(phases(), phasei) + { + phaseModel& phase = phases()[phasei]; + phase.alphaRhoPhi() = fvc::interpolate(phase.rho())*phase.alphaPhi(); + } + + calcAlphas(); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H new file mode 100644 index 0000000000000000000000000000000000000000..e33bf8c4878053847d4cae31fa2f0e79d551eb82 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H @@ -0,0 +1,216 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::multiphaseSystem + +Description + Class which solves the volume fraction equations for two phases. + +SourceFiles + multiphaseSystem.C + +\*---------------------------------------------------------------------------*/ + +#ifndef multiphaseSystem_H +#define multiphaseSystem_H + +#include "phaseSystem.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class dragModel; +class virtualMassModel; + +/*---------------------------------------------------------------------------*\ + Class multiphaseSystem Declaration +\*---------------------------------------------------------------------------*/ + +class multiphaseSystem +: + public phaseSystem +{ + // Private data + + volScalarField alphas_; + + typedef HashTable<scalar, phasePairKey, phasePairKey::hash> + cAlphaTable; + + cAlphaTable cAlphas_; + + //- Stabilisation for normalisation of the interface normal + const dimensionedScalar deltaN_; + + //- Conversion factor for degrees into radians + static const scalar convertToRad; + + + // Private member functions + + void calcAlphas(); + + void solveAlphas(); + + tmp<surfaceVectorField> nHatfv + ( + const volScalarField& alpha1, + const volScalarField& alpha2 + ) const; + + tmp<surfaceScalarField> nHatf + ( + const volScalarField& alpha1, + const volScalarField& alpha2 + ) const; + + void correctContactAngle + ( + const phaseModel& alpha1, + const phaseModel& alpha2, + surfaceVectorField::GeometricBoundaryField& nHatb + ) const; + + tmp<volScalarField> K + ( + const phaseModel& alpha1, + const phaseModel& alpha2 + ) const; + + + //- Return the drag coefficient for phase pair + virtual tmp<volScalarField> Kd(const phasePairKey& key) const = 0; + + //- Return the face drag coefficient for phase pair + virtual tmp<surfaceScalarField> Kdf(const phasePairKey& key) const = 0; + + //- Return the virtual mass coefficient for phase pair + virtual tmp<volScalarField> Vm(const phasePairKey& key) const = 0; + + //- Return the face virtual mass coefficient for phase pair + virtual tmp<surfaceScalarField> Vmf(const phasePairKey& key) const = 0; + + //- Return the turbulent diffusivity for phase pair + // Multiplies the phase-fraction gradient + virtual tmp<volScalarField> D(const phasePairKey& key) const = 0; + + //- Return the interfacial mass flow rate for phase pair + virtual tmp<volScalarField> dmdt(const phasePairKey& key) const = 0; + + +public: + + //- Runtime type information + TypeName("multiphaseSystem"); + + // Declare runtime construction + + declareRunTimeSelectionTable + ( + autoPtr, + multiphaseSystem, + dictionary, + ( + const fvMesh& mesh + ), + (mesh) + ); + + + // Constructors + + //- Construct from fvMesh + multiphaseSystem(const fvMesh&); + + + //- Destructor + virtual ~multiphaseSystem(); + + + // Selectors + + static autoPtr<multiphaseSystem> New + ( + const fvMesh& mesh + ); + + + // Member Functions + + //- Return the drag coefficient for all phase-pairs + virtual const phaseSystem::KdTable& Kds() const = 0; + + //- Return the drag coefficient for phase + virtual tmp<volScalarField> Kd(const phaseModel& phase) const = 0; + + //- Return the combined force (lift + wall-lubrication) for phase pair + virtual autoPtr<PtrList<Foam::volVectorField> > Fs() const = 0; + + //- Return the turbulent dispersion force on faces for phase pair + virtual autoPtr<PtrList<Foam::surfaceScalarField> > phiDs + ( + const PtrList<volScalarField>& rAUs + ) const = 0; + + //- Return true if there is mass transfer for phase + virtual bool transfersMass(const phaseModel& phase) const = 0; + + //- Return the total interfacial mass transfer rate for phase + virtual tmp<volScalarField> dmdt(const phaseModel& phase) const = 0; + + //- Return the momentum transfer matrices + virtual autoPtr<momentumTransferTable> momentumTransfer() const = 0; + + //- Return the heat transfer matrices + virtual autoPtr<heatTransferTable> heatTransfer() const = 0; + + //- Return the mass transfer matrices + virtual autoPtr<massTransferTable> massTransfer() const = 0; + + tmp<surfaceScalarField> surfaceTension(const phaseModel& phase) const; + + //- Indicator of the proximity of the interface + // Field values are 1 near and 0 away for the interface. + tmp<volScalarField> nearInterface() const; + + //- Solve for the phase fractions + virtual void solve(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "multiphaseSystemI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystemI.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystemI.H new file mode 100644 index 0000000000000000000000000000000000000000..b4ea3674517664da67a2c2a8c033f899309a1f21 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystemI.H @@ -0,0 +1,28 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystems.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystems.C new file mode 100644 index 0000000000000000000000000000000000000000..3e1a3eaf9f395feafe5eb1503b1ea995440e60ce --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystems.C @@ -0,0 +1,86 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "addToRunTimeSelectionTable.H" + +#include "phaseSystem.H" +#include "multiphaseSystem.H" +#include "MomentumTransferPhaseSystem.H" +#include "HeatTransferPhaseSystem.H" +#include "InterfaceCompositionPhaseChangePhaseSystem.H" +#include "ThermalPhaseChangePhaseSystem.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef + HeatTransferPhaseSystem + < + MomentumTransferPhaseSystem<multiphaseSystem> + > + heatAndMomentumTransferMultiphaseSystem; + + addNamedToRunTimeSelectionTable + ( + multiphaseSystem, + heatAndMomentumTransferMultiphaseSystem, + dictionary, + heatAndMomentumTransferMultiphaseSystem + ); + + typedef + InterfaceCompositionPhaseChangePhaseSystem + < + MomentumTransferPhaseSystem<multiphaseSystem> + > + interfaceCompositionPhaseChangeMultiphaseSystem; + + addNamedToRunTimeSelectionTable + ( + multiphaseSystem, + interfaceCompositionPhaseChangeMultiphaseSystem, + dictionary, + interfaceCompositionPhaseChangeMultiphaseSystem + ); + + typedef + ThermalPhaseChangePhaseSystem + < + MomentumTransferPhaseSystem<multiphaseSystem> + > + thermalPhaseChangeMultiphaseSystem; + + addNamedToRunTimeSelectionTable + ( + multiphaseSystem, + thermalPhaseChangeMultiphaseSystem, + dictionary, + thermalPhaseChangeMultiphaseSystem + ); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/newMultiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/newMultiphaseSystem.C new file mode 100644 index 0000000000000000000000000000000000000000..79e3546c491d1f2515e1ee2f1eafb59c4137fc56 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/newMultiphaseSystem.C @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "multiphaseSystem.H" + +// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * // + +Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New +( + const fvMesh& mesh +) +{ + const word multiphaseSystemType + ( + IOdictionary + ( + IOobject + ( + propertiesName, + mesh.time().constant(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE, + false + ) + ).lookup("type") + ); + + Info<< "Selecting multiphaseSystem " + << multiphaseSystemType << endl; + + dictionaryConstructorTable::iterator cstrIter = + dictionaryConstructorTablePtr_->find(multiphaseSystemType); + + if (cstrIter == dictionaryConstructorTablePtr_->end()) + { + FatalErrorIn("multiphaseSystem::New") + << "Unknown multiphaseSystemType type " + << multiphaseSystemType << endl << endl + << "Valid multiphaseSystem types are : " << endl + << dictionaryConstructorTablePtr_->sortedToc() + << exit(FatalError); + } + + return cstrIter()(mesh); +} + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/UEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/UEqns.H new file mode 100644 index 0000000000000000000000000000000000000000..cf70a99e188a7418356c15cf4b73925576f754bd --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/UEqns.H @@ -0,0 +1,36 @@ +Info<< "Constructing momentum equations" << endl; + +PtrList<fvVectorMatrix> UEqns(phases.size()); + +{ + autoPtr<phaseSystem::momentumTransferTable> + momentumTransferPtr(fluid.momentumTransfer()); + + phaseSystem::momentumTransferTable& + momentumTransfer(momentumTransferPtr()); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + const volScalarField& alpha = phase; + const volScalarField& rho = phase.rho(); + volVectorField& U = phase.U(); + + UEqns.set + ( + phasei, + new fvVectorMatrix + ( + phase.UEqn() + == + *momentumTransfer[phase.name()] + + fvOptions(alpha, rho, U) + ) + ); + + UEqns[phasei].relax(); + fvOptions.constrain(UEqns[phasei]); + fvOptions.correct(U); + } +} diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..2703d75ef1f6b2da04bb0d86ca4cb24368730ad1 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H @@ -0,0 +1,464 @@ +PtrList<surfaceScalarField> alphafs(phases.size()); +PtrList<volScalarField> rAUs(phases.size()); +PtrList<surfaceScalarField> alpharAUfs(phases.size()); + +forAll(phases, phasei) +{ + phaseModel& phase = phases[phasei]; + const volScalarField& alpha = phase; + + alphafs.set(phasei, fvc::interpolate(alpha).ptr()); + alphafs[phasei].rename("pEqn" + alphafs[phasei].name()); + + rAUs.set + ( + phasei, + new volScalarField + ( + IOobject::groupName("rAU", phase.name()), + 1.0 + /( + UEqns[phasei].A() + + max(phase.residualAlpha() - alpha, scalar(0)) + *phase.rho()/runTime.deltaT() + ) + ) + ); + + alpharAUfs.set + ( + phasei, + ( + fvc::interpolate(max(alpha, phase.residualAlpha())*rAUs[phasei]) + ).ptr() + ); +} + +// Lift, wall-lubrication and turbulent diffusion fluxes +PtrList<surfaceScalarField> phiFs(phases.size()); +{ + autoPtr<PtrList<volVectorField> > Fs = fluid.Fs(); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + if (Fs().set(phasei)) + { + phiFs.set + ( + phasei, + new surfaceScalarField + ( + IOobject::groupName("phiF", phase.name()), + (fvc::interpolate(rAUs[phasei]*Fs()[phasei]) & mesh.Sf()) + ) + ); + } + } +} +{ + autoPtr<PtrList<surfaceScalarField> > phiDs = fluid.phiDs(rAUs); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + if (phiDs().set(phasei)) + { + if (phiFs.set(phasei)) + { + phiFs[phasei] += phiDs()[phasei]; + } + else + { + phiFs.set + ( + phasei, + new surfaceScalarField + ( + IOobject::groupName("phiF", phase.name()), + phiDs()[phasei] + ) + ); + } + } + } +} + +// --- Pressure corrector loop +while (pimple.correct()) +{ + // Update continuity errors due to temperature changes + fluid.correct(); + + PtrList<volVectorField> HbyAs(phases.size()); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + const volScalarField& alpha = phase; + + // Correct fixed-flux BCs to be consistent with the velocity BCs + MRF.correctBoundaryFlux(phase.U(), phase.phi()); + + HbyAs.set + ( + phasei, + new volVectorField + ( + IOobject::groupName("HbyA", phase.name()), + phase.U() + ) + ); + + HbyAs[phasei] = + rAUs[phasei] + *( + UEqns[phasei].H() + + max(phase.residualAlpha() - alpha, scalar(0)) + *phase.rho()*phase.U().oldTime()/runTime.deltaT() + ); + } + + // Mean density for buoyancy force and p_rgh -> p + volScalarField rho("rho", fluid.rho()); + + surfaceScalarField ghSnGradRho + ( + "ghSnGradRho", + ghf*fvc::snGrad(rho)*mesh.magSf() + ); + + PtrList<surfaceScalarField> phigFs(phases.size()); + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + phigFs.set + ( + phasei, + ( + alpharAUfs[phasei] + *( + ghSnGradRho + - (fvc::interpolate(phase.rho() - rho))*(g & mesh.Sf()) + - fluid.surfaceTension(phase)*mesh.magSf() + ) + ).ptr() + ); + + if (phiFs.set(phasei)) + { + phigFs[phasei] += phiFs[phasei]; + } + } + + PtrList<surfaceScalarField> phiHbyAs(phases.size()); + + surfaceScalarField phiHbyA + ( + IOobject + ( + "phiHbyA", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("phiHbyA", dimArea*dimVelocity, 0) + ); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + const volScalarField& alpha = phase; + + // ddtPhiCorr filter -- only apply in pure(ish) phases + surfaceScalarField alphafBar + ( + fvc::interpolate(fvc::average(alphafs[phasei])) + ); + surfaceScalarField phiCorrCoeff(pos(alphafBar - 0.99)); + + forAll(mesh.boundary(), patchi) + { + // Set ddtPhiCorr to 0 on non-coupled boundaries + if + ( + !mesh.boundary()[patchi].coupled() + || isA<cyclicAMIFvPatch>(mesh.boundary()[patchi]) + ) + { + phiCorrCoeff.boundaryField()[patchi] = 0; + } + } + + phiHbyAs.set + ( + phasei, + new surfaceScalarField + ( + IOobject::groupName("phiHbyA", phase.name()), + (fvc::interpolate(HbyAs[phasei]) & mesh.Sf()) + + phiCorrCoeff + *fvc::interpolate + ( + alpha.oldTime()*phase.rho()().oldTime()*rAUs[phasei] + ) + *( + MRF.absolute(phase.phi().oldTime()) + - (fvc::interpolate(phase.U().oldTime()) & mesh.Sf()) + )/runTime.deltaT() + - phigFs[phasei] + ) + ); + + forAllConstIter + ( + phaseSystem::KdTable, + fluid.Kds(), + KdIter + ) + { + const volScalarField& K(*KdIter()); + + const phasePair& pair(fluid.phasePairs()[KdIter.key()]); + + const phaseModel* phase1 = &pair.phase1(); + const phaseModel* phase2 = &pair.phase2(); + + forAllConstIter(phasePair, pair, iter) + { + if (phase1 == &phase) + { + phiHbyAs[phasei] += + fvc::interpolate(rAUs[phasei]*K) + *MRF.absolute(phase2->phi()); + + HbyAs[phasei] += rAUs[phasei]*K*phase2->U(); + } + + Swap(phase1, phase2); + } + } + + phiHbyA += alphafs[phasei]*phiHbyAs[phasei]; + } + + MRF.makeRelative(phiHbyA); + + // Construct pressure "diffusivity" + surfaceScalarField rAUf + ( + IOobject + ( + "rAUf", + runTime.timeName(), + mesh + ), + mesh, + dimensionedScalar("rAUf", dimensionSet(-1, 3, 1, 0, 0), 0) + ); + + forAll(phases, phasei) + { + rAUf += alphafs[phasei]*alpharAUfs[phasei]; + } + rAUf = mag(rAUf); + + + // Update the fixedFluxPressure BCs to ensure flux consistency + { + surfaceScalarField::GeometricBoundaryField phib(phi.boundaryField()); + phib = 0; + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + phib += alphafs[phasei].boundaryField()*phase.phi().boundaryField(); + } + + setSnGrad<fixedFluxPressureFvPatchScalarField> + ( + p_rgh.boundaryField(), + ( + phiHbyA.boundaryField() - phib + )/(mesh.magSf().boundaryField()*rAUf.boundaryField()) + ); + } + + PtrList<fvScalarMatrix> pEqnComps(phases.size()); + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + if (phase.compressible()) + { + const volScalarField& alpha = phase; + const volScalarField& rho = phase.rho(); + + if (pimple.transonic()) + { + surfaceScalarField phid + ( + IOobject::groupName("phid", phase.name()), + fvc::interpolate(phase.thermo().psi())*phase.phi() + ); + + pEqnComps.set + ( + phasei, + ( + ( + phase.continuityError() + - fvc::Sp + ( + fvc::ddt(alpha) + fvc::div(phase.alphaPhi()), + rho + ) + )/rho + + (alpha/rho)*correction + ( + phase.thermo().psi()*fvm::ddt(p_rgh) + + fvm::div(phid, p_rgh) + - fvm::Sp(fvc::div(phid), p_rgh) + ) + ).ptr() + ); + + deleteDemandDrivenData + ( + pEqnComps[phasei].faceFluxCorrectionPtr() + ); + pEqnComps[phasei].relax(); + } + else + { + pEqnComps.set + ( + phasei, + ( + ( + phase.continuityError() + - fvc::Sp + ( + (fvc::ddt(alpha) + fvc::div(phase.alphaPhi())), + rho + ) + )/rho + + (alpha*phase.thermo().psi()/rho) + *correction(fvm::ddt(p_rgh)) + ).ptr() + ); + } + + if (fluid.transfersMass(phase)) + { + if (pEqnComps.set(phasei)) + { + pEqnComps[phasei] -= fluid.dmdt(phase)/rho; + } + else + { + pEqnComps.set + ( + phasei, + fvm::Su(-fluid.dmdt(phase)/rho, p_rgh) + ); + } + } + } + } + + // Cache p prior to solve for density update + volScalarField p_rgh_0(p_rgh); + + // Iterate over the pressure equation to correct for non-orthogonality + while (pimple.correctNonOrthogonal()) + { + // Construct the transport part of the pressure equation + fvScalarMatrix pEqnIncomp + ( + fvc::div(phiHbyA) + - fvm::laplacian(rAUf, p_rgh) + ); + + { + fvScalarMatrix pEqn(pEqnIncomp); + + forAll(phases, phasei) + { + if (pEqnComps.set(phasei)) + { + pEqn += pEqnComps[phasei]; + } + } + + solve + ( + pEqn, + mesh.solver(p_rgh.select(pimple.finalInnerIter())) + ); + } + + // Correct fluxes and velocities on last non-orthogonal iteration + if (pimple.finalNonOrthogonalIter()) + { + phi = phiHbyA + pEqnIncomp.flux(); + + surfaceScalarField mSfGradp("mSfGradp", pEqnIncomp.flux()/rAUf); + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + phase.phi() = phiHbyAs[phasei] + alpharAUfs[phasei]*mSfGradp; + + // Set the phase dilatation rates + if (phase.compressible()) + { + phase.divU(-pEqnComps[phasei] & p_rgh); + } + } + + // Optionally relax pressure for velocity correction + p_rgh.relax(); + + mSfGradp = pEqnIncomp.flux()/rAUf; + + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + + phase.U() = + HbyAs[phasei] + + fvc::reconstruct + ( + alpharAUfs[phasei]*mSfGradp + - phigFs[phasei] + ); + phase.U().correctBoundaryConditions(); + fvOptions.correct(phase.U()); + } + } + } + + // Update and limit the static pressure + p = max(p_rgh + rho*gh, pMin); + + // Limit p_rgh + p_rgh = p - rho*gh; + + // Update densities from change in p_rgh + forAll(phases, phasei) + { + phaseModel& phase = phases[phasei]; + phase.rho()() += phase.thermo().psi()*(p_rgh - p_rgh_0); + } + + // Correct p_rgh for consistency with p and the updated densities + rho = fluid.rho(); + p_rgh = p - rho*gh; + p_rgh.correctBoundaryConditions(); +} diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C new file mode 100644 index 0000000000000000000000000000000000000000..cb90ee119626b6a0b83eec8c55bd857c294b3aa1 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C @@ -0,0 +1,143 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Application + reactingMultiphaseEulerFoam + +Description + Solver for a system of any number of compressible fluid phases with a + common pressure, but otherwise separate properties. The type of phase model + is run time selectable and can optionally represent multiple species and + in-phase reactions. The phase system is also run time selectable and can + optionally represent different types of momentun, heat and mass transfer. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "multiphaseSystem.H" +#include "fixedFluxPressureFvPatchScalarField.H" +#include "pimpleControl.H" +#include "localEulerDdtScheme.H" +#include "fvcSmooth.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + + #include "createTime.H" + #include "createMesh.H" + + pimpleControl pimple(mesh); + + #include "createTimeControls.H" + #include "createRDeltaT.H" + #include "createFields.H" + + if (!LTS) + { + #include "CourantNo.H" + #include "setInitialDeltaT.H" + } + + // Switch faceMomentum + // ( + // pimple.dict().lookupOrDefault<Switch>("faceMomentum", false) + // ); + + // Switch implicitPhasePressure + // ( + // mesh.solverDict(alpha1.name()).lookupOrDefault<Switch> + // ( + // "implicitPhasePressure", false + // ) + // ); + + //#include "pUf/createDDtU.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.run()) + { + #include "readTimeControls.H" + + if (LTS) + { + #include "setRDeltaT.H" + } + else + { + #include "CourantNo.H" + #include "setDeltaT.H" + } + + runTime++; + Info<< "Time = " << runTime.timeName() << nl << endl; + + // --- Pressure-velocity PIMPLE corrector loop + while (pimple.loop()) + { + fluid.solve(); + fluid.correct(); + + #include "YEqns.H" + + // if (faceMomentum) + // { + // #include "pUf/UEqns.H" + // #include "EEqns.H" + // #include "pUf/pEqn.H" + // #include "pUf/DDtU.H" + // } + // else + { + #include "pU/UEqns.H" + #include "EEqns.H" + #include "pU/pEqn.H" + } + + fluid.correctKinematics(); + + if (pimple.turbCorr()) + { + fluid.correctTurbulence(); + } + } + + runTime.write(); + + Info<< "ExecutionTime = " + << runTime.elapsedCpuTime() + << " s\n\n" << endl; + } + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/setRDeltaT.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/setRDeltaT.H new file mode 100644 index 0000000000000000000000000000000000000000..9e9ca5423090d416c988e44e5663849fad33119f --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/setRDeltaT.H @@ -0,0 +1,36 @@ +{ + volScalarField& rDeltaT = trDeltaT(); + + scalar rDeltaTSmoothingCoeff + ( + runTime.controlDict().lookupOrDefault<scalar> + ( + "rDeltaTSmoothingCoeff", + 0.02 + ) + ); + + surfaceScalarField maxPhi("maxPhi", phi); + + forAll(phases, phasei) + { + maxPhi = max(maxPhi, mag(phases[phasei].phi())); + } + + // Set the reciprocal time-step from the local Courant number + rDeltaT.dimensionedInternalField() = max + ( + 1/dimensionedScalar("maxDeltaT", dimTime, maxDeltaT), + fvc::surfaceSum(maxPhi)().dimensionedInternalField() + /((2*maxCo)*mesh.V()) + ); + + // Update tho boundary values of the reciprocal time-step + rDeltaT.correctBoundaryConditions(); + + fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff); + + Info<< "Flow time scale min/max = " + << gMin(1/rDeltaT.internalField()) + << ", " << gMax(1/rDeltaT.internalField()) << endl; +} diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwclean b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwclean new file mode 100755 index 0000000000000000000000000000000000000000..87e030a14ad58109b78b60b1c22233e77228ba5f --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwclean @@ -0,0 +1,9 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +set -x + +wclean libso twoPhaseSystem +wclean libso twoPhaseCompressibleTurbulenceModels +wclean + +# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwmake b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwmake new file mode 100755 index 0000000000000000000000000000000000000000..d0e2fc63c7aae159a7bac304aceb2f23f236a89b --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Allwmake @@ -0,0 +1,9 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +set -x + +wmake libso twoPhaseSystem +wmake libso twoPhaseCompressibleTurbulenceModels +wmake + +# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/CourantNos.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/CourantNos.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/CourantNos.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/CourantNos.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/EEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/EEqns.H similarity index 76% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/EEqns.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/EEqns.H index 588bd7ddf44d4399175fdcaa1d10dc71ecbf5bb7..684e5ede43f3382f296a3ac147f1d7b86e570989 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/EEqns.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/EEqns.H @@ -1,4 +1,6 @@ { + fluid.correctEnergyTransport(); + autoPtr<phaseSystem::heatTransferTable> heatTransferPtr(fluid.heatTransfer()); @@ -47,3 +49,15 @@ } fluid.correctThermo(); + +Info<< phase1.name() << " min/max T " + << min(phase1.thermo().T()).value() + << " - " + << max(phase1.thermo().T()).value() + << endl; + +Info<< phase2.name() << " min/max T " + << min(phase2.thermo().T()).value() + << " - " + << max(phase2.thermo().T()).value() + << endl; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/files similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/files rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/files diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..6d3bc54b85ab9bd3c82f99599202e1596f23902c --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options @@ -0,0 +1,26 @@ +EXE_INC = \ + -ItwoPhaseSystem/lnInclude \ + -I../phaseSystems/lnInclude \ + -I../interfacialModels/lnInclude \ + -I../interfacialCompositionModels/lnInclude \ + -ItwoPhaseCompressibleTurbulenceModels/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +EXE_LIBS = \ + -lreactingPhaseSystem \ + -lreactingTwoPhaseSystem \ + -lreactingEulerianInterfacialModels \ + -lreactingEulerianInterfacialCompositionModels \ + -ltwoPhaseReactingTurbulenceModels \ + -lfiniteVolume \ + -lfvOptions \ + -lmeshTools \ + -lsampling diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/YEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/YEqns.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/YEqns.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/YEqns.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/createFields.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H index 30b3b0e715e10da6aecea7090b4d4c9d8448fe69..60d17c251fb4ff3e11ca291aff083dc0f6811be5 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/createFields.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H @@ -72,7 +72,6 @@ setRefCell pRefValue ); mesh.setFluxRequired(p_rgh.name()); -mesh.setFluxRequired(alpha1.name()); const IOMRFZoneList& MRF = fluid.MRF(); fv::IOoptionList& fvOptions = fluid.fvOptions(); diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/UEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/UEqns.H new file mode 100644 index 0000000000000000000000000000000000000000..99bc95cfd67e05ed3b5c2a1d8786b2b3fa253778 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/UEqns.H @@ -0,0 +1,38 @@ +Info<< "Constructing momentum equations" << endl; + +fvVectorMatrix U1Eqn(U1, rho1.dimensions()*U1.dimensions()*dimVol/dimTime); +fvVectorMatrix U2Eqn(U2, rho2.dimensions()*U2.dimensions()*dimVol/dimTime); + +{ + autoPtr<phaseSystem::momentumTransferTable> + momentumTransferPtr(fluid.momentumTransfer()); + + phaseSystem::momentumTransferTable& + momentumTransfer(momentumTransferPtr()); + + { + U1Eqn = + ( + phase1.UEqn() + == + *momentumTransfer[phase1.name()] + + fvOptions(alpha1, rho1, U1) + ); + U1Eqn.relax(); + fvOptions.constrain(U1Eqn); + fvOptions.correct(U1); + } + + { + U2Eqn = + ( + phase2.UEqn() + == + *momentumTransfer[phase2.name()] + + fvOptions(alpha2, rho2, U2) + ); + U2Eqn.relax(); + fvOptions.constrain(U2Eqn); + fvOptions.correct(U2); + } +} diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H similarity index 76% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/pEqn.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H index 19f2d473b9beb2a436cc491f6aab9e07a4675880..f269a79760a7e217d4b77d9d5016f0e2a5a74e3a 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H @@ -31,6 +31,8 @@ surfaceScalarField alpharAUf2 fvc::interpolate(max(alpha2, phase2.residualAlpha())*rAU2) ); +volScalarField Kd(fluid.Kd()); + // Turbulent diffusion, particle-pressure, lift and wall-lubrication fluxes tmp<surfaceScalarField> phiF1; tmp<surfaceScalarField> phiF2; @@ -237,58 +239,93 @@ while (pimple.correct()) // Construct the compressibility parts of the pressure equation if (pimple.transonic()) { - surfaceScalarField phid1 - ( - IOobject::groupName("phid", phase1.name()), - fvc::interpolate(psi1)*phi1 - ); - surfaceScalarField phid2 - ( - IOobject::groupName("phid", phase2.name()), - fvc::interpolate(psi2)*phi2 - ); - - pEqnComp1 = - ( - phase1.continuityError() - fluid.dmdt() - - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) - )/rho1 - + (alpha1/rho1)*correction + if (phase1.compressible()) + { + surfaceScalarField phid1 ( - psi1*fvm::ddt(p_rgh) - + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh) + IOobject::groupName("phid", phase1.name()), + fvc::interpolate(psi1)*phi1 ); - deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr()); - pEqnComp1().relax(); - pEqnComp2 = - ( - phase2.continuityError() + fluid.dmdt() - - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) - )/rho2 - + (alpha2/rho2)*correction + pEqnComp1 = + ( + phase1.continuityError() + - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) + )/rho1 + + (alpha1/rho1)*correction + ( + psi1*fvm::ddt(p_rgh) + + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh) + ); + + deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr()); + pEqnComp1().relax(); + } + + if (phase2.compressible()) + { + surfaceScalarField phid2 ( - psi2*fvm::ddt(p_rgh) - + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh) + IOobject::groupName("phid", phase2.name()), + fvc::interpolate(psi2)*phi2 ); - deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr()); - pEqnComp2().relax(); + + pEqnComp2 = + ( + phase2.continuityError() + - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) + )/rho2 + + (alpha2/rho2)*correction + ( + psi2*fvm::ddt(p_rgh) + + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh) + ); + deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr()); + pEqnComp2().relax(); + } } else { - pEqnComp1 = - ( - phase1.continuityError() - fluid.dmdt() - - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) - )/rho1 - + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh)); + if (phase1.compressible()) + { + pEqnComp1 = + ( + phase1.continuityError() + - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) + )/rho1 + + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh)); + } - pEqnComp2 = - ( - phase2.continuityError() + fluid.dmdt() - - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) - )/rho2 - + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh)); + if (phase2.compressible()) + { + pEqnComp2 = + ( + phase2.continuityError() + - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) + )/rho2 + + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh)); + } + } + + if (fluid.transfersMass()) + { + if (pEqnComp1.valid()) + { + pEqnComp1() -= fluid.dmdt()/rho1; + } + else + { + pEqnComp1 = fvm::Su(-fluid.dmdt()/rho1, p_rgh); + } + + if (pEqnComp2.valid()) + { + pEqnComp2() += fluid.dmdt()/rho2; + } + else + { + pEqnComp2 = fvm::Su(fluid.dmdt()/rho2, p_rgh); + } } // Cache p prior to solve for density update @@ -304,11 +341,25 @@ while (pimple.correct()) - fvm::laplacian(rAUf, p_rgh) ); - solve - ( - pEqnComp1() + pEqnComp2() + pEqnIncomp, - mesh.solver(p_rgh.select(pimple.finalInnerIter())) - ); + { + fvScalarMatrix pEqn(pEqnIncomp); + + if (pEqnComp1.valid()) + { + pEqn += pEqnComp1(); + } + + if (pEqnComp2.valid()) + { + pEqn += pEqnComp2(); + } + + solve + ( + pEqn, + mesh.solver(p_rgh.select(pimple.finalInnerIter())) + ); + } // Correct fluxes and velocities on last non-orthogonal iteration if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/DDtU.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/DDtU.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/UEqns.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/UEqns.H similarity index 95% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/UEqns.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/UEqns.H index eb1456bc15807fc77b930c42de58ea1df68b6aa4..83c3a9ce7f736029755385c297c4834c9dc205a0 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/UEqns.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/UEqns.H @@ -1,8 +1,5 @@ Info<< "Constructing face momentum equations" << endl; -MRF.correctBoundaryVelocity(U1); -MRF.correctBoundaryVelocity(U2); - fvVectorMatrix U1Eqn(U1, rho1.dimensions()*U1.dimensions()*dimVol/dimTime); fvVectorMatrix U2Eqn(U2, rho2.dimensions()*U2.dimensions()*dimVol/dimTime); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/createDDtU.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/createDDtU.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H similarity index 82% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/pEqn.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H index 161a08b06db21c93344586c82432f41b9fcd45e2..e2edf14bed061f0bbc3e530839bb961ef4065163 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H @@ -227,9 +227,11 @@ while (pimple.correct()) fvc::interpolate(psi2)*phi2 ); - pEqnComp1 = + if (phase1.compressible()) + { + pEqnComp1 = ( - phase1.continuityError() - fluid.dmdt() + phase1.continuityError() - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 + (alpha1/rho1)*correction @@ -237,12 +239,15 @@ while (pimple.correct()) psi1*fvm::ddt(p_rgh) + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh) ); - deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr()); - pEqnComp1().relax(); + deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr()); + pEqnComp1().relax(); + } - pEqnComp2 = + if (phase2.compressible()) + { + pEqnComp2 = ( - phase2.continuityError() + fluid.dmdt() + phase2.continuityError() - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) )/rho2 + (alpha2/rho2)*correction @@ -250,24 +255,52 @@ while (pimple.correct()) psi2*fvm::ddt(p_rgh) + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh) ); - deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr()); - pEqnComp2().relax(); + deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr()); + pEqnComp2().relax(); + } } else { - pEqnComp1 = + if (phase1.compressible()) + { + pEqnComp1 = ( - phase1.continuityError() - fluid.dmdt() + phase1.continuityError() - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh)); + } - pEqnComp2 = + if (phase2.compressible()) + { + pEqnComp2 = ( - phase2.continuityError() + fluid.dmdt() + phase2.continuityError() - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2) )/rho2 + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh)); + } + } + + if (fluid.transfersMass()) + { + if (pEqnComp1.valid()) + { + pEqnComp1() -= fluid.dmdt()/rho1; + } + else + { + pEqnComp1 = fvm::Su(-fluid.dmdt()/rho1, p_rgh); + } + + if (pEqnComp2.valid()) + { + pEqnComp2() += fluid.dmdt()/rho2; + } + else + { + pEqnComp2 = fvm::Su(fluid.dmdt()/rho2, p_rgh); + } } // Cache p prior to solve for density update @@ -281,11 +314,25 @@ while (pimple.correct()) - fvm::laplacian(rAUf, p_rgh) ); - solve - ( - pEqnComp1() + pEqnComp2() + pEqnIncomp, - mesh.solver(p_rgh.select(pimple.finalInnerIter())) - ); + { + fvScalarMatrix pEqn(pEqnIncomp); + + if (pEqnComp1.valid()) + { + pEqn += pEqnComp1(); + } + + if (pEqnComp2.valid()) + { + pEqn += pEqnComp2(); + } + + solve + ( + pEqn, + mesh.solver(p_rgh.select(pimple.finalInnerIter())) + ); + } if (pimple.finalNonOrthogonalIter()) { @@ -325,17 +372,23 @@ while (pimple.correct()) fvOptions.correct(U2); // Set the phase dilatation rates - if (phase1.compressible()) + if (pEqnComp1.valid()) { phase1.divU(-pEqnComp1 & p_rgh); } - if (phase2.compressible()) + if (pEqnComp2.valid()) { phase2.divU(-pEqnComp2 & p_rgh); } } } + Info<< "min(p) = " << min(p_rgh + rho*gh).value() << endl; + if (min(p_rgh + rho*gh) < pMin) + { + Info<< "Clipping p" << endl; + } + // Update and limit the static pressure p = max(p_rgh + rho*gh, pMin); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/setRDeltaT.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/setRDeltaT.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/setRDeltaT.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/setRDeltaT.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/files similarity index 92% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/files rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/files index eccde529bd8f3522f85224517c6ee8630c363d40..10a0e8679ad8f0c06c80a2df75dd99d6310621c8 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/files +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/files @@ -35,4 +35,6 @@ kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C -LIB = $(FOAM_LIBBIN)/libphaseReactingTurbulenceModels +derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.C + +LIB = $(FOAM_LIBBIN)/libtwoPhaseReactingTurbulenceModels diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..f003ce2281337a0c32d738f3657c74aef28968a5 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/Make/options @@ -0,0 +1,14 @@ +EXE_INC = \ + -I../twoPhaseSystem/lnInclude \ + -I../../phaseSystems/lnInclude \ + -I../../interfacialModels/lnInclude\ + -I../../interfacialCompositionModels/lnInclude \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/transportModels/incompressible/transportModel \ + -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.C new file mode 100644 index 0000000000000000000000000000000000000000..a37553e338f20ec05553bb3f12df848f32ceb90b --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.C @@ -0,0 +1,373 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.H" +#include "compressibleTurbulenceModel.H" +#include "fvPatchFieldMapper.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" +#include "twoPhaseSystem.H" +#include "phaseSystem.H" +#include "ThermalPhaseChangePhaseSystem.H" +#include "MomentumTransferPhaseSystem.H" +#include "wallFvPatch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace compressible +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +scalar alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::maxExp_ + = 50.0; +scalar alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::tolerance_ + = 0.01; +label alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::maxIters_ + = 10; + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::checkType() +{ + if (!isA<wallFvPatch>(patch())) + { + FatalErrorIn + ( + "alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField" + "::checkType()" + ) + << "Patch type for patch " << patch().name() << " must be wall\n" + << "Current patch type is " << patch().type() << nl + << exit(FatalError); + } +} + + +tmp<scalarField> +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::Psmooth +( + const scalarField& Prat +) const +{ + return 9.24*(pow(Prat, 0.75) - 1.0)*(1.0 + 0.28*exp(-0.007*Prat)); +} + + +tmp<scalarField> +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::yPlusTherm +( + const scalarField& P, + const scalarField& Prat +) const +{ + + tmp<scalarField> typtf(new scalarField(this->size())); + scalarField& yptf = typtf(); + + forAll(yptf, faceI) + { + scalar ypt = 11.0; + + for (int i=0; i<maxIters_; i++) + { + scalar f = ypt - (log(E_*ypt)/kappa_ + P[faceI])/Prat[faceI]; + scalar df = 1.0 - 1.0/(ypt*kappa_*Prat[faceI]); + scalar yptNew = ypt - f/df; + + if (yptNew < VSMALL) + { + yptf[faceI] = 0; + } + else if (mag(yptNew - ypt) < tolerance_) + { + yptf[faceI] = yptNew; + } + else + { + ypt = yptNew; + } + } + + yptf[faceI] = ypt; + } + + return typtf; +} + + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField:: +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF +) +: + alphatPhaseChangeWallFunctionFvPatchScalarField(p, iF), + Prt_(0.85), + Cmu_(0.09), + kappa_(0.41), + E_(9.8), + fixedDmdt_(0.0) +{ + checkType(); +} + + +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField:: +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const dictionary& dict +) +: + alphatPhaseChangeWallFunctionFvPatchScalarField(p, iF, dict), + Prt_(dict.lookupOrDefault<scalar>("Prt", 0.85)), + Cmu_(dict.lookupOrDefault<scalar>("Cmu", 0.09)), + kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)), + E_(dict.lookupOrDefault<scalar>("E", 9.8)), + fixedDmdt_(dict.lookupOrDefault<scalar>("fixedDmdt", 0.0)) +{} + + +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField:: +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField& ptf, + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + alphatPhaseChangeWallFunctionFvPatchScalarField(ptf, p, iF, mapper), + Prt_(ptf.Prt_), + Cmu_(ptf.Cmu_), + kappa_(ptf.kappa_), + E_(ptf.E_), + fixedDmdt_(ptf.fixedDmdt_) +{} + + +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField:: +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField& awfpsf +) +: + alphatPhaseChangeWallFunctionFvPatchScalarField(awfpsf), + Prt_(awfpsf.Prt_), + Cmu_(awfpsf.Cmu_), + kappa_(awfpsf.kappa_), + E_(awfpsf.E_), + fixedDmdt_(awfpsf.fixedDmdt_) +{} + + +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField:: +alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField& awfpsf, + const DimensionedField<scalar, volMesh>& iF +) +: + alphatPhaseChangeWallFunctionFvPatchScalarField(awfpsf, iF), + Prt_(awfpsf.Prt_), + Cmu_(awfpsf.Cmu_), + kappa_(awfpsf.kappa_), + E_(awfpsf.E_), + fixedDmdt_(awfpsf.fixedDmdt_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::updateCoeffs() +{ + if (updated()) + { + return; + } + + // Lookup the fluid model + const ThermalPhaseChangePhaseSystem + < + MomentumTransferPhaseSystem<twoPhaseSystem> + >& fluid = + refCast + < + const ThermalPhaseChangePhaseSystem + < + MomentumTransferPhaseSystem<twoPhaseSystem> + > + > + ( + db().lookupObject<phaseSystem>("phaseProperties") + ); + + const phaseModel& liquid + ( + fluid.phase1().name() == dimensionedInternalField().group() + ? fluid.phase1() + : fluid.phase2() + ); + + const label patchi = patch().index(); + + // Retrieve turbulence properties from model + const compressibleTurbulenceModel& turbModel = + db().lookupObject<compressibleTurbulenceModel> + ( + IOobject::groupName + ( + compressibleTurbulenceModel::propertiesName, + dimensionedInternalField().group() + ) + ); + + const scalar Cmu25 = pow025(Cmu_); + + const scalarField& y = turbModel.y()[patchi]; + + const tmp<scalarField> tmuw = turbModel.mu(patchi); + const scalarField& muw = tmuw(); + + const tmp<scalarField> talphaw = liquid.thermo().alpha(patchi); + const scalarField& alphaw = talphaw(); + + scalarField& alphatw = *this; + + const tmp<volScalarField> tk = turbModel.k(); + const volScalarField& k = tk(); + const fvPatchScalarField& kw = k.boundaryField()[patchi]; + + const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi]; + const scalarField magUp(mag(Uw.patchInternalField() - Uw)); + const scalarField magGradUw(mag(Uw.snGrad())); + + const fvPatchScalarField& rhow = turbModel.rho().boundaryField()[patchi]; + const fvPatchScalarField& hew = + liquid.thermo().he().boundaryField()[patchi]; + + const fvPatchScalarField& Tw = + liquid.thermo().T().boundaryField()[patchi]; + + scalarField Tp(Tw.patchInternalField()); + + // Heat flux [W/m2] - lagging alphatw + const scalarField qDot + ( + (alphatw + alphaw)*hew.snGrad() + ); + + scalarField uTau(Cmu25*sqrt(kw)); + + scalarField yPlus(uTau*y/(muw/rhow)); + + scalarField Pr(muw/alphaw); + + // Molecular-to-turbulent Prandtl number ratio + scalarField Prat(Pr/Prt_); + + // Thermal sublayer thickness + scalarField P(this->Psmooth(Prat)); + + scalarField yPlusTherm(this->yPlusTherm(P, Prat)); + + scalarField alphatConv(this->size(), 0.0); + + // Populate boundary values + forAll(alphatw, faceI) + { + // Evaluate new effective thermal diffusivity + scalar alphaEff = 0.0; + if (yPlus[faceI] < yPlusTherm[faceI]) + { + scalar A = qDot[faceI]*rhow[faceI]*uTau[faceI]*y[faceI]; + scalar B = qDot[faceI]*Pr[faceI]*yPlus[faceI]; + scalar C = Pr[faceI]*0.5*rhow[faceI]*uTau[faceI]*sqr(magUp[faceI]); + alphaEff = A/(B + C + VSMALL); + } + else + { + scalar A = qDot[faceI]*rhow[faceI]*uTau[faceI]*y[faceI]; + scalar B = + qDot[faceI]*Prt_*(1.0/kappa_*log(E_*yPlus[faceI]) + P[faceI]); + scalar magUc = + uTau[faceI]/kappa_*log(E_*yPlusTherm[faceI]) - mag(Uw[faceI]); + scalar C = + 0.5*rhow[faceI]*uTau[faceI] + *(Prt_*sqr(magUp[faceI]) + (Pr[faceI] - Prt_)*sqr(magUc)); + alphaEff = A/(B + C + VSMALL); + } + + // Update convective heat transfer turbulent thermal diffusivity + alphatConv[faceI] = max(0.0, alphaEff - alphaw[faceI]); + } + + dmdt_ = fixedDmdt_; + + operator==(alphatConv); + + fixedValueFvPatchScalarField::updateCoeffs(); +} + + +void alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField::write +( + Ostream& os +) const +{ + fvPatchField<scalar>::write(os); + os.writeKeyword("Prt") << Prt_ << token::END_STATEMENT << nl; + os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl; + os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; + os.writeKeyword("E") << E_ << token::END_STATEMENT << nl; + os.writeKeyword("fixedDmdt") << fixedDmdt_ << token::END_STATEMENT << nl; + dmdt_.writeEntry("dmdt", os); + writeEntry("value", os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makePatchTypeField +( + fvPatchScalarField, + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace compressible +} // End namespace Foam + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.H new file mode 100644 index 0000000000000000000000000000000000000000..bd9426fdb6b85ae3fc380134704c147fe1a9416b --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatFixedDmdtWallBoilingWallFunction/alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.H @@ -0,0 +1,210 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::compressible::alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + +Group + grpCmpWallFunctions + +Description + A simple alphatPhaseChangeWallFunctionFvPatchScalarField with a fixed + volumetric phase-change mass flux. + +SeeAlso + Foam::compressible::alphatPhaseChangeWallFunctionFvPatchScalarField + +SourceFiles + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef compressibleAlphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField_H +#define compressibleAlphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField_H + +#include "alphatPhaseChangeWallFunctionFvPatchScalarField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace compressible +{ + +/*---------------------------------------------------------------------------*\ + Class alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField Declaration +\*---------------------------------------------------------------------------*/ + +class alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField +: + public alphatPhaseChangeWallFunctionFvPatchScalarField +{ + // Private data + + //- Turbulent Prandtl number + scalar Prt_; + + //- Cmu coefficient + scalar Cmu_; + + //- Von Karman constant + scalar kappa_; + + //- E coefficient + scalar E_; + + //- E coefficient + scalar fixedDmdt_; + + + // Solution parameters + + static scalar maxExp_; + static scalar tolerance_; + static label maxIters_; + + + // Private Member Functions + + //- Check the type of the patch + void checkType(); + + //- 'P' function + tmp<scalarField> Psmooth(const scalarField& Prat) const; + + //- Calculate y+ at the edge of the thermal laminar sublayer + tmp<scalarField> yPlusTherm + ( + const scalarField& P, + const scalarField& Prat + ) const; + + +public: + + //- Runtime type information + TypeName("compressible::alphatFixedDmdtWallBoilingWallFunction"); + + + // Constructors + + //- Construct from patch and internal field + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given + // alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + // onto a new patch + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField&, + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct as copy + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField& + ); + + //- Construct and return a clone + virtual tmp<fvPatchScalarField> clone() const + { + return tmp<fvPatchScalarField> + ( + new alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + *this + ) + ); + } + + //- Construct as copy setting internal field reference + alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + const alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct and return a clone setting internal field reference + virtual tmp<fvPatchScalarField> clone + ( + const DimensionedField<scalar, volMesh>& iF + ) const + { + return tmp<fvPatchScalarField> + ( + new alphatFixedDmdtWallBoilingWallFunctionFvPatchScalarField + ( + *this, + iF + ) + ); + } + + + // Member functions + + //- Return the rate of phase-change + virtual const scalarField& dmdt() const + { + return dmdt_; + } + + + // Evaluation functions + + //- Update the coefficients associated with the patch field + virtual void updateCoeffs(); + + + // I-O + + //- Write + virtual void write(Ostream&) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace compressible +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C index 2180c0bd2e2ddd50d582cb6ae5759a71bb96f850..ab5fb531ea5daa3bf81bcc7ff283b4bdaa9c4a9f 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C @@ -115,6 +115,7 @@ Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H index cc5a9dc5ea143e13dc480c137b7d403f5d35b59c..1fe92e7d0ea972fbaa7943ca7586d5ee30dba32d 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H @@ -108,6 +108,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C index 55e7b9f2cd2ec8071b1fedd3f1e6324bf7b9aea7..4a0d2290d13c91fa9b755a82119190e730241f56 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C @@ -104,6 +104,7 @@ Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D @@ -133,9 +134,9 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu volScalarField& nuf = tnu(); - forAll (D, celli) + forAll(D, celli) { - if (alpha1[celli] > alphaMax.value() - 5e-2) + if (alpha1[celli] > alphaMinFriction.value()) { nuf[celli] = 0.5*pf[celli]*sin(phi_.value()) diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H index 7ff4862348aea50bc0157ee6f26e361675cb66ad..d4a304eb40c1a1444ae5c2ecdc428de44dcd5471 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H @@ -96,6 +96,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H similarity index 98% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H index 0e08f7ec8c885c20e983bce95328f0f1cbad33aa..923a1fce3f71a273916c41946b48c3b3dff1b3b5 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H @@ -122,6 +122,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 11d09d1118fd6b12a205157d4fca0541dcd1eeea..bbf37904ca83743a749d6936ce5d54ad4229295b 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -41,7 +41,13 @@ Foam::RASModels::kineticTheoryModel::kineticTheoryModel const word& type ) : - eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > > + eddyViscosity + < + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > + > ( type, alpha, @@ -183,7 +189,10 @@ bool Foam::RASModels::kineticTheoryModel::read() ( eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > >::read() ) { @@ -519,6 +528,7 @@ void Foam::RASModels::kineticTheoryModel::correct() nut_ += frictionalStressModel_->nu ( alpha, + alphaMinFriction_, alphaMax_, pf/rho, D diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index bfa1f872cb877ecdfd0e15e5e2d0faf8cbc5ef25..9aadb83d12738a7f3fb91b54cff381d5772ab15a 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -48,6 +48,8 @@ SourceFiles #include "RASModel.H" #include "eddyViscosity.H" #include "PhaseCompressibleTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "phaseModel.H" #include "dragModel.H" #include "viscosityModel.H" @@ -72,7 +74,10 @@ class kineticTheoryModel : public eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > > { // Private data diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C similarity index 97% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C index 65d857d9c842f58f147769165d86a13685ddcfc2..eb0a07004439a5b028680abf4fd024e99cb1ebe0 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C @@ -29,6 +29,9 @@ License #include "addToRunTimeSelectionTable.H" #include "makeTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" + #include "laminar.H" #include "RASModel.H" #include "LESModel.H" @@ -39,6 +42,7 @@ makeBaseTurbulenceModel volScalarField, compressibleTurbulenceModel, PhaseCompressibleTurbulenceModel, + ThermalDiffusivity, phaseModel ); diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index 8cca6f493f098cf93b841a128ff96286df2dbb46..adb23d40d2c63d264adb8d5ac2aa2cb501d04474 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -40,7 +40,13 @@ Foam::RASModels::phasePressureModel::phasePressureModel const word& type ) : - eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > > + eddyViscosity + < + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > + > ( type, alpha, @@ -87,7 +93,10 @@ bool Foam::RASModels::phasePressureModel::read() ( eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > >::read() ) { diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H similarity index 96% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index a2b17dc1c7660edd7cd938faa83167d8d8b79fa2..68734e5b4f792e2f80ff503a6fc2b2d819e05a6e 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -54,6 +54,8 @@ SourceFiles #include "RASModel.H" #include "eddyViscosity.H" #include "PhaseCompressibleTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "phaseModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -71,7 +73,10 @@ class phasePressureModel : public eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > > { // Private data diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/files b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..ce89d9907bda7641720d617e8db43a75344ee0fc --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/files @@ -0,0 +1,11 @@ +diameterModels/IATE/IATE.C +diameterModels/IATE/IATEsources/IATEsource/IATEsource.C +diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C +diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C +diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C + +twoPhaseSystem.C +newTwoPhaseSystem.C +twoPhaseSystems.C + +LIB = $(FOAM_LIBBIN)/libreactingTwoPhaseSystem diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..7321f6ef68cf9524e25a80224691d11cb182dba3 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/Make/options @@ -0,0 +1,20 @@ +EXE_INC = \ + -I../../interfacialModels/lnInclude \ + -I../../interfacialCompositionModels/lnInclude \ + -I../../phaseSystems/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ + -I$(LIB_SRC)/combustionModels/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +LIB_LIBS = \ + -lcombustionModels \ + -lreactingPhaseSystem diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATE.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATE.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATE.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATE.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATE.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATE.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATE.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATE.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C similarity index 99% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C index 59bf824f56ad4647c7bbb86dcf3494cd3543d130..9c62dfc819f5e0fd4b511d73e0a3e266ca3c159e 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/IATEsource/IATEsource.C @@ -24,7 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "IATEsource.H" -#include "twoPhaseSystem.H" #include "fvMatrix.H" #include "PhaseCompressibleTurbulenceModel.H" #include "uniformDimensionedFields.H" diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/IATEsource/IATEsource.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/IATEsource/IATEsource.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/IATEsource/IATEsource.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/IATEsource/IATEsource.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/dummy/dummy.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/dummy/dummy.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/dummy/dummy.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/dummy/dummy.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/dummy/dummy.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/dummy/dummy.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/dummy/dummy.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/dummy/dummy.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/randomCoalescence/randomCoalescence.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/turbulentBreakUp/turbulentBreakUp.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/IATE/IATEsources/wakeEntrainmentCoalescence/wakeEntrainmentCoalescence.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/newTwoPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/newTwoPhaseSystem.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/newTwoPhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/newTwoPhaseSystem.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C similarity index 94% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C index caee01b251f15dc896e3e6ecce9ab06f4c033222..7b7ddee6f49d622ff4068791a0bc7b3d3ec6b2fa 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C @@ -57,10 +57,13 @@ Foam::twoPhaseSystem::twoPhaseSystem ) : phaseSystem(mesh), - phase1_(phaseModels_[phaseNames_[0]]()), - phase2_(phaseModels_[phaseNames_[1]]()) + phase1_(phaseModels_[0]), + phase2_(phaseModels_[1]) { phase2_.volScalarField::operator=(scalar(1) - phase1_); + + volScalarField& alpha1 = phase1_; + mesh.setFluxRequired(alpha1.name()); } @@ -82,6 +85,12 @@ Foam::twoPhaseSystem::sigma() const } +const Foam::dragModel& Foam::twoPhaseSystem::drag(const phaseModel& phase) const +{ + return lookupSubModel<dragModel>(phase, otherPhase(phase)); +} + + Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::Kd() const { @@ -102,6 +111,13 @@ Foam::twoPhaseSystem::Kdf() const } +const Foam::virtualMassModel& +Foam::twoPhaseSystem::virtualMass(const phaseModel& phase) const +{ + return lookupSubModel<virtualMassModel>(phase, otherPhase(phase)); +} + + Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::Vm() const { @@ -152,6 +168,12 @@ Foam::twoPhaseSystem::D() const } +bool Foam::twoPhaseSystem::transfersMass() const +{ + return transfersMass(phase1()); +} + + Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::dmdt() const { @@ -187,30 +209,30 @@ void Foam::twoPhaseSystem::solve() // Construct the dilatation rate source term tmp<volScalarField::DimensionedInternalField> tdgdt; - if (phase1_.compressible() && phase2_.compressible()) + if (phase1_.divU().valid() && phase2_.divU().valid()) { tdgdt = ( alpha2.dimensionedInternalField() - *phase1_.divU().dimensionedInternalField() + *phase1_.divU()().dimensionedInternalField() - alpha1.dimensionedInternalField() - *phase2_.divU().dimensionedInternalField() + *phase2_.divU()().dimensionedInternalField() ); } - else if (phase1_.compressible()) + else if (phase1_.divU().valid()) { tdgdt = ( alpha2.dimensionedInternalField() - *phase1_.divU().dimensionedInternalField() + *phase1_.divU()().dimensionedInternalField() ); } - else if (phase2_.compressible()) + else if (phase2_.divU().valid()) { tdgdt = ( - alpha1.dimensionedInternalField() - *phase2_.divU().dimensionedInternalField() + *phase2_.divU()().dimensionedInternalField() ); } @@ -406,17 +428,4 @@ void Foam::twoPhaseSystem::solve() } -const Foam::dragModel& Foam::twoPhaseSystem::drag(const phaseModel& phase) const -{ - return lookupSubModel<dragModel>(phase, otherPhase(phase)); -} - - -const Foam::virtualMassModel& -Foam::twoPhaseSystem::virtualMass(const phaseModel& phase) const -{ - return lookupSubModel<virtualMassModel>(phase, otherPhase(phase)); -} - - // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H similarity index 60% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H index 0ac971b790e328735fa56fec79a25276facb52d5..3c4c98f58921d11e3f01f6ab2754138d36ad8e75 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystem.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H @@ -53,6 +53,38 @@ class twoPhaseSystem : public phaseSystem { + // Private member functions + + //- Return the drag coefficient for phase pair + virtual tmp<volScalarField> Kd(const phasePairKey& key) const = 0; + + //- Return the face drag coefficient for phase pair + virtual tmp<surfaceScalarField> Kdf(const phasePairKey& key) const = 0; + + //- Return the virtual mass coefficient for phase pair + virtual tmp<volScalarField> Vm(const phasePairKey& key) const = 0; + + //- Return the face virtual mass coefficient for phase pair + virtual tmp<surfaceScalarField> Vmf(const phasePairKey& key) const = 0; + + //- Return the combined force (lift + wall-lubrication) for phase pair + virtual tmp<volVectorField> F(const phasePairKey& key) const = 0; + + //- Return the combined face-force (lift + wall-lubrication) + // for phase pair + virtual tmp<surfaceScalarField> Ff(const phasePairKey& key) const = 0; + + //- Return the turbulent diffusivity for phase pair + // Multiplies the phase-fraction gradient + virtual tmp<volScalarField> D(const phasePairKey& key) const = 0; + + //- Return true if there is mass transfer for phase + virtual bool transfersMass(const phaseModel& phase) const = 0; + + //- Return the interfacial mass flow rate for phase pair + virtual tmp<volScalarField> dmdt(const phasePairKey& key) const = 0; + + protected: // Protected data @@ -103,28 +135,50 @@ public: // Member Functions - //- Solve for the phase fractions - virtual void solve(); + //- Constant access phase model 1 + const phaseModel& phase1() const; + + //- Access phase model 1 + phaseModel& phase1(); + + //- Constant access phase model 2 + const phaseModel& phase2() const; + + //- Access phase model 2 + phaseModel& phase2(); + + //- Constant access the phase not given as an argument + const phaseModel& otherPhase + ( + const phaseModel& phase + ) const; + + //- Return the momentum transfer matrices + virtual autoPtr<momentumTransferTable> momentumTransfer() const = 0; + + //- Return the heat transfer matrices + virtual autoPtr<heatTransferTable> heatTransfer() const = 0; + + //- Return the mass transfer matrices + virtual autoPtr<massTransferTable> massTransfer() const = 0; using phaseSystem::sigma; - using phaseSystem::Kd; - using phaseSystem::Kdf; - using phaseSystem::Vm; - using phaseSystem::Vmf; - using phaseSystem::F; - using phaseSystem::Ff; - using phaseSystem::D; - using phaseSystem::dmdt; //- Return the surface tension coefficient tmp<volScalarField> sigma() const; + //- Return the drag model for the given phase + const dragModel& drag(const phaseModel& phase) const; + //- Return the drag coefficient tmp<volScalarField> Kd() const; //- Return the face drag coefficient tmp<surfaceScalarField> Kdf() const; + //- Return the virtual mass model for the given phase + const virtualMassModel& virtualMass(const phaseModel& phase) const; + //- Return the virtual mass coefficient tmp<volScalarField> Vm() const; @@ -141,35 +195,14 @@ public: // Multiplies the phase-fraction gradient tmp<volScalarField> D() const; + //- Return true if there is mass transfer + bool transfersMass() const; + //- Return the interfacial mass flow rate tmp<volScalarField> dmdt() const; - - // Access - - //- Constant access phase model 1 - const phaseModel& phase1() const; - - //- Access phase model 1 - phaseModel& phase1(); - - //- Constant access phase model 2 - const phaseModel& phase2() const; - - //- Access phase model 2 - phaseModel& phase2(); - - //- Constant access the phase not given as an argument - const phaseModel& otherPhase - ( - const phaseModel& phase - ) const; - - //- Return the drag model for the given phase - const dragModel& drag(const phaseModel& phase) const; - - //- Return the virtual mass model for the given phase - const virtualMassModel& virtualMass(const phaseModel& phase) const; + //- Solve for the phase fractions + virtual void solve(); }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystemI.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystemI.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystemI.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystemI.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystems.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystems.C similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/twoPhaseSystem/twoPhaseSystems.C rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystems.C diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/write.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/write.H similarity index 100% rename from applications/solvers/multiphase/reactingTwoPhaseEulerFoam/write.H rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/write.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/UEqns.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/UEqns.H deleted file mode 100644 index 31bd20ff7a6e8a8f6aeda844aebed61d74f1f9df..0000000000000000000000000000000000000000 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/pU/UEqns.H +++ /dev/null @@ -1,66 +0,0 @@ -Info<< "Constructing momentum equations" << endl; - -MRF.correctBoundaryVelocity(U1); -MRF.correctBoundaryVelocity(U2); - -fvVectorMatrix U1Eqn(U1, rho1.dimensions()*U1.dimensions()*dimVol/dimTime); -fvVectorMatrix U2Eqn(U2, rho2.dimensions()*U2.dimensions()*dimVol/dimTime); - -volScalarField Kd(fluid.Kd()); - -{ - volScalarField Vm(fluid.Vm()); - - const volScalarField dmdt12(posPart(fluid.dmdt())); - const volScalarField dmdt21(negPart(fluid.dmdt())); - - { - U1Eqn = - ( - fvm::ddt(alpha1, rho1, U1) + fvm::div(alphaRhoPhi1, U1) - - fvm::Sp(phase1.continuityError() + dmdt21, U1) + dmdt21*U2 - + MRF.DDt(alpha1*rho1, U1) - + phase1.turbulence().divDevRhoReff(U1) - == - - Vm - *( - fvm::ddt(U1) - + fvm::div(phi1, U1) - - fvm::Sp(fvc::div(phi1), U1) - - phase2.DUDt() - ) - - MRF.DDt(Vm, U1 - U2) - + fvOptions(alpha1, rho1, U1) - ); - U1Eqn.relax(); - U1Eqn += fvm::Sp(Kd, U1); - fvOptions.constrain(U1Eqn); - U1.correctBoundaryConditions(); - fvOptions.correct(U1); - } - - { - U2Eqn = - ( - fvm::ddt(alpha2, rho2, U2) + fvm::div(alphaRhoPhi2, U2) - - fvm::Sp(phase2.continuityError() - dmdt12, U2) - dmdt12*U1 - + MRF.DDt(alpha2*rho2, U2) - + phase2.turbulence().divDevRhoReff(U2) - == - - Vm - *( - fvm::ddt(U2) - + fvm::div(phi2, U2) - - fvm::Sp(fvc::div(phi2), U2) - - phase1.DUDt() - ) - - MRF.DDt(Vm, U2 - U1) - + fvOptions(alpha2, rho2, U2) - ); - U2Eqn.relax(); - U2Eqn += fvm::Sp(Kd, U2); - fvOptions.constrain(U2Eqn); - U2.correctBoundaryConditions(); - fvOptions.correct(U2); - } -} diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C deleted file mode 100644 index bbce1962a12a3e105be2176f723349e63abd14a1..0000000000000000000000000000000000000000 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C +++ /dev/null @@ -1,199 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. - -\*---------------------------------------------------------------------------*/ - -#include "ThermalPhaseChangePhaseSystem.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class BasePhaseSystem> -Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>:: -ThermalPhaseChangePhaseSystem -( - const fvMesh& mesh -) -: - HeatAndMassTransferPhaseSystem<BasePhaseSystem>(mesh), - volatile_(this->lookup("volatile")), - saturationModel_(saturationModel::New(this->subDict("saturationModel"))) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class BasePhaseSystem> -Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>:: -~ThermalPhaseChangePhaseSystem() -{} - - -// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // - -template<class BasePhaseSystem> -Foam::autoPtr<Foam::phaseSystem::massTransferTable> -Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::massTransfer() const -{ - // Create a mass transfer matrix for each species of each phase - autoPtr<phaseSystem::massTransferTable> eqnsPtr - ( - new phaseSystem::massTransferTable() - ); - - phaseSystem::massTransferTable& eqns = eqnsPtr(); - - forAllConstIter - ( - phaseSystem::phaseModelTable, - this->phaseModels_, - phaseModelIter - ) - { - const phaseModel& phase(phaseModelIter()); - - const PtrList<volScalarField>& Yi = phase.Y(); - - forAll(Yi, i) - { - eqns.insert - ( - Yi[i].name(), - new fvScalarMatrix(Yi[i], dimMass/dimTime) - ); - } - } - - forAllConstIter - ( - phaseSystem::phasePairTable, - this->phasePairs_, - phasePairIter - ) - { - const phasePair& pair(phasePairIter()); - - if (pair.ordered()) - { - continue; - } - const phaseModel& phase = pair.phase1(); - const phaseModel& otherPhase = pair.phase2(); - - const word name - ( - IOobject::groupName(volatile_, phase.name()) - ); - - const word otherName - ( - IOobject::groupName(volatile_, otherPhase.name()) - ); - - const volScalarField dmdt(this->dmdt(pair)); - const volScalarField dmdt12(posPart(dmdt)); - const volScalarField dmdt21(negPart(dmdt)); - - *eqns[name] += fvm::Sp(dmdt21, eqns[name]->psi()) - dmdt21; - *eqns[otherName] += dmdt12 - fvm::Sp(dmdt12, eqns[otherName]->psi()); - } - - return eqnsPtr; -} - - -template<class BasePhaseSystem> -void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo() -{ - BasePhaseSystem::correctThermo(); - - forAllConstIter - ( - phaseSystem::phasePairTable, - this->phasePairs_, - phasePairIter - ) - { - const phasePair& pair(phasePairIter()); - - if (pair.ordered()) - { - continue; - } - - const phaseModel& phase1 = pair.phase1(); - const phaseModel& phase2 = pair.phase2(); - - volScalarField& Tf = *this->Tf_[pair]; - Tf = saturationModel_->Tsat(phase1.thermo().p()); - - Info<< "Tf." << pair.name() - << ": min = " << min(Tf.internalField()) - << ", mean = " << average(Tf.internalField()) - << ", max = " << max(Tf.internalField()) - << endl; - - volScalarField& dmdt(*this->dmdt_[pair]); - - volScalarField H1(this->heatTransferModels_[pair][pair.first()]->K()); - volScalarField H2(this->heatTransferModels_[pair][pair.second()]->K()); - - const volScalarField& T1(phase1.thermo().T()); - const volScalarField& T2(phase2.thermo().T()); - - const volScalarField& he1(phase1.thermo().he()); - const volScalarField& he2(phase2.thermo().he()); - - volScalarField hef2(phase2.thermo().he(phase2.thermo().p(), Tf)); - volScalarField hef1(phase1.thermo().he(phase1.thermo().p(), Tf)); - - dmdt = - (H2*(Tf - T1) + H1*(Tf - T2)) - /min - ( - (pos(dmdt)*he2 + neg(dmdt)*hef2) - - (neg(dmdt)*he1 + pos(dmdt)*hef1), - 0.3*(hef1 - hef2) - ); - } -} - - -template<class BasePhaseSystem> -bool Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::read() -{ - if (BasePhaseSystem::read()) - { - bool readOK = true; - - // Models ... - - return readOK; - } - else - { - return false; - } -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H index bd106468716eab150b0ee1661c40687d4d80f7b9..5344fb75f29a9de76c3cac6e3af945270575bd56 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H @@ -1,7 +1,7 @@ { word alphaScheme("div(phi,alpha)"); - surfaceScalarField phiAlpha + surfaceScalarField alphaPhi ( phi.name() + alpha1.name(), fvc::flux @@ -12,9 +12,9 @@ ) ); - MULES::explicitSolve(alpha1, phi, phiAlpha, 1, 0); + MULES::explicitSolve(alpha1, phi, alphaPhi, 1, 0); - rhoPhi = phiAlpha*(rho1 - rho2) + phi*rho2; + rhoPhi = alphaPhi*(rho1 - rho2) + phi*rho2; Info<< "Phase-1 volume fraction = " << alpha1.weightedAverage(mesh.Vsc()).value() diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options index efb6d206ea2210a9bb2ab7adf18c12817c3c6335..1035e5526eb269fe9ec327f8b9b1ab87fa832a97 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/Make/options @@ -4,8 +4,9 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/transportModels/incompressible/transportModel \ - -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C index 63e84966bb1c744f216fe8f0dba204d0818659ac..6ef7f1ec83eb6f2089d72ee0a2f53f69f0383d44 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H index 714282dbb8b7a806c9da11a406fe421831d45c93..f8987ce13d94b73458273a9ac7b97221bfe7ad4a 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C index 3732c57ecd42d307cb18867f73aa58a8064e3a79..2bd6c25f79bd3944539b4c2ceeb702cca2a6c350 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H index bb47cf66948a28fe98f4cc05f2e486c8410d0b6d..dbc6b8f60a6d1fa23e70cd1f022ca02876cf3836 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C index 3db83f67b697ada6a2639e4f0baeea3a012f6197..4cd6368943dbbfca3fee155784d5268fc47f9de2 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H index 19f13ca9a615dd2eef36436fc34b5913268d491d..6e44f6457a0ac9280d06333b7ecc1dc67ed1a16f 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C index 4f86a8d206d0eeb1d26377bc5c2b471d026fb306..a878a0977319a96c1bc0ca2311da364045fec4be 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C index 78b6ab7e7035fb73a279b36dda83e78968b115d4..ea28dd01b512d30195d0e43bb8178ed5185dc5fd 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H index b125ba0211355776b5419b556d3cc0e4826bbeee..1aaa801f0f8cebc7184b5b70f622aaf826ad26c3 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C index 1bea51998207d4274a8412c6ccfb1c7868604b63..93d97c650c77b3fecdfe929c3a975d87124661ac 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H index 586a3b4e512b3e69248e1f2de366ee30121d7736..5391e8c27d66326296b8fe3b2dda69cba9987dac 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C index 2180c0bd2e2ddd50d582cb6ae5759a71bb96f850..ab5fb531ea5daa3bf81bcc7ff283b4bdaa9c4a9f 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C @@ -115,6 +115,7 @@ Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H index cc5a9dc5ea143e13dc480c137b7d403f5d35b59c..1fe92e7d0ea972fbaa7943ca7586d5ee30dba32d 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H @@ -108,6 +108,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C index 55e7b9f2cd2ec8071b1fedd3f1e6324bf7b9aea7..4a0d2290d13c91fa9b755a82119190e730241f56 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C @@ -104,6 +104,7 @@ Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D @@ -133,9 +134,9 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu volScalarField& nuf = tnu(); - forAll (D, celli) + forAll(D, celli) { - if (alpha1[celli] > alphaMax.value() - 5e-2) + if (alpha1[celli] > alphaMinFriction.value()) { nuf[celli] = 0.5*pf[celli]*sin(phi_.value()) diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H index 3f56759e2ad7fc2641a044365f84a94432ca9594..d4a304eb40c1a1444ae5c2ecdc428de44dcd5471 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -96,6 +96,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C index f1e899e85441e11cd1688d5272535c1e90630d40..3a764313a7bb6e2b3c8ca37795c5cd7a97795ab0 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H index 28dc1ab1f081f6bb6fb4e4a078b790c5618210f9..923a1fce3f71a273916c41946b48c3b3dff1b3b5 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -122,6 +122,7 @@ public: virtual tmp<volScalarField> nu ( const volScalarField& alpha1, + const dimensionedScalar& alphaMinFriction, const dimensionedScalar& alphaMax, const volScalarField& pf, const volSymmTensorField& D diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C index 96e15ed4a690d2f37109dc940d3f9d558376141c..db6102174a24a098fa7087969f67acbca719369b 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C index 248d8b1fec546923e48de369aa8d92131ace5b9a..3a94ea5734777e8ce390f52691a59da466f39fef 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H index 8585d00174f02757ae9b0b0bb7f9cde696c39651..d82ba47d5b375e2ebda2b0cc6580929c2003d9e3 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C index 892a690a6ac06c41052f98b3b1facbb7d997c4a8..8e45c45e21ba66c165c7b014d811b6bc13f4727d 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H index 8b4223f1ce8c1309e829f143698bfc776297acd3..3f420538f1fafcd5ee0ce4996989de8cae59339a 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C index 6f3c915fb4a742d9b549d57a9516eb3a47c678f1..3a2214e9e63cdfd385f92ce3db441b2443ea4a68 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H index b22ae2677100cb22a3c1a112630182d3227acf10..06160f6c0ac834330d49642d07e247b178ffcca1 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C index deaf6fc676f5241608faee764fe44212504554b7..36b2c2b175ec15007558a51bea19fec6960175de 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 30254f3891b6811927aa84e5bc0a8b51b81662ae..bbf37904ca83743a749d6936ce5d54ad4229295b 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -41,7 +41,13 @@ Foam::RASModels::kineticTheoryModel::kineticTheoryModel const word& type ) : - eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > > + eddyViscosity + < + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > + > ( type, alpha, @@ -183,7 +189,10 @@ bool Foam::RASModels::kineticTheoryModel::read() ( eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > >::read() ) { @@ -339,7 +348,8 @@ void Foam::RASModels::kineticTheoryModel::correct() const volScalarField& rho = phase_.rho(); const surfaceScalarField& alphaRhoPhi = alphaRhoPhi_; const volVectorField& U = U_; - const volVectorField& Uc_ = phase_.fluid().otherPhase(phase_).U(); + const volVectorField& Uc_ = + refCast<const twoPhaseSystem>(phase_.fluid()).otherPhase(phase_).U(); const scalar sqrtPi = sqrt(constant::mathematical::pi); dimensionedScalar ThetaSmall("ThetaSmall", Theta_.dimensions(), 1.0e-6); @@ -381,7 +391,10 @@ void Foam::RASModels::kineticTheoryModel::correct() ); // Drag - volScalarField beta(phase_.fluid().drag(phase_).K()); + volScalarField beta + ( + refCast<const twoPhaseSystem>(phase_.fluid()).drag(phase_).K() + ); // Eq. 3.25, p. 50 Js = J1 - J2 volScalarField J1("J1", 3.0*beta); @@ -515,6 +528,7 @@ void Foam::RASModels::kineticTheoryModel::correct() nut_ += frictionalStressModel_->nu ( alpha, + alphaMinFriction_, alphaMax_, pf/rho, D diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index b631143d40206100ba99151f322268b7e3d39cb0..9aadb83d12738a7f3fb91b54cff381d5772ab15a 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -48,6 +48,8 @@ SourceFiles #include "RASModel.H" #include "eddyViscosity.H" #include "PhaseCompressibleTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "phaseModel.H" #include "dragModel.H" #include "viscosityModel.H" @@ -72,7 +74,10 @@ class kineticTheoryModel : public eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > > { // Private data diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C index 8ea724a20bd39529d17d1da74112a4be1da89225..abc364979c56c56473fc76421dae0ce5d265fddb 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H index 528a3b366e8c168774d7b8ddff44c1fd6d158c77..a4082d5326c1d2bf81929dca9383b3919e65f977 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C index a362a48841a305cefde919b3669490aa30c16097..df931c8752866b2f0d08536e412af2034963f90a 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H index a20682422c164c7bb1e0529847482b6d869c1d03..17cd8e5907bee083fcef6cf249a2151d5f309239 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C index 36971079174a52403594c8575839a32b114f5c9c..bc74ce177a7babce2484a87a8eb59616feaa6b4d 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H index 9e5abcbb8f1a0fbbff9810d78d1faa929674edd1..37545343a9c99f8eb4613def6e075e45c6a276be 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C index 18b8eed813746abe6f9f34b507c40bab01fb1c3e..65f6c9ebb83c109055334cd0184beaa751fc143c 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C index e8763a01b1eb212919e959317a633feab8e904fb..821e9e6ec72973d10d2663908d69321bb6e8f71b 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H index 1d225e3bb7181aac36a5deabd2bd10de8bddc2b2..de73a227474e37d1a414459b0c74ed1b7eaf823d 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C index ebe4e6ddd8b2f6a1855160840b3f9f038e2275c9..98cf0c90efb92ad4e956cb3295b75239e8d74436 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H index 96a65bb7993f37989fc4f768aabdd8458d11b6ae..e309ed988a1a0a8523b0cde1ee695e7b94eb0c7e 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H index a47163e063ea2e9dc36205b860ba8cfc3c7f4d8f..0a280ba3699a8923b34ce258253fd07ad059f11e 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C index 1eab21fc109fea67b59b42396df8eb01bb69ff6f..215d3608164e50552e7c3c1e759b48882ede0694 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H index 979e0391497af6935ff93d8982be2f1cb926833c..844bf21b0da66edaff1bf8914fbdad89ca322273 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C index 843386cac768bc6165168abab7ca771086e482c3..4b3c97d69a4274f15b29c2465c7b02826d1cf033 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H index 565dd45fc8712c5333c57af3b8f37b52c6d82d93..f5d74f0e96561578219bcb6070134547fc1bba57 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C index c0222ff4df3b5e3abefe8a86356b2e35b3f02756..e79cbde0c17848e9969143745a3aebb51457b7e3 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C index d7aa5efb91a9bb295cf21f5c8ab4b5d290a8c645..dae23e2b31023febb26d6d143c178d8bd0aa7d8c 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H index 045c7f49866a43e46ecc1bfc7509d1e35794c43d..e0bc93cc79617a8cdf01a12b4de3ba7c57d222e9 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C index d7e35e96cb0c619fcc3b6e786746d03f786a4357..eb0a07004439a5b028680abf4fd024e99cb1ebe0 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,6 +29,9 @@ License #include "addToRunTimeSelectionTable.H" #include "makeTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" + #include "laminar.H" #include "RASModel.H" #include "LESModel.H" @@ -39,6 +42,7 @@ makeBaseTurbulenceModel volScalarField, compressibleTurbulenceModel, PhaseCompressibleTurbulenceModel, + ThermalDiffusivity, phaseModel ); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index 8cca6f493f098cf93b841a128ff96286df2dbb46..adb23d40d2c63d264adb8d5ac2aa2cb501d04474 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -40,7 +40,13 @@ Foam::RASModels::phasePressureModel::phasePressureModel const word& type ) : - eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > > + eddyViscosity + < + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > + > ( type, alpha, @@ -87,7 +93,10 @@ bool Foam::RASModels::phasePressureModel::read() ( eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > >::read() ) { diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index f44f77a46011ad916f3356920171416d8a51924b..68734e5b4f792e2f80ff503a6fc2b2d819e05a6e 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -54,6 +54,8 @@ SourceFiles #include "RASModel.H" #include "eddyViscosity.H" #include "PhaseCompressibleTurbulenceModel.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "phaseModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -71,7 +73,10 @@ class phasePressureModel : public eddyViscosity < - RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > + RASModel<EddyDiffusivity<ThermalDiffusivity + < + PhaseCompressibleTurbulenceModel<phaseModel> + > > > > { // Private data diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H index 3550c3da9859d85b278ab5a097e5a31d7d9f6759..3f91a8bd255057f0b7596f450e4b0bb4da82aca4 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H @@ -196,12 +196,68 @@ public: return thermo_->mu(patchi); } + //- Return the thermal conductivity on a patch + tmp<scalarField> kappa(const label patchi) const + { + return thermo_->kappa(patchi); + } + //- Return the thermal conductivity tmp<volScalarField> kappa() const { return thermo_->kappa(); } + //- Return the laminar thermal conductivity + tmp<volScalarField> kappaEff + ( + const volScalarField& alphat + ) const + { + return thermo_->kappaEff(alphat); + } + + //- Return the laminar thermal conductivity on a patch + tmp<scalarField> kappaEff + ( + const scalarField& alphat, + const label patchi + ) const + { + return thermo_->kappaEff(alphat, patchi); + } + + //- Return the laminar thermal diffusivity for enthalpy + tmp<volScalarField> alpha() const + { + return thermo_->alpha(); + } + + //- Return the laminar thermal diffusivity for enthalpy on a patch + tmp<scalarField> alpha(const label patchi) const + { + return thermo_->alpha(patchi); + } + + //- Return the effective thermal diffusivity for enthalpy + tmp<volScalarField> alphaEff + ( + const volScalarField& alphat + ) const + { + return thermo_->alphaEff(alphat); + } + + //- Return the effective thermal diffusivity for enthalpy on a patch + tmp<scalarField> alphaEff + ( + const scalarField& alphat, + const label patchi + ) const + { + return thermo_->alphaEff(alphat, patchi); + } + //- Return the specific heat capacity tmp<volScalarField> Cp() const { diff --git a/applications/test/PtrListDictionary/Make/files b/applications/test/PtrListDictionary/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..a3c4c87ba48172776243d8feefd021fdc7d0efc5 --- /dev/null +++ b/applications/test/PtrListDictionary/Make/files @@ -0,0 +1,3 @@ +Test-PtrListDictionary.C + +EXE = $(FOAM_USER_APPBIN)/Test-PtrListDictionary diff --git a/applications/test/PtrListDictionary/Make/options b/applications/test/PtrListDictionary/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/applications/test/PtrListDictionary/Test-PtrListDictionary.C b/applications/test/PtrListDictionary/Test-PtrListDictionary.C new file mode 100644 index 0000000000000000000000000000000000000000..33aa3b2792005f9a09259a2606106f3f6119adc3 --- /dev/null +++ b/applications/test/PtrListDictionary/Test-PtrListDictionary.C @@ -0,0 +1,123 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Application + +Description + +\*---------------------------------------------------------------------------*/ + +#include "OSspecific.H" + +#include "scalar.H" + +#include "IOstreams.H" +#include "PtrListDictionary.H" + +using namespace Foam; + +class Scalar +{ + scalar data_; + +public: + + Scalar() + : + data_(0) + {} + + Scalar(scalar val) + : + data_(val) + {} + + ~Scalar() + { + Info<<"delete Scalar: " << data_ << endl; + } + + friend Ostream& operator<<(Ostream& os, const Scalar& val) + { + os << val.data_; + return os; + } +}; + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: + +int main(int argc, char *argv[]) +{ + PtrListDictionary<Scalar> scalarDict(10); + forAll(scalarDict, i) + { + word key("ent" + name(i)); + scalarDict.set(i, key, new Scalar(1.3*i)); + } + + Info<< nl << "scalarDict1: " << endl; + forAll(scalarDict, i) + { + Info<< "elem " << i << " = " << scalarDict[i] << endl; + } + + Scalar* ent8Ptr = scalarDict.lookupPtr("ent8"); + + Info<< "ent8 = " << *ent8Ptr << endl; + + PtrListDictionary<Scalar> scalarDict2(15); + forAll(scalarDict2, i) + { + word key("ent" + name(i)); + scalarDict2.set(i, key, new Scalar(1.3*i)); + } + Info<< nl << "scalarDict2: " << endl; + forAll(scalarDict2, i) + { + Info<< "elem " << i << " = " << scalarDict2[i] << endl; + } + + scalarDict.transfer(scalarDict2); + + Scalar* p = scalarDict.lookupPtr("ent8"); + + if (p) + { + Info<< "found: " << *p << endl; + } + else + { + Info<< "no p: " << endl; + } + + scalarDict.clear(); + + Info<< nl << "Done." << endl; + return 0; +} + + +// ************************************************************************* // diff --git a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L index bf1bee143f04391fc36a4707f3d2055563852c49..830fecbb2338ebc29baaf8fe61a8da77173b5d63 100644 --- a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L +++ b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L @@ -137,7 +137,6 @@ int yyFlexLexer::yywrap() one_space [ \t\f] space {one_space}* some_space {one_space}+ -cspace ","{space} alpha [_[:alpha:]] digit [[:digit:]] @@ -150,6 +149,7 @@ rbrac ")" quote \" dash "-" dotColonDash [.:-] +commaPipe [,\|] schemeSpecialInitial [!$%&*/\\:<=>?~_^#.@'] schemeSpecialSubsequent [.+-] @@ -164,6 +164,7 @@ zeroLabel {digit}* signedInteger [-+]?{integer} word ({alpha}|{digit}|{dotColonDash})* wordBraces ({word}|{lbrac}|{rbrac})* +wordBracesExtras ({word}|{lbrac}|{rbrac}|{commaPipe})* exponent_part [eE][-+]?{digit}+ fractional_constant [-+]?(({digit}*"."{digit}+)|({digit}+".")|({digit})) @@ -186,6 +187,8 @@ schemeSymbolList ({schemeSymbolListElement}+{space}) starStar ("**") text ({space}({word}*{space})*) textBraces ({space}({wordBraces}*{space})*) +textExtras ({space}({word}*{commaPipe}{space})*) +textBracesExtras ({space}({wordBracesExtras}*{space})*) anythingInBlock ([^)]*) dateDDMMYYYY ({digit}{digit}"/"{digit}{digit}"/"{digit}{digit}{digit}{digit}) @@ -278,7 +281,7 @@ endOfSection {space}")"{space} BEGIN(readHeader); } -<readHeader>{quote}{textBraces}{quote} { +<readHeader>{quote}{textBracesExtras}{quote} { Info<< "Reading header: " << YYText() << endl; } @@ -727,6 +730,8 @@ endOfSection {space}")"{space} <ignoreBlock,ignoreEmbeddedBlock>{space}{text} { } +<ignoreBlock,ignoreEmbeddedBlock>{space}{textExtras} { + } /* ------ Count newlines. ------ */ diff --git a/applications/utilities/mesh/manipulation/checkMesh/checkGeometry.C b/applications/utilities/mesh/manipulation/checkMesh/checkGeometry.C index 8677f08c65919bdaebb8fb16de3cc1ab4da3c20b..987e26d2e3dc7cb365d6ac35b74b679d827ac715 100644 --- a/applications/utilities/mesh/manipulation/checkMesh/checkGeometry.C +++ b/applications/utilities/mesh/manipulation/checkMesh/checkGeometry.C @@ -136,7 +136,7 @@ bool Foam::checkWedges const point& pt = p[pp.meshPoints()[i]]; scalar d = mag((pt - p0) & pp.n()); - if (d > sqrt(SMALL)) + if (d > ROOTSMALL) { if (report) { diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C index c8cba9f2b2c1178a76099de5041744a097c8bcc5..8e64c28a38107006fb07d76cfb4b3e094b3b937b 100644 --- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C +++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C @@ -198,8 +198,10 @@ int main(int argc, char *argv[]) { argList::addNote ( - "merge the faces on the specified patches (if geometrically possible)\n" - "so the faces become internal" + "Merge the faces on the specified patches (if geometrically possible)\n" + "so the faces become internal.\n" + "Integral matching is used when the options -partial and -perfect are " + "omitted.\n" ); argList::noParallel(); @@ -212,12 +214,12 @@ int main(int argc, char *argv[]) argList::addBoolOption ( "partial", - "couple partially overlapping patches" + "couple partially overlapping patches (optional)" ); argList::addBoolOption ( "perfect", - "couple perfectly aligned patches" + "couple perfectly aligned patches (optional)" ); argList::addOption ( diff --git a/applications/utilities/mesh/manipulation/stitchMesh/toleranceDict b/applications/utilities/mesh/manipulation/stitchMesh/toleranceDict new file mode 100644 index 0000000000000000000000000000000000000000..a5e7a3297f80f993c72855abe86b6c33ca80013d --- /dev/null +++ b/applications/utilities/mesh/manipulation/stitchMesh/toleranceDict @@ -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 dictionary; + object toleranceDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// For complete details on what this dictionary file should provide, see +// $FOAM_SRC/src/dynamicMesh/slidingInterface/slidingInterface.C +// method: Foam::slidingInterface::setTolerances + +//- Point merge tolerance +pointMergeTol 0.05; + +//- Edge merge tolerance +edgeMergeTol 0.01; + +//- Estimated number of faces an edge goes through +nFacesPerSlaveEdge 5; + +//- Edge-face interaction escape limit +edgeFaceEscapeLimit 10; + +//- Integral match point adjustment tolerance +integralAdjTol 0.05; + +//- Edge intersection master catch fraction +edgeMasterCatchFraction 0.4; + +//- Edge intersection co-planar tolerance +edgeCoPlanarTol 0.8; + +//- Edge end cut-off tolerance +edgeEndCutoffTol 0.0001; + +// ************************************************************************* // diff --git a/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C b/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C index 1977bb747619bc9c482be0531b91abd561691e06..41ca2101798370bdb5957412309acb2a9725b529 100644 --- a/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C +++ b/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C @@ -36,13 +36,14 @@ Description int main(int argc, char *argv[]) { timeSelector::addOptions(); + #include "addRegionOption.H" #include "setRootCase.H" #include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); - #include "createMesh.H" + #include "createNamedMesh.H" forAll(timeDirs, timeI) { diff --git a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C index 9460c33d48193fa97b3ade1a86a4996c560c3d50..ea8fc4975dc544857a0bacb40a521bb1ca6deb98 100644 --- a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C +++ b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -185,6 +185,7 @@ void fieldInterpolator::interpolate() int main(int argc, char *argv[]) { timeSelector::addOptions(); + #include "addRegionOption.H" argList::addOption ( "fields", @@ -259,7 +260,7 @@ int main(int argc, char *argv[]) ); - #include "createMesh.H" + #include "createNamedMesh.H" Info<< "Interpolating fields for times:" << endl; diff --git a/applications/utilities/postProcessing/noise/noise.C b/applications/utilities/postProcessing/noise/noise.C index 79a5521510f467a7b72ce5dd7489f35c5513b01d..6b6628f080299ac14c6ad4607c4f0fe7b280616f 100644 --- a/applications/utilities/postProcessing/noise/noise.C +++ b/applications/utilities/postProcessing/noise/noise.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -42,13 +42,16 @@ Description fU 10000; graphFormat raw; - csvFileData + pressureData { fileName "pressureData" - nHeaderLine 1; - refColumn 0; - componentColumns (1); - separator " "; + nHeaderLine 1; // number of header lines + refColumn 0; // reference column index + componentColumns (1); // component column indices + separator " "; // optional (defaults to ",") + mergeSeparators no; // merge multiple separators + outOfBounds clamp; // optional out-of-bounds handling + interpolationScheme linear; // optional interpolation scheme } \endverbatim diff --git a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C index e217bfd6a5b104248019b42dd105613a2a3a9d0b..7848679a25bac75289980a2776971957e883129d 100644 --- a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C +++ b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C @@ -38,13 +38,14 @@ Description int main(int argc, char *argv[]) { timeSelector::addOptions(); + #include "addRegionOption.H" #include "setRootCase.H" #include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); - #include "createMesh.H" + #include "createNamedMesh.H" runTime.setTime(timeDirs.last(), timeDirs.size()-1); diff --git a/applications/utilities/postProcessing/wall/wallGradU/wallGradU.C b/applications/utilities/postProcessing/wall/wallGradU/wallGradU.C index 6491f2b1f9f882601a4554a9eb50aa68a4048b84..7d58220a59538401a8de19e89541d84b1cd94efb 100644 --- a/applications/utilities/postProcessing/wall/wallGradU/wallGradU.C +++ b/applications/utilities/postProcessing/wall/wallGradU/wallGradU.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,10 +37,14 @@ Description int main(int argc, char *argv[]) { timeSelector::addOptions(); + #include "addRegionOption.H" + #include "setRootCase.H" #include "createTime.H" + instantList timeDirs = timeSelector::select0(runTime, args); - #include "createMesh.H" + + #include "createNamedMesh.H" forAll(timeDirs, timeI) { diff --git a/etc/caseDicts/general/coordinateSystem/cartesianXY b/etc/caseDicts/general/coordinateSystem/cartesianXY new file mode 100644 index 0000000000000000000000000000000000000000..020366c10f4dc053b9519941284eb22f6efefd41 --- /dev/null +++ b/etc/caseDicts/general/coordinateSystem/cartesianXY @@ -0,0 +1,26 @@ +/*--------------------------------*- 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 dictionary; + object cartesianXY; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type cartesian; +origin (0 0 0); +coordinateRotation +{ + type axesRotation; + e1 $x; + e2 $y; +} + +//************************************************************************* // diff --git a/etc/caseDicts/general/coordinateSystem/cartesianXZ b/etc/caseDicts/general/coordinateSystem/cartesianXZ new file mode 100644 index 0000000000000000000000000000000000000000..e1be4c9dd4905f0d21704aa2579438f915878129 --- /dev/null +++ b/etc/caseDicts/general/coordinateSystem/cartesianXZ @@ -0,0 +1,26 @@ +/*--------------------------------*- 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 dictionary; + object cartesianXZ; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type cartesian; +origin (0 0 0); +coordinateRotation +{ + type axesRotation; + e1 $x; + e3 $z; +} + +//************************************************************************* // diff --git a/etc/caseDicts/general/coordinateSystem/cartesianYZ b/etc/caseDicts/general/coordinateSystem/cartesianYZ new file mode 100644 index 0000000000000000000000000000000000000000..e2def70c3219dcc586e9c99f11175b3585d7c269 --- /dev/null +++ b/etc/caseDicts/general/coordinateSystem/cartesianYZ @@ -0,0 +1,26 @@ +/*--------------------------------*- 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 dictionary; + object cartesianYZ; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type cartesian; +origin (0 0 0); +coordinateRotation +{ + type axesRotation; + e2 $y; + e3 $z +} + +//************************************************************************* // diff --git a/etc/caseDicts/general/coordinateSystem/cylindrical b/etc/caseDicts/general/coordinateSystem/cylindrical new file mode 100644 index 0000000000000000000000000000000000000000..ff5b3559d3c403b57e690bb4c12e7adc1c9122a8 --- /dev/null +++ b/etc/caseDicts/general/coordinateSystem/cylindrical @@ -0,0 +1,24 @@ +/*--------------------------------*- 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 dictionary; + object cylindrical; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type cartesian; +coordinateRotation +{ + type localAxesRotation; + e3 $axis; +} + +//************************************************************************* // diff --git a/etc/caseDicts/general/fvOptions/porosity/porousZone b/etc/caseDicts/general/fvOptions/porosity/porousZone new file mode 100644 index 0000000000000000000000000000000000000000..f7ab42ffed34b0e0a193196a833deabe0bde60f9 --- /dev/null +++ b/etc/caseDicts/general/fvOptions/porosity/porousZone @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 dictionary; + object porousZone; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +porousZone // Change to something more descriptive +{ + type explicitPorositySource; + active true; + selectionMode cellZone; + cellZone <cellZoneName>; // Specify the name of the cellZone + + explicitPorositySourceCoeffs + { + type DarcyForchheimer; + + DarcyForchheimerCoeffs + { + // Negative coeffs are multiplied by largest positive coeff, + // taking the magnitude, e.g. for -1000, coeff = |1e7*-1000| = 1e10 + + d [0 -2 0 0 0 0 0] (1e7 -1000 -1000); + f [0 -1 0 0 0 0 0] (0 0 0); + + coordinateSystem // Cartesian coordinates for the cellZone + { + x (1 0 0); + y (0 1 0); + #includeEtc "caseDicts/general/coordinateSystem/cartesianXY" + } + } + + fixedCoeffCoeffs + { + alpha [0 0 -1 0 0 0 0] (100 -1000 -1000); + beta [0 -1 0 0 0 0 0] (0 0 0); + rhoRef 1.205; + + coordinateSystem // Cylindrical coordinates for the cellZone + { + origin (0 0 0); + axis (0 0 1); + #includeEtc "caseDicts/general/coordinateSystem/cylindrical" + } + } + } +} + +//************************************************************************** // diff --git a/etc/thermoData/thermoData b/etc/thermoData/thermoData index 057c9557fcdccd83d8ab091a256237a359185c8e..dddc4e85f752b36e4eb87ecbf9aac31735111819 100644 --- a/etc/thermoData/thermoData +++ b/etc/thermoData/thermoData @@ -152,7 +152,7 @@ Pb- lowCpCoeffs ( 2.5 0 0 0 0 17762.3 8.23513 ); } } -GeCL4 +GeCl4 { specie { @@ -536,7 +536,7 @@ F2O-__FOF- lowCpCoeffs ( 4.64786 0.0100535 -1.79176e-05 1.47983e-08 -4.6499e-12 -25825.4 3.76539 ); } } -CCL +CCl { specie { @@ -552,7 +552,7 @@ CCL lowCpCoeffs ( 3.76699 -0.00149298 9.61147e-06 -1.27138e-08 5.2737e-12 50911.8 5.66471 ); } } -ALCL+ +AlCl+ { specie { @@ -584,7 +584,7 @@ C20H36O2_EtLinolea lowCpCoeffs ( -1.31454 0.212235 -8.58818e-05 -3.39348e-08 2.87278e-11 -71080.7 58.9753 ); } } -CL2O__Cl-O-Cl +Cl2O__Cl-O-Cl { specie { @@ -616,7 +616,7 @@ C6H8O_3,4DiMeFuran lowCpCoeffs ( 2.41515 0.0320931 4.3306e-05 -8.36935e-08 3.70127e-11 -14574.6 14.9425 ); } } -NH4CLO4(II) +NH4ClO4(II) { specie { @@ -904,7 +904,7 @@ C60 lowCpCoeffs ( -33.5791 0.428444 -0.000317123 4.75463e-08 2.76777e-11 304651 148.329 ); } } -HCL +HCl { specie { @@ -1000,7 +1000,7 @@ HNO2_equil__ATcT lowCpCoeffs ( 3.21416 0.00812778 1.65999e-06 -9.52815e-09 4.87131e-12 -10783.1 9.822 ); } } -FeCL3(L) +FeCl3(L) { specie { @@ -1016,7 +1016,7 @@ FeCL3(L) lowCpCoeffs ( 16.1029 0 0 0 0 -48492 -67.1135 ); } } -C3H2BR2__1,3_Dib +C3H2Br2__1,3_Dib { specie { @@ -1048,7 +1048,7 @@ C4H8N8O8_HMX lowCpCoeffs ( 8.14013 0.0833154 2.72628e-05 -9.98161e-08 4.69226e-11 16398.6 -3.22779 ); } } -SnCL4 +SnCl4 { specie { @@ -1112,7 +1112,7 @@ PS lowCpCoeffs ( 3.4687 0.00449701 -8.42505e-06 7.47111e-09 -2.51772e-12 18049.7 7.36114 ); } } -BCL3 +BCl3 { specie { @@ -1416,7 +1416,7 @@ C2H4O2_HG(O)OCH3 lowCpCoeffs ( 5.96757 -0.00938085 7.07648e-05 -8.29932e-08 3.13523e-11 -44871 0.750341 ); } } -B3O3CL3 +B3O3Cl3 { specie { @@ -1432,7 +1432,7 @@ B3O3CL3 lowCpCoeffs ( 3.59422 0.0505755 -4.66182e-05 1.48922e-08 5.70497e-13 -199700 12.0898 ); } } -C3CL4_PerClAllene +C3Cl4_PerClAllene { specie { @@ -1448,7 +1448,7 @@ C3CL4_PerClAllene lowCpCoeffs ( 2.89989 0.0562603 -9.46435e-05 7.87159e-08 -2.55213e-11 13576.3 15.0009 ); } } -AL2O3(L) +Al2O3(L) { specie { @@ -1592,7 +1592,7 @@ C2Cl3F3_FC-113A lowCpCoeffs ( 2.5428 0.0608765 -8.62331e-05 6.07755e-08 -1.7269e-11 -94117.6 15.9691 ); } } -C12H9CL +C12H9Cl { specie { @@ -1672,7 +1672,7 @@ C8H7_C6H4CH=CH2 lowCpCoeffs ( 1.17831 0.0340766 5.85066e-05 -1.10953e-07 4.95223e-11 46141.5 23.6053 ); } } -MgCLF +MgClF { specie { @@ -1992,7 +1992,7 @@ C4H6__1,2-butadi lowCpCoeffs ( 2.90828 0.0179025 2.61487e-05 -4.81599e-08 2.11296e-11 17592.9 12.3118 ); } } -CuCL +CuCl { specie { @@ -2024,7 +2024,7 @@ SO- lowCpCoeffs ( 3.65351 0.00228026 -2.55566e-06 1.37405e-09 -2.7867e-13 -13915.6 5.50813 ); } } -PbCL2 +PbCl2 { specie { @@ -2168,7 +2168,7 @@ SB(CH3)2 lowCpCoeffs ( 4.74742 0.012719 1.70266e-05 -2.86489e-08 1.20242e-11 15230.4 7.86383 ); } } -BF2CL +BF2Cl { specie { @@ -2248,7 +2248,7 @@ C4H6O2_Crotonic_ac lowCpCoeffs ( 3.40323 0.0269846 2.63698e-05 -5.87467e-08 2.69692e-11 -46024.4 13.1928 ); } } -BOCL +BOCl { specie { @@ -2392,7 +2392,7 @@ C5H11,pentyl lowCpCoeffs ( 7.17405 0.00380923 0.00010438 -1.39635e-07 5.60398e-11 2528.72 -1.18869 ); } } -ALBr2 +AlBr2 { specie { @@ -2472,7 +2472,7 @@ HS2__RRHO lowCpCoeffs ( 2.96324 0.00855502 -1.00388e-05 6.25269e-09 -1.52826e-12 51449.8 11.58 ); } } -AL +Al { specie { @@ -2680,7 +2680,7 @@ PH2- lowCpCoeffs ( 3.95759 -0.000728834 5.13055e-06 -3.73172e-09 8.41295e-13 -2300.28 2.15723 ); } } -C12H5O3CL4_DOH2 +C12H5O3Cl4_DOH2 { specie { @@ -2728,7 +2728,7 @@ C22H44O2_Behenic lowCpCoeffs ( 25.149 -0.0104152 0.000584232 -7.54109e-07 2.97753e-10 -112513 -54.9776 ); } } -AL2 +Al2 { specie { @@ -3064,7 +3064,7 @@ HCNO+_Fulminic_cat lowCpCoeffs ( 1.1113 0.0257273 -3.99372e-05 3.18403e-08 -9.91911e-12 145418 15.4371 ); } } -CH3CL +CH3Cl { specie { @@ -3224,7 +3224,7 @@ C8H18(L)_isooctane lowCpCoeffs ( 17.5199 0.0157484 7.35947e-05 -6.10398e-10 4.70619e-13 -37742.3 -68.3211 ); } } -CBrCL2F___11B1 +CBrCl2F___11B1 { specie { @@ -3464,7 +3464,7 @@ Si+ lowCpCoeffs ( 4.23261 -0.00743109 1.31426e-05 -1.07436e-08 3.34175e-12 148410 -2.74005 ); } } -SiCL4 +SiCl4 { specie { @@ -3512,7 +3512,7 @@ SiO2(b-qz) lowCpCoeffs ( 29.6202 -0.0476273 2.62543e-05 0 0 -122857 -156.169 ); } } -FeCL2(S) +FeCl2(S) { specie { @@ -3624,7 +3624,7 @@ C4H4N2_PYRIMIDINE lowCpCoeffs ( 1.63714 0.0119774 6.83832e-05 -1.0465e-07 4.42186e-11 22212.5 18.6564 ); } } -C3BR3_Allene_Rad. +C3Br3_Allene_Rad. { specie { @@ -3672,7 +3672,7 @@ H2O+ lowCpCoeffs ( 4.02466 -0.00108851 5.13577e-06 -4.40028e-09 1.40727e-12 116896 0.699969 ); } } -Fe2CL6 +Fe2Cl6 { specie { @@ -3720,7 +3720,7 @@ BI2 lowCpCoeffs ( 3.3065 0.0158184 -2.88094e-05 2.45287e-08 -7.96353e-12 27157.1 14.9424 ); } } -C2HCLF_1,1-CLF +C2HClF_1,1-ClF { specie { @@ -3752,7 +3752,7 @@ Mg2F4 lowCpCoeffs ( 1.51049 0.0696575 -0.000139294 1.2747e-07 -4.37228e-11 -209218 16.3106 ); } } -C6H2CL3O_RAD +C6H2Cl3O_RAD { specie { @@ -3816,7 +3816,7 @@ BiF2 lowCpCoeffs ( 3.10494 0.0151822 -2.53454e-05 1.9977e-08 -6.06776e-12 -25510.8 13.5101 ); } } -ALH3(a)_hexagonal +AlH3(a)_hexagonal { specie { @@ -4040,7 +4040,7 @@ C8H12_3,6-Dimeth lowCpCoeffs ( 3.35348 0.0295908 8.59569e-05 -1.33332e-07 5.53072e-11 3491.85 11.6563 ); } } -CCL2F-CHF2 +CCl2F-CHF2 { specie { @@ -4248,7 +4248,7 @@ Ca+ lowCpCoeffs ( 2.5 0 0 0 0 92324.2 5.07768 ); } } -FeCL2 +FeCl2 { specie { @@ -4280,7 +4280,7 @@ C12H8_Acenaphtyl lowCpCoeffs ( -2.14922 0.0589101 6.42492e-05 -1.41294e-07 6.47477e-11 28938 33.6791 ); } } -PF3CL2 +PF3Cl2 { specie { @@ -4328,7 +4328,7 @@ O2_singlet lowCpCoeffs ( 3.78535 -0.00321929 1.12323e-05 -1.17254e-08 4.1766e-12 10292.3 3.2732 ); } } -ALF+ +AlF+ { specie { @@ -4728,7 +4728,7 @@ CO2- lowCpCoeffs ( 2.49677 0.00870769 -4.87281e-06 -4.90572e-10 9.38694e-13 -42687.4 9.97856 ); } } -PCL3 +PCl3 { specie { @@ -4984,7 +4984,7 @@ F2H-____FHF- lowCpCoeffs ( 3.32548 0.00415755 3.33684e-06 -7.76225e-09 3.38752e-12 -87832.1 7.32348 ); } } -C6H3CL3O_TriClPhen +C6H3Cl3O_TriClPhen { specie { @@ -5608,7 +5608,7 @@ C2H2FCl_1,1-FCl lowCpCoeffs ( 0.912416 0.0311142 -3.24491e-05 1.67416e-08 -3.16508e-12 -21292.1 20.903 ); } } -AL(L) +Al(L) { specie { @@ -5784,7 +5784,7 @@ C3F7_CF3CF*CF3_M lowCpCoeffs ( 3.14242 0.0603443 -6.17598e-05 2.7938e-08 -4.02551e-12 -165147 16.6898 ); } } -C12H4CL6O2_BIFENYL +C12H4Cl6O2_BIFENYL { specie { @@ -5832,7 +5832,7 @@ CH2OH+ lowCpCoeffs ( 3.54817 -0.00288791 2.98391e-05 -3.33578e-08 1.20141e-11 85029.7 7.01729 ); } } -PCL2- +PCl2- { specie { @@ -6232,7 +6232,7 @@ C10H20_3-decene- lowCpCoeffs ( 2.73154 0.0788863 2.51642e-05 -8.5251e-08 3.92428e-11 -20689.8 25.7334 ); } } -C3H5Cl__CHCL=CHCH3 +C3H5Cl__CHCl=CHCH3 { specie { @@ -6360,7 +6360,7 @@ C lowCpCoeffs ( 2.55424 -0.000321538 7.33792e-07 -7.32235e-10 2.66521e-13 85442.7 4.53131 ); } } -PbCL3 +PbCl3 { specie { @@ -6584,7 +6584,7 @@ C12H7_Acenaphtynyl lowCpCoeffs ( -2.23704 0.0620074 4.69636e-05 -1.20874e-07 5.68319e-11 60886.8 33.8046 ); } } -C5H3CL3_CY-1,2,4CL +C5H3Cl3_CY-1,2,4Cl { specie { @@ -6616,7 +6616,7 @@ C3D6_Cyclopropan lowCpCoeffs ( -1.18501 0.0361683 -2.53517e-06 -2.83415e-08 1.57552e-11 2767.63 26.5463 ); } } -CL2O2 +Cl2O2 { specie { @@ -6648,7 +6648,7 @@ PH3+ lowCpCoeffs ( 2.49088 0.00917665 -7.25623e-06 4.81735e-09 -1.58795e-12 115032 9.37716 ); } } -MgAL2O4(cr) +MgAl2O4(cr) { specie { @@ -6696,7 +6696,7 @@ NO3 lowCpCoeffs ( 2.17359 0.0104903 1.10473e-05 -2.81562e-08 1.36584e-11 7812.91 14.6022 ); } } -SiCL +SiCl { specie { @@ -6760,7 +6760,7 @@ C6H4O2__O=C6H4=O lowCpCoeffs ( 0.856753 0.0415771 4.09304e-06 -4.07329e-08 2.08924e-11 -16679.3 21.4023 ); } } -C2H3CLO2 +C2H3ClO2 { specie { @@ -6808,7 +6808,7 @@ Hg(L) lowCpCoeffs ( 3.68613 -0.000884371 -2.58545e-06 8.12482e-09 -5.52476e-12 -1050.3 -11.5403 ); } } -C12H4CL5O2_Radic +C12H4Cl5O2_Radic { specie { @@ -6920,7 +6920,7 @@ C4H8O2_Butyricacid lowCpCoeffs ( 6.55569 0.00119881 9.25041e-05 -1.19594e-07 4.69862e-11 -57428.4 3.36227 ); } } -CF3-CHCLF__FC-124 +CF3-CHClF__FC-124 { specie { @@ -6952,7 +6952,7 @@ Ag lowCpCoeffs ( 2.5 0 0 0 0 33520 6.56282 ); } } -ALF2 +AlF2 { specie { @@ -7048,7 +7048,7 @@ C5H10__2MB-3-ene lowCpCoeffs ( 7.22291 -0.00273953 0.000104969 -1.31727e-07 5.12971e-11 -6107.68 -1.8469 ); } } -C2BR5 +C2Br5 { specie { @@ -7080,7 +7080,7 @@ C6H2Cl3O3_BiCy lowCpCoeffs ( 0.82596 0.0897047 -8.89846e-05 3.66349e-08 -3.29896e-12 -36.1541 24.2683 ); } } -CBrCLF2 +CBrClF2 { specie { @@ -7128,7 +7128,7 @@ C8H5_C6H5-CC* lowCpCoeffs ( 1.77838 0.0324194 3.85016e-05 -8.03842e-08 3.6269e-11 76600.4 19.3639 ); } } -COHCL2___Radical +COHCl2___Radical { specie { @@ -7208,7 +7208,7 @@ C12H20O10_Cellobi lowCpCoeffs ( 8.32198 0.0628814 0.000271753 -4.29459e-07 1.80191e-10 -174415 -4.13432 ); } } -C5H7CL +C5H7Cl { specie { @@ -7560,7 +7560,7 @@ CO2_cy__C(OO) lowCpCoeffs ( 3.18456 0.00536293 2.20597e-06 -8.41227e-09 4.16779e-12 21632.5 8.74099 ); } } -PbCL4 +PbCl4 { specie { @@ -7592,7 +7592,7 @@ C20H40O2_etStearat lowCpCoeffs ( -2.70218 0.226825 -8.75531e-05 -4.39254e-08 3.47715e-11 -101728 60.8589 ); } } -PCL +PCl { specie { @@ -7640,7 +7640,7 @@ C2Cl4_Tetrachlor lowCpCoeffs ( 3.11949 0.0449195 -7.36241e-05 5.96895e-08 -1.89904e-11 -4918.58 12.6542 ); } } -ALO- +AlO- { specie { @@ -7752,7 +7752,7 @@ CHF3__FLUOROFORM lowCpCoeffs ( 2.73539 0.00872479 1.74822e-05 -3.21505e-08 1.41695e-11 -84684 12.488 ); } } -BrCL +BrCl { specie { @@ -8184,7 +8184,7 @@ C6H10O5_Levogluco lowCpCoeffs ( 1.02548 0.0539526 5.79178e-05 -1.24491e-07 5.63562e-11 -97953 24.8253 ); } } -PFCL- +PFCl- { specie { @@ -8248,7 +8248,7 @@ s-1-C10H7C*O lowCpCoeffs ( 0.247025 0.0623078 3.25269e-05 -9.98773e-08 4.79264e-11 18078.8 27.46 ); } } -CH2CLF__GC-31 +CH2ClF__GC-31 { specie { @@ -8344,7 +8344,7 @@ C4H8_Cyclobutan lowCpCoeffs ( 3.14397 -0.00504252 0.000120645 -1.5841e-07 6.38394e-11 1919.48 10.6618 ); } } -DCL +DCl { specie { @@ -8584,7 +8584,7 @@ C8H15_1-octenyl- lowCpCoeffs ( 3.9658 0.0500732 4.58634e-05 -9.55246e-08 4.20969e-11 9477.34 19.0962 ); } } -SiCL3 +SiCl3 { specie { @@ -8952,7 +8952,7 @@ Cr7C3(S) lowCpCoeffs ( 1.2648 0.135086 -0.000236887 1.97375e-07 -6.14407e-11 -23973 -14.4012 ); } } -FeCL +FeCl { specie { @@ -9064,7 +9064,7 @@ C6H7+_C5H4-1-CH3 lowCpCoeffs ( -1.46109 0.0501602 -1.7565e-05 -1.40099e-08 9.74331e-12 119212 31.9146 ); } } -PFCL2 +PFCl2 { specie { @@ -9176,7 +9176,7 @@ SB(s) lowCpCoeffs ( 2.12274 0.00603818 -1.41051e-05 1.52518e-08 -5.38507e-12 -804.253 -7.91696 ); } } -CCLF2 +CClF2 { specie { @@ -9528,7 +9528,7 @@ NO2+ lowCpCoeffs ( 3.56214 0.00343629 -1.19401e-07 -1.31592e-09 5.01139e-13 114780 7.19236 ); } } -C2H3CL +C2H3Cl { specie { @@ -9576,7 +9576,7 @@ Fe(CO)5 lowCpCoeffs ( 1.32844 0.114541 -0.00022444 2.11015e-07 -7.45587e-11 -91425.7 19.3738 ); } } -CHCLF +CHClF { specie { @@ -9768,7 +9768,7 @@ Cr3C2(S) lowCpCoeffs ( -1.6814 0.0744936 -0.00012215 9.39506e-08 -2.71337e-11 -12169 2.29813 ); } } -PCL5 +PCl5 { specie { @@ -9832,7 +9832,7 @@ C6H5NO_Nitrosobe lowCpCoeffs ( 1.68039 0.0292539 5.20478e-05 -9.72307e-08 4.29288e-11 21733.6 20.1972 ); } } -CCLF3___FC-13 +CClF3___FC-13 { specie { @@ -9992,7 +9992,7 @@ C10H8__AZULENE lowCpCoeffs ( -0.627409 0.0405369 8.4064e-05 -1.5093e-07 6.63559e-11 31574.8 30.3043 ); } } -PF2CL3 +PF2Cl3 { specie { @@ -10024,7 +10024,7 @@ C8_linear_triplet lowCpCoeffs ( 3.14179 0.0514027 -7.82216e-05 6.51159e-08 -2.18045e-11 179419 5.9977 ); } } -CCL3O* +CCl3O* { specie { @@ -10088,7 +10088,7 @@ C3H6O2_EthylFormat lowCpCoeffs ( 5.59041 0.00242724 6.61618e-05 -8.61264e-08 3.38174e-11 -47569.9 4.84087 ); } } -C6HCL3OH__3-YL_RAD +C6HCl3OH__3-YL_RAD { specie { @@ -10136,7 +10136,7 @@ CCl3 lowCpCoeffs ( 2.66358 0.0271296 -4.42403e-05 3.46851e-08 -1.05867e-11 6882.02 14.1173 ); } } -GeCL3 +GeCl3 { specie { @@ -10168,7 +10168,7 @@ C14H6N6O12_HNS lowCpCoeffs ( 7.35142 0.152248 -3.6908e-06 -1.32914e-07 7.04139e-11 19976 6.96546 ); } } -SiHCL3 +SiHCl3 { specie { @@ -10456,7 +10456,7 @@ C2H2_acetylene lowCpCoeffs ( 0.80868 0.0233616 -3.55172e-05 2.80153e-08 -8.50075e-12 26429 13.9397 ); } } -ALF3 +AlF3 { specie { @@ -10952,7 +10952,7 @@ C2H2O2__HOCCOH lowCpCoeffs ( 4.39325 0.0178016 -1.81564e-05 1.11665e-08 -2.9637e-12 -5323.32 9.51277 ); } } -C2HCLF2-1,1 +C2HClF2-1,1 { specie { @@ -10968,7 +10968,7 @@ C2HCLF2-1,1 lowCpCoeffs ( 2.04804 0.0295909 -2.80654e-05 1.12979e-08 -1.01686e-12 -41870.5 17.0867 ); } } -ClO2___CLOO*___H +ClO2___ClOO*___H { specie { @@ -10984,7 +10984,7 @@ ClO2___CLOO*___H lowCpCoeffs ( 4.26695 0.00747999 -1.15233e-05 9.93421e-09 -3.48897e-12 10707.3 7.19227 ); } } -SO2CL2 +SO2Cl2 { specie { @@ -11496,7 +11496,7 @@ C5H8O2_MeCrotanoat lowCpCoeffs ( 5.79381 0.0245644 3.60443e-05 -6.23879e-08 2.61793e-11 -44636.7 4.57237 ); } } -PFCL4 +PFCl4 { specie { @@ -11992,7 +11992,7 @@ D2O2 lowCpCoeffs ( 3.99336 0.00303683 1.02968e-05 -1.60577e-08 6.83692e-12 -18743.3 5.12865 ); } } -CHCL=CH* +CHCl=CH* { specie { @@ -12104,7 +12104,7 @@ C4H4__1-butene-3 lowCpCoeffs ( 1.37369 0.0288801 -1.46864e-05 -3.91045e-09 4.78134e-12 33063.3 17.5941 ); } } -HCLO2 +HClO2 { specie { @@ -12200,7 +12200,7 @@ O+ lowCpCoeffs ( 2.5 0 0 0 0 187935 4.39338 ); } } -C12H5CL4O3_Rad +C12H5Cl4O3_Rad { specie { @@ -12264,7 +12264,7 @@ C2H5O_CH3CH*OH lowCpCoeffs ( 4.22283 0.00512175 3.48387e-05 -4.91944e-08 2.01184e-11 -8356.22 8.01676 ); } } -C3H3Cl_3CyCLPropen +C3H3Cl_3CyClPropen { specie { @@ -12312,7 +12312,7 @@ BH lowCpCoeffs ( 3.54452 -0.000231822 -1.32913e-07 2.13394e-09 -1.32335e-12 52920.3 0.530536 ); } } -B2CL4 +B2Cl4 { specie { @@ -12664,7 +12664,7 @@ C4H6O2_Diacetyl lowCpCoeffs ( 5.68608 0.0155041 3.82144e-05 -5.99463e-08 2.47932e-11 -41762.7 4.02905 ); } } -AL2O2 +Al2O2 { specie { @@ -12760,7 +12760,7 @@ Cr(OH)6 lowCpCoeffs ( -5.65718 0.136404 -0.000222736 1.74482e-07 -5.23661e-11 -125010 44.361 ); } } -MgCL+ +MgCl+ { specie { @@ -12872,7 +12872,7 @@ SbCl_singlet lowCpCoeffs ( 2.4133 0.0128929 -2.44407e-05 1.98759e-08 -5.99572e-12 20273.6 13.1774 ); } } -C2HBR4_1,1,1,2 +C2HBr4_1,1,1,2 { specie { @@ -12984,7 +12984,7 @@ C2H5O-__Ethoxy_a lowCpCoeffs ( 3.88372 0.00362649 3.51129e-05 -4.19768e-08 1.49671e-11 -23727.9 7.57799 ); } } -C12H4CL5O2_2p,4, +C12H4Cl5O2_2p,4, { specie { @@ -13144,7 +13144,7 @@ C5H11,t-pentyl lowCpCoeffs ( 6.44629 -0.00954232 0.000137892 -1.69242e-07 6.53098e-11 1508.39 5.43062 ); } } -PCL2 +PCl2 { specie { @@ -13464,7 +13464,7 @@ C6H lowCpCoeffs ( 0.905835 0.0607761 -0.000112134 1.02799e-07 -3.57814e-11 118105 17.5981 ); } } -C2CL3_RAD +C2Cl3_RAD { specie { @@ -13512,7 +13512,7 @@ CH2Br-CH2Br lowCpCoeffs ( 4.62116 0.00941442 3.26665e-05 -5.17217e-08 2.19246e-11 -6503.17 9.40527 ); } } -ALH2 +AlH2 { specie { @@ -14184,7 +14184,7 @@ C2H3O_Oxyrane_Rad lowCpCoeffs ( 3.58349 -0.00602276 6.32427e-05 -8.18541e-08 3.30445e-11 18568.1 9.59726 ); } } -S2CL +S2Cl { specie { @@ -14232,7 +14232,7 @@ NOH+_cation lowCpCoeffs ( 4.08416 -0.00241926 1.18224e-05 -1.16756e-08 3.86465e-12 138736 4.14404 ); } } -C3H2CL2__1,2_Dic +C3H2Cl2__1,2_Dic { specie { @@ -14344,7 +14344,7 @@ C2HF2__CHF=CF(E) lowCpCoeffs ( 3.0869 0.0160213 -7.49407e-06 -3.65235e-09 3.19176e-12 -6672.08 11.5974 ); } } -AL2O3(a) +Al2O3(a) { specie { @@ -14776,7 +14776,7 @@ Fe lowCpCoeffs ( 1.70744 0.0106339 -2.76118e-05 2.80918e-08 -1.0122e-11 49184.4 9.80811 ); } } -C2BR +C2Br { specie { @@ -14904,7 +14904,7 @@ s-1,5-C6H4__trans lowCpCoeffs ( 0.221633 0.0581529 -7.13934e-05 4.76726e-08 -1.28753e-11 60806.5 22.325 ); } } -CHBR +CHBr { specie { @@ -15048,7 +15048,7 @@ PO3 lowCpCoeffs ( 4.76937 0.00784394 3.34335e-06 -1.31052e-08 6.59556e-12 -55973.8 4.98978 ); } } -PF4CL +PF4Cl { specie { @@ -15288,7 +15288,7 @@ C32H13_OVALENYL lowCpCoeffs ( -9.14252 0.178117 4.87162e-05 -2.22438e-07 1.09692e-10 74571.6 65.7092 ); } } -C2CL2 +C2Cl2 { specie { @@ -15576,7 +15576,7 @@ ClO3___Chlorate lowCpCoeffs ( 1.54804 0.0255914 -3.27199e-05 1.9253e-08 -4.18676e-12 20946.5 18.7937 ); } } -AL(cr) +Al(cr) { specie { @@ -15656,7 +15656,7 @@ Mo(cr) lowCpCoeffs ( 1.32884 0.00982554 -2.1093e-05 2.0951e-08 -7.60703e-12 -684.365 -6.29287 ); } } -AL2O2+ +Al2O2+ { specie { @@ -15704,7 +15704,7 @@ NH2F lowCpCoeffs ( 4.43076 -0.00700448 3.24294e-05 -3.55242e-08 1.30599e-11 -10252.6 3.29678 ); } } -C2H4Cl_betaCLEthyl +C2H4Cl_betaClEthyl { specie { @@ -15784,7 +15784,7 @@ CO+ lowCpCoeffs ( 3.77062 -0.00201773 4.61082e-06 -2.99175e-09 6.06065e-13 149007 3.3813 ); } } -CH2CL2 +CH2Cl2 { specie { @@ -15896,7 +15896,7 @@ C12H8O2 lowCpCoeffs ( -1.48215 0.0751205 3.87198e-05 -1.19145e-07 5.69743e-11 -9056.11 32.9719 ); } } -CBRF3_FREON_1301 +CBrF3_FREON_1301 { specie { @@ -15976,7 +15976,7 @@ C18H34_1-Octadecy lowCpCoeffs ( -11.646 0.27397 -0.000297994 2.01809e-07 -5.91668e-11 -21318 96.8119 ); } } -C2HCL +C2HCl { specie { @@ -16136,7 +16136,7 @@ Ge2 lowCpCoeffs ( 1.86915 0.0207355 -4.51129e-05 4.06077e-08 -1.32217e-11 55553.6 15.6846 ); } } -C2H4O2CL2 +C2H4O2Cl2 { specie { @@ -16200,7 +16200,7 @@ C12H8Cl2O2_6,6-( lowCpCoeffs ( -5.72669 0.155871 -0.000158005 7.90551e-08 -1.57801e-11 -31851.6 56.0168 ); } } -AL(OH)2 +Al(OH)2 { specie { @@ -16216,7 +16216,7 @@ AL(OH)2 lowCpCoeffs ( 3.1217 0.0208986 -2.3495e-05 1.23528e-08 -2.11959e-12 -62732.6 11.1282 ); } } -CF2H-CCLF2_FC-124A +CF2H-CClF2_FC-124A { specie { @@ -16408,7 +16408,7 @@ C4H lowCpCoeffs ( 0.938093 0.038592 -6.86755e-05 6.13265e-08 -2.08966e-11 92312.3 16.501 ); } } -CLCLO +Cl2O { specie { @@ -16504,7 +16504,7 @@ C7H10_cyC5H9-CCH lowCpCoeffs ( 2.86273 0.0238049 8.02798e-05 -1.24667e-07 5.24739e-11 17577.4 16.0168 ); } } -ClO2___OCLO___HF +ClO2___OClO___HF { specie { @@ -16584,7 +16584,7 @@ NH2OH+ lowCpCoeffs ( 3.72525 0.00417577 9.81141e-06 -1.38336e-08 5.37208e-12 101394 6.30909 ); } } -MgCL +MgCl { specie { @@ -16824,7 +16824,7 @@ PH+ lowCpCoeffs ( 4.69912 -0.0050137 8.44515e-06 -5.45911e-09 1.2742e-12 146096 -1.93635 ); } } -C2HCL4_CHCl2-CCL2 +C2HCl4_CHCl2-CCl2 { specie { @@ -17256,7 +17256,7 @@ BF2 lowCpCoeffs ( 3.76866 0.00206633 8.29846e-06 -1.31415e-08 5.49423e-12 -61332.3 7.37107 ); } } -NH4CL(II) +NH4Cl(II) { specie { @@ -17304,7 +17304,7 @@ C7H5NO_Benzoxazole lowCpCoeffs ( -0.249438 0.0355983 5.64045e-05 -1.10126e-07 4.93628e-11 1629.13 28.0949 ); } } -Cu3CL3 +Cu3Cl3 { specie { @@ -17944,7 +17944,7 @@ C10H10_3-meIndene lowCpCoeffs ( 1.10114 0.0421733 8.14199e-05 -1.45129e-07 6.32748e-11 18168 22.5602 ); } } -C2H5CLO2 +C2H5ClO2 { specie { @@ -18120,7 +18120,7 @@ MgO(cr) lowCpCoeffs ( 78.7549 -0.528711 0.00124188 -1.22847e-06 4.37279e-10 -81264.3 -328.879 ); } } -C3H3Cl_CH2CL-CCH +C3H3Cl_CH2Cl-CCH { specie { @@ -18184,7 +18184,7 @@ CBr4 lowCpCoeffs ( 5.10359 0.0339593 -6.24045e-05 5.36484e-08 -1.7571e-11 9691.51 1.31944 ); } } -BAO(G) +BaO(G) { specie { @@ -18328,7 +18328,7 @@ NITROPROPYLENE_C lowCpCoeffs ( 3.65176 0.0201896 3.27505e-05 -5.72328e-08 2.41049e-11 -972.583 11.8667 ); } } -BCL +BCl { specie { @@ -18504,7 +18504,7 @@ Br2(cr) lowCpCoeffs ( 9.12519 -0.0826112 0.000699829 -2.40834e-06 3.21096e-09 -3304.08 -30.1719 ); } } -CLO3F +ClO3F { specie { @@ -18632,7 +18632,7 @@ T_Tritium__(g) lowCpCoeffs ( 2.5 -4.39695e-07 2.02543e-09 -2.95668e-12 1.35888e-15 26119.9 1.19728 ); } } -NH4CLO4(I) +NH4ClO4(I) { specie { @@ -18696,7 +18696,7 @@ CNN+ lowCpCoeffs ( 3.93138 0.0075873 -8.55735e-06 5.55474e-09 -1.58157e-12 196345 4.04892 ); } } -C4CL6_Butadiene +C4Cl6_Butadiene { specie { @@ -18760,7 +18760,7 @@ CH5N2__CH2*NHNH2 lowCpCoeffs ( 2.31544 0.0218627 -3.68464e-06 -1.3271e-08 8.00413e-12 30774.4 15.0726 ); } } -PF2CL +PF2Cl { specie { @@ -18920,7 +18920,7 @@ MgF2(cr)I lowCpCoeffs ( 3.15877 0.00196088 0.000105362 -2.77411e-07 2.08833e-10 -136720 -14.3472 ); } } -C6H5CL+_Chlorobe +C6H5Cl+_Chlorobe { specie { @@ -19080,7 +19080,7 @@ CH2=CH-NO2_Nitroe lowCpCoeffs ( 2.75939 0.0170696 2.37368e-05 -4.77983e-08 2.14793e-11 1843.4 14.6556 ); } } -C3HCL3__TriClAllen +C3HCl3__TriClAllen { specie { @@ -19256,7 +19256,7 @@ C4H6O_H3CCH2CH=C lowCpCoeffs ( 3.2361 0.0232109 2.16181e-05 -4.71002e-08 2.13586e-11 -12724.9 12.9611 ); } } -SCL2 +SCl2 { specie { @@ -19400,7 +19400,7 @@ C4H8O_2-Butanone lowCpCoeffs ( 6.61978 0.00851848 5.10322e-05 -6.58433e-08 2.4911e-11 -31525.2 -1.09485 ); } } -C2H4Cl_alfaCLEthyl +C2H4Cl_alfaClEthyl { specie { @@ -19480,7 +19480,7 @@ MgBr2(L) lowCpCoeffs ( 12.0272 0 0 0 0 -63633.8 -52.4664 ); } } -BCL+ +BCl+ { specie { @@ -19512,7 +19512,7 @@ CHNH2-__anion__H lowCpCoeffs ( 1.8202 0.0153201 -1.1192e-05 4.57191e-09 -7.44802e-13 40235.2 14.2819 ); } } -CHBrCL2__FC-20B1 +CHBrCl2__FC-20B1 { specie { @@ -19624,7 +19624,7 @@ CH3N__(H2C=NH) lowCpCoeffs ( 4.79303 -0.0126842 5.69767e-05 -6.34985e-08 2.37023e-11 9413.86 1.10278 ); } } -HALO2 +HAlO2 { specie { @@ -19656,7 +19656,7 @@ HCN lowCpCoeffs ( 2.25901 0.010051 -1.33515e-05 1.0092e-08 -3.0088e-12 14590.3 8.91632 ); } } -ALO2 +AlO2 { specie { @@ -19672,7 +19672,7 @@ ALO2 lowCpCoeffs ( 4.34295 0.00865076 -8.91493e-06 3.12927e-09 9.49015e-14 -6256.26 5.43603 ); } } -HOCL +HOCl { specie { @@ -19752,7 +19752,7 @@ C6H11I_IodocyHexan lowCpCoeffs ( 4.95589 0.00624026 0.00013695 -1.85304e-07 7.45516e-11 -8647.49 9.04456 ); } } -CL- +Cl- { specie { @@ -19832,7 +19832,7 @@ C7H7_Quadri_Base lowCpCoeffs ( -0.865668 0.0202947 0.000109981 -1.75784e-07 7.63992e-11 68615.1 31.45 ); } } -CBRCL3_Bromotric +CBrCl3_Bromotric { specie { @@ -19848,7 +19848,7 @@ CBRCL3_Bromotric lowCpCoeffs ( 2.8408 0.0425731 -7.69558e-05 6.54734e-08 -2.13015e-11 -7238.49 12.5268 ); } } -CCL3F___FC-11 +CCl3F___FC-11 { specie { @@ -20008,7 +20008,7 @@ FeSO4(S) lowCpCoeffs ( 1.36573 0.0529862 -7.03486e-05 4.90952e-08 -1.44139e-11 -113945 -6.31021 ); } } -C2BR4 +C2Br4 { specie { @@ -20056,7 +20056,7 @@ CH3-NH-NH-CH3_Sy lowCpCoeffs ( 5.41669 0.00250625 7.35471e-05 -9.60749e-08 3.79945e-11 10565.4 3.29279 ); } } -DOBR +DOBr { specie { @@ -20120,7 +20120,7 @@ C4__triplet lowCpCoeffs ( 3.68513 0.0184223 -3.11974e-05 2.9645e-08 -1.07298e-11 125759 5.42249 ); } } -SI2H6__Disilane +Si2H6__Disilane { specie { @@ -20168,7 +20168,7 @@ C3H2F3_CF3-CH=CH* lowCpCoeffs ( 0.681987 0.0469264 -4.86401e-05 2.2047e-08 -2.75415e-12 -47231.4 22.9561 ); } } -CL2 +Cl2 { specie { @@ -20184,7 +20184,7 @@ CL2 lowCpCoeffs ( 2.73638 0.00783526 -1.45105e-05 1.25731e-08 -4.13247e-12 -1058.8 9.44557 ); } } -AL2O+ +Al2O+ { specie { @@ -20264,7 +20264,7 @@ COH lowCpCoeffs ( 4.36381 -0.00535204 2.31955e-05 -2.66109e-08 1.02712e-11 25010.9 2.98106 ); } } -C4CL2 +C4Cl2 { specie { @@ -20328,7 +20328,7 @@ C5H10,cyclo- lowCpCoeffs ( 3.70339 -0.0115575 0.000164113 -2.0937e-07 8.31059e-11 -10938.9 11.9773 ); } } -DOCL +DOCl { specie { @@ -20408,7 +20408,7 @@ NO lowCpCoeffs ( 4.2186 -0.00463988 1.10443e-05 -9.34056e-09 2.80555e-12 9845.1 2.28061 ); } } -NO2CL +NO2Cl { specie { @@ -20488,7 +20488,7 @@ C6H9I-3-iodo lowCpCoeffs ( 3.97475 0.0142793 0.000103556 -1.4999e-07 6.192e-11 5835.6 13.0713 ); } } -FeCL3 +FeCl3 { specie { @@ -20536,7 +20536,7 @@ C22H18_(C10H7CH2)2 lowCpCoeffs ( -9.01278 0.205116 -0.000183057 1.10357e-07 -3.44709e-11 28550.4 69.335 ); } } -C2HCL5 +C2HCl5 { specie { @@ -20568,7 +20568,7 @@ C3H3+_CH2=C=CH+ lowCpCoeffs ( 1.5491 0.0233307 -1.70274e-05 4.66368e-09 2.21539e-13 143166 13.7174 ); } } -CCL4 +CCl4 { specie { @@ -20840,7 +20840,7 @@ ZrN(cr) lowCpCoeffs ( -1.60329 0.0435534 -0.000102727 1.12384e-07 -4.61701e-11 -45399.9 4.48755 ); } } -ALF +AlF { specie { @@ -20936,7 +20936,7 @@ MgI2 lowCpCoeffs ( 5.47324 0.0105458 -2.22792e-05 2.12039e-08 -7.48636e-12 -22593.5 4.23281 ); } } -C2CL +C2Cl { specie { @@ -21240,7 +21240,7 @@ CF- lowCpCoeffs ( 2.67417 0.00577946 -7.7641e-06 5.08964e-09 -1.30782e-12 22801.9 8.08085 ); } } -C5H8CL +C5H8Cl { specie { @@ -21352,7 +21352,7 @@ K(cr) lowCpCoeffs ( -2.08951 0.061632 -0.000240732 3.27256e-07 0 -636.098 9.11737 ); } } -ALO2- +AlO2- { specie { @@ -21576,7 +21576,7 @@ C3HCl2OH lowCpCoeffs ( 3.1571 0.0399226 -4.67896e-05 2.89518e-08 -7.27289e-12 -2951.93 14.6502 ); } } -NOCL +NOCl { specie { @@ -21656,7 +21656,7 @@ CBr3__Radical lowCpCoeffs ( 4.24875 0.0227424 -3.912e-05 3.19712e-08 -1.00758e-11 25938.1 10.3538 ); } } -CLF5 +ClF5 { specie { @@ -22040,7 +22040,7 @@ ZrC(cr) lowCpCoeffs ( -1.12575 0.0338354 -6.64955e-05 6.40913e-08 -2.42647e-11 -24347.1 2.77083 ); } } -CCL2F +CCl2F { specie { @@ -22392,7 +22392,7 @@ C3H4N__CH3-CH*-CN lowCpCoeffs ( 2.90886 0.021025 -3.11711e-06 -1.06743e-08 5.98989e-12 25029.2 12.2021 ); } } -PFCL +PFCl { specie { @@ -22520,7 +22520,7 @@ C3H6O3_Trioxane lowCpCoeffs ( 3.55244 0.00170629 9.91147e-05 -1.31999e-07 5.26422e-11 -59030.2 10.6185 ); } } -ALH +AlH { specie { @@ -22760,7 +22760,7 @@ D lowCpCoeffs ( 2.5 0 0 0 0 25921.3 0.591714 ); } } -C2CL2F4_CF3CFCL2 +C2Cl2F4_CF3CFCl2 { specie { @@ -22808,7 +22808,7 @@ SbCl2 lowCpCoeffs ( 3.26046 0.00813469 -5.31504e-06 -1.00842e-09 1.59478e-12 -13161.4 13.0106 ); } } -AL2O3 +Al2O3 { specie { @@ -22936,7 +22936,7 @@ C3H6_propylene lowCpCoeffs ( 3.83464 0.00329079 5.05228e-05 -6.66251e-08 2.63707e-11 788.717 7.53408 ); } } -FeCL3(s) +FeCl3(s) { specie { @@ -23096,7 +23096,7 @@ HNNH-__trans lowCpCoeffs ( 3.03932 0.00358025 8.30143e-06 -1.1908e-08 4.60611e-12 29701.1 8.63197 ); } } -SbCL5 +SbCl5 { specie { @@ -23240,7 +23240,7 @@ C9H18O6_TATP lowCpCoeffs ( -1.19327 0.16895 -0.000171505 1.01467e-07 -2.60451e-11 -53390.5 23.2901 ); } } -C12H5CL4O2_RAD +C12H5Cl4O2_RAD { specie { @@ -23448,7 +23448,7 @@ P2 lowCpCoeffs ( 2.9606 0.00385561 -2.87398e-06 -3.19976e-10 8.10023e-13 16290.7 8.34523 ); } } -CBR3CL__TriBromo +CBr3Cl__TriBromo { specie { @@ -23480,7 +23480,7 @@ C6H3_CH2=C=C=C=C=C lowCpCoeffs ( 1.50089 0.0545902 -7.88221e-05 6.27969e-08 -2.00769e-11 84913.4 17.6237 ); } } -CLF3 +ClF3 { specie { @@ -23592,7 +23592,7 @@ C3H4O2_AcrylAcid lowCpCoeffs ( 1.24227 0.0300699 -1.48207e-06 -2.42738e-08 1.33122e-11 -40866.8 21.9243 ); } } -CHFCLBr +CHFClBr { specie { @@ -23608,7 +23608,7 @@ CHFCLBr lowCpCoeffs ( 2.84647 0.0204936 -1.70059e-05 4.11372e-09 9.31157e-13 -29280.4 15.0637 ); } } -ALCL +AlCl { specie { @@ -23704,7 +23704,7 @@ CH3C(CH3)2CH3 lowCpCoeffs ( 3.56479 0.0290185 5.00307e-05 -8.66302e-08 3.72524e-11 -22877.4 6.73829 ); } } -GeCL2____triplet +GeCl2____triplet { specie { @@ -23720,7 +23720,7 @@ GeCL2____triplet lowCpCoeffs ( 4.11513 0.0153508 -3.27832e-05 3.13345e-08 -1.10726e-11 10627.5 10.2028 ); } } -CL2O7 +Cl2O7 { specie { @@ -23768,7 +23768,7 @@ C8H7N__o-ToluoNitr lowCpCoeffs ( 2.05214 0.038168 4.22551e-05 -8.69955e-08 3.87533e-11 20059 19.5286 ); } } -CLNC_biradical +ClNC_biradical { specie { @@ -23832,7 +23832,7 @@ NITRO-PENTANE lowCpCoeffs ( 4.00704 0.0229727 0.000104023 -1.55574e-07 6.44329e-11 -22634.2 13.9587 ); } } -AR +Ar { specie { @@ -23928,7 +23928,7 @@ Na2O(a) lowCpCoeffs 7 { 0 }; } } -FeCL2(L) +FeCl2(L) { specie { @@ -23960,7 +23960,7 @@ Na2O(c) lowCpCoeffs ( 2.1367 0.0391996 -8.50796e-05 8.70574e-08 -3.22937e-11 -51645.5 -11.76 ); } } -CF3-CHCL2__HF123 +CF3-CHCl2__HF123 { specie { @@ -24088,7 +24088,7 @@ C3H7_i-propyl lowCpCoeffs ( 5.47421 -0.00842537 8.04608e-05 -9.49288e-08 3.59831e-11 9049.39 3.40542 ); } } -ALOH +AlOH { specie { @@ -24280,7 +24280,7 @@ C8H18,n-octane lowCpCoeffs ( 12.5245 -0.0101019 0.000221993 -2.84864e-07 1.1241e-10 -29843.4 -19.711 ); } } -C12H6CL4O2 +C12H6Cl4O2 { specie { @@ -24408,7 +24408,7 @@ C12H10_biphenyl lowCpCoeffs ( 0.1946 0.053526 8.55001e-05 -1.63904e-07 7.29976e-11 19002.1 27.2149 ); } } -NH4CL(III) +NH4Cl(III) { specie { @@ -24424,7 +24424,7 @@ NH4CL(III) lowCpCoeffs ( 1.70591 0.0307824 -4.40956e-05 4.81013e-08 -1.91059e-11 -38502.2 -3.73732 ); } } -SO2FCL +SO2FCl { specie { @@ -24632,7 +24632,7 @@ C7H5(NO2)3_(TNT) lowCpCoeffs ( 3.19573 0.086222 -2.31687e-05 -4.31208e-08 2.63453e-11 -1609.11 15.4068 ); } } -C2H5CL +C2H5Cl { specie { @@ -24696,7 +24696,7 @@ CH3C lowCpCoeffs ( 3.59147 -6.65568e-05 2.69433e-05 -3.438e-08 1.35235e-11 59929.5 5.96528 ); } } -CH2CL +CH2Cl { specie { @@ -24856,7 +24856,7 @@ NCN lowCpCoeffs ( 2.79808 0.0100009 -9.59242e-06 4.75566e-09 -1.04349e-12 53857.5 8.6213 ); } } -CHBR2 +CHBr2 { specie { @@ -24904,7 +24904,7 @@ CH3-_anion lowCpCoeffs ( 4.35455 -0.00541267 2.17109e-05 -1.94567e-08 5.95104e-12 15405.2 -0.727196 ); } } -MgAL2O4(L) +MgAl2O4(L) { specie { @@ -25096,7 +25096,7 @@ C12H9,o-bipheny lowCpCoeffs ( 0.407668 0.0542795 7.12516e-05 -1.44404e-07 6.48498e-11 48535.2 28.1981 ); } } -CLF +ClF { specie { @@ -25160,7 +25160,7 @@ N2O+ lowCpCoeffs ( 3.28691 0.00740222 -4.86664e-06 7.32928e-10 2.98234e-13 159103 7.40137 ); } } -CLCN +ClCN { specie { @@ -25688,7 +25688,7 @@ C3H3Cl_Chloro-Al lowCpCoeffs ( 2.17406 0.0233296 -8.27347e-06 -8.72361e-09 6.26711e-12 19487 15.7635 ); } } -BFCL +BFCl { specie { @@ -25960,7 +25960,7 @@ C2H4F_beta-Fluor lowCpCoeffs ( 4.38589 0.00444185 2.81593e-05 -3.89282e-08 1.56056e-11 -9031.77 6.2837 ); } } -AL(OH)3 +Al(OH)3 { specie { @@ -26024,7 +26024,7 @@ H6F6 lowCpCoeffs ( 4.76645 0.0786031 -0.000121157 9.36149e-08 -2.78945e-11 -221172 12.5468 ); } } -GeCL2____singlet +GeCl2____singlet { specie { @@ -26056,7 +26056,7 @@ C3H6_cyclo- lowCpCoeffs ( 2.83279 -0.00521029 9.29583e-05 -1.22753e-07 4.99191e-11 5195.2 10.8306 ); } } -ALO+ +AlO+ { specie { @@ -26264,7 +26264,7 @@ H2O(L) lowCpCoeffs ( 72.5575 -0.662445 0.00256199 -4.36592e-06 2.78179e-09 -41886.5 -288.28 ); } } -CBr2CLF___11B3 +CBr2ClF___11B3 { specie { @@ -26520,7 +26520,7 @@ N2O3 lowCpCoeffs ( 5.81084 0.0143331 -1.96209e-05 1.73061e-08 -6.46554e-12 8191.84 1.20461 ); } } -CL +Cl { specie { @@ -26536,7 +26536,7 @@ CL lowCpCoeffs ( 2.26062 0.00154154 -6.80284e-07 -1.59973e-09 1.15417e-12 13855.3 6.57021 ); } } -Cl2C=C=CCL(O*) +Cl2C=C=CCl(O*) { specie { @@ -26584,7 +26584,7 @@ CrO lowCpCoeffs ( 3.18819 0.00146295 3.31396e-06 -6.66294e-09 3.11838e-12 21611.6 10.0817 ); } } -ALCL3 +AlCl3 { specie { @@ -26616,7 +26616,7 @@ C4H3_E-1yl_Radical lowCpCoeffs ( 0.554264 0.0386185 -4.70818e-05 3.0624e-08 -7.90588e-12 63797.5 21.0542 ); } } -COCL2 +COCl2 { specie { @@ -27272,7 +27272,7 @@ C4H5__1,3-Butadi lowCpCoeffs ( 2.00881 0.0250341 4.4793e-06 -2.6399e-08 1.34433e-11 36207 15.9914 ); } } -MgCL2(L) +MgCl2(L) { specie { @@ -27320,7 +27320,7 @@ CH3+ lowCpCoeffs ( 4.73044 -0.0086626 3.12269e-05 -3.13569e-08 1.09957e-11 131270 -3.03198 ); } } -ALBr3 +AlBr3 { specie { @@ -27448,7 +27448,7 @@ HPO lowCpCoeffs ( 4.13953 -0.00375644 2.10092e-05 -2.45888e-08 9.33164e-12 -12480.7 5.14556 ); } } -FeOCL(cr) +FeOCl(cr) { specie { @@ -27784,7 +27784,7 @@ CrO3 lowCpCoeffs ( 2.2336 0.0241281 -3.23842e-05 2.06088e-08 -5.05776e-12 -40222.5 13.7496 ); } } -BOCL2 +BOCl2 { specie { @@ -27800,7 +27800,7 @@ BOCL2 lowCpCoeffs ( 2.39602 0.0242258 -3.58262e-05 2.65234e-08 -7.85785e-12 -45009.4 15.654 ); } } -Fe2CL4 +Fe2Cl4 { specie { @@ -28344,7 +28344,7 @@ CD2_Deutherometh lowCpCoeffs ( 3.55503 0.00336947 -3.5028e-06 4.99693e-09 -2.45123e-12 44827.3 3.42741 ); } } -C2H2CL2_1,1- +C2H2Cl2_1,1- { specie { @@ -28360,7 +28360,7 @@ C2H2CL2_1,1- lowCpCoeffs ( 1.09096 0.0338226 -4.14124e-05 2.66328e-08 -6.88458e-12 -1247.49 19.9996 ); } } -BFCL2 +BFCl2 { specie { @@ -28504,7 +28504,7 @@ C3H2(1)_HCC-CH** lowCpCoeffs ( 2.87527 0.0199236 -2.41971e-05 1.66378e-08 -4.69231e-12 96819.2 8.88674 ); } } -HALO +HAlO { specie { @@ -28776,7 +28776,7 @@ C6H7_1,3,5_Linear lowCpCoeffs ( 2.82605 0.0348405 1.31407e-05 -4.6882e-08 2.29961e-11 49458.2 17.0295 ); } } -HCLO4 +HClO4 { specie { @@ -28872,7 +28872,7 @@ N2- lowCpCoeffs ( 3.87906 -0.00316855 8.46825e-06 -7.28826e-09 2.18785e-12 21755.2 3.12725 ); } } -BCL2+ +BCl2+ { specie { @@ -29016,7 +29016,7 @@ NH4NO3_gas lowCpCoeffs ( 4.14853 0.0269825 -9.75933e-06 -6.09907e-09 4.33965e-12 -30074.6 8.49838 ); } } -CL+ +Cl+ { specie { @@ -29128,7 +29128,7 @@ F2O+__FOF+ lowCpCoeffs ( 2.46499 0.0109177 -1.05316e-05 4.05496e-09 -3.04762e-13 154795 13.2086 ); } } -ALF2- +AlF2- { specie { @@ -29320,7 +29320,7 @@ C10H8O__Naphtol lowCpCoeffs ( -2.08768 0.07681 -1.53593e-05 -4.04658e-08 2.3376e-11 -6290.56 34.3331 ); } } -ALH3 +AlH3 { specie { @@ -29384,7 +29384,7 @@ s-1,2,3,5-C6H2Cl4 lowCpCoeffs ( 2.48196 0.0655633 -5.95894e-05 2.22036e-08 -1.43435e-12 -5391.51 16.9276 ); } } -CCL2F2_FREON-12 +CCl2F2_FREON-12 { specie { @@ -29704,7 +29704,7 @@ CH3S_Radical lowCpCoeffs ( 2.56437 0.0115796 -4.5012e-06 -5.02342e-10 6.95253e-13 13370.6 11.2505 ); } } -CHFCL2___FC-21 +CHFCl2___FC-21 { specie { @@ -30200,7 +30200,7 @@ C2H2Br2_trans lowCpCoeffs ( 3.8637 0.016965 -3.41692e-06 -1.08161e-08 6.58651e-12 10083.8 10.913 ); } } -SiCL2 +SiCl2 { specie { @@ -30440,7 +30440,7 @@ C4F8_CY lowCpCoeffs ( -6.40876 0.117788 -0.000157354 1.1578e-07 -3.71123e-11 -184189 56.1863 ); } } -CHCL3_Chloroform +CHCl3_Chloroform { specie { @@ -30584,7 +30584,7 @@ CH3-NH-NH2 lowCpCoeffs ( 3.36546 0.00916487 4.07415e-05 -6.18271e-08 2.62064e-11 11498.2 9.75315 ); } } -SCL +SCl { specie { @@ -31224,7 +31224,7 @@ C24H17 lowCpCoeffs ( -16.409 0.226724 -0.000140015 -2.78751e-09 2.47131e-11 70999.3 110.51 ); } } -BCL2 +BCl2 { specie { @@ -31464,7 +31464,7 @@ CI lowCpCoeffs ( 1.89139 0.0167386 -3.68508e-05 3.50616e-08 -1.22019e-11 67533.2 14.609 ); } } -C12H6CL2O2 +C12H6Cl2O2 { specie { @@ -31512,7 +31512,7 @@ C13H10O__Benzoph lowCpCoeffs ( 2.03306 0.0530785 0.000104699 -1.89967e-07 8.33778e-11 4094.98 22.7448 ); } } -C2H2CL2_Equilibriu +C2H2Cl2_Equilibriu { specie { @@ -31544,7 +31544,7 @@ HNO2+_cis____HF2 lowCpCoeffs ( 2.63706 0.0102578 -5.14296e-06 -5.04116e-10 9.47515e-13 120845 12.4287 ); } } -CBR +CBr { specie { @@ -31624,7 +31624,7 @@ H2Sn(C2H5)2 lowCpCoeffs ( 5.22643 0.0383917 2.00663e-05 -5.18249e-08 2.32704e-11 3442.92 7.61235 ); } } -AL2O3(b) +Al2O3(b) { specie { @@ -31672,7 +31672,7 @@ MgSiO3(III) lowCpCoeffs 7 { 0 }; } } -C5H7CL2 +C5H7Cl2 { specie { @@ -31736,7 +31736,7 @@ HCCNO2 lowCpCoeffs ( 1.34403 0.0333183 -3.93939e-05 2.41125e-08 -5.90505e-12 31935.8 18.7891 ); } } -S2CL2 +S2Cl2 { specie { @@ -31944,7 +31944,7 @@ C4H9O_DiEthyl_Et lowCpCoeffs ( 7.25386 -0.000750391 0.000104998 -1.35171e-07 5.26869e-11 -8118.19 -0.573033 ); } } -C2BR6 +C2Br6 { specie { @@ -32248,7 +32248,7 @@ C4H8O2_DIOXANE lowCpCoeffs ( 4.81265 -0.00385996 0.000125372 -1.60862e-07 6.33257e-11 -37571.3 6.04153 ); } } -ALO +AlO { specie { @@ -32392,7 +32392,7 @@ NO2- lowCpCoeffs ( 3.09784 0.00370486 5.92941e-06 -1.09497e-08 4.62722e-12 -24155.4 9.48237 ); } } -C2HBR4_1,1,2,2 +C2HBr4_1,1,2,2 { specie { @@ -32424,7 +32424,7 @@ F2+ lowCpCoeffs ( 3.96417 -0.000599836 4.03663e-06 -4.74261e-09 1.76772e-12 181724 2.80862 ); } } -CF2CL-CHCLF_123a +CF2Cl-CHClF_123a { specie { @@ -32456,7 +32456,7 @@ COOH lowCpCoeffs ( 2.92208 0.00762454 3.29884e-06 -1.07135e-08 5.11587e-12 -23028.2 11.2926 ); } } -CH3COCL_Acetyl-CL +CH3COCl_Acetyl-Cl { specie { @@ -32472,7 +32472,7 @@ CH3COCL_Acetyl-CL lowCpCoeffs ( 3.9884 0.0126777 7.80939e-06 -1.82292e-08 7.97984e-12 -30830 8.16676 ); } } -NE +Ne { specie { @@ -33048,7 +33048,7 @@ C2H5O-__CH3C*HOH- lowCpCoeffs ( 2.73686 0.0206277 -7.16876e-06 -3.02068e-09 2.28832e-12 -6393.69 12.5982 ); } } -C12H4CL6O2__tric +C12H4Cl6O2__tric { specie { @@ -33064,7 +33064,7 @@ C12H4CL6O2__tric lowCpCoeffs ( 3.28452 0.141319 -0.000138658 5.99059e-08 -7.31751e-12 -30439.2 19.9985 ); } } -COCL +COCl { specie { @@ -33400,7 +33400,7 @@ C4H10_isobutane lowCpCoeffs ( 4.45479 0.00826059 8.29886e-05 -1.14648e-07 4.6457e-11 -18459.4 4.92741 ); } } -C12H5CL5O2_PD +C12H5Cl5O2_PD { specie { @@ -33592,7 +33592,7 @@ MgSO4(I) lowCpCoeffs 7 { 0 }; } } -C2HFCL2_equilibr +C2HFCl2_equilibr { specie { @@ -33800,7 +33800,7 @@ C18H36O2_etPalmita lowCpCoeffs ( 0.607765 0.187616 -4.8932e-05 -5.75354e-08 3.32268e-11 -96555.9 43.5519 ); } } -COFCL +COFCl { specie { @@ -33896,7 +33896,7 @@ C6H6+_Benzene_ion lowCpCoeffs ( -2.36188 0.050756 -2.00023e-05 -1.27434e-08 9.63134e-12 116788 33.7617 ); } } -BRCN +BrCN { specie { @@ -33976,7 +33976,7 @@ C8H7___i-styryl lowCpCoeffs ( 0.595576 0.0431716 3.39695e-05 -8.55153e-08 4.02635e-11 41975.6 25.7012 ); } } -GeCL +GeCl { specie { @@ -33992,7 +33992,7 @@ GeCL lowCpCoeffs ( 2.72445 0.00895175 -1.25463e-05 6.75349e-09 -1.04008e-12 7190.16 11.8835 ); } } -CHCLF2__HCFC-22 +CHClF2__HCFC-22 { specie { @@ -34632,7 +34632,7 @@ C19H36O2_meOleic lowCpCoeffs ( 1.03901 0.189498 -4.90209e-05 -6.24649e-08 3.76956e-11 -82267.1 52.4855 ); } } -MgCL2 +MgCl2 { specie { @@ -34696,7 +34696,7 @@ C6H6_1,3-Butadie lowCpCoeffs ( 0.744284 0.0472659 -2.19464e-05 -9.84219e-09 9.27386e-12 39556.6 21.8138 ); } } -MgCL2(cr) +MgCl2(cr) { specie { @@ -34744,7 +34744,7 @@ GeS2(II)(s) lowCpCoeffs ( 5.26457 0.0158411 -3.14864e-05 3.00355e-08 -1.04866e-11 -17420.7 -22.3062 ); } } -AL2O +Al2O { specie { @@ -34792,7 +34792,7 @@ Mg2SiO4(L) lowCpCoeffs 7 { 0 }; } } -SCL2+ +SCl2+ { specie { @@ -34888,7 +34888,7 @@ C2Cl5___Pentachl lowCpCoeffs ( 3.91975 0.0549683 -9.27441e-05 7.45661e-08 -2.32158e-11 -284.949 13.3912 ); } } -C2BR3 +C2Br3 { specie { @@ -35048,7 +35048,7 @@ C8H7___1,3,5,7_Cy lowCpCoeffs ( 0.221489 0.0439671 3.08077e-05 -8.02318e-08 3.77773e-11 58455.7 25.8576 ); } } -PBS(cr)__GALENA +PbS(cr)__GALENA { specie { @@ -35208,7 +35208,7 @@ C4H6Cl2_1,4-DiCl lowCpCoeffs ( 4.62931 0.0213074 4.38339e-05 -8.04356e-08 3.58875e-11 -8812.42 12.3975 ); } } -CHBr2CL +CHBr2Cl { specie { @@ -35272,7 +35272,7 @@ ClC2H4OH__ATcT_C lowCpCoeffs ( 3.29693 0.0155882 2.61101e-05 -4.87089e-08 2.16773e-11 -33904.2 13.6163 ); } } -ALBr +AlBr { specie { @@ -35336,7 +35336,7 @@ Na2O lowCpCoeffs ( 4.47778 0.0141517 -2.77158e-05 2.4968e-08 -8.46423e-12 -3756.21 3.92862 ); } } -CHCL +CHCl { specie { @@ -35416,7 +35416,7 @@ C4F6_CycloButene lowCpCoeffs ( 4.2381 0.0498 -4.01139e-05 9.85389e-09 1.49299e-12 -148774 8.3064 ); } } -C24CL12_Coronene +C24Cl12_Coronene { specie { @@ -35672,7 +35672,7 @@ C7H8__1,6-diyne lowCpCoeffs ( 2.65094 0.0475342 -6.58275e-06 -2.70985e-08 1.531e-11 44797.6 14.6492 ); } } -CHCL2 +CHCl2 { specie { @@ -35784,7 +35784,7 @@ B3O3F3 lowCpCoeffs ( 2.25601 0.046567 -3.26831e-05 1.27816e-09 5.045e-12 -289030 16.0606 ); } } -PbCL +PbCl { specie { @@ -35832,7 +35832,7 @@ C10_linear_triple lowCpCoeffs ( 3.4855 0.0640662 -9.35342e-05 7.56085e-08 -2.48799e-11 206209 10.6203 ); } } -C2CL2F4__FC-114 +C2Cl2F4__FC-114 { specie { @@ -35928,7 +35928,7 @@ C7H5NS_Benzothiaz lowCpCoeffs ( -0.923877 0.0491355 1.97405e-05 -7.21022e-08 3.54777e-11 22598.7 30.7415 ); } } -ALCL2 +AlCl2 { specie { @@ -36200,7 +36200,7 @@ HNO3+ lowCpCoeffs ( 0.696075 0.0308976 -4.05429e-05 2.68505e-08 -7.08467e-12 122156 22.6095 ); } } -CCLF +CClF { specie { @@ -36408,12 +36408,12 @@ C3H7NO3_NPN lowCpCoeffs ( 4.69954 0.0174527 6.53066e-05 -9.90515e-08 4.08918e-11 -24608.3 11.0308 ); } } -AIR +air { specie { nMoles 1; - molWeight 0; + molWeight 28.9644; } thermodynamics { @@ -36808,7 +36808,7 @@ CH2O+_Fornald_cati lowCpCoeffs ( 2.99008 0.00405957 7.18536e-06 -1.01674e-08 3.74118e-12 112947 8.64302 ); } } -C12H6CL2O +C12H6Cl2O { specie { @@ -36952,7 +36952,7 @@ Na2O(L) lowCpCoeffs 7 { 0 }; } } -CH2BRCOOH +CH2BrCOOH { specie { diff --git a/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H b/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H index 7d788fe4dfe0e0b90f7b0c931d994b36f6659231..f9294eedd0338e540eef4c422307a98c2cda0bb1 100644 --- a/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H +++ b/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -74,13 +74,15 @@ class DictionaryBase : public IDLListType { - // Private data +protected: + + // Protected data //- HashTable of the entries held on the IDLListType for quick lookup HashTable<T*> hashedTs_; - // Private Member functions + // Protected Member functions // Add the IDLListType entries into the HashTable void addEntries(); @@ -146,6 +148,7 @@ public: // and annul the argument. void transfer(DictionaryBase<IDLListType, T>&); + // Member operators void operator=(const DictionaryBase&); diff --git a/src/OpenFOAM/containers/Dictionaries/PtrDictionary/PtrDictionary.H b/src/OpenFOAM/containers/Dictionaries/PtrDictionary/PtrDictionary.H index efa739d26a2ca54327509c439e2f699bb7140eb0..a287e326cb635215ba66b474f9ae9604744753b1 100644 --- a/src/OpenFOAM/containers/Dictionaries/PtrDictionary/PtrDictionary.H +++ b/src/OpenFOAM/containers/Dictionaries/PtrDictionary/PtrDictionary.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,11 +25,10 @@ Class Foam::PtrDictionary Description - Template dictionary class which does not manages the storage - associated with it. + Template dictionary class which manages the storage associated with it. - It is derived from DictionaryBase instantiated on a non-memory managed - form of intrusive doubly-linked list of T. + It is derived from DictionaryBase instantiated on a memory managed form of + intrusive doubly-linked list of \<T\>. SourceFiles PtrDictionary.C @@ -73,6 +72,21 @@ public: //- Construct from Istream PtrDictionary(Istream&); + + + // Member operators + + //- Find and return entry + const T& operator[](const word& key) const + { + return *DictionaryBase<DLPtrList<T>, T>::operator[](key); + } + + //- Find and return entry + T& operator[](const word& key) + { + return *DictionaryBase<DLPtrList<T>, T>::operator[](key); + } }; diff --git a/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.C b/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.C new file mode 100644 index 0000000000000000000000000000000000000000..dae34e82fe23c8a64ddaf5872cce35a39c910e40 --- /dev/null +++ b/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.C @@ -0,0 +1,127 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "PtrListDictionary.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class T> +Foam::PtrListDictionary<T>::PtrListDictionary(const label size) +: + DictionaryBase<PtrList<T>, T>(2*size) +{ + PtrList<T>::setSize(size); +} + + +template<class T> +Foam::PtrListDictionary<T>::PtrListDictionary(const PtrListDictionary& dict) +: + DictionaryBase<PtrList<T>, T>(dict) +{} + + +template<class T> +template<class INew> +Foam::PtrListDictionary<T>::PtrListDictionary(Istream& is, const INew& iNew) +: + DictionaryBase<PtrList<T>, T>(is, iNew) +{} + + +template<class T> +Foam::PtrListDictionary<T>::PtrListDictionary(Istream& is) +: + DictionaryBase<PtrList<T>, T>(is) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class T> +inline Foam::autoPtr<T> Foam::PtrListDictionary<T>::set +( + const label i, + const word& key, + T* ptr +) +{ + if (!DictionaryBase<PtrList<T>, T>::hashedTs_.insert(key, ptr)) + { + FatalErrorIn + ( + "PtrListDictionary<T>::set(const label i, const word& key, T* ptr)" + ) << "Cannot insert with key '" << key << "' into hash-table" + << abort(FatalError); + } + return PtrList<T>::set(i, ptr); +} + + +template<class T> +inline Foam::autoPtr<T> Foam::PtrListDictionary<T>::set +( + const label i, + const word& key, + autoPtr<T>& aptr +) +{ + T* ptr = aptr.ptr(); + if (!DictionaryBase<PtrList<T>, T>::hashedTs_.insert(key, ptr)) + { + FatalErrorIn + ( + "PtrListDictionary<T>::" + "set(const label i, const word& key, autoPtr<T>& aptr)" + ) << "Cannot insert with key '" << key << "' into hash-table" + << abort(FatalError); + } + return PtrList<T>::set(i, ptr); +} + + +template<class T> +inline Foam::autoPtr<T> Foam::PtrListDictionary<T>::set +( + const label i, + const word& key, + tmp<T>& t +) +{ + T* ptr = t.ptr(); + if (!DictionaryBase<PtrList<T>, T>::hashedTs_.insert(key, ptr)) + { + FatalErrorIn + ( + "PtrListDictionary<T>::" + "set(const label i, const word& key, tmp<T>& t)" + ) << "Cannot insert with key '" << key << "' into hash-table" + << abort(FatalError); + } + return PtrList<T>::set(i, ptr); +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.H b/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.H new file mode 100644 index 0000000000000000000000000000000000000000..761bccd76e38a1ce9a2c23e2343385da0fb6a7d6 --- /dev/null +++ b/src/OpenFOAM/containers/Dictionaries/PtrListDictionary/PtrListDictionary.H @@ -0,0 +1,121 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::PtrListDictionary + +Description + Template dictionary class which manages the storage associated with it. + + It is derived from DictionaryBase instantiated on the memory managed PtrList + of \<T\> to provide ordered indexing in addition to the dictionary lookup. + +SourceFiles + PtrListDictionary.C + +\*---------------------------------------------------------------------------*/ + +#ifndef PtrListDictionary_H +#define PtrListDictionary_H + +#include "DictionaryBase.H" +#include "PtrList.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class PtrListDictionary Declaration +\*---------------------------------------------------------------------------*/ + +template<class T> +class PtrListDictionary +: + public DictionaryBase<PtrList<T>, T> +{ + +public: + + // Constructors + + //- Construct given initial list size + PtrListDictionary(const label size); + + //- Copy construct + PtrListDictionary(const PtrListDictionary&); + + //- Construct from Istream using given Istream constructor class + template<class INew> + PtrListDictionary(Istream&, const INew&); + + //- Construct from Istream + PtrListDictionary(Istream&); + + + // Member functions + + //- Set element to pointer provided and return old element + autoPtr<T> set(const label, const word& key, T*); + + //- Set element to autoPtr value provided and return old element + autoPtr<T> set(const label, const word& key, autoPtr<T>&); + + //- Set element to tmp value provided and return old element + autoPtr<T> set(const label, const word& key, tmp<T>&); + + + // Member operators + + using PtrList<T>::operator[]; + + //- Find and return entry + const T& operator[](const word& key) const + { + return *DictionaryBase<PtrList<T>, T>::operator[](key); + } + + //- Find and return entry + T& operator[](const word& key) + { + return *DictionaryBase<PtrList<T>, T>::operator[](key); + } +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "PtrListDictionary.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H index 3e4ed069c9044ee0ba244fe2a96f927a3670b2dc..e8a9ff22d4d5c7781c9fa8506b3b457fc2586895 100644 --- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H +++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -203,6 +203,7 @@ public: // and annul the argument list. void transfer(LList<LListBase, T>&); + // Member operators void operator=(const LList<LListBase, T>&); @@ -265,6 +266,16 @@ public: } }; + inline iterator begin() + { + return LListBase::begin(); + } + + inline const iterator& end() + { + return static_cast<const iterator&>(LListBase::end()); + } + // STL const_iterator @@ -313,6 +324,26 @@ public: } }; + inline const_iterator cbegin() const + { + return LListBase::cbegin(); + } + + inline const const_iterator& cend() const + { + return static_cast<const const_iterator&>(LListBase::cend()); + } + + inline const_iterator begin() const + { + return LListBase::begin(); + } + + inline const const_iterator& end() const + { + return static_cast<const const_iterator&>(LListBase::end()); + } + // IOstream operators diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILList.H index 893af0042293b2afafeb395e6b30ac7cad8c2994..b2ec4c8fca4c65b3d500e1a63325f40b94f8be91 100644 --- a/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILList.H +++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILList.H @@ -209,6 +209,16 @@ public: } }; + inline iterator begin() + { + return LListBase::begin(); + } + + inline const iterator& end() + { + return static_cast<const iterator&>(LListBase::end()); + } + // STL const_iterator @@ -256,6 +266,26 @@ public: } }; + inline const_iterator cbegin() const + { + return LListBase::cbegin(); + } + + inline const const_iterator& cend() const + { + return static_cast<const const_iterator&>(LListBase::cend()); + } + + inline const_iterator begin() const + { + return LListBase::begin(); + } + + inline const const_iterator& end() const + { + return static_cast<const const_iterator&>(LListBase::end()); + } + // STL const_reverse_iterator @@ -298,6 +328,29 @@ public: } }; + inline const_reverse_iterator crbegin() const + { + return LListBase::crbegin(); + } + + inline const const_reverse_iterator& crend() const + { + return + static_cast<const const_reverse_iterator&>(LListBase::crend()); + } + + + inline const_reverse_iterator rbegin() const + { + return LListBase::rbegin(); + } + + inline const const_reverse_iterator& rend() const + { + return + static_cast<const const_reverse_iterator&>(LListBase::rend()); + } + // STL member operators diff --git a/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H b/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H index 095e51fe1ffad1f650fd7f19a6face1b1823f40c..0e7fc75aa801de0748f307ded66b61701b1aeb00 100644 --- a/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H +++ b/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H @@ -263,6 +263,7 @@ public: inline const_iterator begin() const; inline const const_iterator& end() const; + // STL const_reverse_iterator //- An STL-conforming const_reverse_iterator @@ -300,6 +301,7 @@ public: inline const_reverse_iterator rbegin() const; inline const const_reverse_iterator& rend() const; + private: //- Iterator returned by end() @@ -310,7 +312,6 @@ private: //- const_reverse_iterator returned by end() static const_reverse_iterator endConstRevIter_; - }; diff --git a/src/OpenFOAM/containers/LinkedLists/user/DLPtrList.H b/src/OpenFOAM/containers/LinkedLists/user/DLPtrList.H index 6e83434125eef8ee768bef1af107adea43e7f893..9793d8be9f0634dfbc1d44e1873b0cd80a4efd3e 100644 --- a/src/OpenFOAM/containers/LinkedLists/user/DLPtrList.H +++ b/src/OpenFOAM/containers/LinkedLists/user/DLPtrList.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -58,12 +58,6 @@ public: DLPtrList() {} - //- Construct given initial T - DLPtrList(T a) - : - LPtrList<DLListBase, T>(a) - {} - //- Construct from Istream using given Istream constructor class template<class INew> DLPtrList(Istream& is, const INew& inewt) diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrList.H b/src/OpenFOAM/containers/Lists/PtrList/PtrList.H index 357b078dbfddf46afd6d9d3e187e63915aed5874..b3b2924d9f8becac800ae3607f24d50e66ca4784 100644 --- a/src/OpenFOAM/containers/Lists/PtrList/PtrList.H +++ b/src/OpenFOAM/containers/Lists/PtrList/PtrList.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,6 +32,7 @@ Description pointer. SourceFiles + PtrListI.H PtrList.C PtrListIO.C @@ -80,6 +81,34 @@ inline label operator- const typename PtrList<T>::iterator& ); +template<class T> +inline typename PtrList<T>::const_iterator operator+ +( + const typename PtrList<T>::const_iterator&, + label +); + +template<class T> +inline typename PtrList<T>::const_iterator operator+ +( + label, + const typename PtrList<T>::const_iterator& +); + +template<class T> +inline typename PtrList<T>::const_iterator operator- +( + const typename PtrList<T>::const_iterator&, + label +); + +template<class T> +inline label operator- +( + const typename PtrList<T>::const_iterator&, + const typename PtrList<T>::const_iterator& +); + template<class T> Istream& operator>>(Istream&, PtrList<T>&); @@ -245,7 +274,9 @@ public: // Random access iterator for traversing PtrList. class iterator; + class const_iterator; friend class iterator; + friend class const_iterator; //- An STL-conforming iterator class iterator @@ -254,6 +285,8 @@ public: public: + friend class const_iterator; + //- Construct for a given PtrList entry inline iterator(T**); @@ -303,6 +336,87 @@ public: inline iterator end(); + // STL const_iterator + // Random access iterator for traversing PtrList. + + //- An STL-conforming const_iterator + class const_iterator + { + const T* const* ptr_; + + public: + + //- Construct for a given PtrList entry + inline const_iterator(const T* const*); + + //- Construct from an iterator + inline const_iterator(const iterator&); + + + // Member operators + + inline bool operator==(const const_iterator&) const; + inline bool operator!=(const const_iterator&) const; + + typedef const T& Tref; + inline Tref operator*(); + inline Tref operator()(); + + inline const_iterator operator++(); + inline const_iterator operator++(int); + + inline const_iterator operator--(); + inline const_iterator operator--(int); + + inline const_iterator operator+=(label); + + friend const_iterator operator+ <T> + ( + const const_iterator&, + label + ); + friend const_iterator operator+ <T> + ( + label, + const const_iterator& + ); + + inline const_iterator operator-=(label); + + friend const_iterator operator- <T> + ( + const const_iterator&, + label + ); + + friend label operator- <T> + ( + const const_iterator&, + const const_iterator& + ); + + inline const T& operator[](label); + + inline bool operator<(const const_iterator&) const; + inline bool operator>(const const_iterator&) const; + + inline bool operator<=(const const_iterator&) const; + inline bool operator>=(const const_iterator&) const; + }; + + //- Return an const_iterator to begin traversing the PtrList. + inline const_iterator cbegin() const; + + //- Return an const_iterator to end traversing the PtrList. + inline const_iterator cend() const; + + //- Return an const_iterator to begin traversing the PtrList. + inline const_iterator begin() const; + + //- Return an const_iterator to end traversing the PtrList. + inline const_iterator end() const; + + // IOstream operator //- Read List from Istream, discarding contents of existing List. diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H b/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H index e6acf7fab6910de934d3587af6d825016dd4ba2a..a2970eb3614cdcf16ac0e9ffab583338908a3e5d 100644 --- a/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H +++ b/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -23,8 +23,6 @@ License \*---------------------------------------------------------------------------*/ -#include "error.H" - #include "autoPtr.H" #include "tmp.H" @@ -373,4 +371,227 @@ inline typename Foam::PtrList<T>::iterator Foam::PtrList<T>::end() } +// * * * * * * * * * * * * * * * STL const_iterator * * * * * * * * * * * * // + +template<class T> +inline Foam::PtrList<T>::const_iterator::const_iterator(const T* const* ptr) +: + ptr_(ptr) +{} + + +template<class T> +inline Foam::PtrList<T>::const_iterator::const_iterator(const iterator& iter) +: + ptr_(iter.ptr_) +{} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator== +( + const const_iterator& iter +) const +{ + return ptr_ == iter.ptr_; +} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator!= +( + const const_iterator& iter +) const +{ + return ptr_ != iter.ptr_; +} + + +template<class T> +inline const T& Foam::PtrList<T>::const_iterator::operator*() +{ + return **ptr_; +} + + +template<class T> +inline const T& Foam::PtrList<T>::const_iterator::operator()() +{ + return operator*(); +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator++() +{ + ++ptr_; + return *this; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator++(int) +{ + const_iterator tmp = *this; + ++ptr_; + return tmp; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator--() +{ + --ptr_; + return *this; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator--(int) +{ + const_iterator tmp = *this; + --ptr_; + return tmp; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator+=(label n) +{ + ptr_ += n; + return *this; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::operator+(const typename PtrList<T>::const_iterator& iter, label n) +{ + typename PtrList<T>::const_iterator tmp = iter; + return tmp += n; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::operator+(label n, const typename PtrList<T>::const_iterator& iter) +{ + typename PtrList<T>::const_iterator tmp = iter; + return tmp += n; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::const_iterator::operator-=(label n) +{ + ptr_ -= n; + return *this; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::operator-(const typename PtrList<T>::const_iterator& iter, label n) +{ + typename PtrList<T>::const_iterator tmp = iter; + return tmp -= n; +} + + +template<class T> +inline Foam::label Foam::operator- +( + const typename PtrList<T>::const_iterator& iter1, + const typename PtrList<T>::const_iterator& iter2 +) +{ + return (iter1.ptr_ - iter2.ptr_)/sizeof(T*); +} + + +template<class T> +inline const T& Foam::PtrList<T>::const_iterator::operator[](label n) +{ + return *(*this + n); +} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator< +( + const const_iterator& iter +) const +{ + return ptr_ < iter.ptr_; +} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator> +( + const const_iterator& iter +) const +{ + return ptr_ > iter.ptr_; +} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator<= +( + const const_iterator& iter +) const +{ + return ptr_ <= iter.ptr_; +} + + +template<class T> +inline bool Foam::PtrList<T>::const_iterator::operator>= +( + const const_iterator& iter +) const +{ + return ptr_ >= iter.ptr_; +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::begin() const +{ + return ptrs_.begin(); +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::end() const +{ + return ptrs_.end(); +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::cbegin() const +{ + return ptrs_.begin(); +} + + +template<class T> +inline typename Foam::PtrList<T>::const_iterator +Foam::PtrList<T>::cend() const +{ + return ptrs_.end(); +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C index b9ed09ae800bd110ac93cfb7ebe129cb88971d10..fdb38737a5b41d49034de20240d912e18efdaf3b 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C @@ -178,8 +178,8 @@ Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrDefault ( const word& name, const dictionary& dict, - const Type& defaultValue, - const dimensionSet& dims + const dimensionSet& dims, + const Type& defaultValue ) { if (dict.found(name)) @@ -193,13 +193,25 @@ Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrDefault } +template<class Type> +Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrDefault +( + const word& name, + const dictionary& dict, + const Type& defaultValue +) +{ + return lookupOrDefault(name, dict, dimless, defaultValue); +} + + template<class Type> Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrAddToDict ( const word& name, dictionary& dict, - const Type& defaultValue, - const dimensionSet& dims + const dimensionSet& dims, + const Type& defaultValue ) { Type value = dict.lookupOrAddDefault<Type>(name, defaultValue); @@ -207,6 +219,18 @@ Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrAddToDict } +template<class Type> +Foam::dimensioned<Type> Foam::dimensioned<Type>::lookupOrAddToDict +( + const word& name, + dictionary& dict, + const Type& defaultValue +) +{ + return lookupOrAddToDict(name, dict, dimless, defaultValue); +} + + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H index bb7f632918f1911673c9259514f865ebd52a857b..40baca77f6ae2efee6a2f5e604d0aa99c8f3c67b 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H +++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H @@ -123,13 +123,21 @@ public: // Static member functions - //- Construct from dictionary, with default value. + //- Construct from dictionary, with default dimensions and value. + static dimensioned<Type> lookupOrDefault + ( + const word&, + const dictionary&, + const dimensionSet& dims = dimless, + const Type& defaultValue = pTraits<Type>::zero + ); + + //- Construct from dictionary dimensionless with value. static dimensioned<Type> lookupOrDefault ( const word&, const dictionary&, - const Type& defaultValue = pTraits<Type>::zero, - const dimensionSet& dims = dimless + const Type& defaultValue = pTraits<Type>::zero ); //- Construct from dictionary, with default value. @@ -138,8 +146,17 @@ public: ( const word&, dictionary&, - const Type& defaultValue = pTraits<Type>::zero, - const dimensionSet& dims = dimless + const dimensionSet& dims = dimless, + const Type& defaultValue = pTraits<Type>::zero + ); + + //- Construct from dictionary, dimensionless with default value. + // If the value is not found, it is added into the dictionary. + static dimensioned<Type> lookupOrAddToDict + ( + const word&, + dictionary&, + const Type& defaultValue = pTraits<Type>::zero ); diff --git a/src/OpenFOAM/meshes/meshShapes/face/face.C b/src/OpenFOAM/meshes/meshShapes/face/face.C index e7b8c5e3e92dd99f68e1ac91455aa5817a2ef974..30847ce3ca6066fdb191500e3ed2aa44bb309d6a 100644 --- a/src/OpenFOAM/meshes/meshShapes/face/face.C +++ b/src/OpenFOAM/meshes/meshShapes/face/face.C @@ -427,18 +427,22 @@ bool Foam::face::sameVertices(const face& a, const face& b) forAll(a, i) { - bool found = false; + // Count occurrences of a[i] in a + label aOcc = 0; + forAll(a, j) + { + if (a[i] == a[j]) aOcc++; + } + // Count occurrences of a[i] in b + label bOcc = 0; forAll(b, j) { - if (a[i] == b[j]) - { - found = true; - break; - } + if (a[i] == b[j]) bOcc++; } - if (!found) return false; + // Check if occurrences of a[i] in a and b are the same + if (aOcc != bOcc) return false; } return true; diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C index 2739e828b349f34986ea6028e57f2967de45f885..b36a0e9579c79c87147fe7cd047b35dd3208ee1f 100644 --- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C +++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -2746,22 +2746,44 @@ void Foam::globalMeshData::updateMesh() Pout<< "globalMeshData : merge dist:" << tolDim << endl; } + // *** Temporary hack to avoid problems with overlapping communication + // *** between these reductions and the calculation of deltaCoeffs + label comm = UPstream::worldComm + 1; + // Total number of faces. - nTotalFaces_ = returnReduce(mesh_.nFaces(), sumOp<label>()); + nTotalFaces_ = returnReduce + ( + mesh_.nFaces(), + sumOp<label>(), + Pstream::msgType(), + comm + ); if (debug) { Pout<< "globalMeshData : nTotalFaces_:" << nTotalFaces_ << endl; } - nTotalCells_ = returnReduce(mesh_.nCells(), sumOp<label>()); + nTotalCells_ = returnReduce + ( + mesh_.nCells(), + sumOp<label>(), + Pstream::msgType(), + comm + ); if (debug) { Pout<< "globalMeshData : nTotalCells_:" << nTotalCells_ << endl; } - nTotalPoints_ = returnReduce(mesh_.nPoints(), sumOp<label>()); + nTotalPoints_ = returnReduce + ( + mesh_.nPoints(), + sumOp<label>(), + Pstream::msgType(), + comm + ); if (debug) { diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C index 9a3e69faf5740036417922052c2f9a4b1509fbf5..62c1877fc16c8575520f6d7c3b3b2eb810db4ffc 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C @@ -328,9 +328,7 @@ void Foam::polyMesh::setTopology const label cellInside = curPatchFaceCells[faceI]; - faces_[nFaces] = curFace; - - // get faces of the cell inside + // Get faces of the cell inside const faceList& facesOfCellInside = cellsFaceShapes[cellInside]; bool found = false; @@ -366,6 +364,9 @@ void Foam::polyMesh::setTopology found = true; + // Set the patch face to corresponding cell-face + faces_[nFaces] = facesOfCellInside[cellFaceI]; + cells[cellInside][cellFaceI] = nFaces; break; diff --git a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H index 2498f5f9cc84bfdc6fd781fbe7182a3d539ca0b6..308994785302345d82895c6b5798bc44bfa7dd8a 100644 --- a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H +++ b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H @@ -55,6 +55,7 @@ static const doubleScalar doubleScalarGREAT = 1.0e+15; static const doubleScalar doubleScalarVGREAT = 1.0e+300; static const doubleScalar doubleScalarROOTVGREAT = 1.0e+150; static const doubleScalar doubleScalarSMALL = 1.0e-15; +static const doubleScalar doubleScalarROOTSMALL = 3.0e-8; static const doubleScalar doubleScalarVSMALL = 1.0e-300; static const doubleScalar doubleScalarROOTVSMALL = 1.0e-150; diff --git a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H index 31ae9891dd0a50d1811a8de12cadf95c847d80db..1cfb728a235d2b925ada448541415fea2e576588 100644 --- a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H +++ b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H @@ -55,6 +55,7 @@ static const floatScalar floatScalarGREAT = 1.0e+6; static const floatScalar floatScalarVGREAT = 1.0e+37; static const floatScalar floatScalarROOTVGREAT = 1.0e+18; static const floatScalar floatScalarSMALL = 1.0e-6; +static const floatScalar floatScalarROOTSMALL = 1.0e-3; static const floatScalar floatScalarVSMALL = 1.0e-37; static const floatScalar floatScalarROOTVSMALL = 1.0e-18; diff --git a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H index cb5496a65ed813e2596d00670e26ecc891f37b75..f4a4a0f63ba27fc969d3c6e09dcf4ed85d8db4d7 100644 --- a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H +++ b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -53,6 +53,7 @@ namespace Foam static const scalar VGREAT = floatScalarVGREAT; static const scalar ROOTVGREAT = floatScalarROOTVGREAT; static const scalar SMALL = floatScalarSMALL; + static const scalar ROOTSMALL = floatScalarROOTSMALL; static const scalar VSMALL = floatScalarVSMALL; static const scalar ROOTVSMALL = floatScalarROOTVSMALL; @@ -71,6 +72,7 @@ namespace Foam static const scalar VGREAT = doubleScalarVGREAT; static const scalar ROOTVGREAT = doubleScalarROOTVGREAT; static const scalar SMALL = doubleScalarSMALL; + static const scalar ROOTSMALL = doubleScalarROOTSMALL; static const scalar VSMALL = doubleScalarVSMALL; static const scalar ROOTVSMALL = doubleScalarROOTVSMALL; diff --git a/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSV.H b/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSV.H index 5969339d67ff5afd3480476a7ef10cce3f186311..1d0b0620e906006e0a33208ca14c07223b6fc9e0 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSV.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSV.H @@ -32,7 +32,7 @@ Description <entryName> csvFile; <entryName>Coeffs { - nHeaderLine 4; + nHeaderLine 4; // number of header lines refColumn 0; // reference column index componentColumns (1 2 3); // component column indices separator ","; // optional (defaults to ",") diff --git a/src/OpenFOAM/primitives/ints/int32/int32.H b/src/OpenFOAM/primitives/ints/int32/int32.H index 2bf5e799d2596050e32cd353bd8e6e282db25923..694bfb57f74ae6db62689479ef7ca5c196f18717 100644 --- a/src/OpenFOAM/primitives/ints/int32/int32.H +++ b/src/OpenFOAM/primitives/ints/int32/int32.H @@ -136,6 +136,12 @@ public: }; +inline int32_t mag(const int32_t l) +{ + return ::abs(l); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/OpenFOAM/primitives/ints/int64/int64.H b/src/OpenFOAM/primitives/ints/int64/int64.H index 3169232a40d3e4ff4666abd50f9632a4ab23a4a1..38cd1057860e0788653b17a94f591e8f9744be10 100644 --- a/src/OpenFOAM/primitives/ints/int64/int64.H +++ b/src/OpenFOAM/primitives/ints/int64/int64.H @@ -127,6 +127,12 @@ public: }; +inline int64_t mag(const int64_t l) +{ + return ::labs(l); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/OpenFOAM/primitives/ints/label/labelSpecific.H b/src/OpenFOAM/primitives/ints/label/labelSpecific.H index 21e5c7aec24bcb2098a8ba95fdbaf751bde77f33..66fa99d0ccc9a673292b92f0466b3eee82506501 100644 --- a/src/OpenFOAM/primitives/ints/label/labelSpecific.H +++ b/src/OpenFOAM/primitives/ints/label/labelSpecific.H @@ -36,15 +36,6 @@ namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -inline label mag(const label l) -{ - #if WM_LABEL_SIZE == 32 - return ::abs(l); - #elif WM_LABEL_SIZE == 64 - return ::labs(l); - #endif -} - inline label sign(const label s) { return (s >= 0)? 1: -1; diff --git a/src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.C b/src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.C similarity index 71% rename from src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.C rename to src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.C index fc73f457e8134d2cea169a230753710743901121..1647c88ca8239fd0e909ac8a17be15926cedb6bd 100644 --- a/src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.C +++ b/src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.C @@ -23,13 +23,21 @@ License \*---------------------------------------------------------------------------*/ -#include "eddyDiffusivity.H" +#include "EddyDiffusivity.H" // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // template<class BasicTurbulenceModel> -void Foam::eddyDiffusivity<BasicTurbulenceModel>::correctNut() +void Foam::EddyDiffusivity<BasicTurbulenceModel>::correctNut() { + // Read Prt if provided + Prt_ = dimensioned<scalar>::lookupOrDefault + ( + "Prt", + this->coeffDict(), + 1.0 + ); + alphat_ = this->rho_*this->nut()/Prt_; alphat_.correctBoundaryConditions(); } @@ -38,10 +46,10 @@ void Foam::eddyDiffusivity<BasicTurbulenceModel>::correctNut() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class BasicTurbulenceModel> -Foam::eddyDiffusivity<BasicTurbulenceModel>::eddyDiffusivity +Foam::EddyDiffusivity<BasicTurbulenceModel>::EddyDiffusivity ( const word& type, - const geometricOneField& alpha, + const alphaField& alpha, const volScalarField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, @@ -62,23 +70,14 @@ Foam::eddyDiffusivity<BasicTurbulenceModel>::eddyDiffusivity propertiesName ), - // Prt_ - // ( - // dimensioned<scalar>::lookupOrAddToDict - // ( - // "Prt", - // this->coeffDict_, - // 1.0 - // ) - // ), - + // Cannot read Prt yet Prt_("Prt", dimless, 1.0), alphat_ ( IOobject ( - "alphat", + IOobject::groupName("alphat", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, @@ -89,38 +88,10 @@ Foam::eddyDiffusivity<BasicTurbulenceModel>::eddyDiffusivity {} -// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * // - -template<class BasicTurbulenceModel> -Foam::autoPtr<Foam::eddyDiffusivity<BasicTurbulenceModel> > -Foam::eddyDiffusivity<BasicTurbulenceModel>::New -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const transportModel& transport, - const word& propertiesName -) -{ - return autoPtr<eddyDiffusivity> - ( - static_cast<eddyDiffusivity*>( - BasicTurbulenceModel::New - ( - rho, - U, - phi, - transport, - propertiesName - ).ptr()) - ); -} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class BasicTurbulenceModel> -bool Foam::eddyDiffusivity<BasicTurbulenceModel>::read() +bool Foam::EddyDiffusivity<BasicTurbulenceModel>::read() { if (BasicTurbulenceModel::read()) { @@ -135,4 +106,11 @@ bool Foam::eddyDiffusivity<BasicTurbulenceModel>::read() } +template<class BasicTurbulenceModel> +void Foam::EddyDiffusivity<BasicTurbulenceModel>::correctEnergyTransport() +{ + EddyDiffusivity<BasicTurbulenceModel>::correctNut(); +} + + // ************************************************************************* // diff --git a/src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.H b/src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.H similarity index 85% rename from src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.H rename to src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.H index 0913da84649c6ecbe0491ca71a77fb9df5b65482..82ba1221d91f90deff988277d4d4fd1fd535723c 100644 --- a/src/TurbulenceModels/compressible/eddyDiffusivity/eddyDiffusivity.H +++ b/src/TurbulenceModels/compressible/EddyDiffusivity/EddyDiffusivity.H @@ -22,21 +22,19 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::eddyDiffusivity + Foam::EddyDiffusivity Description Templated abstract base class for single-phase compressible turbulence models. SourceFiles - eddyDiffusivity.C + EddyDiffusivity.C \*---------------------------------------------------------------------------*/ -#ifndef eddyDiffusivity_H -#define eddyDiffusivity_H - -#include "CompressibleTurbulenceModel.H" +#ifndef EddyDiffusivity_H +#define EddyDiffusivity_H // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,11 +42,11 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class eddyDiffusivity Declaration + Class EddyDiffusivity Declaration \*---------------------------------------------------------------------------*/ template<class BasicTurbulenceModel> -class eddyDiffusivity +class EddyDiffusivity : public BasicTurbulenceModel { @@ -81,10 +79,10 @@ public: // Constructors //- Construct - eddyDiffusivity + EddyDiffusivity ( const word& type, - const geometricOneField& alpha, + const alphaField& alpha, const volScalarField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, @@ -94,21 +92,8 @@ public: ); - // Selectors - - //- Return a reference to the selected turbulence model - static autoPtr<eddyDiffusivity> New - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const transportModel& trasportModel, - const word& propertiesName = turbulenceModel::propertiesName - ); - - //- Destructor - virtual ~eddyDiffusivity() + virtual ~EddyDiffusivity() {} @@ -157,6 +142,9 @@ public: { return this->transport_.alphaEff(alphat(patchi), patchi); } + + //- Correct the turbulence thermal diffusivity for energy transport + virtual void correctEnergyTransport(); }; @@ -167,7 +155,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "eddyDiffusivity.C" +# include "EddyDiffusivity.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files index 2f6e9f1dd3571823ef23f012b6b18d42c22daf13..c4aab942510cd628afd489cab84fe998245e32d0 100644 --- a/src/TurbulenceModels/compressible/Make/files +++ b/src/TurbulenceModels/compressible/Make/files @@ -15,5 +15,6 @@ $(BCs)/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C +turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.C LIB = $(FOAM_LIBBIN)/libcompressibleTurbulenceModels diff --git a/src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.C b/src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.C similarity index 70% rename from src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.C rename to src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.C index 5b25fe8d8e63366d7233af15438efc66379c7183..4a85a59d074422c300e3389db6a4211aebc82ae3 100644 --- a/src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.C +++ b/src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.C @@ -23,15 +23,15 @@ License \*---------------------------------------------------------------------------*/ -#include "thermalDiffusivity.H" +#include "ThermalDiffusivity.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -template<class TransportModel> -Foam::thermalDiffusivity<TransportModel>::thermalDiffusivity +template<class BasicTurbulenceModel> +Foam::ThermalDiffusivity<BasicTurbulenceModel>::ThermalDiffusivity ( const word& type, - const geometricOneField& alpha, + const alphaField& alpha, const volScalarField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, @@ -40,7 +40,7 @@ Foam::thermalDiffusivity<TransportModel>::thermalDiffusivity const word& propertiesName ) : - CompressibleTurbulenceModel<TransportModel> + BasicTurbulenceModel ( type, alpha, @@ -56,9 +56,37 @@ Foam::thermalDiffusivity<TransportModel>::thermalDiffusivity // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * // -template<class TransportModel> -Foam::autoPtr<Foam::thermalDiffusivity<TransportModel> > -Foam::thermalDiffusivity<TransportModel>::New +template<class BasicTurbulenceModel> +Foam::autoPtr<Foam::ThermalDiffusivity<BasicTurbulenceModel> > +Foam::ThermalDiffusivity<BasicTurbulenceModel>::New +( + const alphaField& alpha, + const volScalarField& rho, + const volVectorField& U, + const surfaceScalarField& phi, + const transportModel& transport, + const word& propertiesName +) +{ + return autoPtr<ThermalDiffusivity> + ( + static_cast<ThermalDiffusivity*>( + BasicTurbulenceModel::New + ( + alpha, + rho, + U, + phi, + transport, + propertiesName + ).ptr()) + ); +} + + +template<class BasicTurbulenceModel> +Foam::autoPtr<Foam::ThermalDiffusivity<BasicTurbulenceModel> > +Foam::ThermalDiffusivity<BasicTurbulenceModel>::New ( const volScalarField& rho, const volVectorField& U, @@ -67,10 +95,10 @@ Foam::thermalDiffusivity<TransportModel>::New const word& propertiesName ) { - return autoPtr<thermalDiffusivity> + return autoPtr<ThermalDiffusivity> ( - static_cast<thermalDiffusivity*>( - CompressibleTurbulenceModel<transportModel>::New + static_cast<ThermalDiffusivity*>( + BasicTurbulenceModel::New ( rho, U, @@ -86,7 +114,7 @@ Foam::thermalDiffusivity<TransportModel>::New template<class BasicTurbulenceModel> Foam::tmp<Foam::volScalarField> -Foam::thermalDiffusivity<BasicTurbulenceModel>::alphat() const +Foam::ThermalDiffusivity<BasicTurbulenceModel>::alphat() const { return tmp<volScalarField> ( @@ -109,7 +137,7 @@ Foam::thermalDiffusivity<BasicTurbulenceModel>::alphat() const template<class BasicTurbulenceModel> Foam::tmp<Foam::scalarField> -Foam::thermalDiffusivity<BasicTurbulenceModel>::alphat +Foam::ThermalDiffusivity<BasicTurbulenceModel>::alphat ( const label patchi ) const diff --git a/src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.H b/src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.H similarity index 80% rename from src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.H rename to src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.H index b62cfa2e95ec435399aa6ef0acf90a14dc620cf0..2066e44a1daf176f4e74a088359358f4636bee30 100644 --- a/src/TurbulenceModels/compressible/thermalDiffusivity/thermalDiffusivity.H +++ b/src/TurbulenceModels/compressible/ThermalDiffusivity/ThermalDiffusivity.H @@ -22,21 +22,19 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::thermalDiffusivity + Foam::ThermalDiffusivity Description - Templated abstract base class for single-phase compressible - turbulence models. + Templated wrapper class to provide compressible turbulence models + thermal diffusivity based thermal transport. SourceFiles - thermalDiffusivity.C + ThermalDiffusivity.C \*---------------------------------------------------------------------------*/ -#ifndef thermalDiffusivity_H -#define thermalDiffusivity_H - -#include "CompressibleTurbulenceModel.H" +#ifndef ThermalDiffusivity_H +#define ThermalDiffusivity_H // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,29 +42,29 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class thermalDiffusivity Declaration + Class ThermalDiffusivity Declaration \*---------------------------------------------------------------------------*/ -template<class TransportModel> -class thermalDiffusivity +template<class BasicTurbulenceModel> +class ThermalDiffusivity : - public CompressibleTurbulenceModel<TransportModel> + public BasicTurbulenceModel { public: - typedef geometricOneField alphaField; + typedef typename BasicTurbulenceModel::alphaField alphaField; typedef volScalarField rhoField; - typedef TransportModel transportModel; + typedef typename BasicTurbulenceModel::transportModel transportModel; // Constructors //- Construct - thermalDiffusivity + ThermalDiffusivity ( const word& type, - const geometricOneField& alpha, + const alphaField& alpha, const volScalarField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, @@ -79,7 +77,19 @@ public: // Selectors //- Return a reference to the selected turbulence model - static autoPtr<thermalDiffusivity> New + static autoPtr<ThermalDiffusivity> New + ( + const alphaField& alpha, + const volScalarField& rho, + const volVectorField& U, + const surfaceScalarField& phi, + const transportModel& trasportModel, + const word& propertiesName = turbulenceModel::propertiesName + ); + + + //- Return a reference to the selected turbulence model + static autoPtr<ThermalDiffusivity> New ( const volScalarField& rho, const volVectorField& U, @@ -90,7 +100,7 @@ public: //- Destructor - virtual ~thermalDiffusivity() + virtual ~ThermalDiffusivity() {} @@ -166,7 +176,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "thermalDiffusivity.C" +# include "ThermalDiffusivity.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.C b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.C index 1fbebad3eea3df415f03951439da42b7f7734ae8..ae0462081a010ed28e1c8f52ac5587872626bc93 100644 --- a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.C +++ b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -73,4 +73,8 @@ Foam::compressibleTurbulenceModel::phi() const } +void Foam::compressibleTurbulenceModel::correctEnergyTransport() +{} + + // ************************************************************************* // diff --git a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H index 8ecf2f51fff73a40c8e106183ad1e0a42c086a1b..a952fbeadc846ed1603de09f06af2da38a39364e 100644 --- a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H +++ b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H @@ -120,6 +120,9 @@ public: //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const = 0; + + //- Correct the turbulence thermal diffusivity for energy transport + virtual void correctEnergyTransport(); }; diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C index 02e87c7a776e08424112330dc5db2a793334a28c..8ace068f487521f17f25fb5ba8d32b8fd30bc4e7 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C @@ -110,14 +110,15 @@ void convectiveHeatTransferFvPatchScalarField::updateCoeffs() const label patchi = patch().index(); - const turbulenceModel& turbModel = db().lookupObject<turbulenceModel> - ( - IOobject::groupName + const compressible::turbulenceModel& turbModel = + db().lookupObject<compressible::turbulenceModel> ( - turbulenceModel::propertiesName, - dimensionedInternalField().group() - ) - ); + IOobject::groupName + ( + compressible::turbulenceModel::propertiesName, + dimensionedInternalField().group() + ) + ); const scalarField alphaEffw(turbModel.alphaEff(patchi)); diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C index 646fbed6620ef1eaac5cde7bd8dc0a730e5e2621..d3d5116348a1b46d51ab227379794b508dae23dc 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C @@ -32,6 +32,7 @@ License #include "turbulentFluidThermoModel.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + Foam::totalFlowRateAdvectiveDiffusiveFvPatchScalarField:: totalFlowRateAdvectiveDiffusiveFvPatchScalarField ( @@ -153,11 +154,12 @@ void Foam::totalFlowRateAdvectiveDiffusiveFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const LESModel<eddyDiffusivity<compressible::turbulenceModel> >& turbModel = - db().lookupObject - < - LESModel<eddyDiffusivity<compressible::turbulenceModel> > - > ( + const LESModel<EddyDiffusivity<compressible::turbulenceModel> >& turbModel = + db().lookupObject + < + LESModel<EddyDiffusivity<compressible::turbulenceModel> > + > + ( IOobject::groupName ( turbulenceModel::propertiesName, diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C index 98a5a05f5e75c94032da7d005f00f69c67dba5ae..7a9983fc20f987f6cff4b507d75bfcbe5f4b142e 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C @@ -200,15 +200,15 @@ void alphatJayatillekeWallFunctionFvPatchScalarField::updateCoeffs() const label patchi = patch().index(); // Retrieve turbulence properties from model - - const turbulenceModel& turbModel = db().lookupObject<turbulenceModel> - ( - IOobject::groupName + const compressible::turbulenceModel& turbModel = + db().lookupObject<compressible::turbulenceModel> ( - turbulenceModel::propertiesName, - dimensionedInternalField().group() - ) - ); + IOobject::groupName + ( + compressible::turbulenceModel::propertiesName, + dimensionedInternalField().group() + ) + ); const scalar Cmu25 = pow025(Cmu_); diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.C new file mode 100644 index 0000000000000000000000000000000000000000..0eb70aabbc5d313c898030ead2d7ed0d4203e51f --- /dev/null +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.C @@ -0,0 +1,127 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "alphatPhaseChangeWallFunctionFvPatchScalarField.H" +#include "fvPatchFieldMapper.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace compressible +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(alphatPhaseChangeWallFunctionFvPatchScalarField,0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +alphatPhaseChangeWallFunctionFvPatchScalarField:: +alphatPhaseChangeWallFunctionFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF +) +: + fixedValueFvPatchScalarField(p, iF), + dmdt_(p.size(), 0.0) +{} + + +alphatPhaseChangeWallFunctionFvPatchScalarField:: +alphatPhaseChangeWallFunctionFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const dictionary& dict +) +: + fixedValueFvPatchScalarField(p, iF, dict), + dmdt_(p.size(), 0.0) +{ + if (dict.found("dmdt")) + { + dmdt_ = scalarField("dmdt", dict, p.size()); + } +} + + +alphatPhaseChangeWallFunctionFvPatchScalarField:: +alphatPhaseChangeWallFunctionFvPatchScalarField +( + const alphatPhaseChangeWallFunctionFvPatchScalarField& ptf, + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + fixedValueFvPatchScalarField(ptf, p, iF, mapper), + dmdt_(ptf.dmdt_, mapper) +{} + + +alphatPhaseChangeWallFunctionFvPatchScalarField:: +alphatPhaseChangeWallFunctionFvPatchScalarField +( + const alphatPhaseChangeWallFunctionFvPatchScalarField& awfpsf +) +: + fixedValueFvPatchScalarField(awfpsf), + dmdt_(awfpsf.dmdt_) +{} + + +alphatPhaseChangeWallFunctionFvPatchScalarField:: +alphatPhaseChangeWallFunctionFvPatchScalarField +( + const alphatPhaseChangeWallFunctionFvPatchScalarField& awfpsf, + const DimensionedField<scalar, volMesh>& iF +) +: + fixedValueFvPatchScalarField(awfpsf, iF), + dmdt_(awfpsf.dmdt_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void alphatPhaseChangeWallFunctionFvPatchScalarField::write(Ostream& os) const +{ + fvPatchField<scalar>::write(os); + dmdt_.writeEntry("dmdt", os); + writeEntry("value", os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace compressible +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.H new file mode 100644 index 0000000000000000000000000000000000000000..4d1dd4f15b76c7ae8bdb7d60df7b24cbeb438efa --- /dev/null +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatPhaseChangeWallFunction/alphatPhaseChangeWallFunctionFvPatchScalarField.H @@ -0,0 +1,147 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::compressible::alphatPhaseChangeWallFunctionFvPatchScalarField + +Group + grpCmpWallFunctions + +Description + Abstract base-class for all alphatWallFunctions supporting phase-change. + +SeeAlso + Foam::alphatWallFunction + +SourceFiles + alphatPhaseChangeWallFunctionFvPatchScalarField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef compressibleAlphatPhaseChangeWallFunctionFvPatchScalarField_H +#define compressibleAlphatPhaseChangeWallFunctionFvPatchScalarField_H + +#include "fixedValueFvPatchFields.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace compressible +{ + +/*---------------------------------------------------------------------------*\ + Class alphatPhaseChangeWallFunctionFvPatchScalarField Declaration +\*---------------------------------------------------------------------------*/ + +class alphatPhaseChangeWallFunctionFvPatchScalarField +: + public fixedValueFvPatchScalarField +{ +protected: + + // Protected data + + //- Rate of phase-change + scalarField dmdt_; + + +public: + + //- Runtime type information + TypeName("compressible::alphatPhaseChangeWallFunction"); + + + // Constructors + + //- Construct from patch and internal field + alphatPhaseChangeWallFunctionFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + alphatPhaseChangeWallFunctionFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given + // alphatPhaseChangeWallFunctionFvPatchScalarField + // onto a new patch + alphatPhaseChangeWallFunctionFvPatchScalarField + ( + const alphatPhaseChangeWallFunctionFvPatchScalarField&, + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct as copy + alphatPhaseChangeWallFunctionFvPatchScalarField + ( + const alphatPhaseChangeWallFunctionFvPatchScalarField& + ); + + //- Construct as copy setting internal field reference + alphatPhaseChangeWallFunctionFvPatchScalarField + ( + const alphatPhaseChangeWallFunctionFvPatchScalarField&, + const DimensionedField<scalar, volMesh>& + ); + + + // Member functions + + //- Return the rate of phase-change + const scalarField& dmdt() const + { + return dmdt_; + } + + // Evaluation functions + + //- Update the coefficients associated with the patch field + virtual void updateCoeffs() = 0; + + + // I-O + + //- Write + virtual void write(Ostream&) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace compressible +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C index 90d2236005691bcda5e309cc602d7b304826703c..ece3ac9e36dd897524af892cd6dc08360ccd3a78 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C @@ -24,6 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "alphatWallFunctionFvPatchScalarField.H" +#include "compressibleTurbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -44,8 +45,6 @@ alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF), - rhoName_("rho"), - nutName_("nut"), Prt_(0.85) {} @@ -59,8 +58,6 @@ alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(ptf, p, iF, mapper), - rhoName_(ptf.rhoName_), - nutName_(ptf.nutName_), Prt_(ptf.Prt_) {} @@ -73,8 +70,6 @@ alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF, dict), - rhoName_(dict.lookupOrDefault<word>("rho", "rho")), - nutName_(dict.lookupOrDefault<word>("nut", "nut")), Prt_(dict.lookupOrDefault<scalar>("Prt", 0.85)) {} @@ -85,8 +80,6 @@ alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(awfpsf), - rhoName_(awfpsf.rhoName_), - nutName_(awfpsf.nutName_), Prt_(awfpsf.Prt_) {} @@ -98,8 +91,6 @@ alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(awfpsf, iF), - rhoName_(awfpsf.rhoName_), - nutName_(awfpsf.nutName_), Prt_(awfpsf.Prt_) {} @@ -113,13 +104,23 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs() return; } - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>(rhoName_); + const label patchi = patch().index(); - const scalarField& nutw = - patch().lookupPatchField<volScalarField, scalar>(nutName_); + // Retrieve turbulence properties from model + const compressibleTurbulenceModel& turbModel = + db().lookupObject<compressibleTurbulenceModel> + ( + IOobject::groupName + ( + compressibleTurbulenceModel::propertiesName, + dimensionedInternalField().group() + ) + ); - operator==(rhow*nutw/Prt_); + const scalarField& rhow = turbModel.rho().boundaryField()[patchi]; + const tmp<scalarField> tnutw = turbModel.nut(patchi); + + operator==(rhow*tnutw/Prt_); fixedValueFvPatchScalarField::updateCoeffs(); } @@ -128,8 +129,6 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs() void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const { fvPatchField<scalar>::write(os); - writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_); - writeEntryIfDifferent<word>(os, "nut", "nut", nutName_); os.writeKeyword("Prt") << Prt_ << token::END_STATEMENT << nl; writeEntry("value", os); } diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H index f44ee6b8cf13c048843de3e88f813883a16334a9..308128ecce8a13f67e86cf8eedc2132824c73200 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H @@ -95,12 +95,6 @@ class alphatWallFunctionFvPatchScalarField { // Private data - //- Name of density field (default = rho) - word rhoName_; - - //- Name of turbulent viscosity field (default = nut) - word nutName_; - //- Turbulent Prandtl number (default = 0.85) scalar Prt_; diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H index 12839d7c6bc849b743d94b494b3c90bc89da0c4d..2bf0664c1631acd35c2f7fb4bdeca6b4805dccea 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H @@ -23,7 +23,8 @@ License \*---------------------------------------------------------------------------*/ -#define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport) \ +#define makeBaseTurbulenceModel( \ + Alpha, Rho, baseModel, BaseModel, TDModel, Transport) \ \ namespace Foam \ { \ @@ -41,7 +42,8 @@ License dictionary \ ); \ \ - typedef BaseModel<Transport> Transport##BaseModel; \ + typedef TDModel<BaseModel<Transport> > \ + Transport##BaseModel; \ \ \ typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel; \ @@ -56,7 +58,7 @@ License ); \ \ \ - typedef RASModel<eddyDiffusivity<Transport##BaseModel> > \ + typedef RASModel<EddyDiffusivity<Transport##BaseModel> > \ RAS##Transport##BaseModel; \ \ defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \ @@ -72,7 +74,7 @@ License ); \ \ \ - typedef LESModel<eddyDiffusivity<Transport##BaseModel> > \ + typedef LESModel<EddyDiffusivity<Transport##BaseModel> > \ LES##Transport##BaseModel; \ \ defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \ @@ -90,7 +92,7 @@ License #define makeTemplatedTurbulenceModel(BaseModel, SType, Type) \ - typedef Foam::SType##Models::Type<Foam::eddyDiffusivity<Foam::BaseModel> > \ + typedef Foam::SType##Models::Type<Foam::EddyDiffusivity<Foam::BaseModel> > \ Type##SType##BaseModel; \ defineNamedTemplateTypeNameAndDebug(Type##SType##BaseModel, 0); \ \ @@ -98,7 +100,7 @@ License { \ namespace SType##Models \ { \ - typedef Type<eddyDiffusivity<BaseModel> > Type##SType##BaseModel; \ + typedef Type<EddyDiffusivity<BaseModel> > Type##SType##BaseModel; \ \ addToRunTimeSelectionTable \ ( \ diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H index 7725dee9717de05d7a2a9bacfa98d1a09a542d12..da111a9907013ea200c2b754901c978bae5a5499 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H @@ -43,8 +43,8 @@ SourceFiles #define turbulentFluidThermoModel_H #include "SpecificCompressibleTurbulenceModel.H" -#include "thermalDiffusivity.H" -#include "eddyDiffusivity.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "RASModel.H" #include "LESModel.H" #include "fluidThermo.H" @@ -55,16 +55,17 @@ namespace Foam { namespace compressible { - typedef thermalDiffusivity<fluidThermo> turbulenceModel; + typedef ThermalDiffusivity<CompressibleTurbulenceModel<fluidThermo> > + turbulenceModel; typedef SpecificCompressibleTurbulenceModel < - RASModel<eddyDiffusivity<turbulenceModel> > + RASModel<EddyDiffusivity<turbulenceModel> > > RASModel; typedef SpecificCompressibleTurbulenceModel < - LESModel<eddyDiffusivity<turbulenceModel> > + LESModel<EddyDiffusivity<turbulenceModel> > > LESModel; } } diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C index ec6a3eb4dbcafeb7027dc320e6c2093a396a2c21..db2d4140700320b205c91b2c77a538a17314b15d 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C @@ -23,13 +23,14 @@ License \*---------------------------------------------------------------------------*/ +#include "CompressibleTurbulenceModel.H" #include "compressibleTransportModel.H" #include "fluidThermo.H" #include "addToRunTimeSelectionTable.H" #include "makeTurbulenceModel.H" -#include "thermalDiffusivity.H" -#include "eddyDiffusivity.H" +#include "ThermalDiffusivity.H" +#include "EddyDiffusivity.H" #include "laminar.H" #include "RASModel.H" @@ -42,17 +43,18 @@ makeBaseTurbulenceModel geometricOneField, volScalarField, compressibleTurbulenceModel, - thermalDiffusivity, + CompressibleTurbulenceModel, + ThermalDiffusivity, fluidThermo ); #define makeRASModel(Type) \ makeTemplatedTurbulenceModel \ - (fluidThermothermalDiffusivity, RAS, Type) + (fluidThermoCompressibleTurbulenceModel, RAS, Type) #define makeLESModel(Type) \ makeTemplatedTurbulenceModel \ - (fluidThermothermalDiffusivity, LES, Type) + (fluidThermoCompressibleTurbulenceModel, LES, Type) // -------------------------------------------------------------------------- // diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C index 48c4cc0bd97894cabd780e3b33cead75a43b26f7..9955478f419b2bbc6c11978a01e808eb4ebda1df 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C +++ b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C @@ -75,8 +75,8 @@ Foam::LESModel<BasicTurbulenceModel>::LESModel ( "kMin", LESDict_, - SMALL, - sqr(dimVelocity) + sqr(dimVelocity), + SMALL ) ), diff --git a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C index 3e53f4f4145969f23298712ae49778e3856277a0..240c0870df11d4ac5ced130c8541020dec83b038 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C @@ -75,8 +75,8 @@ Foam::RASModel<BasicTurbulenceModel>::RASModel ( "kMin", RASDict_, - SMALL, - sqr(dimVelocity) + sqr(dimVelocity), + SMALL ) ), @@ -86,8 +86,8 @@ Foam::RASModel<BasicTurbulenceModel>::RASModel ( "epsilonMin", RASDict_, - SMALL, - kMin_.dimensions()/dimTime + kMin_.dimensions()/dimTime, + SMALL ) ), @@ -97,8 +97,8 @@ Foam::RASModel<BasicTurbulenceModel>::RASModel ( "omegaMin", RASDict_, - SMALL, - dimless/dimTime + dimless/dimTime, + SMALL ) ) { diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H index e3a3fcd3327468270110e23200f0208e7ca1f595..1bbbedc91df55a2e51dc9f80214520f217564d2d 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H +++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H @@ -141,8 +141,6 @@ protected: dimensionedScalar alphaOmega1_; dimensionedScalar alphaOmega2_; - dimensionedScalar Prt_; - dimensionedScalar gamma1_; dimensionedScalar gamma2_; diff --git a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFvMesh.C b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFvMesh.C index 030fdea85dfadddf8e37bef9ecb7f7770ecb819e..d7118782a51126d1aed719218724428fdbf04953 100644 --- a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFvMesh.C +++ b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFvMesh.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -123,9 +123,8 @@ Foam::solidBodyMotionFvMesh::solidBodyMotionFvMesh(const IOobject& io) FatalErrorIn ( "solidBodyMotionFvMesh::solidBodyMotionFvMesh(const IOobject&)" - ) - << "Unable to find cellZone " << cellZoneName - << ". Valid celLZones are:" + ) << "Unable to find cellZone " << cellZoneName + << ". Valid cellZones are:" << cellZones().names() << exit(FatalError); } diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C index 2af9131b02b8a6a50d22e176d42e36ecff0b6621..901c81e9cc34a35dbe9288e39aa6eddaa066f885 100644 --- a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,15 +27,10 @@ License #include "IOstreams.H" #include "transformField.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> -transformFvPatchField<Type>::transformFvPatchField +Foam::transformFvPatchField<Type>::transformFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF @@ -46,7 +41,7 @@ transformFvPatchField<Type>::transformFvPatchField template<class Type> -transformFvPatchField<Type>::transformFvPatchField +Foam::transformFvPatchField<Type>::transformFvPatchField ( const transformFvPatchField<Type>& ptf, const fvPatch& p, @@ -59,7 +54,7 @@ transformFvPatchField<Type>::transformFvPatchField template<class Type> -transformFvPatchField<Type>::transformFvPatchField +Foam::transformFvPatchField<Type>::transformFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF, @@ -71,7 +66,7 @@ transformFvPatchField<Type>::transformFvPatchField template<class Type> -transformFvPatchField<Type>::transformFvPatchField +Foam::transformFvPatchField<Type>::transformFvPatchField ( const transformFvPatchField<Type>& ptf ) @@ -81,7 +76,7 @@ transformFvPatchField<Type>::transformFvPatchField template<class Type> -transformFvPatchField<Type>::transformFvPatchField +Foam::transformFvPatchField<Type>::transformFvPatchField ( const transformFvPatchField<Type>& ptf, const DimensionedField<Type, volMesh>& iF @@ -94,7 +89,8 @@ transformFvPatchField<Type>::transformFvPatchField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> -tmp<Field<Type> > transformFvPatchField<Type>::valueInternalCoeffs +Foam::tmp<Foam::Field<Type> > +Foam::transformFvPatchField<Type>::valueInternalCoeffs ( const tmp<scalarField>& ) const @@ -104,7 +100,8 @@ tmp<Field<Type> > transformFvPatchField<Type>::valueInternalCoeffs template<class Type> -tmp<Field<Type> > transformFvPatchField<Type>::valueBoundaryCoeffs +Foam::tmp<Foam::Field<Type> > +Foam::transformFvPatchField<Type>::valueBoundaryCoeffs ( const tmp<scalarField>& ) const @@ -120,14 +117,16 @@ tmp<Field<Type> > transformFvPatchField<Type>::valueBoundaryCoeffs template<class Type> -tmp<Field<Type> > transformFvPatchField<Type>::gradientInternalCoeffs() const +Foam::tmp<Foam::Field<Type> > +Foam::transformFvPatchField<Type>::gradientInternalCoeffs() const { return -this->patch().deltaCoeffs()*snGradTransformDiag(); } template<class Type> -tmp<Field<Type> > transformFvPatchField<Type>::gradientBoundaryCoeffs() const +Foam::tmp<Foam::Field<Type> > +Foam::transformFvPatchField<Type>::gradientBoundaryCoeffs() const { return snGrad() @@ -138,7 +137,7 @@ tmp<Field<Type> > transformFvPatchField<Type>::gradientBoundaryCoeffs() const // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // template<class Type> -void transformFvPatchField<Type>::operator= +void Foam::transformFvPatchField<Type>::operator= ( const fvPatchField<Type>& ptf ) @@ -147,8 +146,4 @@ void transformFvPatchField<Type>::operator= } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H index 0eab206104500c5517cee3c591fc1e17dd23f2fc..76174f26278813ed179ae69b3bcf40582c90ec14 100644 --- a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -153,7 +153,13 @@ public: // * * * * * * * * * * * Template Specialisations * * * * * * * * * * * * * // template<> -tmp<scalarField > transformFvPatchField<scalar>::gradientInternalCoeffs() const; +tmp<scalarField> transformFvPatchField<scalar>::valueInternalCoeffs +( + const tmp<scalarField>& +) const; + +template<> +tmp<scalarField> transformFvPatchField<scalar>::gradientInternalCoeffs() const; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C index 506374c7426f4f81d41097a112f3e0e1bcb796aa..81947be896ad53f277bc34954314dfe840a52989 100644 --- a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,21 +25,25 @@ License #include "transformFvPatchField.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -namespace Foam +template<> +Foam::tmp<Foam::scalarField> +Foam::transformFvPatchField<Foam::scalar>::valueInternalCoeffs +( + const tmp<scalarField>& +) const { + return tmp<scalarField>(new scalarField(size(), 1.0)); +} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<> -tmp<scalarField > transformFvPatchField<scalar>::gradientInternalCoeffs() const +Foam::tmp<Foam::scalarField> +Foam::transformFvPatchField<Foam::scalar>::gradientInternalCoeffs() const { - return tmp<scalarField >(new scalarField(size(), 0.0)); + return tmp<scalarField>(new scalarField(size(), 0.0)); } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam // ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C index 18321c9013bf75cfaf72100e0a44a47ae813a2a7..02a63dd00d3e1e708ee9de6a598682990eeef5b3 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -296,13 +296,13 @@ void Foam::activePressureForceBaffleVelocityFvPatchVectorField::updateCoeffs() Info<< "Pressure difference = " << valueDiff << endl; } - if ((mag(valueDiff) > mag(minThresholdValue_) || baffleActivated_)) + if ((mag(valueDiff) > mag(minThresholdValue_)) || baffleActivated_) { openFraction_ = max( min( openFraction_ - + max + + min ( this->db().time().deltaT().value()/openingTime_, maxOpenFractionDelta_ diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H index c313f296fe4fbe5fbae829ba3771e471889faf90..289e735586372848ffc409292faedb0d0d52e439 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,17 +29,20 @@ Group Description This boundary condition is applied to the flow velocity, to simulate the - opening of a baffle due to local flow conditions, by merging the behaviours - of wall and cyclic conditions. + opening or closure of a baffle due to local pressure or force changes, + by merging the behaviours of wall and cyclic conditions. The baffle joins two mesh regions, where the open fraction determines the interpolation weights applied to each cyclic- and neighbour-patch - contribution. + contribution. This means that this is boundary condition is meant to be + used in an extra wall beyond an existing cyclic patch pair. See PDRMesh + for more details. - Once opened the baffle continues to open at a fixed rate using + Once the threshold is crossed, this condition activated and continues to + open or close at a fixed rate using \f[ - x = x_{old} + \frac{dt}{DT} + x = x_{old} + s \times \frac{dt}{DT} \f] where @@ -47,6 +50,7 @@ Description \vartable x | baffle open fraction [0-1] x_{old} | baffle open fraction on previous evaluation + s | sign for orientation: 1 to open or -1 to close dt | simulation time step DT | time taken to open the baffle \endvartable @@ -58,12 +62,13 @@ Description \table Property | Description | Required | Default value p | pressure field name | no | p - cyclicPatch | cylclic patch name | yes | - orientation | 1 or -1 used to switch flow direction | yes| - openFraction | current opatch open fraction [0-1]| yes | - openingTime | time taken to open the baffle | yes | - maxOpenFractionDelta | max open fraction change per timestep | yes | - minThresholdValue | minimum open fraction for activation | yes | + cyclicPatch | cyclic patch name | yes | + orientation | 1 to open or -1 to close | yes| + openFraction | current open fraction [0-1] | yes | + openingTime | time taken to open or close the baffle | yes | + maxOpenFractionDelta | max fraction change per timestep | yes | + minThresholdValue | minimum absolute pressure or + force difference for activation | yes | forceBased | force (true) or pressure-based (false) activation | yes | \endtable @@ -119,9 +124,8 @@ class activePressureForceBaffleVelocityFvPatchVectorField //- Index of the cyclic patch used when the active baffle is open label cyclicPatchLabel_; - //- Orientation (1 or -1) of the active baffle patch. - // Used to change the direction of opening without the need for - // reordering the patch faces + //- Orientation (1 or -1) of the active baffle mode + // Used to change the direction of opening or closing the baffle label orientation_; //- Initial wall patch areas diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchField.C index 566093591a08856038f51a35aa17db3b648f3a8e..0a5a113d907c49039aef74e286f86fdefee3296f 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchField.C @@ -90,6 +90,8 @@ Foam::uniformFixedGradientFvPatchField<Type>::uniformFixedGradientFvPatchField const scalar t = this->db().time().timeOutputValue(); this->gradient() = uniformGradient_->value(t); } + + fixedGradientFvPatchField<Type>::evaluate(); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchFieldsFwd.H index 9eaa07e2a69e7b2a5310a0b2ab9317cc237b2cf4..d76a6080e22bdd94a8492a36bdb05b472c34ebd6 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchFieldsFwd.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedGradient/uniformFixedGradientFvPatchFieldsFwd.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,7 +37,7 @@ namespace Foam template<class Type> class uniformFixedGradientFvPatchField; -makePatchTypeFieldTypedefs(uniform); +makePatchTypeFieldTypedefs(uniformFixedGradient); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwindV.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwindV.C index 6368d2accd863cc9d6965b94b0a826e6ef2bbbaa..22a04bff7b4a7c0a56c286f306d8c48c580d5c7d 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwindV.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwindV.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -125,17 +125,6 @@ Foam::linearUpwindV<Type>::correction sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL); } } - else if (sfCorrs < 0) - { - if (maxCorrs > 0) - { - sfCorr[facei] = vector::zero; - } - else if (sfCorrs < maxCorrs) - { - sfCorr[facei] *= maxCorrs/(sfCorrs - VSMALL); - } - } } @@ -203,17 +192,6 @@ Foam::linearUpwindV<Type>::correction pSfCorr[facei] *= maxCorrs/(pSfCorrs + VSMALL); } } - else if (pSfCorrs < 0) - { - if (maxCorrs > 0) - { - pSfCorr[facei] = vector::zero; - } - else if (pSfCorrs < maxCorrs) - { - pSfCorr[facei] *= maxCorrs/(pSfCorrs - VSMALL); - } - } } } } @@ -227,4 +205,5 @@ namespace Foam makelimitedSurfaceInterpolationTypeScheme(linearUpwindV, vector) } + // ************************************************************************* // diff --git a/src/fvAgglomerationMethods/pairPatchAgglomeration/pairPatchAgglomeration.C b/src/fvAgglomerationMethods/pairPatchAgglomeration/pairPatchAgglomeration.C index f3c986bac474630f7d72bde64ebb3c8c220abbf4..46fc5f185316719ddfd8e2bc385b6febad220098 100644 --- a/src/fvAgglomerationMethods/pairPatchAgglomeration/pairPatchAgglomeration.C +++ b/src/fvAgglomerationMethods/pairPatchAgglomeration/pairPatchAgglomeration.C @@ -440,6 +440,8 @@ void Foam::pairPatchAgglomeration::agglomerate() nCoarseFacesOld = nCoarseFaces; } + + compactLevels(nCreatedLevels); } diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C index c638d06ad45623b607e42f976a6c597b4a8f7b04..73e11394e7675d9cfa4200ba46527b95dbd33aa5 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C @@ -334,9 +334,9 @@ void Foam::fv::rotorDiskSource::createCoordinateSystem() coeffs_.lookup("refDirection") >> refDir; - localAxesRotation_.reset + cylindrical_.reset ( - new localAxesRotation + new cylindrical ( mesh_, axis, @@ -357,9 +357,9 @@ void Foam::fv::rotorDiskSource::createCoordinateSystem() coeffs_.lookup("axis") >> axis; coeffs_.lookup("refDirection") >> refDir; - localAxesRotation_.reset + cylindrical_.reset ( - new localAxesRotation + new cylindrical ( mesh_, axis, @@ -491,7 +491,7 @@ Foam::fv::rotorDiskSource::rotorDiskSource invR_(cells_.size(), I), area_(cells_.size(), 0.0), coordSys_(false), - localAxesRotation_(), + cylindrical_(), rMax_(0.0), trim_(trimModel::New(*this, coeffs_)), blade_(coeffs_.subDict("blade")), diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H index ddd4c6cae9bc3ef1758d43b42ebf27057b6c42ce..f94a463eb7f0a8f50f2dbd8445d244228feb421e 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H @@ -103,7 +103,7 @@ SourceFiles #include "cellSetOption.H" #include "cylindricalCS.H" -#include "localAxesRotation.H" +#include "cylindrical.H" #include "NamedEnum.H" #include "bladeModel.H" #include "profileModelList.H" @@ -201,7 +201,7 @@ protected: cylindricalCS coordSys_; //- Rotor transformation co-ordinate system - autoPtr<localAxesRotation> localAxesRotation_; + autoPtr<cylindrical> cylindrical_; //- Maximum radius scalar rMax_; diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C index 83a29e2248d4b6da54a0b9b508e1988b929fe1ae..a0664e696d668505e457037c78fddddbb797d1f2 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C @@ -59,7 +59,7 @@ void Foam::fv::rotorDiskSource::calculate const scalar radius = x_[i].x(); // Transform velocity into local cylindrical reference frame - vector Uc = localAxesRotation_->invTransform(U[cellI], i); + vector Uc = cylindrical_->invTransform(U[cellI], i); // Transform velocity into local coning system Uc = R_[i] & Uc; @@ -132,7 +132,7 @@ void Foam::fv::rotorDiskSource::calculate localForce = invR_[i] & localForce; // Transform force into global Cartesian co-ordinate system - force[cellI] = localAxesRotation_->transform(localForce, i); + force[cellI] = cylindrical_->transform(localForce, i); if (divideVolume) { diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C index efbee0018e642f388b067c2899cfbc30588a05eb..f94c19f39636a824b10fd6d8bcf994473697b2d1 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C @@ -80,8 +80,6 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange const scalar Tdash = min(T, TMax); const scalar Tsdash = min(Ts, TMax); - scalarField hmm(dMassPC); - // Calculate mass transfer due to phase change phaseChange.calculate ( diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C index 293fd7d740c1013e1701209bb7cb052258272c1f..d53b781cdb48ffdde3aad8ada6829667228e0f39 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -187,7 +187,7 @@ void Foam::KinematicLookupTableInjection<CloudType>::setPositionAndCell } else { - injectorI = parcelI*injectorCells_.size()/nParcels; + injectorI = int64_t(parcelI)*int64_t(injectors_.size())/nParcels; } position = injectors_[injectorI].x(); @@ -206,7 +206,7 @@ void Foam::KinematicLookupTableInjection<CloudType>::setProperties typename CloudType::parcelType& parcel ) { - label injectorI = parcelI*injectorCells_.size()/nParcels; + label injectorI = int64_t(parcelI)*int64_t(injectors_.size())/nParcels; // set particle velocity parcel.U() = injectors_[injectorI].U(); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C index 77a6debde794011dcdb8e77e7b76806508bc891d..7a2a3edf495bd81e908be05d87c9d444fd953c03 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -284,6 +284,8 @@ bool Foam::LocalInteraction<CloudType>::correct template<class CloudType> void Foam::LocalInteraction<CloudType>::info(Ostream& os) { + PatchInteractionModel<CloudType>::info(os); + // retrieve any stored data labelList npe0(patchData_.size(), 0); this->getModelProperty("nEscape", npe0); @@ -317,8 +319,8 @@ void Foam::LocalInteraction<CloudType>::info(Ostream& os) forAll(patchData_, i) { - os << " Parcel fate (number, mass) : patch " - << patchData_[i].patchName() << nl + os << " Parcel fate: patch " << patchData_[i].patchName() + << " (number, mass)" << nl << " - escape = " << npe[i] << ", " << mpe[i] << nl << " - stick = " << nps[i] diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C index fa86f67ca9f9cf7a6d4d54fc7b8ecd7e4e19b6d1..1545e62d57234c1a262a0724c63241150a67f626 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -130,6 +130,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct active = false; U = vector::zero; nEscape_++; + massEscape_ += p.nParticle()*p.mass(); break; } case PatchInteractionModel<CloudType>::itStick: @@ -138,6 +139,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct active = false; U = vector::zero; nStick_++; + massStick_ += p.nParticle()*p.mass(); break; } case PatchInteractionModel<CloudType>::itRebound: @@ -197,19 +199,21 @@ bool Foam::StandardWallInteraction<CloudType>::correct template<class CloudType> void Foam::StandardWallInteraction<CloudType>::info(Ostream& os) { - label npe0 = this->template getBaseProperty<scalar>("nEscape"); + PatchInteractionModel<CloudType>::info(os); + + label npe0 = this->template getModelProperty<scalar>("nEscape"); label npe = npe0 + returnReduce(nEscape_, sumOp<label>()); - scalar mpe0 = this->template getBaseProperty<scalar>("massEscape"); + scalar mpe0 = this->template getModelProperty<scalar>("massEscape"); scalar mpe = mpe0 + returnReduce(massEscape_, sumOp<scalar>()); - label nps0 = this->template getBaseProperty<scalar>("nStick"); + label nps0 = this->template getModelProperty<scalar>("nStick"); label nps = nps0 + returnReduce(nStick_, sumOp<label>()); - scalar mps0 = this->template getBaseProperty<scalar>("massStick"); + scalar mps0 = this->template getModelProperty<scalar>("massStick"); scalar mps = mps0 + returnReduce(massStick_, sumOp<scalar>()); - os << " Parcel fate (number, mass)" << nl + os << " Parcel fate: walls (number, mass)" << nl << " - escape = " << npe << ", " << mpe << nl << " - stick = " << nps << ", " << mps << nl; diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C index 7b77e35875e5d22bbdf48523e3822b951c969283..e4bfa8840c994ca689be4dcfb46ece5ae3e445fd 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C @@ -279,7 +279,7 @@ void Foam::meshRefinement::updateIntersections(const labelList& changedFaces) // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -491,7 +491,7 @@ void Foam::meshRefinement::checkData() // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -2974,7 +2974,7 @@ void Foam::meshRefinement::dumpIntersections(const fileName& prefix) const // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index e63c6a353ed37bb7e9dc0658a3f9769ce3f4bcc3..6f500c117a10304be1cf1330ea45baec56674473 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -233,7 +233,7 @@ void Foam::meshRefinement::getIntersections // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -1097,7 +1097,7 @@ Foam::List<Foam::labelPair> Foam::meshRefinement::freeStandingBaffles // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -4010,7 +4010,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C index 05f89fb5dd51396b8c56b822d1dffd87e83a3acc..b27c4fae3f80a1b06c78b56993663662bb6acee8 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C @@ -967,7 +967,7 @@ Foam::label Foam::meshRefinement::markSurfaceRefinement // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -1162,7 +1162,7 @@ Foam::label Foam::meshRefinement::markSurfaceCurvatureRefinement // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } @@ -1765,7 +1765,7 @@ Foam::label Foam::meshRefinement::markProximityRefinement // Extend segments a bit { - const vectorField smallVec(Foam::sqrt(SMALL)*(end-start)); + const vectorField smallVec(ROOTSMALL*(end-start)); start -= smallVec; end += smallVec; } diff --git a/src/mesh/blockMesh/blockMesh/blockMeshCheck.C b/src/mesh/blockMesh/blockMesh/blockMeshCheck.C index b44f7259b88494d155a78dd8e7b76f8433c19aa4..39c7ed6c109b90c9317feae5434525b75bff95fe 100644 --- a/src/mesh/blockMesh/blockMesh/blockMeshCheck.C +++ b/src/mesh/blockMesh/blockMesh/blockMeshCheck.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,7 +27,6 @@ License // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -// Check the blockMesh topology void Foam::blockMesh::checkBlockMesh(const polyMesh& bm) const { if (verboseOutput) diff --git a/src/mesh/blockMesh/blockMesh/blockMeshMergeFast.C b/src/mesh/blockMesh/blockMesh/blockMeshMergeFast.C index d6d2a2d5f40c28783b2a5c6667247449a9aaad39..077db0b8fd22d0c7120b7a77f9579cd244d85dda 100644 --- a/src/mesh/blockMesh/blockMesh/blockMeshMergeFast.C +++ b/src/mesh/blockMesh/blockMesh/blockMeshMergeFast.C @@ -455,6 +455,9 @@ void Foam::blockMesh::calcMergeInfoFast() << " and face " << blockNfacei << " of block " << blockNi << endl + << " Points: " << blockPpoints[blockPpointi] + << " " << blockNpoints[blockNpointi] + << endl << " This may be due to inconsistent grading." << exit(FatalError); } diff --git a/src/mesh/blockMesh/curvedEdges/arcEdge.C b/src/mesh/blockMesh/curvedEdges/arcEdge.C index 1f42125f98bef047890b6152bd2c6c1f9bf3e261..512eab4a206a6fe9e82b0fbbb4bc3063343c7523 100644 --- a/src/mesh/blockMesh/curvedEdges/arcEdge.C +++ b/src/mesh/blockMesh/curvedEdges/arcEdge.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -133,7 +133,7 @@ Foam::arcEdge::arcEdge(const pointField& points, Istream& is) Foam::point Foam::arcEdge::position(const scalar lambda) const { - if (lambda < 0 || lambda > 1) + if (lambda < -SMALL || lambda > 1 + SMALL) { FatalErrorIn("arcEdge::position(const scalar lambda) const") << "Parameter out of range, lambda = " << lambda diff --git a/src/mesh/blockMesh/curvedEdges/lineEdge.C b/src/mesh/blockMesh/curvedEdges/lineEdge.C index f5bd3348ea5267bd427359f4ee219ae755c1cf69..a00243e5841c897554b407d63d9887bdbd8bac70 100644 --- a/src/mesh/blockMesh/curvedEdges/lineEdge.C +++ b/src/mesh/blockMesh/curvedEdges/lineEdge.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -54,16 +54,18 @@ Foam::lineEdge::lineEdge(const pointField& points, Istream& is) curvedEdge(points, is) {} + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * // Foam::lineEdge::~lineEdge() {} + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::point Foam::lineEdge::position(const scalar lambda) const { - if (lambda < 0 || lambda > 1) + if (lambda < -SMALL || lambda > 1+SMALL) { FatalErrorIn("lineEdge::position(const scalar)") << "Parameter out of range, lambda = " << lambda diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files index d70492950392f7350c64b3ac14f9a45ccafefe44..0c1b794f7c6d45d76d37d2448d8cc5b8e6725278 100644 --- a/src/meshTools/Make/files +++ b/src/meshTools/Make/files @@ -20,7 +20,7 @@ $(csys)/coordinateRotation/coordinateRotation.C $(csys)/coordinateRotation/coordinateRotationNew.C $(csys)/coordinateRotation/EulerCoordinateRotation.C $(csys)/coordinateRotation/STARCDCoordinateRotation.C -$(csys)/coordinateRotation/localAxesRotation.C +$(csys)/coordinateRotation/cylindrical.C edgeFaceCirculator/edgeFaceCirculator.C diff --git a/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotation.H b/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotation.H index 0e90d7aa8f1b4e6220f186a481de8e9994e2a8b5..ae37a3764f3a1fdc8f57f5cdef34f2d7d3755fe4 100644 --- a/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotation.H +++ b/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotation.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -39,7 +39,7 @@ Description Types of coordinateRotation: 1) axesRotation 2) STARCDRotation - 3) localAxesRotation + 3) cylindrical 4) EulerCoordinateRotation diff --git a/src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.C b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C similarity index 75% rename from src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.C rename to src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C index 53c18f9fb941cfc2fa3bfef60e549b767d1498a0..8d0c85568c25d79fb0f481f0e7518692383ef505 100644 --- a/src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.C +++ b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -23,7 +23,7 @@ License \*---------------------------------------------------------------------------*/ -#include "localAxesRotation.H" +#include "cylindrical.H" #include "axesRotation.H" #include "addToRunTimeSelectionTable.H" #include "polyMesh.H" @@ -33,17 +33,17 @@ License namespace Foam { - defineTypeNameAndDebug(localAxesRotation, 0); + defineTypeNameAndDebug(cylindrical, 0); addToRunTimeSelectionTable ( coordinateRotation, - localAxesRotation, + cylindrical, dictionary ); addToRunTimeSelectionTable ( coordinateRotation, - localAxesRotation, + cylindrical, objectRegistry ); } @@ -51,7 +51,7 @@ namespace Foam // * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // -void Foam::localAxesRotation::init +void Foam::cylindrical::init ( const objectRegistry& obr, const List<label>& cells @@ -92,7 +92,7 @@ void Foam::localAxesRotation::init // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::localAxesRotation::localAxesRotation +Foam::cylindrical::cylindrical ( const dictionary& dict, const objectRegistry& obr @@ -115,7 +115,7 @@ Foam::localAxesRotation::localAxesRotation } -Foam::localAxesRotation::localAxesRotation +Foam::cylindrical::cylindrical ( const objectRegistry& obr, const vector& axis, @@ -130,7 +130,7 @@ Foam::localAxesRotation::localAxesRotation } -Foam::localAxesRotation::localAxesRotation +Foam::cylindrical::cylindrical ( const objectRegistry& obr, const vector& axis, @@ -146,14 +146,14 @@ Foam::localAxesRotation::localAxesRotation } -Foam::localAxesRotation::localAxesRotation(const dictionary& dict) +Foam::cylindrical::cylindrical(const dictionary& dict) : Rptr_(), origin_(), e3_() { - FatalErrorIn("localAxesRotation(const dictionary&)") - << " localAxesRotation can not be constructed from dictionary " + FatalErrorIn("cylindrical(const dictionary&)") + << " cylindrical can not be constructed from dictionary " << " use the construtctor : " "(" " const dictionary&, const objectRegistry&" @@ -162,7 +162,7 @@ Foam::localAxesRotation::localAxesRotation(const dictionary& dict) } -Foam::localAxesRotation::localAxesRotation(const tensorField& R) +Foam::cylindrical::cylindrical(const tensorField& R) : Rptr_(), origin_(vector::zero), @@ -174,7 +174,7 @@ Foam::localAxesRotation::localAxesRotation(const tensorField& R) // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -void Foam::localAxesRotation::clear() +void Foam::cylindrical::clear() { if (!Rptr_.empty()) { @@ -183,7 +183,7 @@ void Foam::localAxesRotation::clear() } -void Foam::localAxesRotation::updateCells +void Foam::cylindrical::updateCells ( const polyMesh& mesh, const labelList& cells @@ -203,7 +203,7 @@ void Foam::localAxesRotation::updateCells } -Foam::tmp<Foam::vectorField> Foam::localAxesRotation::transform +Foam::tmp<Foam::vectorField> Foam::cylindrical::transform ( const vectorField& vf ) const @@ -212,7 +212,7 @@ Foam::tmp<Foam::vectorField> Foam::localAxesRotation::transform { FatalErrorIn ( - "tmp<vectorField> localAxesRotation::transform(const vectorField&)" + "tmp<vectorField> cylindrical::transform(const vectorField&)" ) << "vectorField st has different size to tensorField " << abort(FatalError); @@ -222,17 +222,17 @@ Foam::tmp<Foam::vectorField> Foam::localAxesRotation::transform } -Foam::vector Foam::localAxesRotation::transform(const vector& v) const +Foam::vector Foam::cylindrical::transform(const vector& v) const { notImplemented ( - "vector localAxesRotation::transform(const vector&) const" + "vector cylindrical::transform(const vector&) const" ); return vector::zero; } -Foam::vector Foam::localAxesRotation::transform +Foam::vector Foam::cylindrical::transform ( const vector& v, const label cmptI @@ -242,7 +242,7 @@ Foam::vector Foam::localAxesRotation::transform } -Foam::tmp<Foam::vectorField> Foam::localAxesRotation::invTransform +Foam::tmp<Foam::vectorField> Foam::cylindrical::invTransform ( const vectorField& vf ) const @@ -251,17 +251,17 @@ Foam::tmp<Foam::vectorField> Foam::localAxesRotation::invTransform } -Foam::vector Foam::localAxesRotation::invTransform(const vector& v) const +Foam::vector Foam::cylindrical::invTransform(const vector& v) const { notImplemented ( - "vector localAxesRotation::invTransform(const vector&) const" + "vector cylindrical::invTransform(const vector&) const" ); return vector::zero; } -Foam::vector Foam::localAxesRotation::invTransform +Foam::vector Foam::cylindrical::invTransform ( const vector& v, const label cmptI @@ -271,7 +271,7 @@ Foam::vector Foam::localAxesRotation::invTransform } -Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor +Foam::tmp<Foam::tensorField> Foam::cylindrical::transformTensor ( const tensorField& tf ) const @@ -280,7 +280,7 @@ Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor { FatalErrorIn ( - "tmp<tensorField> localAxesRotation::transformTensor" + "tmp<tensorField> cylindrical::transformTensor" "(" "const tensorField&" ")" @@ -292,21 +292,21 @@ Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor } -Foam::tensor Foam::localAxesRotation::transformTensor +Foam::tensor Foam::cylindrical::transformTensor ( const tensor& t ) const { notImplemented ( - "tensor localAxesRotation::transformTensor(const tensor&) const" + "tensor cylindrical::transformTensor(const tensor&) const" ); return tensor::zero; } -Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor +Foam::tmp<Foam::tensorField> Foam::cylindrical::transformTensor ( const tensorField& tf, const labelList& cellMap @@ -316,7 +316,7 @@ Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor { FatalErrorIn ( - "tmp<tensorField> localAxesRotation::transformTensor" + "tmp<tensorField> cylindrical::transformTensor" "(" "const tensorField&, " "const labelList&" @@ -340,14 +340,14 @@ Foam::tmp<Foam::tensorField> Foam::localAxesRotation::transformTensor } -Foam::tmp<Foam::symmTensorField> Foam::localAxesRotation::transformVector +Foam::tmp<Foam::symmTensorField> Foam::cylindrical::transformVector ( const vectorField& vf ) const { if (Rptr_->size() != vf.size()) { - FatalErrorIn("localAxesRotation::transformVector(const vectorField&)") + FatalErrorIn("cylindrical::transformVector(const vectorField&)") << "tensorField vf has different size to tensorField Tr" << abort(FatalError); } @@ -364,20 +364,20 @@ Foam::tmp<Foam::symmTensorField> Foam::localAxesRotation::transformVector } -Foam::symmTensor Foam::localAxesRotation::transformVector +Foam::symmTensor Foam::cylindrical::transformVector ( const vector& v ) const { notImplemented ( - "tensor localAxesRotation::transformVector(const vector&) const" + "tensor cylindrical::transformVector(const vector&) const" ); return symmTensor::zero; } -void Foam::localAxesRotation::write(Ostream& os) const +void Foam::cylindrical::write(Ostream& os) const { os.writeKeyword("e3") << e3() << token::END_STATEMENT << nl; } diff --git a/src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.H b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.H similarity index 86% rename from src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.H rename to src/meshTools/coordinateSystems/coordinateRotation/cylindrical.H index 41a12f459bd6b8351334879410727aa11dbfa388..f166f95e71dc09392e38b8130d6f9a8fe8368460 100644 --- a/src/meshTools/coordinateSystems/coordinateRotation/localAxesRotation.H +++ b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::localAxesRotation + Foam::cylindrical Description A local coordinate rotation. @@ -34,7 +34,7 @@ Description (cylindrical coordinates) \verbatim - localAxesRotation + cylindrical { type localAxes; e3 (0 0 1); @@ -45,8 +45,8 @@ Description \*---------------------------------------------------------------------------*/ -#ifndef localAxesRotation_H -#define localAxesRotation_H +#ifndef cylindrical_H +#define cylindrical_H #include "point.H" #include "vector.H" @@ -58,10 +58,10 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class localAxesRotation Declaration + Class cylindrical Declaration \*---------------------------------------------------------------------------*/ -class localAxesRotation +class cylindrical : public coordinateRotation { @@ -90,15 +90,15 @@ class localAxesRotation public: //- Runtime type information - TypeName("localAxesRotation"); + TypeName("cylindrical"); // Constructors //- Construct from dictionary and objectRegistry - localAxesRotation(const dictionary&, const objectRegistry&); + cylindrical(const dictionary&, const objectRegistry&); //- Construct from components for all cells - localAxesRotation + cylindrical ( const objectRegistry&, const vector& axis, @@ -106,7 +106,7 @@ public: ); //- Construct from components for list of cells - localAxesRotation + cylindrical ( const objectRegistry&, const vector& axis, @@ -115,20 +115,20 @@ public: ); //- Construct from dictionary - localAxesRotation(const dictionary&); + cylindrical(const dictionary&); //- Construct from tensor Field - localAxesRotation(const tensorField&); + cylindrical(const tensorField&); //- Return clone - autoPtr<localAxesRotation> clone() const + autoPtr<cylindrical> clone() const { - return autoPtr<localAxesRotation>(new localAxesRotation(*this)); + return autoPtr<cylindrical>(new cylindrical(*this)); } //- Destructor - virtual ~localAxesRotation() + virtual ~cylindrical() {} @@ -143,28 +143,28 @@ public: //- Return local-to-global transformation tensor virtual const tensor& R() const { - notImplemented("const tensor& localAxesRotation::R() const"); + notImplemented("const tensor& cylindrical::R() const"); return tensor::zero; } //- Return global-to-local transformation tensor virtual const tensor& Rtr() const { - notImplemented("const tensor& localAxesRotation::Rtr() const"); + notImplemented("const tensor& cylindrical::Rtr() const"); return tensor::zero; } //- Return local Cartesian x-axis virtual const vector e1() const { - notImplemented("const tensor& localAxesRotation::e1() const"); + notImplemented("const tensor& cylindrical::e1() const"); return vector::zero; } //- Return local Cartesian y-axis virtual const vector e2() const { - notImplemented("const tensor& localAxesRotation::e2() const"); + notImplemented("const tensor& cylindrical::e2() const"); return vector::zero; } diff --git a/src/meshTools/coordinateSystems/coordinateSystem.H b/src/meshTools/coordinateSystems/coordinateSystem.H index 7e8b81c0e56cbbdd185b773f7e8984e774eba4f7..34579acf2740ddfa34a5ad5094efc2a817f27ce7 100644 --- a/src/meshTools/coordinateSystems/coordinateSystem.H +++ b/src/meshTools/coordinateSystems/coordinateSystem.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -36,7 +36,7 @@ Description origin (0 0 0); coordinateRotation { - type localAxesRotation; + type cylindrical; e3 (0 0 1); } } @@ -45,7 +45,7 @@ Description Types of coordinateRotation: 1) axesRotation 2) STARCDRotation - 3) localAxesRotation + 3) cylindrical 4) EulerCoordinateRotation Type of co-ordinates: diff --git a/src/meshTools/searchableSurface/searchableBox.C b/src/meshTools/searchableSurface/searchableBox.C index 5970e8257597703f908c667596a6a4ec8eecb8fc..535b7e2871bcab96acf8cc4e3afd9c115b3bf2fc 100644 --- a/src/meshTools/searchableSurface/searchableBox.C +++ b/src/meshTools/searchableSurface/searchableBox.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -531,7 +531,7 @@ void Foam::searchableBox::findLineAll const scalarField magSqrDirVec(magSqr(dirVec)); const vectorField smallVec ( - Foam::sqrt(SMALL)*dirVec + ROOTSMALL*dirVec + vector(ROOTVSMALL,ROOTVSMALL,ROOTVSMALL) ); diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C index 1a636b1caddc40a88165ce552cf226824b975d07..f17d26277ef99118fb25ab0b80f31b0b607301d2 100644 --- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C +++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -1752,7 +1752,7 @@ void Foam::distributedTriSurfaceMesh::findLineAll const scalarField magSqrDirVec(magSqr(dirVec)); const vectorField smallVec ( - Foam::sqrt(SMALL)*dirVec + ROOTSMALL*dirVec + vector(ROOTVSMALL,ROOTVSMALL,ROOTVSMALL) ); diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C index c028628e37091ddfa98a036c937a3980f2c7c7e9..89589a0c45449adc42cb449d3a468fa1d2455593 100644 --- a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,8 @@ License #include "fvMesh.H" #include "fvcGrad.H" +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + template<class Type> Foam::GeometricField < @@ -35,6 +37,8 @@ Foam::GeometricField >& Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims) { + Info<< "gradField" << endl; + typedef typename outerProduct<vector, Type>::type gradType; typedef GeometricField<gradType, fvPatchField, volMesh> vfGradType; @@ -73,8 +77,6 @@ Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims) } -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - template<class Type> void Foam::calcFvcGrad::calcGrad ( @@ -98,7 +100,8 @@ void Foam::calcFvcGrad::calcGrad vfGradType& field = gradField<Type>(resultName, vf.dimensions()); - field = fvc::grad(vf); + // De-reference the tmp to avoid a clash with the cached grad field + field = fvc::grad(vf)(); processed = true; } @@ -108,7 +111,8 @@ void Foam::calcFvcGrad::calcGrad vfGradType& field = gradField<Type>(resultName, sf.dimensions()); - field = fvc::grad(sf); + // De-reference the tmp to avoid a clash with the cached grad field + field = fvc::grad(sf)(); processed = true; } diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C index 218c727a86ef978244ca28357f40173efd94aeac..8ad13750c90237138acace8a58a959cf82fb8cdd 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C @@ -82,6 +82,13 @@ patchInjection::patchInjection patchInjectedMasses_.setSize(pbm.size(), 0); } + + if (!patchIDs_.size()) + { + FatalErrorIn("patchInjection::patchInjection") + << "No patches selected" + << exit(FatalError); + } } @@ -100,6 +107,9 @@ void patchInjection::correct scalarField& diameterToInject ) { + // Do not correct if no patches selected + if (!patchIDs_.size()) return; + const scalarField& delta = owner().delta(); const scalarField& rho = owner().rho(); const scalarField& magSf = owner().magSf(); @@ -160,6 +170,9 @@ void patchInjection::correct void patchInjection::patchInjectedMassTotals(scalarField& patchMasses) const { + // Do not correct if no patches selected + if (!patchIDs_.size()) return; + scalarField patchInjectedMasses ( getModelProperty<scalarField> @@ -170,7 +183,6 @@ void patchInjection::patchInjectedMassTotals(scalarField& patchMasses) const ); scalarField patchInjectedMassTotals(patchInjectedMasses_); - //combineReduce(patchInjectedMassTotals, plusEqOp<scalarField>()); Pstream::listCombineGather(patchInjectedMassTotals, plusEqOp<scalar>()); forAll(patchIDs_, pidi) diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C index f7cfae75625013be13eeaff3b8e11b6c1b1b8e03..f5b5b36f59983888af9e3caa2ad8ffe499fa271d 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -57,8 +57,20 @@ solidification::solidification : phaseChangeModel(typeName, owner, dict), T0_(readScalar(coeffDict_.lookup("T0"))), - L_(readScalar(coeffDict_.lookup("L"))), - alpha_(readScalar(coeffDict_.lookup("alpha"))), + maxSolidificationFrac_ + ( + coeffDict_.lookupOrDefault("maxSolidificationFrac", 0.2) + ), + maxSolidificationRate_ + ( + dimensioned<scalar>::lookupOrDefault + ( + "maxSolidificationRate", + coeffDict_, + dimless/dimTime, + GREAT + ) + ), mass_ ( IOobject @@ -111,15 +123,28 @@ void solidification::correctModel const scalarField& T = film.T(); const scalarField& alpha = film.alpha(); - forAll(alpha, cellI) + const scalar rateLimiter = min + ( + maxSolidificationFrac_, + ( + maxSolidificationRate_ + *owner_.regionMesh().time().deltaTValue() + ).value() + ); + + forAll(alpha, celli) { - if (alpha[cellI] > 0.5) + if (alpha[celli] > 0.5) { - if (T[cellI] > T0_) + if (T[celli] < T0_) { - mass_[cellI] += alpha_*availableMass[cellI]; - dMass[cellI] += alpha_*availableMass[cellI]; - dEnergy[cellI] += alpha_*availableMass[cellI]*L_; + const scalar dm = rateLimiter*availableMass[celli]; + + mass_[celli] += dm; + dMass[celli] += dm; + + // Heat is assumed to be removed by heat-transfer to the wall + // so the energy remains unchanged by the phase-change. } } } diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H index 87f0c1206e987e603f455eee32ab6233d437aa65..1854feac28c487d675509ed423183a7e0822413e 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,8 +25,9 @@ Class Foam::solidification Description - Solidification phase change model where all film mass is converted when - the local temperature > activation temperature. + Solidification phase change model where all film mass is converted when the + local temperature > activation temperature. The latent heat is + assumed to be removed by heat-transfer to the wall. SourceFiles solidification.C @@ -55,8 +56,6 @@ class solidification : public phaseChangeModel { -private: - // Private member functions //- Disallow default bitwise copy construct @@ -73,11 +72,13 @@ protected: //- Temperature at which solidification starts scalar T0_; - //- Latent heat of solidification [J/kg] - scalar L_; + //- Solidification limiter + // Maximum fraction of film which can solidify in a time-step + scalar maxSolidificationFrac_; - //- Under-relaxation parameter for solidification process (0-1) - scalar alpha_; + //- Solidification limiter + // Maximum rate at which the film can solidify + dimensionedScalar maxSolidificationRate_; //- Accumulated solid mass [kg] volScalarField mass_; diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C index 701ce73c8d1419d06507ea76751a99c906866b03..23342419402b6543e0c1af24948995041fe20827 100644 --- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C +++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -753,10 +753,11 @@ void Foam::chemkinReader::addReaction forAll(nAtoms, i) { - if (mag(nAtoms[i]) > SMALL) + if (mag(nAtoms[i]) > imbalanceTol_) { FatalErrorIn("chemkinReader::addReaction") - << "Elemental imbalance in " << elementNames_[i] + << "Elemental imbalance of " << mag(nAtoms[i]) + << " in " << elementNames_[i] << " in reaction" << nl << reactions_.last() << nl << " on line " << lineNo_-1 @@ -839,7 +840,8 @@ Foam::chemkinReader::chemkinReader specieNames_(10), speciesTable_(species), reactions_(speciesTable_, speciesThermo_), - newFormat_(newFormat) + newFormat_(newFormat), + imbalanceTol_(ROOTSMALL) { read(CHEMKINFileName, thermoFileName); } @@ -855,7 +857,8 @@ Foam::chemkinReader::chemkinReader specieNames_(10), speciesTable_(species), reactions_(speciesTable_, speciesThermo_), - newFormat_(thermoDict.lookupOrDefault("newFormat", false)) + newFormat_(thermoDict.lookupOrDefault("newFormat", false)), + imbalanceTol_(thermoDict.lookupOrDefault("imbalanceTolerance", ROOTSMALL)) { if (newFormat_) { diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H index 1f5aa7acc8c0a97ac186467d4d07aac118fed402..ee1986f60b0a7a10b3058d323872e1c3574c82c2 100644 --- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H +++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H @@ -77,7 +77,7 @@ public: gas }; - //- Species element + //- species element struct specieElement { word elementName; @@ -211,6 +211,9 @@ private: //- Flag to indicate that file is in new format Switch newFormat_; + //- Tolerance for element imbalance in a reaction + scalar imbalanceTol_; + // Private Member Functions diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H index 338807ad02d633a6def311412986203ad2f89ece..d30416c01400d339a6156c09ae6416d63be4a0ce 100644 --- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H +++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H @@ -186,7 +186,7 @@ inline Foam::perfectFluid<Specie> Foam::operator+ scalar molr1 = pf1.nMoles()/nMoles; scalar molr2 = pf2.nMoles()/nMoles; - return rhoConst<Specie> + return perfectFluid<Specie> ( static_cast<const Specie&>(pf1) + static_cast<const Specie&>(pf2), @@ -207,7 +207,7 @@ inline Foam::perfectFluid<Specie> Foam::operator- scalar molr1 = pf1.nMoles()/nMoles; scalar molr2 = pf2.nMoles()/nMoles; - return rhoConst<Specie> + return perfectFluid<Specie> ( static_cast<const Specie&>(pf1) - static_cast<const Specie&>(pf2), diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C new file mode 100644 index 0000000000000000000000000000000000000000..fe83f1794b6bde6f1b5d0a12647f00c3f5384b7b --- /dev/null +++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "hRefConstThermo.H" +#include "IOstreams.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class EquationOfState> +Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(Istream& is) +: + EquationOfState(is), + Cp_(readScalar(is)), + Hf_(readScalar(is)), + Tref_(readScalar(is)), + Href_(readScalar(is)) +{ + is.check("hRefConstThermo::hRefConstThermo(Istream& is)"); + + Cp_ *= this->W(); + Hf_ *= this->W(); + Href_ *= this->W(); +} + + +template<class EquationOfState> +Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(const dictionary& dict) +: + EquationOfState(dict), + Cp_(readScalar(dict.subDict("thermodynamics").lookup("Cp"))), + Hf_(readScalar(dict.subDict("thermodynamics").lookup("Hf"))), + Tref_(readScalar(dict.subDict("thermodynamics").lookup("Tref"))), + Href_(readScalar(dict.subDict("thermodynamics").lookup("Href"))) +{ + Cp_ *= this->W(); + Hf_ *= this->W(); + Href_ *= this->W(); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class EquationOfState> +void Foam::hRefConstThermo<EquationOfState>::write(Ostream& os) const +{ + EquationOfState::write(os); + + dictionary dict("thermodynamics"); + dict.add("Cp", Cp_/this->W()); + dict.add("Hf", Hf_/this->W()); + dict.add("Tref", Tref_); + dict.add("Href", Href_/this->W()); + os << indent << dict.dictName() << dict; +} + + +// * * * * * * * * * * * * * * * Ostream Operator * * * * * * * * * * * * * // + +template<class EquationOfState> +Foam::Ostream& Foam::operator<< +( + Ostream& os, + const hRefConstThermo<EquationOfState>& ct +) +{ + os << static_cast<const EquationOfState&>(ct) << tab + << ct.Cp_/ct.W() << tab << ct.Hf_/ct.W() << tab + << ct.Tref_ << tab << ct.Href_/ct.W(); + + os.check("Ostream& operator<<(Ostream& os, const hRefConstThermo& ct)"); + return os; +} + + +// ************************************************************************* // diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H new file mode 100644 index 0000000000000000000000000000000000000000..9a62231d9c00a0846a9bff6cda6165ca05b982b1 --- /dev/null +++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H @@ -0,0 +1,233 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::hRefConstThermo + +Description + Constant properties thermodynamics package + templated into the EquationOfState. + +SourceFiles + hRefConstThermoI.H + hRefConstThermo.C + +\*---------------------------------------------------------------------------*/ + +#ifndef hRefConstThermo_H +#define hRefConstThermo_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of friend functions and operators + +template<class EquationOfState> class hRefConstThermo; + +template<class EquationOfState> +inline hRefConstThermo<EquationOfState> operator+ +( + const hRefConstThermo<EquationOfState>&, + const hRefConstThermo<EquationOfState>& +); + +template<class EquationOfState> +inline hRefConstThermo<EquationOfState> operator- +( + const hRefConstThermo<EquationOfState>&, + const hRefConstThermo<EquationOfState>& +); + +template<class EquationOfState> +inline hRefConstThermo<EquationOfState> operator* +( + const scalar, + const hRefConstThermo<EquationOfState>& +); + +template<class EquationOfState> +inline hRefConstThermo<EquationOfState> operator== +( + const hRefConstThermo<EquationOfState>&, + const hRefConstThermo<EquationOfState>& +); + +template<class EquationOfState> +Ostream& operator<< +( + Ostream&, + const hRefConstThermo<EquationOfState>& +); + + +/*---------------------------------------------------------------------------*\ + Class hRefConstThermo Declaration +\*---------------------------------------------------------------------------*/ + +template<class EquationOfState> +class hRefConstThermo +: + public EquationOfState +{ + // Private data + + scalar Cp_; + scalar Hf_; + scalar Tref_; + scalar Href_; + + + // Private Member Functions + + //- Construct from components + inline hRefConstThermo + ( + const EquationOfState& st, + const scalar cp, + const scalar hf, + const scalar tref, + const scalar href + ); + + +public: + + // Constructors + + //- Construct from Istream + hRefConstThermo(Istream&); + + //- Construct from dictionary + hRefConstThermo(const dictionary& dict); + + //- Construct as named copy + inline hRefConstThermo(const word&, const hRefConstThermo&); + + //- Construct and return a clone + inline autoPtr<hRefConstThermo> clone() const; + + //- Selector from Istream + inline static autoPtr<hRefConstThermo> New(Istream& is); + + //- Selector from dictionary + inline static autoPtr<hRefConstThermo> New(const dictionary& dict); + + + // Member Functions + + //- Return the instantiated type name + static word typeName() + { + return "hRefConst<" + EquationOfState::typeName() + '>'; + } + + //- Limit the temperature to be in the range Tlow_ to Thigh_ + inline scalar limit(const scalar T) const; + + + // Fundamental properties + + //- Heat capacity at constant pressure [J/(kmol K)] + inline scalar cp(const scalar p, const scalar T) const; + + //- Absolute Enthalpy [J/kmol] + inline scalar ha(const scalar p, const scalar T) const; + + //- Sensible enthalpy [J/kmol] + inline scalar hs(const scalar p, const scalar T) const; + + //- Chemical enthalpy [J/kmol] + inline scalar hc() const; + + //- Entropy [J/(kmol K)] + inline scalar s(const scalar p, const scalar T) const; + + + // I-O + + //- Write to Ostream + void write(Ostream& os) const; + + + // Member operators + + inline void operator+=(const hRefConstThermo&); + inline void operator-=(const hRefConstThermo&); + + + // Friend operators + + friend hRefConstThermo operator+ <EquationOfState> + ( + const hRefConstThermo&, + const hRefConstThermo& + ); + + friend hRefConstThermo operator- <EquationOfState> + ( + const hRefConstThermo&, + const hRefConstThermo& + ); + + friend hRefConstThermo operator* <EquationOfState> + ( + const scalar, + const hRefConstThermo& + ); + + friend hRefConstThermo operator== <EquationOfState> + ( + const hRefConstThermo&, + const hRefConstThermo& + ); + + + // IOstream Operators + + friend Ostream& operator<< <EquationOfState> + ( + Ostream&, + const hRefConstThermo& + ); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "hRefConstThermoI.H" + +#ifdef NoRepository +# include "hRefConstThermo.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H new file mode 100644 index 0000000000000000000000000000000000000000..c6a699540e3d6fc254baf3e86533bdb10f928a74 --- /dev/null +++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H @@ -0,0 +1,277 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState>::hRefConstThermo +( + const EquationOfState& st, + const scalar cp, + const scalar hf, + const scalar tref, + const scalar href +) +: + EquationOfState(st), + Cp_(cp), + Hf_(hf), + Tref_(tref), + Href_(href) +{} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState>::hRefConstThermo +( + const word& name, + const hRefConstThermo& ct +) +: + EquationOfState(name, ct), + Cp_(ct.Cp_), + Hf_(ct.Hf_), + Tref_(ct.Tref_), + Href_(ct.Href_) +{} + + +template<class EquationOfState> +inline Foam::autoPtr<Foam::hRefConstThermo<EquationOfState> > +Foam::hRefConstThermo<EquationOfState>::clone() const +{ + return autoPtr<hRefConstThermo<EquationOfState> > + ( + new hRefConstThermo<EquationOfState>(*this) + ); +} + + +template<class EquationOfState> +inline Foam::autoPtr<Foam::hRefConstThermo<EquationOfState> > +Foam::hRefConstThermo<EquationOfState>::New(Istream& is) +{ + return autoPtr<hRefConstThermo<EquationOfState> > + ( + new hRefConstThermo<EquationOfState>(is) + ); +} + + +template<class EquationOfState> +inline Foam::autoPtr<Foam::hRefConstThermo<EquationOfState> > +Foam::hRefConstThermo<EquationOfState>::New(const dictionary& dict) +{ + return autoPtr<hRefConstThermo<EquationOfState> > + ( + new hRefConstThermo<EquationOfState>(dict) + ); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::limit +( + const scalar T +) const +{ + return T; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::cp +( + const scalar p, + const scalar T +) const +{ + return Cp_; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::ha +( + const scalar p, const scalar T +) const +{ + return Cp_*(T-Tref_) + Href_ + Hf_; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::hs +( + const scalar p, const scalar T +) const +{ + return Cp_*(T-Tref_) + Href_ ; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::hc() const +{ + return Hf_; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::s +( + const scalar p, const scalar T +) const +{ + return Cp_*log(T/Tstd) + EquationOfState::s(p, T); +} + + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template<class EquationOfState> +inline void Foam::hRefConstThermo<EquationOfState>::operator+= +( + const hRefConstThermo<EquationOfState>& ct +) +{ + scalar molr1 = this->nMoles(); + + EquationOfState::operator+=(ct); + + molr1 /= this->nMoles(); + scalar molr2 = ct.nMoles()/this->nMoles(); + + Cp_ = molr1*Cp_ + molr2*ct.Cp_; + Hf_ = molr1*Hf_ + molr2*ct.Hf_; +} + + +template<class EquationOfState> +inline void Foam::hRefConstThermo<EquationOfState>::operator-= +( + const hRefConstThermo<EquationOfState>& ct +) +{ + scalar molr1 = this->nMoles(); + + EquationOfState::operator-=(ct); + + molr1 /= this->nMoles(); + scalar molr2 = ct.nMoles()/this->nMoles(); + + Cp_ = molr1*Cp_ - molr2*ct.Cp_; + Hf_ = molr1*Hf_ - molr2*ct.Hf_; +} + + +// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState> Foam::operator+ +( + const hRefConstThermo<EquationOfState>& ct1, + const hRefConstThermo<EquationOfState>& ct2 +) +{ + EquationOfState eofs + ( + static_cast<const EquationOfState&>(ct1) + + static_cast<const EquationOfState&>(ct2) + ); + + return hRefConstThermo<EquationOfState> + ( + eofs, + ct1.nMoles()/eofs.nMoles()*ct1.Cp_ + + ct2.nMoles()/eofs.nMoles()*ct2.Cp_, + ct1.nMoles()/eofs.nMoles()*ct1.Hf_ + + ct2.nMoles()/eofs.nMoles()*ct2.Hf_, + ct1.nMoles()/eofs.nMoles()*ct1.Tref_ + + ct2.nMoles()/eofs.nMoles()*ct2.Tref_, + ct1.nMoles()/eofs.nMoles()*ct1.Href_ + + ct2.nMoles()/eofs.nMoles()*ct2.Href_ + ); +} + + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState> Foam::operator- +( + const hRefConstThermo<EquationOfState>& ct1, + const hRefConstThermo<EquationOfState>& ct2 +) +{ + EquationOfState eofs + ( + static_cast<const EquationOfState&>(ct1) + - static_cast<const EquationOfState&>(ct2) + ); + + return hRefConstThermo<EquationOfState> + ( + eofs, + ct1.nMoles()/eofs.nMoles()*ct1.Cp_ + - ct2.nMoles()/eofs.nMoles()*ct2.Cp_, + ct1.nMoles()/eofs.nMoles()*ct1.Hf_ + - ct2.nMoles()/eofs.nMoles()*ct2.Hf_ + ); +} + + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState> Foam::operator* +( + const scalar s, + const hRefConstThermo<EquationOfState>& ct +) +{ + return hRefConstThermo<EquationOfState> + ( + s*static_cast<const EquationOfState&>(ct), + ct.Cp_, + ct.Hf_, + ct.Tref_, + ct.Href_ + ); +} + + +template<class EquationOfState> +inline Foam::hRefConstThermo<EquationOfState> Foam::operator== +( + const hRefConstThermo<EquationOfState>& ct1, + const hRefConstThermo<EquationOfState>& ct2 +) +{ + return ct2 - ct1; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/0.org/include/frontBackTopBottomPatches b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/0.org/include/frontBackTopBottomPatches index 462f4ee594a9c3fc23a28393528f1d3f5689696d..01475bef7517bfe4a67233fe13da22449c89d267 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/0.org/include/frontBackTopBottomPatches +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/0.org/include/frontBackTopBottomPatches @@ -13,7 +13,7 @@ topAndBottom front { - type empty + type empty; } back diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/0.org/include/frontBackTopBottomPatches b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/0.org/include/frontBackTopBottomPatches index 462f4ee594a9c3fc23a28393528f1d3f5689696d..01475bef7517bfe4a67233fe13da22449c89d267 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/0.org/include/frontBackTopBottomPatches +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/0.org/include/frontBackTopBottomPatches @@ -13,7 +13,7 @@ topAndBottom front { - type empty + type empty; } back diff --git a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSchemes b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSchemes index ac5bbc54b1aaaddaede2b31378ea16b12c3f05bc..c861bbec908a31a1e699e31d6b8afb46996b2a48 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSchemes +++ b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSchemes @@ -32,7 +32,7 @@ divSchemes "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; - "div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1; + "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" Gauss limitedLinearV 1; } diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSchemes b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSchemes index acf13bc703e802af5760499ee6b4b7c4248d372a..bed046cf3af0bffa43134a3185f4b1a7e5caa619 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSchemes +++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSchemes @@ -30,7 +30,7 @@ divSchemes "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; - "div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1; + "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" Gauss limitedLinearV 1; } diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSchemes b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSchemes index acf13bc703e802af5760499ee6b4b7c4248d372a..bed046cf3af0bffa43134a3185f4b1a7e5caa619 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSchemes +++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSchemes @@ -30,7 +30,7 @@ divSchemes "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; - "div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1; + "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" Gauss limitedLinearV 1; } diff --git a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSchemes index acf13bc703e802af5760499ee6b4b7c4248d372a..bed046cf3af0bffa43134a3185f4b1a7e5caa619 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSchemes +++ b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSchemes @@ -30,7 +30,7 @@ divSchemes "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; - "div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1; + "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" Gauss limitedLinearV 1; } diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.air new file mode 100644 index 0000000000000000000000000000000000000000..9c0fd4206c19f34a05d8c05da28254b22882ebcf --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.air @@ -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 volScalarField; + object Tair; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + walls + { + type zeroGradient; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + inlet + { + type fixedValue; + value $internalField; + } + frontAndBackPlanes + { + type empty; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.water new file mode 100644 index 0000000000000000000000000000000000000000..e592c501d54f0421cc5df1b3ed3954cfb6969b1d --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/T.water @@ -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 volScalarField; + object Twater; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 350; + +boundaryField +{ + walls + { + type zeroGradient; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue $internalField; + value $internalField; + } + inlet + { + type fixedValue; + value $internalField; + } + frontAndBackPlanes + { + type empty; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/Theta b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/Theta new file mode 100644 index 0000000000000000000000000000000000000000..4cfbc0bbea6c52a5519b248519971e310d8fce96 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/Theta @@ -0,0 +1,47 @@ +/*--------------------------------*- 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; + object Theta; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 1.0e-7; + } + + outlet + { + type inletOutlet; + inletValue uniform 1.0e-7; + value uniform 1.0e-7; + } + + walls + { + type zeroGradient; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.air new file mode 100644 index 0000000000000000000000000000000000000000..e81fffac0612e0a20d26f1cb9be4211ba4be9a16 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.air @@ -0,0 +1,41 @@ +/*--------------------------------*- 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 binary; + class volVectorField; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0.1 0); + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type pressureInletOutletVelocity; + phi phi.air; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.water new file mode 100644 index 0000000000000000000000000000000000000000..aab00fd78bb2a097604737fb5b1b77d2ae159967 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/U.water @@ -0,0 +1,41 @@ +/*--------------------------------*- 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 binary; + class volVectorField; + object U.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type pressureInletOutletVelocity; + phi phi.water; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air new file mode 100644 index 0000000000000000000000000000000000000000..1b1a35684a06787a1eb3cb75f388563aad1443a1 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air @@ -0,0 +1,1926 @@ +/*--------------------------------*- 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 alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField nonuniform List<scalar> +1875 +( +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +) +; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.5; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue uniform 1; + value uniform 1; + } + walls + { + type zeroGradient; + } + defaultFaces + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org new file mode 100644 index 0000000000000000000000000000000000000000..4472b0c63598b7f95acf8d79fac10b3e9a08ebf7 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.5; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue uniform 1; + value uniform 1; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water new file mode 100644 index 0000000000000000000000000000000000000000..92b1a774aaa20e5773761c89bc973a4e0695fc03 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water @@ -0,0 +1,1926 @@ +/*--------------------------------*- 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 alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField nonuniform List<scalar> +1875 +( +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +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 +) +; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.5; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue uniform 0; + value uniform 0; + } + walls + { + type zeroGradient; + } + defaultFaces + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water.org b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water.org new file mode 100644 index 0000000000000000000000000000000000000000..75a49e4169330526ff467f3f6be339845eaeb9b5 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/alpha.water.org @@ -0,0 +1,41 @@ +/*--------------------------------*- 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; + object alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.5; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue uniform 0; + value uniform 0; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p new file mode 100644 index 0000000000000000000000000000000000000000..0af317df79295b2d0ec3fbd7e89f1ecdc122119f --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p @@ -0,0 +1,40 @@ +/*--------------------------------*- 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; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type calculated; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p_rgh b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p_rgh new file mode 100644 index 0000000000000000000000000000000000000000..de5ac9e4379285e390239add1bd4e2ac6fe8c51e --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/0/p_rgh @@ -0,0 +1,41 @@ +/*--------------------------------*- 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; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + value $internalField; + } + outlet + { + type prghPressure; + p $internalField; + value $internalField; + } + walls + { + type fixedFluxPressure; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/g b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/g new file mode 100644 index 0000000000000000000000000000000000000000..0cc222ca3457ed24bf9753d0926fbee84359e624 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- 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 uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties new file mode 100644 index 0000000000000000000000000000000000000000..98192e477f8097c3691a1d9a90b6a882a1212002 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties @@ -0,0 +1,166 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object phaseProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type heatAndMomentumTransferMultiphaseSystem; + +phases (air water); + +air +{ + type purePhaseModel; + diameterModel isothermal; + isothermalCoeffs + { + d0 3e-3; + p0 1e5; + } + + residualAlpha 1e-6; +} + +water +{ + type purePhaseModel; + diameterModel constant; + constantCoeffs + { + d 1e-4; + } + + residualAlpha 1e-6; +} + +blending +{ + default + { + type linear; + minFullyContinuousAlpha.air 0.7; + minPartlyContinuousAlpha.air 0.5; + minFullyContinuousAlpha.water 0.7; + minPartlyContinuousAlpha.water 0.5; + } +} + +surfaceTension +( + (air and water) + { + type constant; + sigma 0.07; + } +); + +interfaceCompression +(); + +aspectRatio +( + (air in water) + { + type constant; + E0 1.0; + } + + (water in air) + { + type constant; + E0 1.0; + } +); + +drag +( + (air in water) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water in air) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (air and water) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } +); + +virtualMass +( + (air in water) + { + type constantCoefficient; + Cvm 0.5; + } + + (water in air) + { + type constantCoefficient; + Cvm 0.5; + } +); + +heatTransfer +( + (air in water) + { + type RanzMarshall; + residualAlpha 1e-4; + } + + (water in air) + { + type RanzMarshall; + residualAlpha 1e-4; + } +); + +lift +(); + +wallLubrication +(); + +turbulentDispersion +(); + +// Minimum allowable pressure +pMin 10000; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/boundary b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..4564ccc46a64685c98cc53274688263dee85086a --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/boundary @@ -0,0 +1,48 @@ +/*--------------------------------*- 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 +( + inlet + { + type patch; + nFaces 25; + startFace 3650; + } + outlet + { + type patch; + nFaces 25; + startFace 3675; + } + walls + { + type wall; + inGroups 1(wall); + nFaces 150; + startFace 3700; + } + defaultFaces + { + type empty; + inGroups 1(empty); + nFaces 3750; + startFace 3850; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air new file mode 100644 index 0000000000000000000000000000000000000000..befc0aeae449cccc50a24e955083b88b914aba67 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air @@ -0,0 +1,49 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 28.9; + } + thermodynamics + { + Cp 1007; + Hf 0; + } + transport + { + mu 1.84e-05; + Pr 0.7; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..c44c005d3b17561dc32c9e32262b37dc348aecc3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water @@ -0,0 +1,54 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectFluid; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 18; + } + equationOfState + { + R 3000; + rho0 1027; + } + thermodynamics + { + Cp 4195; + Hf 0; + } + transport + { + mu 3.645e-4; + Pr 2.289; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air new file mode 100644 index 0000000000000000000000000000000000000000..1296429b72a21953def920b08774aa75e1d048b1 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..7f0d75a82fcdc99677fa0be8a4111cfe91e4a82c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/blockMeshDict b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..d03967afdc2ccf7afbecdf32d50159c309a475e3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/blockMeshDict @@ -0,0 +1,61 @@ +/*--------------------------------*- 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 dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (0 0 0) + (0.15 0 0) + (0.15 1 0) + (0 1 0) + (0 0 0.1) + (0.15 0 0.1) + (0.15 1 0.1) + (0 1 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (25 75 1) simpleGrading (1 1 1) +); + +edges +( +); + +patches +( + patch inlet + ( + (1 5 4 0) + ) + patch outlet + ( + (3 7 6 2) + ) + wall walls + ( + (0 4 7 3) + (2 6 5 1) + ) +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/controlDict b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..c718db4669614a94ede5131d937b4cb0ed802e66 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/controlDict @@ -0,0 +1,95 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application reactingMultiphaseEulerFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 100; + +deltaT 0.005; + +writeControl runTime; + +writeInterval 1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression uncompressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 1; + +functions0 +{ + fieldAverage1 + { + type fieldAverage; + functionObjectLibs ( "libfieldFunctionObjects.so" ); + outputControl outputTime; + fields + ( + U.air + { + mean on; + prime2Mean off; + base time; + } + + U.water + { + mean on; + prime2Mean off; + base time; + } + + alpha.air + { + mean on; + prime2Mean off; + base time; + } + + p + { + mean on; + prime2Mean off; + base time; + } + ); + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSchemes b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..3560150851a839a3afec0a35363d153c65600bc2 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSchemes @@ -0,0 +1,63 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + div(phi,alpha.air) Gauss vanLeer; + div(phi,alpha.water) Gauss vanLeer; + div(phir,alpha.water,alpha.air) Gauss vanLeer; + div(phir,alpha.air,alpha.water) Gauss vanLeer; + + "div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1; + "div\(phi.*,U.*\)" Gauss limitedLinearV 1; + + "div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; + "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; + + "div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default uncorrected; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSolution b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..06c5db7aee0c677f3bb6b3b5a45be3e53829c17f --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/fvSolution @@ -0,0 +1,82 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "alpha.*" + { + nAlphaCorr 1; + nAlphaSubCycles 2; + } + + p_rgh + { + solver GAMG; + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + tolerance 1e-8; + relTol 0; + } + + p_rghFinal + { + $p_rgh; + relTol 0; + } + + "U.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-5; + relTol 0; + minIter 1; + } + + "e.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; + minIter 1; + } +} + +PIMPLE +{ + nOuterCorrectors 3; + nCorrectors 1; + nNonOrthogonalCorrectors 0; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/setFieldsDict b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..93d742ba74a2424f861b51d1c5d2d8211a625715 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/system/setFieldsDict @@ -0,0 +1,36 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue alpha.air 1 +); + +regions +( + boxToCell + { + box (0 0 -0.1) (0.15 0.701 0.1); + fieldValues + ( + volScalarFieldValue alpha.air 0 + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.air new file mode 100644 index 0000000000000000000000000000000000000000..328ba98e8d870c0b901521d2c87a5b6c7e9147f3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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 T.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0]; + +internalField uniform 300; + +boundaryField +{ + rotor + { + type zeroGradient; + value uniform 300; + } + + stator + { + type zeroGradient; + value uniform 300; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.mercury new file mode 100644 index 0000000000000000000000000000000000000000..7e5ba636aad42c4c714e67728944297e7c99909c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.mercury @@ -0,0 +1,48 @@ +/*--------------------------------*- 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 T.mercury; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0]; + +internalField uniform 300; + +boundaryField +{ + rotor + { + type zeroGradient; + value uniform 300; + } + + stator + { + type zeroGradient; + value uniform 300; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.oil new file mode 100644 index 0000000000000000000000000000000000000000..bd22fff2fec44f88d14d57f04c29ee3f0e51180c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.oil @@ -0,0 +1,48 @@ +/*--------------------------------*- 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 T.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0]; + +internalField uniform 300; + +boundaryField +{ + rotor + { + type zeroGradient; + value uniform 300; + } + + stator + { + type zeroGradient; + value uniform 300; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.water new file mode 100644 index 0000000000000000000000000000000000000000..0671cbf1ad3eb2f94e99be56a90c646772201993 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/T.water @@ -0,0 +1,48 @@ +/*--------------------------------*- 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 T.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0]; + +internalField uniform 300; + +boundaryField +{ + rotor + { + type zeroGradient; + value uniform 300; + } + + stator + { + type zeroGradient; + value uniform 300; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/Theta b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/Theta new file mode 100644 index 0000000000000000000000000000000000000000..b18d202df894c0276dd7f546fd3820cd154623e4 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/Theta @@ -0,0 +1,44 @@ +/*--------------------------------*- 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; + object Theta; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.air new file mode 100644 index 0000000000000000000000000000000000000000..6c91343655a215322430abb2118c736c7a29c320 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.air @@ -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 volVectorField; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.mercury new file mode 100644 index 0000000000000000000000000000000000000000..44441b84d810a004f81774fbeaafb4cb3e69733b --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.mercury @@ -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 volVectorField; + object U.mercury; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.oil new file mode 100644 index 0000000000000000000000000000000000000000..9f6f8f999c1d8f20da566c7f059526673aba4057 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.oil @@ -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 volVectorField; + object U.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.water new file mode 100644 index 0000000000000000000000000000000000000000..65f9af410b9aa3707d3d7115d13c3eab8df30b2c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/U.water @@ -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 volVectorField; + object U.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.air new file mode 100644 index 0000000000000000000000000000000000000000..1b2bf4793ddb5ba501463984414aecff2c45707d --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.air @@ -0,0 +1,44 @@ +/*--------------------------------*- 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; + object alpha.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.1; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.mercury new file mode 100644 index 0000000000000000000000000000000000000000..a75393eb38b13c1a0cd8c672e527e42f22c6ffa3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.mercury @@ -0,0 +1,44 @@ +/*--------------------------------*- 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; + object alpha.mercury; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.1; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.oil new file mode 100644 index 0000000000000000000000000000000000000000..fe67cfa6add7749d5c4a13b29bbb51dd31b0e516 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.oil @@ -0,0 +1,44 @@ +/*--------------------------------*- 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; + object alpha.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.1; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.water new file mode 100644 index 0000000000000000000000000000000000000000..8e47199187f25fc104fd80080125ada84e499d24 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/alpha.water @@ -0,0 +1,44 @@ +/*--------------------------------*- 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; + object alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.7; + +boundaryField +{ + rotor + { + type zeroGradient; + } + + stator + { + type zeroGradient; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p new file mode 100644 index 0000000000000000000000000000000000000000..515add92dbe796b854e1e2f28299b863f17db151 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p @@ -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 volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + rotor + { + type calculated; + value $internalField; + } + + stator + { + type calculated; + value $internalField; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p_rgh b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p_rgh new file mode 100644 index 0000000000000000000000000000000000000000..1e32488272935c1c47ff98f43710ebaffe09d38c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/0/p_rgh @@ -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 volScalarField; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + rotor + { + type fixedFluxPressure; + value $internalField; + } + + stator + { + type fixedFluxPressure; + value $internalField; + } + + front + { + type empty; + } + + back + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/Allrun b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..349ea685ea56c4967077cdb6bb6963a6b61c7c63 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application=`getApplication` + +runApplication ./makeMesh +runApplication $application + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/MRFProperties b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/MRFProperties new file mode 100644 index 0000000000000000000000000000000000000000..c604aa7e2c4631238b2e0535d4786c4245c2dd5b --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/MRFProperties @@ -0,0 +1,31 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object MRFProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +MRF1 +{ + cellZone rotor; + active yes; + + // Fixed patches (by default they 'move' with the MRF zone) + nonRotatingPatches (); + + origin (0 0 0); + axis (0 0 1); + omega constant 10.472; +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/g b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/g new file mode 100644 index 0000000000000000000000000000000000000000..508d65849430f8e5abf4b12d7baa53d70521a1c3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- 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 uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 0 0); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties new file mode 100644 index 0000000000000000000000000000000000000000..371c656ea3d9f4cde5f5921116cf934d947d33c8 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties @@ -0,0 +1,459 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object phaseProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type heatAndMomentumTransferMultiphaseSystem; + +phases (water oil mercury air); + +water +{ + type purePhaseModel; + diameterModel constant; + constantCoeffs + { + d 1e-3; + } + + residualAlpha 1e-3; +} + +oil +{ + type purePhaseModel; + diameterModel constant; + constantCoeffs + { + d 1e-3; + } + + residualAlpha 1e-3; +} + +mercury +{ + type purePhaseModel; + diameterModel constant; + constantCoeffs + { + d 1e-3; + } + + residualAlpha 1e-3; +} + +air +{ + type purePhaseModel; + diameterModel isothermal; + isothermalCoeffs + { + d0 1e-3; + p0 1e5; + } + + residualAlpha 1e-3; +} + +blending +{ + default + { + type linear; + minFullyContinuousAlpha.water 0.7; + minPartlyContinuousAlpha.water 0.5; + minFullyContinuousAlpha.oil 0.7; + minPartlyContinuousAlpha.oil 0.5; + minFullyContinuousAlpha.mercury 0.7; + minPartlyContinuousAlpha.mercury 0.5; + minFullyContinuousAlpha.air 0.7; + minPartlyContinuousAlpha.air 0.5; + } +} + +surfaceTension +( + (air and water) + { + type constant; + sigma 0.07; + } + (air and oil) + { + type constant; + sigma 0.07; + } + (air and mercury) + { + type constant; + sigma 0.07; + } + (water and oil) + { + type constant; + sigma 0; + } + (water and mercury) + { + type constant; + sigma 0; + } + (oil and mercury) + { + type constant; + sigma 0; + } +); + +interfaceCompression +( + (air and water) 0 + (air and oil) 0 + (air and mercury) 0 + (water and oil) 0 + (water and mercury) 0 + (oil and mercury) 0 +); + +aspectRatio +(); + +drag +( + (air in water) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water in air) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (air and water) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } + + + (air in oil) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (oil in air) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (air and oil) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } + + + (air in mercury) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (mercury in air) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (air and mercury) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } + + + + (water in oil) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (oil in water) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water and oil) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } + + + (water in mercury) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (mercury in water) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water and mercury) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } + + + + (oil in mercury) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (mercury in oil) + { + type SchillerNaumann; + + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (oil and mercury) + { + type segregated; + + m 0.5; + n 8; + swarmCorrection + { + type none; + } + } +); + +virtualMass +( + (air in water) + { + type constantCoefficient; + Cvm 0.5; + } + + (air in oil) + { + type constantCoefficient; + Cvm 0.5; + } + + (air in mercury) + { + type constantCoefficient; + Cvm 0.5; + } +); + +heatTransfer +( + (air in water) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (water in air) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (air in oil) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (oil in air) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (air in mercury) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (mercury in air) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + + (water in oil) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (oil in water) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (water in mercury) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (mercury in water) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + + (oil in mercury) + { + type RanzMarshall; + residualAlpha 1e-3; + } + + (mercury in oil) + { + type RanzMarshall; + residualAlpha 1e-3; + } +); + +lift +(); + +wallLubrication +(); + +turbulentDispersion +(); + +// Minimum allowable pressure +pMin 10000; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/boundary b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..5c2a6cf99c517b8361b84403c7ca9833023efacd --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/boundary @@ -0,0 +1,50 @@ +/*--------------------------------*- 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; + inGroups 1(wall); + nFaces 192; + startFace 5952; + } + stator + { + type wall; + inGroups 1(wall); + nFaces 192; + startFace 6144; + } + front + { + type empty; + inGroups 1(empty); + nFaces 3072; + startFace 6336; + } + back + { + type empty; + inGroups 1(empty); + nFaces 3072; + startFace 9408; + } +) + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air new file mode 100644 index 0000000000000000000000000000000000000000..befc0aeae449cccc50a24e955083b88b914aba67 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air @@ -0,0 +1,49 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 28.9; + } + thermodynamics + { + Cp 1007; + Hf 0; + } + transport + { + mu 1.84e-05; + Pr 0.7; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury new file mode 100644 index 0000000000000000000000000000000000000000..864b73f24ed46cd5a98077e047c7f42fe59813b6 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury @@ -0,0 +1,53 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 200; + } + equationOfState + { + rho 13529; + } + thermodynamics + { + Cp 135; + Hf 0; + } + transport + { + mu 8.6e-4; + Pr 111; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil new file mode 100644 index 0000000000000000000000000000000000000000..7c0d16aa9032291695160a419c602513111823f6 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil @@ -0,0 +1,53 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 160; + } + equationOfState + { + rho 500; + } + thermodynamics + { + Cp 4195; + Hf 0; + } + transport + { + mu 5e-4; + Pr 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..c44c005d3b17561dc32c9e32262b37dc348aecc3 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water @@ -0,0 +1,54 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectFluid; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 18; + } + equationOfState + { + R 3000; + rho0 1027; + } + thermodynamics + { + Cp 4195; + Hf 0; + } + transport + { + mu 3.645e-4; + Pr 2.289; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air new file mode 100644 index 0000000000000000000000000000000000000000..1296429b72a21953def920b08774aa75e1d048b1 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.mercury new file mode 100644 index 0000000000000000000000000000000000000000..cf1ca5634deeb52e0727d005edc98a38eb5dd07b --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.mercury @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.mercury; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.oil new file mode 100644 index 0000000000000000000000000000000000000000..eb2604b78c1f4eed2f80c0048ea6760cf9075dee --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.oil @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.oil; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..7f0d75a82fcdc99677fa0be8a4111cfe91e4a82c --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/makeMesh b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/makeMesh new file mode 100755 index 0000000000000000000000000000000000000000..4d667956a0a85573c003797a5e2385cba6296964 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/makeMesh @@ -0,0 +1,6 @@ +#!/bin/sh + +m4 < system/blockMeshDict.m4 > system/blockMeshDict +blockMesh +topoSet +setsToZones -noFlipMap diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/blockMeshDict.m4 b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..a93868498ba68d11b25b0875ff69205f62f822ed --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/blockMeshDict.m4 @@ -0,0 +1,818 @@ +/*--------------------------------*- 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 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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/controlDict b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..8ac877bb69fb9d3cf9657f2a29090dc0ff8ab351 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/controlDict @@ -0,0 +1,55 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application reactingMultiphaseEulerFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5; + +deltaT 1e-4; + +writeControl adjustableRunTime; + +writeInterval 0.1; + +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/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..4cd730fdd386c14eeb4e2303c29856cdad5ef63b --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes @@ -0,0 +1,58 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + "div\(phi,alpha.*\)" Gauss vanLeer; + "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; + + "div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1; + "div\(phi.*,U.*\)" Gauss limitedLinearV 1; + + "div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; + "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; + + "div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..a49313e5c009dd498b4f9f516a0471f1aa2ab441 --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution @@ -0,0 +1,109 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "alpha.*" + { + nAlphaSubCycles 2; + } + + p_rgh + { + solver GAMG; + tolerance 1e-7; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } + + p_rghFinal + { + solver PCG; + preconditioner + { + preconditioner GAMG; + tolerance 1e-7; + relTol 0; + nVcycles 2; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } + tolerance 1e-7; + relTol 0; + maxIter 30; + } + + pcorr + { + $p_rghFinal; + tolerance 1e-5; + relTol 0; + } + + "U.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-5; + relTol 0; + minIter 1; + } + + "e.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; + minIter 1; + maxIter 10; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 3; + nNonOrthogonalCorrectors 0; + + pRefCell 0; + pRefValue 0; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/topoSetDict b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/topoSetDict new file mode 100644 index 0000000000000000000000000000000000000000..bf749449bfe3a53cee9b2d709eb66a9b2aff4bfe --- /dev/null +++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/topoSetDict @@ -0,0 +1,32 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name rotor; + type cellSet; + action new; + source zoneToCell; + sourceInfo + { + name rotor; + } + } +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water new file mode 100644 index 0000000000000000000000000000000000000000..3ae0a65592e12a3e4de29a4f74fbdbe0d359f0fd --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water new file mode 100644 index 0000000000000000000000000000000000000000..3ae0a65592e12a3e4de29a4f74fbdbe0d359f0fd --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/0/alphat.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/0/alphat.gas new file mode 100644 index 0000000000000000000000000000000000000000..de0de301914bd2350f7be7483c62bfd33b74e418 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/0/alphat.gas @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles new file mode 100644 index 0000000000000000000000000000000000000000..b047d8d119ee3e73504c1aae0b99a3a3258975e3 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles @@ -0,0 +1,47 @@ +/*--------------------------------*- 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; + object alphat.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles new file mode 100644 index 0000000000000000000000000000000000000000..b047d8d119ee3e73504c1aae0b99a3a3258975e3 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles @@ -0,0 +1,47 @@ +/*--------------------------------*- 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; + object alphat.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.steam new file mode 100644 index 0000000000000000000000000000000000000000..c0cd064e4942d60a22f33b15bbe73c066c302b40 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.steam @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 T.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 372.76; + +boundaryField +{ + walls + { + type zeroGradient; + } + outlet + { + type inletOutlet; + phi phi.steam; + inletValue $internalField; + value $internalField; + } + inlet + { + type fixedValue; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.water new file mode 100644 index 0000000000000000000000000000000000000000..16c68c31f2f5f7feac053d35286deb17477acb00 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/T.water @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 T.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 360; + +boundaryField +{ + walls + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue $internalField; + value $internalField; + } + inlet + { + type zeroGradient; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.steam new file mode 100644 index 0000000000000000000000000000000000000000..15d945857aa8cce22ae064b96fcbc715d9f0b658 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.steam @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 binary; + class volVectorField; + location "0"; + object U.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0.1 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (0 0.1 0); + } + outlet + { + type pressureInletOutletVelocity; + phi phi.steam; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.water new file mode 100644 index 0000000000000000000000000000000000000000..256fe1cb1ad4edbfa5a2c80df7a5285516a71f6d --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/U.water @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 binary; + class volVectorField; + location "0"; + object U.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0.1 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (0 0.1 0); + } + outlet + { + type pressureInletOutletVelocity; + phi phi.water; + value $internalField; + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.steam new file mode 100644 index 0000000000000000000000000000000000000000..0b69e50eed9c2459ed01f5e8ee0c57a52f2fd4e2 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.steam @@ -0,0 +1,47 @@ +/*--------------------------------*- 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 alpha.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 0.; + } + outlet + { + type inletOutlet; + phi phi.steam; + inletValue uniform 0; + value uniform 0; + } + walls + { + type zeroGradient; + } + defaultFaces + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.water new file mode 100644 index 0000000000000000000000000000000000000000..f7aab53be20bfd54b426c6330f07b1840b0babb5 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/alpha.water @@ -0,0 +1,47 @@ +/*--------------------------------*- 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 alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 1.; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue uniform 1.0; + value uniform 1.0; + } + walls + { + type zeroGradient; + } + defaultFaces + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/nut.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/nut.water new file mode 100644 index 0000000000000000000000000000000000000000..634a29a38b52f4f3c7cb531a1294caea3057c86a --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/nut.water @@ -0,0 +1,41 @@ +/*--------------------------------*- 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 nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 1e-8; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p new file mode 100644 index 0000000000000000000000000000000000000000..799576be27a6fc698fbc2681d3a797ed5444feaf --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p @@ -0,0 +1,40 @@ +/*--------------------------------*- 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; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type calculated; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p_rgh b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p_rgh new file mode 100644 index 0000000000000000000000000000000000000000..071e58a3951d6f5f55027c112f391d5fb6354fa6 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/p_rgh @@ -0,0 +1,41 @@ +/*--------------------------------*- 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; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + value $internalField; + } + outlet + { + type prghPressure; + p $internalField; + value $internalField; + } + walls + { + type fixedFluxPressure; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.steam new file mode 100644 index 0000000000000000000000000000000000000000..edd088bc1748af564974fed6f72a91cf8a0f1569 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.steam @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 AIR.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type fixedValue; + value uniform 1; + } + outlet + { + type inletOutlet; + phi phi.steam; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.water new file mode 100644 index 0000000000000000000000000000000000000000..78063efe6644848c740cbdf53d43be67df42eff1 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/0/water.water @@ -0,0 +1,42 @@ +/*--------------------------------*- 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 AIR.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.water; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions new file mode 100644 index 0000000000000000000000000000000000000000..6a3a4da0be7b8d35339eba09a8bb81779e06b1ef --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions @@ -0,0 +1,81 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +injector1 +{ + timeStart 1; + duration 500; + selectionMode points; + points + ( + (0.075 0.2 0.05) + ); +} + +options +{ + massSource1 + { + type scalarSemiImplicitSource; + + scalarSemiImplicitSourceCoeffs + { + $injector1; + + volumeMode absolute; + injectionRateSuSp + { + thermo:rho.steam (1.0e-3 0); // kg/s + } + } + } + + momentumSource1 + { + type vectorSemiImplicitSource; + + vectorSemiImplicitSourceCoeffs + { + $injector1; + + volumeMode absolute; + injectionRateSuSp + { + U.steam ((0 1e-1 0) 0); // kg*m/s^2 + } + } + } + + energySource1 + { + type scalarSemiImplicitSource; + + scalarSemiImplicitSourceCoeffs + { + $injector1; + + volumeMode absolute; + injectionRateSuSp + { + e.steam (3700 0); // kg*m^2/s^3 + } + } + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/g b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/g new file mode 100644 index 0000000000000000000000000000000000000000..0cc222ca3457ed24bf9753d0926fbee84359e624 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- 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 uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties new file mode 100644 index 0000000000000000000000000000000000000000..fc976bc67cbfb62885309d8fe16983df67e56061 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties @@ -0,0 +1,222 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object phaseProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type thermalPhaseChangeTwoPhaseSystem; + +phases (steam water); + +volatile "water"; + +massTransfer on; + +steam +{ + type multiComponentPhaseModel; + diameterModel isothermal; + isothermalCoeffs + { + d0 3e-3; + p0 1e5; + } + Sc 0.7; + + residualAlpha 1e-6; +} + +water +{ + type multiComponentPhaseModel; + diameterModel constant; + constantCoeffs + { + d 1e-4; + } + Sc 0.7; + + residualAlpha 1e-6; +} + +blending +{ + default + { + type none; + continuousPhase water; + minFullyContinuousAlpha.steam 0.7; + minPartlyContinuousAlpha.steam 0.5; + minFullyContinuousAlpha.water 0.7; + minPartlyContinuousAlpha.water 0.5; + } + + heatTransfer + { + type none; + continuousPhase water; + minFullyContinuousAlpha.steam 1; + minPartlyContinuousAlpha.steam 0; + minFullyContinuousAlpha.water 1; + minPartlyContinuousAlpha.water 0; + } + + massTransfer + { + type none; + continuousPhase water; + minFullyContinuousAlpha.steam 1; + minPartlyContinuousAlpha.steam 0; + minFullyContinuousAlpha.water 1; + minPartlyContinuousAlpha.water 0; + } +} + +surfaceTension +( + (steam and water) + { + type constant; + sigma 0.07; + } +); + +saturationModel +{ + type constant; + pSat 1e5; + Tsat 372.76; +}; + + +aspectRatio +( + (steam in water) + { + type constant; + E0 1.0; + } + + (water in steam) + { + type constant; + E0 1.0; + } +); + +drag +( + (steam in water) + { + type SchillerNaumann; + residualRe 1e-3; + swarmCorrection + { + type none; + } + } + + (water in steam) + { + type SchillerNaumann; + residualRe 1e-3; + swarmCorrection + { + type none; + } + } +); + +virtualMass +( + (steam in water) + { + type constantCoefficient; + Cvm 0.5; + } + + (water in steam) + { + type constantCoefficient; + Cvm 0.5; + } +); + +interfaceComposition +( + (steam in water) + { + type Saturated; + species ( H2O ); + Le 1.0; + saturationPressure + { + type ArdenBuck; + } + } + +); + +heatTransfer.steam +( + (steam in water) + { + type spherical; + residualAlpha 1e-4; + } +); + +heatTransfer.water +( + (steam in water) + { + type RanzMarshall; + residualAlpha 1e-4; + } +); + +massTransfer.steam +( + +); + +massTransfer.water +( + +); + +lift +( +); + +wallLubrication +( +); + +turbulentDispersion +( + (steam in water) + { + type Burns;// + sigma 0.7; + Ctd 1.0; + residualAlpha 1e-3; + } +); + +// Minimum allowable pressure +pMin 10000; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam new file mode 100644 index 0000000000000000000000000000000000000000..4053b173ee9b236f5a59e34f201ac6f0b808eb17 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multiComponentMixture; + transport const; + thermo hRefConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +species +( + water +); + +inertSpecie water; + +water +{ + specie + { + nMoles 1; + molWeight 18.0153; + } + + thermodynamics + { + Hf 0; + Cp 2078.4; + Tref 372.76; + Href 2675500; + } + + transport + { + mu 1.2256e-5; + Pr 2.289; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..3e40c9dce6afd0967ab22295d4632d5c85ac9cc5 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water @@ -0,0 +1,66 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object thermophysicalProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multiComponentMixture; + transport const; + thermo hRefConst; + equationOfState perfectFluid; + specie specie; + energy sensibleInternalEnergy; +} + +species +( + water +); + +inertSpecie water; + +water +{ + specie + { + nMoles 1; + molWeight 18.0153; + } + + equationOfState + { + R 3000; + rho0 959; + } + + thermodynamics + { + Hf 0; + Cp 4195; + Tref 372.76; + Href 417500; + } + + transport + { + mu 2.8291e-4; + Pr 2.289; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.steam new file mode 100644 index 0000000000000000000000000000000000000000..bdcd006d4ebb10716cd2e6f61a04f99c3547197b --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.steam @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.steam; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.water new file mode 100644 index 0000000000000000000000000000000000000000..2accd9147b9c646528faa05ca02852f1887b67bc --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/turbulenceProperties.water @@ -0,0 +1,20 @@ +/*--------------------------------*- 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 dictionary; + location "constant"; + object turbulenceProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/blockMeshDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..d03967afdc2ccf7afbecdf32d50159c309a475e3 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/blockMeshDict @@ -0,0 +1,61 @@ +/*--------------------------------*- 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 dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (0 0 0) + (0.15 0 0) + (0.15 1 0) + (0 1 0) + (0 0 0.1) + (0.15 0 0.1) + (0.15 1 0.1) + (0 1 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (25 75 1) simpleGrading (1 1 1) +); + +edges +( +); + +patches +( + patch inlet + ( + (1 5 4 0) + ) + patch outlet + ( + (3 7 6 2) + ) + wall walls + ( + (0 4 7 3) + (2 6 5 1) + ) +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..c39421ffae2b7f1020da69844f3ab62337d14fa7 --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict @@ -0,0 +1,55 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application reactingTwoPhaseEulerFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 10; + +deltaT 1e-6; + +writeControl adjustableRunTime; + +writeInterval 0.5; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 10; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.1; + +maxDeltaT 1e-2; + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSchemes b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..2eb1993dc71c9f06b77941c76c349c3dd252af1e --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSchemes @@ -0,0 +1,75 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + "div\(phi,alpha.*\)" Gauss vanLeer; + "div\(phir,alpha.*\)" Gauss vanLeer; + + "div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1; + "div\(phi.*,U.*\)" Gauss limitedLinearV 1; + + "div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; + "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; + + "div\(alphaRhoPhi.*,(k|epsilon).*\)" Gauss limitedLinear 1; + "div\(phim,(k|epsilon)m\)" Gauss limitedLinear 1; + + "div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default uncorrected; +} + +fluxRequired +{ + default no; +} + +wallDist +{ + method meshWave; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..6cf90aa61f3d9656df00ad8bd3f1d185e9cc46bc --- /dev/null +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution @@ -0,0 +1,97 @@ +/*--------------------------------*- 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 dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "alpha.*" + { + nAlphaCorr 1; + nAlphaSubCycles 3; + } + + p_rgh + { + solver PCG; + preconditioner DIC; + tolerance 1e-8; + relTol 0; + } + + p_rghFinal + { + $p_rgh; + relTol 0; + } + + "U.*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0; + minIter 1; + } + + "(e|h).*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0; + minIter 1; + maxIter 20; + } + + "(k|epsilon|Theta).*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; + minIter 1; + } + + Yi + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0; + minIter 1; + residualAlpha 1e-8; + } +} + +PIMPLE +{ + nOuterCorrectors 4; + nCorrectors 1; + nNonOrthogonalCorrectors 0; + nEnergyCorrectors 1; + faceMomentum on; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water new file mode 100644 index 0000000000000000000000000000000000000000..3ae0a65592e12a3e4de29a4f74fbdbe0d359f0fd --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/0/alphat.water @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water new file mode 100644 index 0000000000000000000000000000000000000000..3ae0a65592e12a3e4de29a4f74fbdbe0d359f0fd --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/0/alphat.water @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air new file mode 100644 index 0000000000000000000000000000000000000000..60979da94f4cd22aaa91059d363efb400f581977 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.air @@ -0,0 +1,48 @@ +/*--------------------------------*- 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; + object alphat.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles new file mode 100644 index 0000000000000000000000000000000000000000..b047d8d119ee3e73504c1aae0b99a3a3258975e3 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/0/alphat.particles @@ -0,0 +1,47 @@ +/*--------------------------------*- 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; + object alphat.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles new file mode 100644 index 0000000000000000000000000000000000000000..b047d8d119ee3e73504c1aae0b99a3a3258975e3 --- /dev/null +++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/0/alphat.particles @@ -0,0 +1,47 @@ +/*--------------------------------*- 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; + object alphat.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } + + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/wmake/rules/linuxPPC64leGcc/c++ b/wmake/rules/linuxPPC64leGcc/c++ index 0eec42b85e1f91c74b9801777989f855a22d5a50..284007b730e09d87e094cdf1e52aa3db31af6084 100644 --- a/wmake/rules/linuxPPC64leGcc/c++ +++ b/wmake/rules/linuxPPC64leGcc/c++ @@ -20,5 +20,5 @@ cpptoo = $(Ctoo) LINK_LIBS = $(c++DBUG) -LINKLIBSO = $(CC) $(c++FLAGS) -shared -LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed +LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed +LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed