diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H index 87794f8a47661622e2e03b4e0deaf0edd2d068cd..b24e0a8d5ddc00eea526690389b33fb62163c35c 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H @@ -19,7 +19,7 @@ if (transonic) fvc::interpolate(psi) *( (fvc::interpolate(U) & mesh.Sf()) - + fvc::ddtPhiCorr(rAU, rho, U, phi) + //+ fvc::ddtPhiCorr(rAU, rho, U, phi) ) ); mrfZones.relativeFlux(fvc::interpolate(psi), phid); diff --git a/applications/solvers/compressible/rhoSimpleFoam/Allwmake b/applications/solvers/compressible/rhoSimpleFoam/Allwmake index d4c5bc282827d9be51b47f46630cac5edc022b9e..33916c7b39c519b09755699c6d36314c30a5859d 100755 --- a/applications/solvers/compressible/rhoSimpleFoam/Allwmake +++ b/applications/solvers/compressible/rhoSimpleFoam/Allwmake @@ -3,6 +3,6 @@ cd ${0%/*} || exit 1 # run from this directory set -x wmake -wmake rhoPorousSimpleFoam +wmake rhoPorousMRFSimpleFoam # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..d4792428af5f610d9cdfb8ef3ecc1c34c89abc50 --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files @@ -0,0 +1,3 @@ +rhoPorousMRFSimpleFoam.C + +EXE = $(FOAM_APPBIN)/rhoPorousMRFSimpleFoam diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/options similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/options diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/UEqn.H similarity index 96% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/UEqn.H index c600b1ca0bf90734ddf3a48ad097238cec6c6f42..c0e087b536c3ffdffb01214e7204b13abfba8a46 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/UEqn.H @@ -8,6 +8,8 @@ UEqn().relax(); + mrfZones.addCoriolis(rho, UEqn()); + // Include the porous media resistance and solve the momentum equation // either implicit in the tensorial resistance or transport using by // including the spherical part of the resistance in the momentum diagonal diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H similarity index 91% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H index 8640b360e086df19dc8c7408872772ce5adfd2d8..78a96429f6da7e213139d7c33c387ae137bd6642 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H @@ -1,3 +1,6 @@ + MRFZones mrfZones(mesh); + mrfZones.correctBoundaryVelocity(U); + thermalPorousZones pZones(mesh); Switch pressureImplicitPorosity(false); @@ -24,4 +27,3 @@ Info<< "Using pressure explicit porosity" << endl; } } - diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/hEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/hEqn.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/hEqn.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/hEqn.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..44b391a7b5585edafef64da626d5ce1126c8d436 --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H @@ -0,0 +1,105 @@ +if (pressureImplicitPorosity) +{ + U = trTU()&UEqn().H(); +} +else +{ + U = trAU()*UEqn().H(); +} + +UEqn.clear(); + +bool closedVolume = false; + +if (transonic) +{ + surfaceScalarField phid + ( + "phid", + fvc::interpolate(psi)*(fvc::interpolate(U) & mesh.Sf()) + ); + mrfZones.relativeFlux(fvc::interpolate(psi), phid); + + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + { + tmp<fvScalarMatrix> tpEqn; + + if (pressureImplicitPorosity) + { + tpEqn = (fvc::div(phid, p) - fvm::laplacian(rho*trTU(), p)); + } + else + { + tpEqn = (fvc::div(phid, p) - fvm::laplacian(rho*trAU(), p)); + } + + tpEqn().setReference(pRefCell, pRefValue); + + tpEqn().solve(); + + if (nonOrth == nNonOrthCorr) + { + phi == tpEqn().flux(); + } + } +} +else +{ + phi = fvc::interpolate(rho*U) & mesh.Sf(); + mrfZones.relativeFlux(fvc::interpolate(rho), phi); + + closedVolume = adjustPhi(phi, U, p); + + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + { + tmp<fvScalarMatrix> tpEqn; + + if (pressureImplicitPorosity) + { + tpEqn = (fvm::laplacian(rho*trTU(), p) == fvc::div(phi)); + } + else + { + tpEqn = (fvm::laplacian(rho*trAU(), p) == fvc::div(phi)); + } + + tpEqn().setReference(pRefCell, pRefValue); + + tpEqn().solve(); + + if (nonOrth == nNonOrthCorr) + { + phi -= tpEqn().flux(); + } + } +} + +#include "incompressible/continuityErrs.H" + +// Explicitly relax pressure for momentum corrector +p.relax(); + +if (pressureImplicitPorosity) +{ + U -= trTU()&fvc::grad(p); +} +else +{ + U -= trAU()*fvc::grad(p); +} + +U.correctBoundaryConditions(); + +// For closed-volume cases adjust the pressure and density levels +// to obey overall mass continuity +if (closedVolume) +{ + p += (initialMass - fvc::domainIntegrate(psi*p)) + /fvc::domainIntegrate(psi); +} + +rho = thermo.rho(); +rho = max(rho, rhoMin); +rho = min(rho, rhoMax); +rho.relax(); +Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl; diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C similarity index 93% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C index b0a99e330645375ae55c96f4ca7c65fcdf8db12b..83898240ffc4017e79fb7822e073c6a9e9467777 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C @@ -26,13 +26,15 @@ Application Description Steady-state solver for turbulent flow of compressible fluids with - RANS turbulence modelling, and implicit or explicit porosity treatment + RANS turbulence modelling, implicit or explicit porosity treatment + and MRF for HVAC and similar applications. \*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "basicPsiThermo.H" #include "RASModel.H" +#include "MRFZones.H" #include "thermalPorousZones.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -43,7 +45,7 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" - #include "createPorousZones.H" + #include "createZones.H" #include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files deleted file mode 100644 index d108d0246ea8291699b0accf03dc7c4f1ffabb44..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -rhoPorousSimpleFoam.C - -EXE = $(FOAM_APPBIN)/rhoPorousSimpleFoam diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H deleted file mode 100644 index fe69384c8b3c1af3a0519382be101f27e13eaa44..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H +++ /dev/null @@ -1,73 +0,0 @@ -if (pressureImplicitPorosity) -{ - U = trTU()&UEqn().H(); -} -else -{ - U = trAU()*UEqn().H(); -} - -UEqn.clear(); - -phi = fvc::interpolate(rho*U) & mesh.Sf(); -bool closedVolume = adjustPhi(phi, U, p); - -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) -{ - tmp<fvScalarMatrix> tpEqn; - - if (pressureImplicitPorosity) - { - tpEqn = (fvm::laplacian(rho*trTU(), p) == fvc::div(phi)); - } - else - { - tpEqn = (fvm::laplacian(rho*trAU(), p) == fvc::div(phi)); - } - - tpEqn().setReference(pRefCell, pRefValue); - // retain the residual from the first iteration - if (nonOrth == 0) - { - tpEqn().solve(); - } - else - { - tpEqn().solve(); - } - - if (nonOrth == nNonOrthCorr) - { - phi -= tpEqn().flux(); - } -} - -#include "incompressible/continuityErrs.H" - -// Explicitly relax pressure for momentum corrector -p.relax(); - -if (pressureImplicitPorosity) -{ - U -= trTU()&fvc::grad(p); -} -else -{ - U -= trAU()*fvc::grad(p); -} - -U.correctBoundaryConditions(); - -// For closed-volume cases adjust the pressure and density levels -// to obey overall mass continuity -if (closedVolume) -{ - p += (initialMass - fvc::domainIntegrate(psi*p)) - /fvc::domainIntegrate(psi); -} - -rho = thermo.rho(); -rho = max(rho, rhoMin); -rho = min(rho, rhoMax); -rho.relax(); -Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl; diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/0 b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/0 similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/0 rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/0 diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/Allrun b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/Allrun rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/Allrun diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/constant b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/constant similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/constant rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/constant diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict similarity index 97% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict index 4b8c2697ad041de74c52a155ead5e551ccf8a5fd..0a0fcad1147a3f78e23964075133ebfeb0442ac6 100644 --- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict +++ b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousSimpleFoam; +application rhoPorousMRFSimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSolution diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/T b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/T similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/T rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/T diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/U b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/U similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/U rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/U diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/alphat b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/alphat similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/alphat rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/alphat diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/epsilon similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/epsilon diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/k similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/k diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/mut similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/mut diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/p b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/p similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/p rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/p diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/Allrun b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/Allrun rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/Allrun diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/RASProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/RASProperties similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/RASProperties rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/RASProperties diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porousZones b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/porousZones similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porousZones rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/porousZones diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict similarity index 97% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict index fd58f436b9f050f323032d5f5d906304ef504440..04c44d0f9065f0f651d1623b81b1a6054c91b3a9 100644 --- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict +++ b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousSimpleFoam; +application rhoPorousMRFSimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution rename to tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSolution