diff --git a/applications/solvers/combustion/XiFoam/EaEqn.H b/applications/solvers/combustion/XiFoam/EaEqn.H index 6840c4eb6d0893d5697a812f91e8b68d7c446ffc..5493722c9375cd8e1e9d0120877768ea1828d32c 100644 --- a/applications/solvers/combustion/XiFoam/EaEqn.H +++ b/applications/solvers/combustion/XiFoam/EaEqn.H @@ -16,9 +16,13 @@ : -dpdt ) - fvm::laplacian(turbulence->alphaEff(), hea) + + sources(rho, hea) ); EaEqn.relax(); + + sources.constrain(EaEqn); + EaEqn.solve(); thermo.correct(); diff --git a/applications/solvers/combustion/XiFoam/Make/options b/applications/solvers/combustion/XiFoam/Make/options index 3a07a7de587f6b8951465bc598356c4e5a5cb0d3..fdebdc8ce844bc066f0a6e3d2806a5fb4f4399d6 100644 --- a/applications/solvers/combustion/XiFoam/Make/options +++ b/applications/solvers/combustion/XiFoam/Make/options @@ -1,14 +1,20 @@ EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude\ -I$(LIB_SRC)/engine/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ - -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude + -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude EXE_LIBS = \ + -lfiniteVolume \ + -lfieldSources \ + -lsampling \ + -lmeshTools \ -lengine \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ @@ -16,6 +22,4 @@ EXE_LIBS = \ -lfluidThermophysicalModels \ -lreactionThermophysicalModels \ -lspecie \ - -llaminarFlameSpeedModels \ - -lmeshTools \ - -lfiniteVolume + -llaminarFlameSpeedModels diff --git a/applications/solvers/combustion/XiFoam/UEqn.H b/applications/solvers/combustion/XiFoam/UEqn.H index b9bc567aae9107cd8d687ec4666488586472f863..643a99f1343e40fa58ea6aa4f1060718c61eac9f 100644 --- a/applications/solvers/combustion/XiFoam/UEqn.H +++ b/applications/solvers/combustion/XiFoam/UEqn.H @@ -5,10 +5,13 @@ + turbulence->divDevRhoReff(U) == rho*g + + sources(rho, U) ); UEqn.relax(); + sources.constrain(UEqn); + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); diff --git a/applications/solvers/combustion/XiFoam/XiFoam.C b/applications/solvers/combustion/XiFoam/XiFoam.C index 1573ede331f4406c0645b40d6b7bba92507a43ec..a3e90f7169cebba8ff2fbea060f78db1c54b1e32 100644 --- a/applications/solvers/combustion/XiFoam/XiFoam.C +++ b/applications/solvers/combustion/XiFoam/XiFoam.C @@ -56,6 +56,7 @@ Description #include "ignition.H" #include "Switch.H" #include "pimpleControl.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/combustion/XiFoam/bEqn.H b/applications/solvers/combustion/XiFoam/bEqn.H index ff19598ba13b3298cd00103564765b359be3104c..49c2c63ae7c76c5eda0ce14cc52b8461e1da9924 100644 --- a/applications/solvers/combustion/XiFoam/bEqn.H +++ b/applications/solvers/combustion/XiFoam/bEqn.H @@ -34,7 +34,7 @@ if (ign.ignited()) // Calculate turbulent flame speed flux // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - surfaceScalarField phiSt(fvc::interpolate(rhou*StCorr*Su*Xi)*nf); + surfaceScalarField phiSt("phiSt", fvc::interpolate(rhou*StCorr*Su*Xi)*nf); scalar StCoNum = max ( @@ -50,9 +50,11 @@ if (ign.ignited()) ( fvm::ddt(rho, b) + mvConvection->fvmDiv(phi, b) - + fvm::div(phiSt, b, "div(phiSt,b)") + + fvm::div(phiSt, b) - fvm::Sp(fvc::div(phiSt), b) - fvm::laplacian(turbulence->alphaEff(), b) + == + sources(rho, b) ); @@ -64,6 +66,9 @@ if (ign.ignited()) // Solve for b // ~~~~~~~~~~~ bEqn.relax(); + + sources.constrain(bEqn); + bEqn.solve(); Info<< "min(b) = " << min(b).value() << endl; @@ -153,9 +158,13 @@ if (ign.ignited()) == - fvm::SuSp(-rho*Rc*Su0/Su, Su) - fvm::SuSp(rho*(sigmas + Rc), Su) + + sources(rho, Su) ); SuEqn.relax(); + + sources.constrain(SuEqn); + SuEqn.solve(); // Limit the maximum Su @@ -234,9 +243,13 @@ if (ign.ignited()) ), Xi ) + + sources(rho, Xi) ); XiEqn.relax(); + + sources.constrain(XiEqn); + XiEqn.solve(); // Correct boundedness of Xi diff --git a/applications/solvers/combustion/XiFoam/createFields.H b/applications/solvers/combustion/XiFoam/createFields.H index 17103885e5e2249ae704a0c6606101aa29d85afd..3b7cd9b7aef85cd4936c039ffa7daedc8e685f22 100644 --- a/applications/solvers/combustion/XiFoam/createFields.H +++ b/applications/solvers/combustion/XiFoam/createFields.H @@ -138,3 +138,5 @@ fields.add(b); fields.add(thermo.he()); fields.add(thermo.heu()); + + IObasicSourceList sources(mesh); diff --git a/applications/solvers/combustion/XiFoam/ftEqn.H b/applications/solvers/combustion/XiFoam/ftEqn.H index 96dbc3f06b6b6aa383d4833a79d20a3af96b5925..da1d76fe6902296060729b214b42e46170cee931 100644 --- a/applications/solvers/combustion/XiFoam/ftEqn.H +++ b/applications/solvers/combustion/XiFoam/ftEqn.H @@ -13,10 +13,16 @@ if (composition.contains("ft")) { volScalarField& ft = composition.Y("ft"); - solve + fvScalarMatrix ftEqn ( fvm::ddt(rho, ft) + mvConvection->fvmDiv(phi, ft) - fvm::laplacian(turbulence->alphaEff(), ft) + == + sources(rho, ft) ); + + sources.constrain(ftEqn); + + ftEqn.solve(); } diff --git a/applications/solvers/combustion/XiFoam/pEqn.H b/applications/solvers/combustion/XiFoam/pEqn.H index 1543ca539a6793ee15b3df87dec596e415600422..b5a6d173fbe4a1b2c5bd4ef2feb89a1550c5bb40 100644 --- a/applications/solvers/combustion/XiFoam/pEqn.H +++ b/applications/solvers/combustion/XiFoam/pEqn.H @@ -16,6 +16,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -23,8 +25,12 @@ if (pimple.transonic()) fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -45,6 +51,8 @@ else ) ); + sources.relativeFlux(phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -52,8 +60,12 @@ else fvm::ddt(psi, p) + fvc::div(phiHbyA) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -68,6 +80,7 @@ else U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); +sources.correct(U); K = 0.5*magSqr(U); if (thermo.dpdt()) diff --git a/applications/solvers/combustion/engineFoam/Make/options b/applications/solvers/combustion/engineFoam/Make/options index ff38fdf05192bcfac7d2133718dadd6fdd3cb721..c7b3219f2d7f3bbed8115f1c2cda16e3dfda57b6 100644 --- a/applications/solvers/combustion/engineFoam/Make/options +++ b/applications/solvers/combustion/engineFoam/Make/options @@ -1,14 +1,21 @@ EXE_INC = \ - -I../XiFoam \ + -I$(FOAM_SOLVERS)/combustion/XiFoam \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/engine/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ - -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude + -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude EXE_LIBS = \ + -lfiniteVolume \ + -lfieldSources \ + -lsampling \ + -lmeshTools \ -lengine \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ @@ -16,5 +23,4 @@ EXE_LIBS = \ -lfluidThermophysicalModels \ -lreactionThermophysicalModels \ -lspecie \ - -llaminarFlameSpeedModels \ - -lfiniteVolume + -llaminarFlameSpeedModels diff --git a/applications/solvers/combustion/engineFoam/UEqn.H b/applications/solvers/combustion/engineFoam/UEqn.H index f110051946816e9a0f3aab7160c3681af6317377..de3dc757ccf53d5f2dee00a4b8406bfb73afefd1 100644 --- a/applications/solvers/combustion/engineFoam/UEqn.H +++ b/applications/solvers/combustion/engineFoam/UEqn.H @@ -3,6 +3,8 @@ fvm::ddt(rho, U) + fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + sources(rho, U) ); if (pimple.momentumPredictor()) diff --git a/applications/solvers/combustion/engineFoam/engineFoam.C b/applications/solvers/combustion/engineFoam/engineFoam.C index 0ee3df6b7b37ea7a77718875b5ea2e42fa2d7c98..65cd0356ed3dd3d64769a2000222213199807e2a 100644 --- a/applications/solvers/combustion/engineFoam/engineFoam.C +++ b/applications/solvers/combustion/engineFoam/engineFoam.C @@ -59,6 +59,7 @@ Description #include "OFstream.H" #include "mathematicalConstants.H" #include "pimpleControl.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/combustion/engineFoam/pEqn.H b/applications/solvers/combustion/engineFoam/pEqn.H index 7b005cc311926e0009f416408bf1ded3537ae2c1..b38d6dbf4b0506f27a3e8492d1ed22ebc554fdf1 100644 --- a/applications/solvers/combustion/engineFoam/pEqn.H +++ b/applications/solvers/combustion/engineFoam/pEqn.H @@ -13,6 +13,8 @@ if (pimple.transonic()) *((fvc::interpolate(HbyA) & mesh.Sf()) - fvc::meshPhi(rho, U)) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -20,8 +22,12 @@ if (pimple.transonic()) fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -39,6 +45,8 @@ else *((fvc::interpolate(HbyA) & mesh.Sf()) - fvc::meshPhi(rho, U)) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -46,8 +54,12 @@ else fvm::ddt(psi, p) + fvc::div(phiHbyA) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -62,6 +74,7 @@ else U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); +sources.correct(U); K = 0.5*magSqr(U); if (thermo.dpdt()) diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options index b7498e50f5b049a21489724059f0988bd8643c6b..73804d8283937f5150ae8fe419f9d1ba7b5bfdac 100644 --- a/applications/solvers/combustion/fireFoam/Make/options +++ b/applications/solvers/combustion/fireFoam/Make/options @@ -1,6 +1,8 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ -I${LIB_SRC}/meshTools/lnInclude \ + -I${LIB_SRC}/sampling/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ @@ -29,7 +31,9 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ + -lfieldSources \ -lmeshTools \ + -lsampling \ -lcompressibleRASModels \ -lcompressibleLESModels \ -lspecie \ diff --git a/applications/solvers/combustion/fireFoam/UEqn.H b/applications/solvers/combustion/fireFoam/UEqn.H index 31d01e4327c7749a5f9b30ccb1a814bc5f5e8d7c..90e633fc36617153e8fa0001e2631adb4d40daaf 100644 --- a/applications/solvers/combustion/fireFoam/UEqn.H +++ b/applications/solvers/combustion/fireFoam/UEqn.H @@ -5,10 +5,13 @@ + turbulence->divDevRhoReff(U) == parcels.SU(U) + + sources(rho, U) ); UEqn.relax(); + sources.constrain(UEqn); + if (pimple.momentumPredictor()) { solve diff --git a/applications/solvers/combustion/fireFoam/YEEqn.H b/applications/solvers/combustion/fireFoam/YEEqn.H index f979d3bb7de445c0edb93d93e6ea5a7ba8469eb0..a23f99dab7461aa6fe1df5450eb8f9bd1a01b4d8 100644 --- a/applications/solvers/combustion/fireFoam/YEEqn.H +++ b/applications/solvers/combustion/fireFoam/YEEqn.H @@ -30,9 +30,13 @@ tmp<fv::convectionScheme<scalar> > mvConvection parcels.SYi(i, Yi) + surfaceFilm.Srho(i) + combustion->R(Yi) + + sources(rho, Yi) ); YiEqn.relax(); + + sources.constrain(YiEqn); + YiEqn.solve(mesh.solver("Yi")); Yi.max(0.0); @@ -69,9 +73,13 @@ tmp<fv::convectionScheme<scalar> > mvConvection + radiation->Sh(thermo) + parcels.Sh(he) + surfaceFilm.Sh() + + sources(rho, he) ); EEqn.relax(); + + sources.constrain(EEqn); + EEqn.solve(); thermo.correct(); diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H index 8159ee73aa67906e0c54937a76f12cb3cea3562e..be23570078094e5d3233047ebc0f7b8ce1ac4ff1 100644 --- a/applications/solvers/combustion/fireFoam/createFields.H +++ b/applications/solvers/combustion/fireFoam/createFields.H @@ -146,3 +146,5 @@ ( additionalControlsDict.lookup("solvePrimaryRegion") ); + + IObasicSourceList sources(mesh); diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C index 021ed3c6f0ba93a357e753e8162029f1020e3c6a..3f30495a99676979dfb9b92c7953e80f8ce1364b 100644 --- a/applications/solvers/combustion/fireFoam/fireFoam.C +++ b/applications/solvers/combustion/fireFoam/fireFoam.C @@ -40,6 +40,7 @@ Description #include "solidChemistryModel.H" #include "psiCombustionModel.H" #include "pimpleControl.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/combustion/fireFoam/pEqn.H b/applications/solvers/combustion/fireFoam/pEqn.H index 4c33f5633e1c6b984488bea990e1a142d5da669c..6101c9dd5dbb59d6792ea45f09b11ac52c8ad21c 100644 --- a/applications/solvers/combustion/fireFoam/pEqn.H +++ b/applications/solvers/combustion/fireFoam/pEqn.H @@ -21,6 +21,7 @@ surfaceScalarField phiHbyA + phig ); +sources.relativeFlux(phiHbyA); while (pimple.correctNonOrthogonal()) { @@ -33,8 +34,11 @@ while (pimple.correctNonOrthogonal()) == parcels.Srho() + surfaceFilm.Srho() + + sources(psi, p_rgh, rho.name()) ); + sources.constrain(p_rghEqn); + p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -42,6 +46,7 @@ while (pimple.correctNonOrthogonal()) phi = phiHbyA + p_rghEqn.flux(); U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf); U.correctBoundaryConditions(); + sources.correct(U); } } diff --git a/applications/solvers/combustion/fireFoam/rhoEqn.H b/applications/solvers/combustion/fireFoam/rhoEqn.H index f93906018171e762b96eb5ca4bc1e1ca85176742..c465309edbc49266dec7ab2f10d721253a6dc858 100644 --- a/applications/solvers/combustion/fireFoam/rhoEqn.H +++ b/applications/solvers/combustion/fireFoam/rhoEqn.H @@ -30,14 +30,19 @@ Description \*---------------------------------------------------------------------------*/ { - solve + fvScalarMatrix rhoEqn ( fvm::ddt(rho) + fvc::div(phi) == parcels.Srho(rho) + surfaceFilm.Srho() + + sources(rho) ); + + sources.constrain(rhoEqn); + + rhoEqn.solve(); } // ************************************************************************* // diff --git a/applications/solvers/combustion/reactingFoam/EEqn.H b/applications/solvers/combustion/reactingFoam/EEqn.H index e1bf055604477aed18bdec6b126b03fcfd9b0849..5568c7e5be798761e24e635a4849d22d5b851f69 100644 --- a/applications/solvers/combustion/reactingFoam/EEqn.H +++ b/applications/solvers/combustion/reactingFoam/EEqn.H @@ -19,9 +19,13 @@ // - fvm::laplacian(turbulence->muEff(), he) // unit lewis no. == reaction->Sh() + + sources(rho, he) ); EEqn.relax(); + + sources.constrain(EEqn); + EEqn.solve(); thermo.correct(); diff --git a/applications/solvers/combustion/reactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/Make/options index 46b69a63cd523c4af2fd12d5f78a228fe64c8b96..d29dc0ed9a0616d836f13a988cb1a6e57ba114a7 100644 --- a/applications/solvers/combustion/reactingFoam/Make/options +++ b/applications/solvers/combustion/reactingFoam/Make/options @@ -1,14 +1,21 @@ EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \ -I$(LIB_SRC)/ODE/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/combustionModels/lnInclude EXE_LIBS = \ + -lfiniteVolume \ + -lfieldSources \ + -lmeshTools \ + -lsampling \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ -lcompressibleLESModels \ @@ -17,5 +24,4 @@ EXE_LIBS = \ -lfluidThermophysicalModels \ -lchemistryModel \ -lODE \ - -lfiniteVolume \ -lcombustionModels diff --git a/applications/solvers/combustion/reactingFoam/UEqn.H b/applications/solvers/combustion/reactingFoam/UEqn.H index b9bc567aae9107cd8d687ec4666488586472f863..643a99f1343e40fa58ea6aa4f1060718c61eac9f 100644 --- a/applications/solvers/combustion/reactingFoam/UEqn.H +++ b/applications/solvers/combustion/reactingFoam/UEqn.H @@ -5,10 +5,13 @@ + turbulence->divDevRhoReff(U) == rho*g + + sources(rho, U) ); UEqn.relax(); + sources.constrain(UEqn); + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); diff --git a/applications/solvers/combustion/reactingFoam/YEqn.H b/applications/solvers/combustion/reactingFoam/YEqn.H index ccc4b135a5dc1e246492cffda6cca93a0bdcacb3..2f0d29fd8495f080d5e401eda2058af600571a73 100644 --- a/applications/solvers/combustion/reactingFoam/YEqn.H +++ b/applications/solvers/combustion/reactingFoam/YEqn.H @@ -28,9 +28,13 @@ tmp<fv::convectionScheme<scalar> > mvConvection - fvm::laplacian(turbulence->muEff(), Yi) == reaction->R(Yi) + + sources(rho, Yi) ); YiEqn.relax(); + + sources.constrain(YiEqn); + YiEqn.solve(mesh.solver("Yi")); Yi.max(0.0); diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H index 32bdd372ee9318986c9fc26635ab6b9dc2f9801b..21769875eadcfc5dee1d9dd5a509b5eaabed6d48 100644 --- a/applications/solvers/combustion/reactingFoam/createFields.H +++ b/applications/solvers/combustion/reactingFoam/createFields.H @@ -99,3 +99,5 @@ volScalarField dQ mesh, dimensionedScalar("dQ", dimEnergy/dimTime, 0.0) ); + +IObasicSourceList sources(mesh); diff --git a/applications/solvers/combustion/reactingFoam/pEqn.H b/applications/solvers/combustion/reactingFoam/pEqn.H index 1543ca539a6793ee15b3df87dec596e415600422..2ed1bc1ca56166e6df3f500a893e37432957666f 100644 --- a/applications/solvers/combustion/reactingFoam/pEqn.H +++ b/applications/solvers/combustion/reactingFoam/pEqn.H @@ -16,6 +16,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -23,8 +25,12 @@ if (pimple.transonic()) fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -45,6 +51,8 @@ else ) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -52,8 +60,12 @@ else fvm::ddt(psi, p) + fvc::div(phiHbyA) - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -68,6 +80,7 @@ else U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); +sources.correct(U); K = 0.5*magSqr(U); if (thermo.dpdt()) diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C index cd7d371651379bcaf6a071f351a5db23565eba06..c68f94ebf7ff1c70b5734b1318b9ddba9ceea409 100644 --- a/applications/solvers/combustion/reactingFoam/reactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C @@ -34,6 +34,7 @@ Description #include "psiCombustionModel.H" #include "multivariateScheme.H" #include "pimpleControl.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/combustion/rhoReactingFoam/Make/options b/applications/solvers/combustion/rhoReactingFoam/Make/options index 6dbd401b63e46a591930a7cda3d024deab887104..0d1336e1ac931489b22f4fa81c82b37cc547aa64 100644 --- a/applications/solvers/combustion/rhoReactingFoam/Make/options +++ b/applications/solvers/combustion/rhoReactingFoam/Make/options @@ -1,17 +1,23 @@ EXE_INC = \ - -I../reactingFoam \ + -I$(FOAM_SOLVERS)/combustion/reactingFoam \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \ -I$(LIB_SRC)/ODE/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(FOAM_SOLVERS)/combustion/reactingFoam \ -I$(LIB_SRC)/combustionModels/lnInclude EXE_LIBS = \ + -lfiniteVolume \ + -lfieldSources \ + -lmeshTools \ + -lsampling \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ -lcompressibleLESModels \ @@ -20,5 +26,4 @@ EXE_LIBS = \ -lfluidThermophysicalModels \ -lchemistryModel \ -lODE \ - -lfiniteVolume \ -lcombustionModels diff --git a/applications/solvers/combustion/rhoReactingFoam/createFields.H b/applications/solvers/combustion/rhoReactingFoam/createFields.H index e99639e18971bf81674fbabcbbeffb47d8dcaed2..4c517fb646de239362429f3f6b90794d4ee05954 100644 --- a/applications/solvers/combustion/rhoReactingFoam/createFields.H +++ b/applications/solvers/combustion/rhoReactingFoam/createFields.H @@ -101,3 +101,5 @@ volScalarField dQ mesh, dimensionedScalar("dQ", dimEnergy/dimTime, 0.0) ); + +IObasicSourceList sources(mesh); diff --git a/applications/solvers/combustion/rhoReactingFoam/pEqn.H b/applications/solvers/combustion/rhoReactingFoam/pEqn.H index 85dbbf7f7e6902951fd9072a1ea0f8efd2c234da..cb25d83662c4c1634950e493c25b02f931f816be 100644 --- a/applications/solvers/combustion/rhoReactingFoam/pEqn.H +++ b/applications/solvers/combustion/rhoReactingFoam/pEqn.H @@ -18,6 +18,8 @@ + fvc::ddtPhiCorr(rAU, rho, U, phi) ); + sources.relativeFlux(phiHbyA); + surfaceScalarField phid("phid", fvc::interpolate(thermo.psi())*phiHbyA); phiHbyA *= fvc::interpolate(rho); @@ -34,8 +36,12 @@ ( pDDtEqn - fvm::laplacian(rho*rAU, p) + == + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -56,10 +62,14 @@ ) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + fvScalarMatrix pDDtEqn ( fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + fvc::div(phiHbyA) + == + sources(psi, p, rho.name()) ); while (pimple.correctNonOrthogonal()) @@ -70,6 +80,8 @@ - fvm::laplacian(rho*rAU, p) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -87,6 +99,7 @@ U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); + sources.correct(U); K = 0.5*magSqr(U); if (thermo.dpdt()) diff --git a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C index 3ac060612d68784e0492145480161594b3c88fc9..0a91aa4b03bdde86034f3730b0ba3287bc98b08a 100644 --- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C @@ -35,6 +35,7 @@ Description #include "turbulenceModel.H" #include "multivariateScheme.H" #include "pimpleControl.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C index d0183e9f7df71dca7c768912eff73307de631403..2b04637b041560d751f983cba43a1b6c103a148b 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -38,6 +38,10 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField ) : mixedFvPatchScalarField(p, iF), + UName_("U"), + rhoName_("rho"), + psiName_("thermo:psi"), + muName_("thermo:mu"), accommodationCoeff_(1.0), Twall_(p.size(), 0.0), gamma_(1.4) @@ -57,6 +61,10 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField ) : mixedFvPatchScalarField(ptf, p, iF, mapper), + UName_(ptf.UName_), + rhoName_(ptf.rhoName_), + psiName_(ptf.psiName_), + muName_(ptf.muName_), accommodationCoeff_(ptf.accommodationCoeff_), Twall_(ptf.Twall_), gamma_(ptf.gamma_) @@ -71,6 +79,10 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField ) : mixedFvPatchScalarField(p, iF), + UName_(dict.lookupOrDefault<word>("U", "U")), + rhoName_(dict.lookupOrDefault<word>("rho", "rho")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")), + muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")), accommodationCoeff_(readScalar(dict.lookup("accommodationCoeff"))), Twall_("Twall", dict, p.size()), gamma_(dict.lookupOrDefault<scalar>("gamma", 1.4)) @@ -93,7 +105,7 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField dict ) << "unphysical accommodationCoeff specified" << "(0 < accommodationCoeff <= 1)" << endl - << exit(FatalError); + << exit(FatalIOError); } if (dict.found("value")) @@ -159,13 +171,13 @@ void Foam::smoluchowskiJumpTFvPatchScalarField::updateCoeffs() } const fvPatchScalarField& pmu = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); const fvPatchScalarField& prho = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const fvPatchField<scalar>& ppsi = - patch().lookupPatchField<volScalarField, scalar>("psi"); + patch().lookupPatchField<volScalarField, scalar>(psiName_); const fvPatchVectorField& pU = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); // Prandtl number reading consistent with rhoCentralFoam const dictionary& thermophysicalProperties = @@ -204,6 +216,12 @@ void Foam::smoluchowskiJumpTFvPatchScalarField::updateCoeffs() void Foam::smoluchowskiJumpTFvPatchScalarField::write(Ostream& os) const { fvPatchScalarField::write(os); + + writeEntryIfDifferent<word>(os, "U", "U", UName_); + writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_); + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); + writeEntryIfDifferent<word>(os, "mu", "thermo:mu", muName_); + os.writeKeyword("accommodationCoeff") << accommodationCoeff_ << token::END_STATEMENT << nl; Twall_.writeEntry("Twall", os); diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.H b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.H index 8f84cfb6e69482e9f7a9d2972c83e55efc6faca4..845aa9f424ff2486cbf664622530f97c66fc4885 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.H +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.H @@ -53,13 +53,25 @@ class smoluchowskiJumpTFvPatchScalarField // Private data - // Accommodation coefficient + //- Velocity field name, default = "U" + word UName_; + + //- Density field name, default = "rho" + word rhoName_; + + //- Compressibility field name, default = "thermo:psi" + word psiName_; + + //- Dynamic viscosity field name, default = "thermo:mu" + word muName_; + + //- Accommodation coefficient scalar accommodationCoeff_; - // Wall surface temperature + //- Wall surface temperature scalarField Twall_; - // Heat capacity ratio (default 1.4) + //- Heat capacity ratio (default 1.4) scalar gamma_; public: diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C index 875e42683e36badcb530d09208c3fa4482950f9f..6ec81dd4dc905c359d01ab59c2cdf3591bf774be 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C @@ -30,20 +30,20 @@ License #include "volFields.H" #include "fvcGrad.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField +Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField ( const fvPatch& p, const DimensionedField<vector, volMesh>& iF ) : mixedFixedValueSlipFvPatchVectorField(p, iF), + TName_("T"), + rhoName_("rho"), + psiName_("thermo:psi"), + muName_("thermo:mu"), + tauMCName_("tauMC"), accommodationCoeff_(1.0), Uwall_(p.size(), vector(0.0, 0.0, 0.0)), thermalCreep_(true), @@ -51,23 +51,28 @@ maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField {} -maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField +Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField ( - const maxwellSlipUFvPatchVectorField& tdpvf, + const maxwellSlipUFvPatchVectorField& mspvf, const fvPatch& p, const DimensionedField<vector, volMesh>& iF, const fvPatchFieldMapper& mapper ) : - mixedFixedValueSlipFvPatchVectorField(tdpvf, p, iF, mapper), - accommodationCoeff_(tdpvf.accommodationCoeff_), - Uwall_(tdpvf.Uwall_), - thermalCreep_(tdpvf.thermalCreep_), - curvature_(tdpvf.curvature_) + mixedFixedValueSlipFvPatchVectorField(mspvf, p, iF, mapper), + TName_(mspvf.TName_), + rhoName_(mspvf.rhoName_), + psiName_(mspvf.psiName_), + muName_(mspvf.muName_), + tauMCName_(mspvf.tauMCName_), + accommodationCoeff_(mspvf.accommodationCoeff_), + Uwall_(mspvf.Uwall_), + thermalCreep_(mspvf.thermalCreep_), + curvature_(mspvf.curvature_) {} -maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField +Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField ( const fvPatch& p, const DimensionedField<vector, volMesh>& iF, @@ -75,6 +80,11 @@ maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField ) : mixedFixedValueSlipFvPatchVectorField(p, iF), + TName_(dict.lookupOrDefault<word>("T", "T")), + rhoName_(dict.lookupOrDefault<word>("rho", "rho")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")), + muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")), + tauMCName_(dict.lookupOrDefault<word>("tauMC", "tauMC")), accommodationCoeff_(readScalar(dict.lookup("accommodationCoeff"))), Uwall_("Uwall", dict, p.size()), thermalCreep_(dict.lookupOrDefault("thermalCreep", true)), @@ -88,13 +98,16 @@ maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField { FatalIOErrorIn ( - "maxwellSlipUFvPatchScalarField::" - "maxwellSlipUFvPatchScalarField" - "(const fvPatch&, const scalarField&, const dictionary&)", + "maxwellSlipUFvPatchScalarField::maxwellSlipUFvPatchScalarField" + "(" + "const fvPatch&, " + "const DimensionedField<vector, volMesh>&, " + "const dictionary&" + ")", dict ) << "unphysical accommodationCoeff_ specified" << "(0 < accommodationCoeff_ <= 1)" << endl - << exit(FatalError); + << exit(FatalIOError); } if (dict.found("value")) @@ -119,23 +132,28 @@ maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField } -maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField +Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField ( - const maxwellSlipUFvPatchVectorField& tdpvf, + const maxwellSlipUFvPatchVectorField& mspvf, const DimensionedField<vector, volMesh>& iF ) : - mixedFixedValueSlipFvPatchVectorField(tdpvf, iF), - accommodationCoeff_(tdpvf.accommodationCoeff_), - Uwall_(tdpvf.Uwall_), - thermalCreep_(tdpvf.thermalCreep_), - curvature_(tdpvf.curvature_) + mixedFixedValueSlipFvPatchVectorField(mspvf, iF), + TName_(mspvf.TName_), + rhoName_(mspvf.rhoName_), + psiName_(mspvf.psiName_), + muName_(mspvf.muName_), + tauMCName_(mspvf.tauMCName_), + accommodationCoeff_(mspvf.accommodationCoeff_), + Uwall_(mspvf.Uwall_), + thermalCreep_(mspvf.thermalCreep_), + curvature_(mspvf.curvature_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void maxwellSlipUFvPatchVectorField::updateCoeffs() +void Foam::maxwellSlipUFvPatchVectorField::updateCoeffs() { if (updated()) { @@ -143,11 +161,11 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs() } const fvPatchScalarField& pmu = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); const fvPatchScalarField& prho = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const fvPatchField<scalar>& ppsi = - patch().lookupPatchField<volScalarField, scalar>("psi"); + patch().lookupPatchField<volScalarField, scalar>(psiName_); Field<scalar> C1 ( @@ -163,7 +181,7 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs() if (thermalCreep_) { const volScalarField& vsfT = - this->db().objectRegistry::lookupObject<volScalarField>("T"); + this->db().objectRegistry::lookupObject<volScalarField>(TName_); label patchi = this->patch().index(); const fvPatchScalarField& pT = vsfT.boundaryField()[patchi]; Field<vector> gradpT(fvc::grad(vsfT)().boundaryField()[patchi]); @@ -175,7 +193,7 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs() if (curvature_) { const fvPatchTensorField& ptauMC = - patch().lookupPatchField<volTensorField, tensor>("tauMC"); + patch().lookupPatchField<volTensorField, tensor>(tauMCName_); vectorField n(patch().nf()); refValue() -= C1/prho*transform(I - n*n, (n & ptauMC)); @@ -185,9 +203,15 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs() } -void maxwellSlipUFvPatchVectorField::write(Ostream& os) const +void Foam::maxwellSlipUFvPatchVectorField::write(Ostream& os) const { fvPatchVectorField::write(os); + writeEntryIfDifferent<word>(os, "T", "T", TName_); + writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_); + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); + writeEntryIfDifferent<word>(os, "mu", "thermo:mu", muName_); + writeEntryIfDifferent<word>(os, "tauMC", "tauMC", tauMCName_); + os.writeKeyword("accommodationCoeff") << accommodationCoeff_ << token::END_STATEMENT << nl; Uwall_.writeEntry("Uwall", os); @@ -204,14 +228,13 @@ void maxwellSlipUFvPatchVectorField::write(Ostream& os) const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -makePatchTypeField -( - fvPatchVectorField, - maxwellSlipUFvPatchVectorField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam +namespace Foam +{ + makePatchTypeField + ( + fvPatchVectorField, + maxwellSlipUFvPatchVectorField + ); +} // ************************************************************************* // diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.H b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.H index df441c5d91cf0820d7f93321bcfb2e5d3fe3e526..afebd9a9bf6d5a7df8b2029db0655627311b6795 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.H +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.H @@ -54,6 +54,21 @@ class maxwellSlipUFvPatchVectorField { // Private data + //- Temperature field name, default = "T" + word TName_; + + //- Density field name, default = "rho" + word rhoName_; + + //- Compressibility field name, default = "thermo:psi" + word psiName_; + + //- Dynamic viscosity field name, default = "thermo:mu" + word muName_; + + //- tauMC field name, default = "tauMC" + word tauMCName_; + // Accommodation coefficient scalar accommodationCoeff_; diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.C index 8f31a2b460b8cda1cd2eb670b91327b4fffa8e2f..5c1459381f04bd48f6b415e5e67a7d477664c225 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -98,6 +98,7 @@ mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField valueFraction_(ptf.valueFraction_) {} + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // Map from self diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.C index cf9450a657b0f52ab1ae3a55871acbe4481fcb02..5eefe82ff5dedae1001c4f026b208a56e0b0293a 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,27 +27,22 @@ License #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" #include "volFields.H" -#include "surfaceFields.H" -#include "fvCFD.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField +Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField ( const fvPatch& p, const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(p, iF) + fixedValueFvPatchScalarField(p, iF), + pName_("p"), + psiName_("thermo:psi") {} -fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField +Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField ( const fixedRhoFvPatchScalarField& ptf, const fvPatch& p, @@ -55,43 +50,51 @@ fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField const fvPatchFieldMapper& mapper ) : - fixedValueFvPatchScalarField(ptf, p, iF, mapper) + fixedValueFvPatchScalarField(ptf, p, iF, mapper), + pName_(ptf.pName_), + psiName_(ptf.psiName_) {} -fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField +Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField ( const fvPatch& p, const DimensionedField<scalar, volMesh>& iF, const dictionary& dict ) : - fixedValueFvPatchScalarField(p, iF, dict) + fixedValueFvPatchScalarField(p, iF, dict), + pName_(dict.lookupOrDefault<word>("p", "p")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")) {} -fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField +Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField ( - const fixedRhoFvPatchScalarField& tppsf + const fixedRhoFvPatchScalarField& frpsf ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(frpsf), + pName_(frpsf.pName_), + psiName_(frpsf.psiName_) {} -fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField +Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField ( - const fixedRhoFvPatchScalarField& tppsf, + const fixedRhoFvPatchScalarField& frpsf, const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(tppsf, iF) + fixedValueFvPatchScalarField(frpsf, iF), + pName_(frpsf.pName_), + psiName_(frpsf.psiName_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void fixedRhoFvPatchScalarField::updateCoeffs() +void Foam::fixedRhoFvPatchScalarField::updateCoeffs() { if (updated()) { @@ -99,10 +102,10 @@ void fixedRhoFvPatchScalarField::updateCoeffs() } const fvPatchField<scalar>& psip = - patch().lookupPatchField<volScalarField, scalar>("psi"); + patch().lookupPatchField<volScalarField, scalar>(psiName_); const fvPatchField<scalar>& pp = - patch().lookupPatchField<volScalarField, scalar>("p"); + patch().lookupPatchField<volScalarField, scalar>(pName_); operator==(psip*pp); @@ -110,16 +113,24 @@ void fixedRhoFvPatchScalarField::updateCoeffs() } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +void Foam::fixedRhoFvPatchScalarField::write(Ostream& os) const +{ + fvPatchScalarField::write(os); -makePatchTypeField -( - fvPatchScalarField, - fixedRhoFvPatchScalarField -); + writeEntryIfDifferent<word>(os, "p", "p", this->pName_); + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); + writeEntry("value", os); +} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace Foam +namespace Foam +{ + makePatchTypeField + ( + fvPatchScalarField, + fixedRhoFvPatchScalarField + ); +} // ************************************************************************* // diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.H b/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.H index 697ae723a5c0be9ab901fbfac5f63f9af0ad6e63..6efbb4947d0f55f2cf6b92d53f0605a746ea0d97 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.H +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/rho/fixedRhoFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,9 +24,42 @@ License Class Foam::fixedRhoFvPatchScalarField +Group + grpInletBoundaryConditions + Description Foam::fixedRhoFvPatchScalarField + This boundary condition provides a fixed density inlet condition for + compressible solvers, where the density of calculated using: + + \f{ + \rho = \psi p + \f] + + where + \vartable + p | pressure [Pa] + \rho | density [kg/m3] + \endvartable + + + \heading Patch usage + + \table + Property | Description | Required | Default value + pName | Pressure field name | no | p + psiName | Compressibility field name | no | thermo:psi + \endtable + + Example of the boundary condition specification: + \verbatim + myPatch + { + type fixedRho; + } + \endverbatim + SourceFiles fixedRhoFvPatchScalarField.C @@ -43,7 +76,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class fixedRhoFvPatchScalarField Declaration + Class fixedRhoFvPatchScalarField Declaration \*---------------------------------------------------------------------------*/ class fixedRhoFvPatchScalarField @@ -51,6 +84,17 @@ class fixedRhoFvPatchScalarField public fixedValueFvPatchScalarField { +private: + + // Private data + + //- Pressure field name, default = "p" + word pName_; + + //- Compressibility field name, default = "thermo:psi" + word psiName_; + + public: //- Runtime type information @@ -125,6 +169,10 @@ public: //- Update the coefficients associated with the patch field virtual void updateCoeffs(); + + + //- Write + virtual void write(Ostream&) const; }; diff --git a/applications/solvers/compressible/rhoPimpleFoam/Allwmake b/applications/solvers/compressible/rhoPimpleFoam/Allwmake index f6f8ad3635d10f11e2557d9e6f0af3258a738bb2..ac06b7350a1e8ea3ee081768c38ebf5f9d5b031a 100755 --- a/applications/solvers/compressible/rhoPimpleFoam/Allwmake +++ b/applications/solvers/compressible/rhoPimpleFoam/Allwmake @@ -4,7 +4,6 @@ set -x wmake wmake rhoPimplecFoam -wmake rhoPorousMRFPimpleFoam -wmake rhoPorousMRFLTSPimpleFoam +wmake rhoLTSPimpleFoam # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/compressible/rhoPimpleFoam/UEqn.H b/applications/solvers/compressible/rhoPimpleFoam/UEqn.H index 397e8930357dfd548a96f62b9f63acfc943f2423..e4fa5cd6b389b241b34ddc5966be6dbce90fa8bc 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/UEqn.H @@ -5,6 +5,8 @@ tmp<fvVectorMatrix> UEqn fvm::ddt(rho, U) + fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + sources(rho, U) ); UEqn().relax(); @@ -13,6 +15,6 @@ sources.constrain(UEqn()); if (pimple.momentumPredictor()) { - solve(UEqn() == -fvc::grad(p) + sources(rho, U)); + solve(UEqn() == -fvc::grad(p)); K = 0.5*magSqr(U); } diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H index 5f28a3456d82c8d6c1b8f05d90b1519e9a5f5931..a656d772481adc52390a1c9fd7889545f6e50d4a 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H @@ -5,7 +5,7 @@ rho.relax(); volScalarField rAU(1.0/UEqn().A()); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == sources(rho, U))().H(); +HbyA = rAU*UEqn().H(); if (pimple.nCorrPISO() <= 1) { @@ -24,6 +24,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + volScalarField Dp("Dp", rho*rAU); while (pimple.correctNonOrthogonal()) @@ -37,7 +39,7 @@ if (pimple.transonic()) sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); @@ -59,6 +61,8 @@ else ) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + volScalarField Dp("Dp", rho*rAU); while (pimple.correctNonOrthogonal()) @@ -73,7 +77,7 @@ else sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/Make/files b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..ff61e6022f6a5fae2729c5bd287c2ddacd2390b1 --- /dev/null +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/Make/files @@ -0,0 +1,3 @@ +rhoLTSPimpleFoam.C + +EXE = $(FOAM_APPBIN)/rhoLTSPimpleFoam diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/Make/options similarity index 100% rename from applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/Make/options rename to applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/Make/options diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/rhoLTSPimpleFoam.C similarity index 94% rename from applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C rename to applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/rhoLTSPimpleFoam.C index 18a32a1791338badc6fef7daf5eee6dc773171b8..ccbba350c265c534fdb0d30c8c6aa1258036d2b5 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/rhoLTSPimpleFoam.C @@ -26,7 +26,7 @@ Application Description Transient solver for laminar or turbulent flow of compressible fluids - with support for porous media and MRF for HVAC and similar applications. + with support for run-time selectable sources, e.g. MRF, explicit porosity. Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient simulations with support for local time-stepping for @@ -37,8 +37,6 @@ Description #include "fvCFD.H" #include "psiThermo.H" #include "turbulenceModel.H" -#include "IOMRFZoneList.H" -#include "IOporosityModelList.H" #include "IObasicSourceList.H" #include "fvcSmooth.H" #include "pimpleControl.H" @@ -56,7 +54,6 @@ int main(int argc, char *argv[]) #include "setInitialrDeltaT.H" #include "createFields.H" - #include "createZones.H" #include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/setInitialrDeltaT.H similarity index 100% rename from applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H rename to applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/setInitialrDeltaT.H diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H b/applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/setrDeltaT.H similarity index 100% rename from applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H rename to applications/solvers/compressible/rhoPimpleFoam/rhoLTSPimpleFoam/setrDeltaT.H diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H index 628eb71f2961392d5c1173fbbf30aeb07cd5f81b..aa3e615af6ca93aa284b2ada525da95363bb21db 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H @@ -51,7 +51,7 @@ if (pimple.transonic()) // Relax the pressure equation to maintain diagonal dominance pEqn.relax(); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(); @@ -89,7 +89,7 @@ else sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/Make/files b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/Make/files deleted file mode 100644 index 3b438a61773fd05589a0a7d0131d152ceb99d258..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -rhoPorousMRFLTSPimpleFoam.C - -EXE = $(FOAM_APPBIN)/rhoPorousMRFLTSPimpleFoam diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/files b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/files deleted file mode 100644 index a798455eb7f807cacb1cdcea8d70c02d871821aa..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/files +++ /dev/null @@ -1,4 +0,0 @@ -rhoPorousMRFPimpleFoam.C - -EXE = $(FOAM_APPBIN)/rhoPorousMRFPimpleFoam - diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options deleted file mode 100644 index c78d474b4fb3d4649d7afad5957132ee2da37253..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options +++ /dev/null @@ -1,20 +0,0 @@ -EXE_INC = \ - -I.. \ - -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ - -I$(LIB_SRC)/finiteVolume/cfdTools \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude \ - -I$(LIB_SRC)/fieldSources/lnInclude - -EXE_LIBS = \ - -lfluidThermophysicalModels \ - -lspecie \ - -lcompressibleTurbulenceModel \ - -lcompressibleRASModels \ - -lcompressibleLESModels \ - -lfiniteVolume \ - -lmeshTools \ - -lsampling \ - -lfieldSources diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H deleted file mode 100644 index 9651610157c483596253639cb1380be1cc8e2f9b..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H +++ /dev/null @@ -1,22 +0,0 @@ -// Solve the Momentum equation - -tmp<fvVectorMatrix> UEqn -( - //pZones.ddt(rho, U) - fvm::ddt(rho, U) - + fvm::div(phi, U) - + turbulence->divDevRhoReff(U) -); - -UEqn().relax(); - -mrfZones.addCoriolis(rho, UEqn()); - -pZones.addResistance(UEqn()); - -sources.constrain(UEqn()); - -if (pimple.momentumPredictor()) -{ - solve(UEqn() == -fvc::grad(p) + sources(rho, U)); -} diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H deleted file mode 100644 index f6c7e4dddf33cbb73940a05cb55af029823306bb..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H +++ /dev/null @@ -1,5 +0,0 @@ - IOMRFZoneList mrfZones(mesh); - mrfZones.correctBoundaryVelocity(U); - - IOporosityModelList pZones(mesh); - Switch pressureImplicitPorosity(false); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H deleted file mode 100644 index 304798b9662d6c7bb8dd3bfc0bded47e552db19e..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H +++ /dev/null @@ -1,111 +0,0 @@ -rho = thermo.rho(); -rho = max(rho, rhoMin); -rho = min(rho, rhoMax); -rho.relax(); - -volScalarField rAU(1.0/UEqn().A()); -volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == sources(rho, U))().H(); - -if (pimple.nCorrPISO() <= 1) -{ - UEqn.clear(); -} - -if (pimple.transonic()) -{ - surfaceScalarField phid - ( - "phid", - fvc::interpolate(psi) - *( - (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::ddtPhiCorr(rAU, rho, U, phi) - ) - ); - mrfZones.relativeFlux(fvc::interpolate(psi), phid); - - volScalarField Dp("Dp", rho*rAU); - - while (pimple.correctNonOrthogonal()) - { - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - + fvm::div(phid, p) - - fvm::laplacian(Dp, p) - == - sources(psi, p, rho.name()) - ); - - sources.constrain(pEqn, rho.name()); - - pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); - - if (pimple.finalNonOrthogonalIter()) - { - phi == pEqn.flux(); - } - } -} -else -{ - surfaceScalarField phiHbyA - ( - "phiHbyA", - fvc::interpolate(rho) - *( - (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::ddtPhiCorr(rAU, rho, U, phi) - ) - ); - - mrfZones.relativeFlux(fvc::interpolate(rho), phiHbyA); - - volScalarField Dp("Dp", rho*rAU); - - while (pimple.correctNonOrthogonal()) - { - // Pressure corrector - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - + fvc::div(phiHbyA) - - fvm::laplacian(Dp, p) - == - sources(psi, p, rho.name()) - ); - - sources.constrain(pEqn, rho.name()); - - pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); - - if (pimple.finalNonOrthogonalIter()) - { - phi = phiHbyA + pEqn.flux(); - } - } -} - -#include "rhoEqn.H" -#include "compressibleContinuityErrs.H" - -// Explicitly relax pressure for momentum corrector -p.relax(); - -rho = thermo.rho(); -rho = max(rho, rhoMin); -rho = min(rho, rhoMax); -rho.relax(); -Info<< "rho max/min : " << max(rho).value() - << " " << min(rho).value() << endl; - -U = HbyA - rAU*fvc::grad(p); -U.correctBoundaryConditions(); -sources.correct(U); -K = 0.5*magSqr(U); - -if (thermo.dpdt()) -{ - dpdt = fvc::ddt(p); -} diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C deleted file mode 100644 index 0975b0de2b3c375aaddf93d3fde5891541b7e445..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C +++ /dev/null @@ -1,109 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 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 - rhoPorousMRFPimpleFoam - -Description - Transient solver for laminar or turbulent flow of compressible fluids - with support for porous media and MRF for HVAC and similar applications. - - Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and - pseudo-transient simulations. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "psiThermo.H" -#include "turbulenceModel.H" -#include "bound.H" -#include "IOMRFZoneList.H" -#include "IOporosityModelList.H" -#include "IObasicSourceList.H" -#include "pimpleControl.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - - pimpleControl pimple(mesh); - - #include "createFields.H" - #include "createZones.H" - #include "initContinuityErrs.H" - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { - #include "readTimeControls.H" - #include "compressibleCourantNo.H" - #include "setDeltaT.H" - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - if (pimple.nCorrPIMPLE() <= 1) - { - #include "rhoEqn.H" - } - - // --- Pressure-velocity PIMPLE corrector loop - while (pimple.loop()) - { - #include "UEqn.H" - #include "EEqn.H" - - // --- Pressure corrector loop - while (pimple.correct()) - { - #include "pEqn.H" - } - - if (pimple.turbCorr()) - { - turbulence->correct(); - } - } - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/compressible/rhoSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/UEqn.H index 21ec2646be5bb5702e0b2210335592e1fe124ec0..8bbd96028194b6ecd1742e993bb3cb914c152acb 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/UEqn.H @@ -4,6 +4,8 @@ ( fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + sources(rho, U) ); UEqn().relax(); diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H index 2ea228f172d80bc4d4a330662723e9754840c0a2..2782d206524c620c7e535a190aecb004ae99f5e9 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H @@ -6,7 +6,7 @@ volScalarField rAU(1.0/UEqn().A()); volVectorField HbyA("HbyA", U); - HbyA = rAU*(UEqn() == sources(rho, U))().H(); + HbyA = rAU*UEqn().H(); UEqn.clear(); @@ -20,6 +20,8 @@ fvc::interpolate(psi)*(fvc::interpolate(HbyA) & mesh.Sf()) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -33,7 +35,7 @@ // Relax the pressure equation to ensure diagonal-dominance pEqn.relax(); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.setReference(pRefCell, pRefValue); @@ -53,6 +55,8 @@ fvc::interpolate(rho)*(fvc::interpolate(HbyA) & mesh.Sf()) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + closedVolume = adjustPhi(phiHbyA, U, p); while (simple.correctNonOrthogonal()) @@ -67,7 +71,7 @@ pEqn.setReference(pRefCell, pRefValue); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(); diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files deleted file mode 100644 index d4792428af5f610d9cdfb8ef3ecc1c34c89abc50..0000000000000000000000000000000000000000 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -rhoPorousMRFSimpleFoam.C - -EXE = $(FOAM_APPBIN)/rhoPorousMRFSimpleFoam diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/EEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/EEqn.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..d108d0246ea8291699b0accf03dc7c4f1ffabb44 --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files @@ -0,0 +1,3 @@ +rhoPorousSimpleFoam.C + +EXE = $(FOAM_APPBIN)/rhoPorousSimpleFoam diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/Make/options rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/UEqn.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createFields.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createZones.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createZones.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C similarity index 100% rename from applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimplecFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoSimplecFoam/pEqn.H index 1ffacc1afaf9c5a2495e8e321c84f65a7ea592ac..02300d8a9e9a62676aa78bad3a9b53fae6f119ee 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimplecFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimplecFoam/pEqn.H @@ -45,7 +45,7 @@ if (simple.transonic()) // Relax the pressure equation to maintain diagonal dominance pEqn.relax(); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.setReference(pRefCell, pRefValue); @@ -82,7 +82,7 @@ else sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.setReference(pRefCell, pRefValue); diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..1cc6ed584c6c3806864cc0a0f461182796b9799a --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H @@ -0,0 +1,28 @@ +{ + volScalarField& he = thermo.he(); + + fvScalarMatrix EEqn + ( + fvm::ddt(rho, he) + fvm::div(phi, he) + + fvc::ddt(rho, K) + fvc::div(phi, K) + + ( + he.name() == "e" + ? fvc::div + ( + fvc::absolute(phi/fvc::interpolate(rho), U), + p, + "div(phiv,p)" + ) + : -dpdt + ) + - fvm::laplacian(turbulence->alphaEff(), he) + == + sources(rho, he) + ); + + EEqn.relax(); + sources.constrain(EEqn); + EEqn.solve(); + + thermo.correct(); +} diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options index 5d86b094de32587a79d2bade587ef6f47ccbeb90..6962643dcd609b438ad5e64f56641b41fa1221cb 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options @@ -1,21 +1,21 @@ EXE_INC = \ - -I../../compressible/rhoPimpleFoam \ - -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel EXE_LIBS = \ + -lfiniteVolume \ + -lsampling \ -lmeshTools \ + -lfieldSources \ -lfluidThermophysicalModels \ + -lradiationModels \ -lspecie \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ - -lcompressibleLESModels \ - -lfiniteVolume \ - -lsampling \ - -lmeshTools \ - -lfieldSources + -lcompressibleLESModels diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H index d8f3bb56ce13a0455c52f7ccbe598f353ea21b2e..e12724ed69716582c3b683aa1907ac9cb9a89171 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H @@ -5,10 +5,14 @@ fvm::ddt(rho, U) + fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + sources(rho, U) ); UEqn.relax(); + sources.constrain(UEqn); + if (pimple.momentumPredictor()) { solve @@ -22,7 +26,6 @@ - fvc::snGrad(p_rgh) )*mesh.magSf() ) - + sources(rho, U) ); K = 0.5*magSqr(U); } diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C index 79d3fb7f2f7668b4dbf1696c25ac7f38a6a0c25b..62fcf33c04c861e5204ad10ffd8c963254c9513a 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C @@ -36,7 +36,7 @@ Description #include "fvCFD.H" #include "rhoThermo.H" #include "turbulenceModel.H" -#include "fixedGradientFvPatchFields.H" +#include "radiationModel.H" #include "IObasicSourceList.H" #include "pimpleControl.H" @@ -49,6 +49,7 @@ int main(int argc, char *argv[]) #include "createMesh.H" #include "readGravitationalAcceleration.H" #include "createFields.H" + #include "createRadiationModel.H" #include "initContinuityErrs.H" #include "readTimeControls.H" #include "compressibleCourantNo.H" diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H index 9838978028edd00a3f9fbce7563b59bce0dcc9cb..b606339627d2b97b590deecec5d30159ba678f87 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H @@ -1,9 +1,6 @@ Info<< "Reading thermophysical properties\n" << endl; - autoPtr<rhoThermo> pThermo - ( - rhoThermo::New(mesh) - ); + autoPtr<rhoThermo> pThermo(rhoThermo::New(mesh)); rhoThermo& thermo = pThermo(); thermo.validate(args.executable(), "h", "e"); diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H index 86c314c9c4bab41f858844d961d85eeaac511ccf..99bef3a118b8f6163992997b6221bfa00ded3185 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H @@ -9,7 +9,7 @@ surfaceScalarField rhorAUf("Dp", fvc::interpolate(rho*rAU)); volVectorField HbyA("HbyA", U); - HbyA = rAU*(UEqn == sources(rho, U))().H(); + HbyA = rAU*UEqn.H(); surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf()); @@ -24,6 +24,8 @@ + phig ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + fvScalarMatrix p_rghDDtEqn ( fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh)) @@ -40,7 +42,7 @@ - fvm::laplacian(rhorAUf, p_rgh) ); - sources.constrain(p_rghEqn, rho.name()); + sources.constrain(p_rghEqn); p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/Allwmake b/applications/solvers/heatTransfer/buoyantSimpleFoam/Allwmake deleted file mode 100755 index 0fe8e8f4ad18ed67c9f57ed5c360bc03d39f69cf..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/Allwmake +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory -set -x - -wmake -wmake buoyantSimpleRadiationFoam - -# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H index e4c79b40cc5685ddbeeab18c32e8611d745656b8..094b50cb3eec079b73160ce77e34ef5a8d055327 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H @@ -10,10 +10,17 @@ : fvc::div(phi, volScalarField("K", 0.5*magSqr(U))) ) - fvm::laplacian(turbulence->alphaEff(), he) + == + radiation->Sh(thermo) + + sources(rho, he) ); EEqn.relax(); + + sources.constrain(EEqn); + EEqn.solve(); thermo.correct(); + radiation->correct(); } diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options index 74ddd1244659aa9f6591ddb2ea9f9b2d46881429..5103b2dd72c6c1c05a19a38ff441ca31f39b197e 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options @@ -1,14 +1,22 @@ EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \ -I$(LIB_SRC)/turbulenceModels \ -I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \ - -I$(LIB_SRC)/finiteVolume/cfdTools \ - -I$(LIB_SRC)/finiteVolume/lnInclude + -I$(LIB_SRC)/turbulenceModels/RAS \ EXE_LIBS = \ + -lfiniteVolume \ + -lfieldSources \ + -lsampling \ -lmeshTools \ -lfluidThermophysicalModels \ -lspecie \ + -lradiationModels \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ - -lfiniteVolume + -lmeshTools diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H index e1593c3691cda41ce18ded23b5925b5813bcb9ab..860cef45470a74ded924459b3c3e7f86ce445405 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H @@ -4,11 +4,13 @@ ( fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + sources(rho, U) ); UEqn().relax(); - mrfZones.addCoriolis(rho, UEqn()); + sources.constrain(UEqn()); if (simple.momentumPredictor()) { diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C index fc47fc90a1cc25556e6e52077db6976588ccf1a8..bbd6f77773c2777d9962c9d392090b60f30023b2 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C @@ -22,19 +22,20 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Application - buoyantSimpleFoam + buoyantSimpleRadiationFoam Description - Steady-state solver for buoyant, turbulent flow of compressible fluids + Steady-state solver for buoyant, turbulent flow of compressible fluids, + including radiation, for ventilation and heat-transfer. \*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "psiThermo.H" #include "RASModel.H" -#include "fixedGradientFvPatchFields.H" +#include "radiationModel.H" #include "simpleControl.H" -#include "IOMRFZoneList.H" +#include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -45,7 +46,7 @@ int main(int argc, char *argv[]) #include "createMesh.H" #include "readGravitationalAcceleration.H" #include "createFields.H" - #include "createZones.H" + #include "createRadiationModel.H" #include "initContinuityErrs.H" simpleControl simple(mesh); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/EEqn.H deleted file mode 100644 index 0d1f41d0c30326a6647e51a0be4cc958921d69b8..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/EEqn.H +++ /dev/null @@ -1,22 +0,0 @@ -{ - volScalarField& he = thermo.he(); - - fvScalarMatrix EEqn - ( - fvm::div(phi, he) - + ( - he.name() == "e" - ? fvc::div(phi, volScalarField("Ekp", 0.5*magSqr(U) + p/rho)) - : fvc::div(phi, volScalarField("K", 0.5*magSqr(U))) - ) - - fvm::laplacian(turbulence->alphaEff(), he) - == - radiation->Sh(thermo) - ); - - EEqn.relax(); - EEqn.solve(); - - thermo.correct(); - radiation->correct(); -} diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/files b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/files deleted file mode 100644 index a8347c552591472f0adfd57571aebeb0d2cb440e..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -buoyantSimpleRadiationFoam.C - -EXE = $(FOAM_APPBIN)/buoyantSimpleRadiationFoam diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/options b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/options deleted file mode 100644 index f26046adb2a08affb14512022e8082ea6fc73b51..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/Make/options +++ /dev/null @@ -1,18 +0,0 @@ -EXE_INC = \ - -I.. \ - -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ - -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \ - -I$(LIB_SRC)/turbulenceModels \ - -I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/finiteVolume/cfdTools \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -lfluidThermophysicalModels \ - -lspecie \ - -lradiationModels \ - -lcompressibleTurbulenceModel \ - -lcompressibleRASModels \ - -lfiniteVolume \ - -lmeshTools diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C deleted file mode 100644 index 38f3a7c647c08a78f0cb9f4269d692529b23a634..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C +++ /dev/null @@ -1,86 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 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 - buoyantSimpleRadiationFoam - -Description - Steady-state solver for buoyant, turbulent flow of compressible fluids, - including radiation, for ventilation and heat-transfer. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "psiThermo.H" -#include "RASModel.H" -#include "fixedGradientFvPatchFields.H" -#include "radiationModel.H" -#include "simpleControl.H" -#include "IOMRFZoneList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - #include "readGravitationalAcceleration.H" - #include "createFields.H" - #include "createZones.H" - #include "createRadiationModel.H" - #include "initContinuityErrs.H" - - simpleControl simple(mesh); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (simple.loop()) - { - Info<< "Time = " << runTime.timeName() << nl << endl; - - // Pressure-velocity SIMPLE corrector - { - #include "UEqn.H" - #include "EEqn.H" - #include "pEqn.H" - } - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H index bb7a65cb1d28ac920674974f91563447637874e1..704bf32d505598f57d2869c66d267970e3f4e84b 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H @@ -87,3 +87,5 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho); dimensionedScalar totalVolume = sum(mesh.V()); + + IObasicSourceList sources(mesh); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/createZones.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/createZones.H deleted file mode 100644 index 08480c68d2d6f4c9efc89409a46ed1abe1042ad9..0000000000000000000000000000000000000000 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/createZones.H +++ /dev/null @@ -1,3 +0,0 @@ - IOMRFZoneList mrfZones(mesh); - mrfZones.correctBoundaryVelocity(U); - diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H index 66ae75b650e22a69f980c41e5b1365658c05d43a..2e6cbf3d47d000cd34923efb37740ccd76d6ae3f 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H @@ -17,7 +17,7 @@ fvc::interpolate(rho)*(fvc::interpolate(HbyA) & mesh.Sf()) ); - mrfZones.relativeFlux(fvc::interpolate(rho), phiHbyA); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); bool closedVolume = adjustPhi(phiHbyA, U, p_rgh); @@ -45,6 +45,7 @@ // calculated from the relaxed pressure U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rhorAUf); U.correctBoundaryConditions(); + sources.correct(U); } } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C index 45861220061db63a2bb6d2fe75671e8addec2b49..149a81a3a4b61484c154809536b9d5048fa013e9 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C @@ -36,7 +36,6 @@ Description #include "regionProperties.H" #include "solidThermo.H" #include "radiationModel.H" -#include "IOporosityModelList.H" #include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H index be84cfce0e70866d09a850892603a5845a1e04d5..3e3157de72c8b313724703aa5c54747f7df6d873 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H @@ -16,6 +16,9 @@ ); EEqn.relax(); + + sources.constrain(EEqn); + EEqn.solve(); thermo.correct(); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/UEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/UEqn.H index 8bbc8be5813473b16e1779f85869faee091a4f4e..8df8cd47840968a70df672ef61f39ede626142ce 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/UEqn.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/UEqn.H @@ -3,13 +3,13 @@ ( fvm::div(phi, U) + turb.divDevRhoReff(U) - + sources(rho, U) + == + sources(rho, U) ); UEqn().relax(); - // Add porous resistance - pZones.addResistance(UEqn()); + sources.constrain(UEqn()); solve ( diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H index 3d66fa798b6bd653efc93ea38b1e35347b72bd9c..d30848804e830b517accca121df2e741be4f1dcf 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H @@ -18,7 +18,6 @@ PtrList<dimensionedScalar> rhoMin(fluidRegions.size()); PtrList<IObasicSourceList> heatSources(fluidRegions.size()); - PtrList<IOporosityModelList> porousZonesFluid(fluidRegions.size()); // Populate fluid field pointer lists forAll(fluidRegions, i) @@ -200,13 +199,6 @@ i, new IObasicSourceList(fluidRegions[i]) ); - - Info<< " Adding porous zones\n" << endl; - porousZonesFluid.set - ( - i, - new IOporosityModelList(fluidRegions[i]) - ); } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/pEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/pEqn.H index d2ea510ced756fd512808be931430aa46287e3a6..fca0848912396266a81e377094fd4c7aaef6548c 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/pEqn.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/pEqn.H @@ -23,6 +23,8 @@ phiHbyA += phig; + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + dimensionedScalar compressibility = fvc::domainIntegrate(psi); bool compressible = (compressibility.value() > SMALL); @@ -54,6 +56,7 @@ // calculated from the relaxed pressure U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rhorAUf); U.correctBoundaryConditions(); + sources.correct(U); } } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H index 4f15d8c6192c87acd9401c2ce0184d5c19faa1cb..ee005e0d22964bab19e15fb14ef680bdeeaf8371 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H @@ -14,8 +14,6 @@ IObasicSourceList& sources = heatSources[i]; - const IOporosityModelList& pZones = porousZonesFluid[i]; - const dimensionedScalar initialMass ( "initialMass", diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H index 753c3257de033e361dbeecafced8d21f665bc5f6..2944c6aef06de6b84e767b0e2fa74187078f013a 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H @@ -24,6 +24,8 @@ + phig ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + { fvScalarMatrix p_rghDDtEqn ( @@ -64,6 +66,7 @@ U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rhorAUf); U.correctBoundaryConditions(); + sources.correct(U); K = 0.5*magSqr(U); } } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H index a04750cf17ac37a98c582ff3fd3a5ea8a103944e..c281ccc1971a0499c81115683d71d47e4083b1a6 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H @@ -10,9 +10,14 @@ if (finalIter) ( fvm::ddt(betav*rho, h) - fvm::laplacian(betav*alpha, h, "laplacian(alpha,h)") - + sources(rho, h) + == + sources(rho, h) ); + hEqn().relax(); + + sources.constrain(hEqn()); + hEqn().solve(mesh.solver(h.select(finalIter))); } } diff --git a/applications/solvers/incompressible/pimpleFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/UEqn.H index c274f6a2e8e59182c83e37bf308f30acb6946fd2..84a404654abc2741e3c1db12204b609b3ed63bc9 100644 --- a/applications/solvers/incompressible/pimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/UEqn.H @@ -5,12 +5,10 @@ tmp<fvVectorMatrix> UEqn fvm::ddt(U) + fvm::div(phi, U) + turbulence->divDevReff(U) + == + sources(U) ); -mrfZones.addCoriolis(UEqn()); - -pZones.addResistance(UEqn()); - UEqn().relax(); sources.constrain(UEqn()); @@ -19,5 +17,5 @@ volScalarField rAU(1.0/UEqn().A()); if (pimple.momentumPredictor()) { - solve(UEqn() == -fvc::grad(p) + sources(U)); + solve(UEqn() == -fvc::grad(p)); } diff --git a/applications/solvers/incompressible/pimpleFoam/createZones.H b/applications/solvers/incompressible/pimpleFoam/createZones.H deleted file mode 100644 index fcd02024d58b1b5be8e36f935e2ca70b4ba8bbaf..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/pimpleFoam/createZones.H +++ /dev/null @@ -1,4 +0,0 @@ - IOMRFZoneList mrfZones(mesh); - mrfZones.correctBoundaryVelocity(U); - - IOporosityModelList pZones(mesh); diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H index 1eb8590552ba896d94634784fd98e9f857db731c..9fc62bd9f13163a24aff6e02ec7b1dcb804878b2 100644 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pEqn.H @@ -1,5 +1,5 @@ volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == sources(U))().H(); +HbyA = rAU*UEqn().H(); if (pimple.nCorrPISO() <= 1) { @@ -15,7 +15,7 @@ surfaceScalarField phiHbyA adjustPhi(phiHbyA, U, p); -mrfZones.relativeFlux(phiHbyA); +sources.relativeFlux(phiHbyA); // Non-orthogonal pressure corrector loop while (pimple.correctNonOrthogonal()) diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index d55af57e34dc3a812ce8e157d76b0927fc67f634..8b0f240e4d6c75bc720a4a38ad7d0c74cc17e75a 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C @@ -30,8 +30,7 @@ Description Sub-models include: - turbulence modelling, i.e. laminar, RAS or LES - - porosity (explicit treatment) - - Multiple Reference Frame (MRF) + - run-time selectable sources, e.g. MRF, explicit porosity \*---------------------------------------------------------------------------*/ @@ -51,7 +50,6 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" - #include "createZones.H" #include "initContinuityErrs.H" pimpleControl pimple(mesh); diff --git a/applications/solvers/incompressible/simpleFoam/Allwmake b/applications/solvers/incompressible/simpleFoam/Allwmake index c73703955a90a1ac95d2b9cd909fdcc599d2e56b..801fd3b767bf1abcd414509438ee99f14456a324 100755 --- a/applications/solvers/incompressible/simpleFoam/Allwmake +++ b/applications/solvers/incompressible/simpleFoam/Allwmake @@ -5,7 +5,6 @@ set -x wmake wmake SRFSimpleFoam -wmake MRFSimpleFoam wmake porousSimpleFoam # ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/MRFSimpleFoam.C b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/MRFSimpleFoam.C deleted file mode 100644 index 7c78107c539958ac28693edfd80d3c8354b83153..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/MRFSimpleFoam.C +++ /dev/null @@ -1,85 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 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 - MRFSimpleFoam - -Description - Steady-state solver for incompressible, turbulent flow of non-Newtonian - fluids with MRF regions. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "singlePhaseTransportModel.H" -#include "RASModel.H" -#include "IOMRFZoneList.H" -#include "simpleControl.H" -#include "IObasicSourceList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - - #include "createTime.H" - #include "createMesh.H" - #include "createFields.H" - #include "initContinuityErrs.H" - - IOMRFZoneList mrfZones(mesh); - mrfZones.correctBoundaryVelocity(U); - - simpleControl simple(mesh); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (simple.loop()) - { - Info<< "Time = " << runTime.timeName() << nl << endl; - - // --- Pressure-velocity SIMPLE corrector - { - #include "UEqn.H" - #include "pEqn.H" - } - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/files b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/files deleted file mode 100644 index 56c194272d88eb33bf2b86f1d54567e0bdf1d930..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -MRFSimpleFoam.C - -EXE = $(FOAM_APPBIN)/MRFSimpleFoam diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/options deleted file mode 100644 index e9f47baf9b4a1c37fb5444c7aec9168980fbcba4..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/Make/options +++ /dev/null @@ -1,19 +0,0 @@ -EXE_INC = \ - -I.. \ - -I$(LIB_SRC)/turbulenceModels \ - -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/fieldSources/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude - - -EXE_LIBS = \ - -lincompressibleRASModels \ - -lincompressibleTransportModels \ - -lfiniteVolume \ - -lmeshTools \ - -lfieldSources \ - -lsampling diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H deleted file mode 100644 index d595a64c8f1eaac60f5e7c1526a9c8ff49c77479..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H +++ /dev/null @@ -1,17 +0,0 @@ - // Momentum predictor - - tmp<fvVectorMatrix> UEqn - ( - fvm::div(phi, U) - + turbulence->divDevReff(U) - == - sources(U) - ); - - mrfZones.addCoriolis(UEqn()); - - UEqn().relax(); - - sources.constrain(UEqn()); - - solve(UEqn() == -fvc::grad(p)); diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H deleted file mode 100644 index b7bf83e8cd98f73c80bf70c0250da8e3d028fa16..0000000000000000000000000000000000000000 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H +++ /dev/null @@ -1,38 +0,0 @@ -{ - volScalarField rAU(1.0/UEqn().A()); - volVectorField HbyA("HbyA", U); - HbyA = rAU*UEqn().H(); - UEqn.clear(); - - surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf()); - adjustPhi(phiHbyA, U, p); - mrfZones.relativeFlux(phiHbyA); - adjustPhi(phiHbyA, U, p); - - // Non-orthogonal pressure corrector loop - while (simple.correctNonOrthogonal()) - { - fvScalarMatrix pEqn - ( - fvm::laplacian(rAU, p) == fvc::div(phiHbyA) - ); - - pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(); - - if (simple.finalNonOrthogonalIter()) - { - phi = phiHbyA - pEqn.flux(); - } - } - - #include "continuityErrs.H" - - // Explicitly relax pressure for momentum corrector - p.relax(); - - // Momentum corrector - U = HbyA - rAU*fvc::grad(p); - U.correctBoundaryConditions(); - sources.correct(U); -} diff --git a/applications/solvers/incompressible/simpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/pEqn.H index adc0c0761a2f9a08b44270243423b176eea995c7..116929e3ea9ef23ae220cd9910ce240554266954 100644 --- a/applications/solvers/incompressible/simpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/pEqn.H @@ -7,6 +7,8 @@ surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf()); adjustPhi(phiHbyA, U, p); + sources.relativeFlux(phiHbyA); + // Non-orthogonal pressure corrector loop while (simple.correctNonOrthogonal()) { diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H index 632a160030e9b65501e13d6634ae25a53bfa321b..101c16d827afa0936982d2b62ceb17c38afbdce2 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H @@ -8,6 +8,8 @@ sources(U) ); + mrfZones.addCoriolis(UEqn()); + UEqn().relax(); sources.constrain(UEqn()); diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createZones.H similarity index 88% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H rename to applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createZones.H index 5c6dbea19c4122682311089f3a5f3ddb16d870f6..25c29f024cd215c2785dfceef8a285237fa4b733 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createZones.H @@ -1,3 +1,6 @@ + IOMRFZoneList mrfZones(mesh); + mrfZones.correctBoundaryVelocity(U); + IOporosityModelList pZones(mesh); Switch pressureImplicitPorosity(false); diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H index 8193e072c513972f2463c51339d9a43f4017d109..7aa494744fe554cab28351d8ff2e70dca9bb0ebe 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H @@ -12,6 +12,8 @@ UEqn.clear(); surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf()); adjustPhi(phiHbyA, U, p); +mrfZones.relativeFlux(phiHbyA); + while (simple.correctNonOrthogonal()) { tmp<fvScalarMatrix> tpEqn; @@ -50,3 +52,4 @@ else } U.correctBoundaryConditions(); +sources.correct(U); diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C index bde78bcbe155eb56a0a213c688e1ee317a1f0d4a..e7128f8c1f08b040774375cf4596bb0ca76f3324 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,15 +26,17 @@ Application Description Steady-state solver for incompressible, turbulent flow with - implicit or explicit porosity treatment + implicit or explicit porosity treatment and support for multiple reference + frames (MRF) \*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "singlePhaseTransportModel.H" #include "RASModel.H" -#include "IOporosityModelList.H" #include "simpleControl.H" +#include "IOMRFZoneList.H" +#include "IOporosityModelList.H" #include "IObasicSourceList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,7 +50,7 @@ int main(int argc, char *argv[]) simpleControl simple(mesh); #include "createFields.H" - #include "createPorousZones.H" + #include "createZones.H" #include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H index 24f56e83d23232a5a3e97018f420f73cd13f4abc..fe7b047d9a24e41d4baa7f54324f75e3cc08f160 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H +++ b/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H @@ -7,6 +7,7 @@ rho.dimensionedInternalField()*g + coalParcels.SU(U) + limestoneParcels.SU(U) + + sources(rho, U) ); UEqn.relax(); @@ -15,6 +16,6 @@ if (pimple.momentumPredictor()) { - solve(UEqn == -fvc::grad(p) + sources(rho, U)); + solve(UEqn == -fvc::grad(p)); K = 0.5*magSqr(U); } diff --git a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H index 22d927ca6b109b721d4c36f579c6057575b098f0..0baee1ad3027eefd2261248ab45bb988b913c3f0 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H +++ b/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H @@ -2,7 +2,7 @@ rho = thermo.rho(); volScalarField rAU(1.0/UEqn.A()); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn == sources(rho, U))().H(); +HbyA = rAU*UEqn.H(); if (pimple.transonic()) { @@ -16,6 +16,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -28,7 +30,7 @@ if (pimple.transonic()) + sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); @@ -50,6 +52,8 @@ else ) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -62,7 +66,7 @@ else + sources(psi, p, rho.name()) ); - sources.constrain(pEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H index f5a909a9dd00d45733e44175250a9700deb50d24..2c327a1099ab82a4a1e5b6791a913a8c142292df 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H @@ -21,9 +21,11 @@ + surfaceFilm.Sh() + radiation->Sh(thermo) + combustion->Sh() + + sources(rho, he) ); EEqn.relax(); + sources.constrain(EEqn); EEqn.solve(); thermo.correct(); diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options index a477abff475c373cff3e7d55f71c69d7706bb88e..a2d24b6d11d75c9adde33dd5c5cbc3f7df8e69c8 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options @@ -1,5 +1,7 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/fieldSources/lnInclude \ + -I${LIB_SRC}/sampling/lnInclude \ -I${LIB_SRC}/meshTools/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \ @@ -25,6 +27,8 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ + -lfieldSources \ + -lsampling \ -lmeshTools \ -lcompressibleRASModels \ -lcompressibleLESModels \ diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H index 81c587e2438ce31da3b78672923bcf326c7a3a19..5884abe0c1f3f416c5db964fcf1e35055434cad8 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H @@ -5,10 +5,13 @@ + turbulence->divDevRhoReff(U) == parcels.SU(U) + + sources(rho, U) ); UEqn.relax(); + sources.constrain(UEqn); + if (pimple.momentumPredictor()) { solve diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H index b14b7d6dae2d32e67e67d7ca2d8ad0fbc8e44533..e05dcdef6ab53038c91a52cf06c6ca2e0335ae4b 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H @@ -22,18 +22,24 @@ tmp<fv::convectionScheme<scalar> > mvConvection { volScalarField& Yi = Y[i]; - solve + fvScalarMatrix YEqn ( fvm::ddt(rho, Yi) + mvConvection->fvmDiv(phi, Yi) - fvm::laplacian(turbulence->alphaEff(), Yi) == parcels.SYi(i, Yi) + + sources(rho, Yi) + + combustion->R(Yi) + surfaceFilm.Srho(i) - + combustion->R(Yi), - mesh.solver("Yi") ); + YEqn.relax(); + + sources.constrain(YEqn); + + YEqn.solve(mesh.solver("Yi")); + Yi.max(0.0); Yt += Yi; } diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H index 057978c8f893796cf9e57b64497b7e6612249629..1a15b1b2abfa2cee780794ed266582f6d491ff12 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H @@ -139,3 +139,5 @@ mesh, dimensionedScalar("dQ", dimEnergy/dimTime, 0.0) ); + + IObasicSourceList sources(mesh); diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H index 6a09845b6b5822e9c71e16c5fdc0475732160b70..bcdd3beca46acfd90b8002086273b1194daa7325 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H @@ -18,6 +18,7 @@ surfaceScalarField phiHbyA + phig ); +sources.relativeFlux(fvc::interpolate(rho), phiHbyA); while (pimple.correctNonOrthogonal()) { @@ -30,8 +31,11 @@ while (pimple.correctNonOrthogonal()) == parcels.Srho() + surfaceFilm.Srho() + + sources(psi, p_rgh, rho.name()) ); + sources.constrain(p_rghEqn); + p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -39,6 +43,7 @@ while (pimple.correctNonOrthogonal()) phi = phiHbyA + p_rghEqn.flux(); U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf); U.correctBoundaryConditions(); + sources.correct(U); } } diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C index 06df5b17486a10591b46a851a6fe02f7ecf25d7d..203ee0ecd8afd0e8b2df0f9202fc6844034618e0 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C @@ -37,6 +37,7 @@ Description #include "psiCombustionModel.H" #include "radiationModel.H" #include "SLGThermo.H" +#include "IObasicSourceList.H" #include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H index f93906018171e762b96eb5ca4bc1e1ca85176742..282acfe91eee30d8bef14ed85a2468fec1bb7c2a 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,6 +37,7 @@ Description == parcels.Srho(rho) + surfaceFilm.Srho() + + sources(rho) ); } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H index 090922e57215a6080e9b650189abf4353df40dc5..612e582c54270b7b888f4b402ec2d5f47c43ffb0 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H @@ -7,6 +7,7 @@ == rho.dimensionedInternalField()*g + parcels.SU(U) + + sources(rho, U) ); UEqn.relax(); @@ -17,6 +18,6 @@ if (pimple.momentumPredictor()) { - solve(UEqn == -fvc::grad(p) + sources(rho, U)); + solve(UEqn == -fvc::grad(p)); K = 0.5*magSqr(U); } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H index 1bcdf7c92f917c1a1514b50ab0ccbe95f1d38f15..569beae05861d2922dab4f9e1a0ae40c94eb3753 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H @@ -7,17 +7,19 @@ volScalarField rAU(1.0/UEqn.A()); volVectorField HbyA("HbyA", U); - HbyA = rAU*(UEqn == sources(rho, U))().H(); + HbyA = rAU*UEqn.H(); - surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf()); - if (!pZones.active()) - { - // ddtPhiCorr only used without porosity - phiHbyA += fvc::ddtPhiCorr(rAU, rho, U, phi); - } - - phiHbyA *= fvc::interpolate(rho); + surfaceScalarField phiHbyA + ( + "phiHbyA", + fvc::interpolate(rho) + *( + (fvc::interpolate(HbyA) & mesh.Sf()) + + fvc::ddtPhiCorr(rAU, rho, U, phi) + ) + ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); fvScalarMatrix pDDtEqn ( @@ -36,7 +38,7 @@ - fvm::laplacian(rho*rAU, p) ); - sources.constrain(pDDtEqn, rho.name()); + sources.constrain(pEqn); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); diff --git a/applications/solvers/lagrangian/sprayFoam/UEqn.H b/applications/solvers/lagrangian/sprayFoam/UEqn.H index 2ddaa2c30155749a087748516f58fb1d1dd18032..3723f7f79db5b06860fbd9405b20d4dcce5624b9 100644 --- a/applications/solvers/lagrangian/sprayFoam/UEqn.H +++ b/applications/solvers/lagrangian/sprayFoam/UEqn.H @@ -6,6 +6,7 @@ == rho.dimensionedInternalField()*g + parcels.SU(U) + + sources(rho, U) ); UEqn.relax(); @@ -14,6 +15,6 @@ if (pimple.momentumPredictor()) { - solve(UEqn == -fvc::grad(p) + sources(rho, U)); + solve(UEqn == -fvc::grad(p)); K = 0.5*magSqr(U); } diff --git a/applications/solvers/lagrangian/sprayFoam/pEqn.H b/applications/solvers/lagrangian/sprayFoam/pEqn.H index d476a6bda8004f209adf65a540e53415e6a5edf1..9d95ee6dec51a7ea040ce4002e5a36119bd5c403 100644 --- a/applications/solvers/lagrangian/sprayFoam/pEqn.H +++ b/applications/solvers/lagrangian/sprayFoam/pEqn.H @@ -2,7 +2,7 @@ rho = thermo.rho(); volScalarField rAU(1.0/UEqn.A()); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn == sources(rho, U))().H(); +HbyA = rAU*UEqn.H(); if (pimple.transonic()) { @@ -16,6 +16,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -28,6 +30,8 @@ if (pimple.transonic()) + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -48,6 +52,8 @@ else ) ); + sources.relativeFlux(fvc::interpolate(psi), phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -60,6 +66,8 @@ else + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H index 0301fba2eaa9a05f2329fdb9db204a49013576ae..d3435a81636e7a7245b0d2642669c432410e8f5e 100644 --- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H +++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H @@ -2,7 +2,7 @@ rho = thermo.rho(); volScalarField rAU(1.0/UEqn.A()); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn == sources(rho, U))().H(); +HbyA = rAU*UEqn.H(); if (pimple.transonic()) { @@ -16,6 +16,8 @@ if (pimple.transonic()) ) ); + sources.relativeFlux(fvc::interpolate(psi), phid); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -28,6 +30,8 @@ if (pimple.transonic()) + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) @@ -48,6 +52,8 @@ else ) ); + sources.relativeFlux(fvc::interpolate(rho), phiHbyA); + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn @@ -60,6 +66,8 @@ else + sources(psi, p, rho.name()) ); + sources.constrain(pEqn); + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) diff --git a/applications/test/fvSolutionCombine/Test-fvSolutionCombine.C b/applications/test/fvSolutionCombine/Test-fvSolutionCombine.C index 074996252e396ce5ed4822f8e4d5ca7a447cf1e4..0d9775e84954f86bc08dc7a13932f0ad7bfda4df 100644 --- a/applications/test/fvSolutionCombine/Test-fvSolutionCombine.C +++ b/applications/test/fvSolutionCombine/Test-fvSolutionCombine.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -114,7 +114,7 @@ int main(int argc, char *argv[]) IOobject ( dictName, - "system", + runTime.system(), runTime, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE, @@ -128,9 +128,9 @@ int main(int argc, char *argv[]) return 2; } - if (optRewrite && solutionDict.instance() != "system") + if (optRewrite && solutionDict.instance() != runTime.system()) { - Info<<"instance is not 'system' " + Info<<"instance is not " << runTime.system() "- disabling rewrite for this file" << nl; optRewrite = false; } diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H index d722c432e3b4aa5a45e7c11c1e5bfcd7c6d4f7a8..d21b64fdc1fe7affa0afd262c4359d4ba7aa1359 100644 --- a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H +++ b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H @@ -4,7 +4,7 @@ if ( - runTime.timeName() != "constant" + runTime.timeName() != runTime.constant() && runTime.timeName() != "0" ) { diff --git a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H index d722c432e3b4aa5a45e7c11c1e5bfcd7c6d4f7a8..d21b64fdc1fe7affa0afd262c4359d4ba7aa1359 100644 --- a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H +++ b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H @@ -4,7 +4,7 @@ if ( - runTime.timeName() != "constant" + runTime.timeName() != runTime.constant() && runTime.timeName() != "0" ) { diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C index 6f8712a0b357811f4bde59d981725018fa2a9fe0..097330487e2ab92d2a581bf0b02e487ba5b08b6a 100644 --- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C +++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -104,60 +104,50 @@ int main(int argc, char *argv[]) polyMeshDir = polyMesh::meshSubDir; } - autoPtr<IOobject> meshDictIoPtr; + IOobject meshDictIO + ( + dictName, + runTime.constant(), + polyMeshDir, + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false + ); if (args.optionFound("dict")) { const fileName dictPath = args["dict"]; - meshDictIoPtr.set - ( - new IOobject - ( - ( - isDir(dictPath) - ? dictPath/dictName - : dictPath - ), - runTime, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) - ); - } - else - { - meshDictIoPtr.set + meshDictIO = IOobject ( - new IOobject ( - dictName, - runTime.constant(), - polyMeshDir, - runTime, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) + isDir(dictPath) + ? dictPath/dictName + : dictPath + ), + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false ); } - if (!meshDictIoPtr->headerOk()) + if (!meshDictIO.headerOk()) { FatalErrorIn(args.executable()) << "Cannot open mesh description file\n " - << meshDictIoPtr->objectPath() + << meshDictIO.objectPath() << nl << exit(FatalError); } Info<< "Creating block mesh from\n " - << meshDictIoPtr->objectPath() << endl; + << meshDictIO.objectPath() << endl; blockMesh::verbose(true); - IOdictionary meshDict(meshDictIoPtr()); + IOdictionary meshDict(meshDictIO); blockMesh blocks(meshDict, regionName); diff --git a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C index be4fffa8df24579f1fee5dbc5fb8eb8bd8d35c0a..b159f9c096dd5e8d5813568a2fe52a9d3abfeee3 100644 --- a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C +++ b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C @@ -1241,8 +1241,7 @@ int main(int argc, char *argv[]) #include "addRegionOption.H" #include "addOverwriteOption.H" - argList::addOption("dict", "name", "specify alternative dictionary"); - + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" #include "createNamedMesh.H" @@ -1263,19 +1262,14 @@ int main(int argc, char *argv[]) const word oldInstance = mesh.pointsInstance(); bool overwrite = args.optionFound("overwrite"); - const word dictName - (args.optionLookupOrDefault<word>("dict", "extrudeToRegionMeshDict")); - IOdictionary dict - ( - IOobject - ( - dictName, - runTime.system(), - runTime, - IOobject::MUST_READ_IF_MODIFIED - ) - ); + + const word dictName("extrudeToRegionMeshDict"); + + #include "setSystemMeshDictionaryIO.H" + + IOdictionary dict(dictIO); + // Point generator autoPtr<extrudeModel> model(extrudeModel::New(dict)); diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C index 6b6343091872e0e1dc15997225e917f1a7146516..2406cb667c45098ebd0ae54dfbf61f325e48d68c 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C @@ -369,7 +369,10 @@ int main(int argc, char *argv[]) // Add all the surface regions as patches // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - labelList globalToPatch; + //- Global surface region to patch (non faceZone surface) or patches + // (faceZone surfaces) + labelList globalToMasterPatch; + labelList globalToSlavePatch; { Info<< nl << "Adding patches for surface regions" << nl @@ -377,7 +380,8 @@ int main(int argc, char *argv[]) << endl; // From global region number to mesh patch. - globalToPatch.setSize(surfaces.nRegions(), -1); + globalToMasterPatch.setSize(surfaces.nRegions(), -1); + globalToSlavePatch.setSize(surfaces.nRegions(), -1); Info<< "Patch\tType\tRegion" << nl << "-----\t----\t------" @@ -394,36 +398,111 @@ int main(int argc, char *argv[]) Info<< surfaces.names()[surfI] << ':' << nl << nl; - forAll(regNames, i) + if (surfaces.faceZoneNames()[surfI].empty()) { - label globalRegionI = surfaces.globalRegion(surfI, i); - - label patchI; - - if (surfacePatchInfo.set(globalRegionI)) + // 'Normal' surface + forAll(regNames, i) { - patchI = meshRefiner.addMeshedPatch - ( - regNames[i], - surfacePatchInfo[globalRegionI] - ); + label globalRegionI = surfaces.globalRegion(surfI, i); + + label patchI; + + if (surfacePatchInfo.set(globalRegionI)) + { + patchI = meshRefiner.addMeshedPatch + ( + regNames[i], + surfacePatchInfo[globalRegionI] + ); + } + else + { + dictionary patchInfo; + patchInfo.set("type", wallPolyPatch::typeName); + + patchI = meshRefiner.addMeshedPatch + ( + regNames[i], + patchInfo + ); + } + + Info<< patchI << '\t' << mesh.boundaryMesh()[patchI].type() + << '\t' << regNames[i] << nl; + + globalToMasterPatch[globalRegionI] = patchI; + globalToSlavePatch[globalRegionI] = patchI; } - else + } + else + { + // Zoned surface + forAll(regNames, i) { - dictionary patchInfo; - patchInfo.set("type", wallPolyPatch::typeName); - - patchI = meshRefiner.addMeshedPatch - ( - regNames[i], - patchInfo - ); + label globalRegionI = surfaces.globalRegion(surfI, i); + + // Add master side patch + { + label patchI; + + if (surfacePatchInfo.set(globalRegionI)) + { + patchI = meshRefiner.addMeshedPatch + ( + regNames[i], + surfacePatchInfo[globalRegionI] + ); + } + else + { + dictionary patchInfo; + patchInfo.set("type", wallPolyPatch::typeName); + + patchI = meshRefiner.addMeshedPatch + ( + regNames[i], + patchInfo + ); + } + + Info<< patchI << '\t' + << mesh.boundaryMesh()[patchI].type() + << '\t' << regNames[i] << nl; + + globalToMasterPatch[globalRegionI] = patchI; + } + // Add slave side patch + { + const word slaveName = regNames[i] + "_slave"; + label patchI; + + if (surfacePatchInfo.set(globalRegionI)) + { + patchI = meshRefiner.addMeshedPatch + ( + slaveName, + surfacePatchInfo[globalRegionI] + ); + } + else + { + dictionary patchInfo; + patchInfo.set("type", wallPolyPatch::typeName); + + patchI = meshRefiner.addMeshedPatch + ( + slaveName, + patchInfo + ); + } + + Info<< patchI << '\t' + << mesh.boundaryMesh()[patchI].type() + << '\t' << slaveName << nl; + + globalToSlavePatch[globalRegionI] = patchI; + } } - - Info<< patchI << '\t' << mesh.boundaryMesh()[patchI].type() - << '\t' << regNames[i] << nl; - - globalToPatch[globalRegionI] = patchI; } Info<< nl; @@ -479,7 +558,8 @@ int main(int argc, char *argv[]) meshRefiner, decomposer, distributor, - globalToPatch + globalToMasterPatch, + globalToSlavePatch ); // Refinement parameters @@ -510,7 +590,8 @@ int main(int argc, char *argv[]) autoSnapDriver snapDriver ( meshRefiner, - globalToPatch + globalToMasterPatch, + globalToSlavePatch ); // Snap parameters @@ -544,7 +625,12 @@ int main(int argc, char *argv[]) { cpuTime timer; - autoLayerDriver layerDriver(meshRefiner, globalToPatch); + autoLayerDriver layerDriver + ( + meshRefiner, + globalToMasterPatch, + globalToSlavePatch + ); // Layer addition parameters layerParameters layerParams(layerDict, mesh.boundaryMesh()); diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C index c2e2a06ebb9422481f4b0ef4688a77dbc798748a..89beec32efee04e612c4ace9eab43c561032f1c5 100644 --- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C +++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C @@ -117,14 +117,9 @@ int main(int argc, char *argv[]) "Makes internal faces into boundary faces.\n" "Does not duplicate points." ); - + #include "addDictOption.H" #include "addOverwriteOption.H" - argList::addOption - ( - "dict", - "file", - "specify alternative dictionary for the createBaffles description" - ); + #include "addDictOption.H" #include "addRegionOption.H" #include "setRootCase.H" #include "createTime.H" @@ -136,14 +131,8 @@ int main(int argc, char *argv[]) const word oldInstance = mesh.pointsInstance(); - const word dictName - ( - args.optionLookupOrDefault<word> - ( - "dict", - "createBafflesDict" - ) - ); + const word dictName("createBafflesDict"); + #include "setSystemMeshDictionaryIO.H" Switch internalFacesOnly(false); @@ -152,17 +141,7 @@ int main(int argc, char *argv[]) PtrList<faceSelection> selectors; { Info<< "Reading baffle criteria from " << dictName << nl << endl; - IOdictionary dict - ( - IOobject - ( - dictName, - mesh.time().system(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); + IOdictionary dict(dictIO); dict.lookup("internalFacesOnly") >> internalFacesOnly; noFields = dict.lookupOrDefault("noFields", false); diff --git a/applications/utilities/mesh/manipulation/createPatch/createPatch.C b/applications/utilities/mesh/manipulation/createPatch/createPatch.C index 7a969e15d16ffdf7c952a608e3c5780c999b7b38..9e89c8d4dfc67f57522ba2ac516db98ccfe480b3 100644 --- a/applications/utilities/mesh/manipulation/createPatch/createPatch.C +++ b/applications/utilities/mesh/manipulation/createPatch/createPatch.C @@ -505,13 +505,7 @@ int main(int argc, char *argv[]) { #include "addOverwriteOption.H" #include "addRegionOption.H" - argList::addOption - ( - "dict", - "word", - "name of dictionary to provide patch information" - ); - + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" runTime.functionObjects().off(); @@ -521,38 +515,20 @@ int main(int argc, char *argv[]) const bool overwrite = args.optionFound("overwrite"); - word dictName - ( - args.optionLookupOrDefault<word>("dict", "createPatchDict") - ); + #include "createNamedPolyMesh.H" - Info<< "Reading " << dictName << nl << endl; + const word oldInstance = mesh.pointsInstance(); - IOdictionary dict - ( - IOobject - ( - dictName, - runTime.system(), - ( - meshRegionName != polyMesh::defaultRegion - ? meshRegionName - : word::null - ), - runTime, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) - ); + const word dictName("createPatchDict"); + #include "setSystemMeshDictionaryIO.H" + Info<< "Reading " << dictName << nl << endl; + + IOdictionary dict(dictIO); // Whether to synchronise points const Switch pointSync(dict.lookup("pointSync")); - #include "createNamedPolyMesh.H" - - const word oldInstance = mesh.pointsInstance(); const polyBoundaryMesh& patches = mesh.boundaryMesh(); diff --git a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C index f8a206e651cee834f7b39288bd2d22955ad47ef6..098864102d65185e290f572a5a50fcc2dca57b9a 100644 --- a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C +++ b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C @@ -298,12 +298,7 @@ int main(int argc, char *argv[]) #include "addOverwriteOption.H" #include "addRegionOption.H" - argList::addBoolOption - ( - "dict", - "refine according to system/refineMeshDict" - ); - + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" runTime.functionObjects().off(); @@ -327,19 +322,12 @@ int main(int argc, char *argv[]) if (readDict) { - Info<< "Refining according to refineMeshDict" << nl << endl; + const word dictName("refineMeshDict"); + #include "setSystemMeshDictionaryIO.H" - refineDict = IOdictionary - ( - IOobject - ( - "refineMeshDict", - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ); + Info<< "Refining according to " << dictName << nl << endl; + + refineDict = IOdictionary(dictIO); const word setName(refineDict.lookup("set")); diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C index 7eede94626c2d1359869252e3be2e3d8e939f945..d03f24cd7c2e4f442f2143b95c0ba59028420f28 100644 --- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C +++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C @@ -614,11 +614,7 @@ int main(int argc, char *argv[]) # include "addRegionOption.H" # include "addOverwriteOption.H" # include "addTimeOptions.H" - argList::addBoolOption - ( - "dict", - "renumber according to system/renumberMeshDict" - ); +# include "addDictOption.H" argList::addBoolOption ( "frontWidth", @@ -700,23 +696,13 @@ int main(int argc, char *argv[]) if (readDict) { - Info<< "Renumber according to renumberMeshDict." << nl << endl; + const word dictName("renumberMeshDict"); + #include "setSystemMeshDictionaryIO.H" - renumberDictPtr.reset - ( - new IOdictionary - ( - IOobject - ( - "renumberMeshDict", - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ) - ); - const IOdictionary renumberDict = renumberDictPtr(); + Info<< "Renumber according to " << dictName << nl << endl; + + renumberDictPtr.reset(new IOdictionary(dictIO)); + const IOdictionary& renumberDict = renumberDictPtr(); renumberPtr = renumberMethod::New(renumberDict); diff --git a/applications/utilities/mesh/manipulation/subsetMesh/cellSelection/outsideCellSelection.C b/applications/utilities/mesh/manipulation/subsetMesh/cellSelection/outsideCellSelection.C index 556ae4e07e5d9553aa0d0e571c6cd70f9f793e8b..7cb4eec5181b8f43711986ba6c84ecf8ebfd769a 100644 --- a/applications/utilities/mesh/manipulation/subsetMesh/cellSelection/outsideCellSelection.C +++ b/applications/utilities/mesh/manipulation/subsetMesh/cellSelection/outsideCellSelection.C @@ -156,10 +156,21 @@ Foam::boolList Foam::cellSelections::outsideCellSelection::findRegions reduce(keepRegionI, maxOp<label>()); keepRegion[keepRegionI] = true; - if (verbose) + reduce(keepProcI, maxOp<label>()); + + if (keepProcI == -1) { - reduce(keepProcI, maxOp<label>()); + FatalErrorIn + ( + "outsideCellSelection::findRegions" + "(const bool, const regionSplit&)" + ) << "Did not find " << locationsInMesh_[i] + << " in mesh." << " Mesh bounds are " << mesh_.bounds() + << exit(FatalError); + } + if (verbose) + { Info<< "Found location " << locationsInMesh_[i] << " in cell " << cellI << " on processor " << keepProcI << " in global region " << keepRegionI diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C index e1cc69aa7e22f6c8a4ad0999b3ced2b1d1689c8c..f4f1250cb1af9c7691ebdcf273aae546fd9e0d7f 100644 --- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C +++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C @@ -155,12 +155,7 @@ int main(int argc, char *argv[]) "select a mesh subset based on a provided cellSet and/or" " selection criteria" ); - argList::addBoolOption - ( - "dict", - "read mesh subset selection criteria" - " from system/subsetMeshDict" - ); + #include "addDictOption.H" argList::addOption ( "cellSet", @@ -210,18 +205,10 @@ int main(int argc, char *argv[]) PtrList<cellSelection> selectors; if (useDict) { - Info<< "Reading selection criteria from subsetMeshDict" << nl << endl; - IOdictionary dict - ( - IOobject - ( - "subsetMeshDict", - mesh.time().system(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); + const word dictName("subsetMeshDict"); + #include "setSystemMeshDictionaryIO.H" + Info<< "Reading selection criteria from " << dictName << nl << endl; + IOdictionary dict(dictIO); const dictionary& selectionsDict = dict.subDict("selections"); diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMeshDict b/applications/utilities/mesh/manipulation/subsetMesh/subsetMeshDict index 0f725142a36ee97658d07a6001b1c08bd32a26b1..93280bb30574cf16e7d7e601eb1a30d6026aa15e 100644 --- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMeshDict +++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMeshDict @@ -27,7 +27,7 @@ selections // used by snappyHexMesh, cvMesh. type badQuality; // Use the quality criteria from the snappyHexMeshDict - ${.meshQualityControls} + ${:meshQualityControls} } outside @@ -42,7 +42,7 @@ selections //- Define mesh location for keeping. // In this case use the one from snappyHexMeshDict. This can // optionally be a list of locations. - locationsInMesh (${.castellatedMeshControls.locationInMesh}); + locationsInMesh (${:castellatedMeshControls.locationInMesh}); } } diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSet.C b/applications/utilities/mesh/manipulation/topoSet/topoSet.C index c124ca3992358d225aee566436968ed93fb80ee0..6dee4fd0b509ff679245d5ed4f31b440bc4a1f4d 100644 --- a/applications/utilities/mesh/manipulation/topoSet/topoSet.C +++ b/applications/utilities/mesh/manipulation/topoSet/topoSet.C @@ -193,12 +193,7 @@ polyMesh::readUpdateState meshReadUpdate(polyMesh& mesh) int main(int argc, char *argv[]) { timeSelector::addOptions(true, false); - argList::addOption - ( - "dict", - "file", - "specify an alternative dictionary for the topoSet dictionary" - ); + #include "addDictOption.H" #include "addRegionOption.H" argList::addBoolOption ( @@ -216,41 +211,11 @@ int main(int argc, char *argv[]) const bool noSync = args.optionFound("noSync"); const word dictName("topoSetDict"); - - fileName dictPath = dictName; - if (args.optionFound("dict")) - { - dictPath = args["dict"]; - if (isDir(dictPath)) - { - dictPath = dictPath / dictName; - } - } + #include "setSystemMeshDictionaryIO.H" Info<< "Reading " << dictName << "\n" << endl; - IOdictionary topoSetDict - ( - ( - args.optionFound("dict") - ? IOobject - ( - dictPath, - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - : IOobject - ( - dictName, - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ) - ); - + IOdictionary topoSetDict(dictIO); // Read set construct info from dictionary PtrList<dictionary> actions(topoSetDict.lookup("actions")); diff --git a/applications/utilities/miscellaneous/foamInfoExec/foamInfoExec.C b/applications/utilities/miscellaneous/foamInfoExec/foamInfoExec.C index 5b85aee0771e769ba869076b6ede2c878d9d5839..49c70eb1c355747cc611092d4b295f36edec694c 100644 --- a/applications/utilities/miscellaneous/foamInfoExec/foamInfoExec.C +++ b/applications/utilities/miscellaneous/foamInfoExec/foamInfoExec.C @@ -51,12 +51,7 @@ int main(int argc, char *argv[]) "keywords", "report keywords for the specified dictionary" ); - argList::addOption - ( - "dict", - "file", - "specify a dictionary to interrogate" - ); + #include "addDictOption.H" argList::addOption ( "entry", @@ -81,9 +76,12 @@ int main(int argc, char *argv[]) if (args.optionFound("dict")) { + fileName dictPath = args["dict"]; const fileName dictFileName ( - args.rootPath()/args.caseName()/args["dict"] + dictPath.isAbsolute() + ? dictPath + : args.rootPath()/args.caseName()/args["dict"] ); IFstream dictFile(dictFileName); diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H index 491ada9a43d9c628d295b70555ccec2c2dee0d84..53e234939e22d7bdb310e85ff92e4aa414f66988 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H @@ -9,7 +9,7 @@ } else if ( - runTime.timeName() != "constant" + runTime.timeName() != runTime.constant() && runTime.timeName() != "0" ) { diff --git a/applications/utilities/postProcessing/foamCalc/foamCalcApp.C b/applications/utilities/postProcessing/foamCalc/foamCalcApp.C index 39d0a581d509bc84a2dd95a7f6310f72c97d6b64..3e5c99f3e43835fe6bff33583b5561823aecdee9 100644 --- a/applications/utilities/postProcessing/foamCalc/foamCalcApp.C +++ b/applications/utilities/postProcessing/foamCalc/foamCalcApp.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,12 +49,7 @@ int main(int argc, char *argv[]) "noWrite", "suppress writing results" ); - Foam::argList::addOption - ( - "dict", - "name", - "dictionary to use" - ); +# include "addDictOption.H" if (argc < 2) { diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index 1e49db7505d92ce4844129e1c33d6a72db9ca272..cf0ca1314a9a7a6326953c5d7fab69f0fb5df910 100644 --- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -575,7 +575,7 @@ double* Foam::vtkPV3Foam::findTimes(int& nTimeSteps) // skip "constant" time whenever possible if (timeI == 0 && nTimes > 1) { - if (timeLst[timeI].name() == "constant") + if (timeLst[timeI].name() == runTime.constant()) { ++timeI; --nTimes; diff --git a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/createFields.H b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/createFields.H index 24854ab6b60d038d41997f97de85c4433d0cddde..309d7718f6682283ce980002cf146e94c49c5d3a 100644 --- a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/createFields.H +++ b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/createFields.H @@ -1,16 +1,9 @@ -word dictName(args.optionLookupOrDefault<word>("dict", "particleTrackDict")); +const word dictName("particleTrackDict"); -IOdictionary propsDict -( - IOobject - ( - dictName, - runTime.constant(), - mesh, - IOobject::MUST_READ_IF_MODIFIED - ) -); +#include "setConstantMeshDictionaryIO.H" + +IOdictionary propsDict(dictIO); word cloudName(propsDict.lookup("cloudName")); -List<word> userFields(propsDict.lookup("fields")); \ No newline at end of file +List<word> userFields(propsDict.lookup("fields")); diff --git a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C index 4c1bea3c2d0e89f6334602523a6f215d2304ccdf..5a6fad75a696b5a8554012ace76107dd2f337ec5 100644 --- a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C +++ b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -113,7 +113,7 @@ int main(int argc, char *argv[]) argList::noParallel(); timeSelector::addOptions(); #include "addRegionOption.H" - argList::validOptions.insert("dict", ""); + #include "addDictOption.H" #include "setRootCase.H" diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C index b133509318af20c296c833c54ab8138119d5272b..e5c6735d8c8b52545c2efd19728131c0a6f3bfe7 100644 --- a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C +++ b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C @@ -65,7 +65,6 @@ namespace Foam IOobject ( args["dict"], - runTime.system(), runTime, IOobject::MUST_READ_IF_MODIFIED ) diff --git a/applications/utilities/postProcessing/sampling/probeLocations/probeLocations.C b/applications/utilities/postProcessing/sampling/probeLocations/probeLocations.C index 5c02fe31e715bc9160b0c9d8519c9bc34fbf9a64..59c73ffc60d8cff7c586f294ebea851ec4e84d0c 100644 --- a/applications/utilities/postProcessing/sampling/probeLocations/probeLocations.C +++ b/applications/utilities/postProcessing/sampling/probeLocations/probeLocations.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,7 +49,7 @@ int main(int argc, char *argv[]) ( probes::typeName, mesh, - "probesDict", + word("probesDict"), // force the use of the system directory IOobject::MUST_READ, true ); diff --git a/applications/utilities/postProcessing/sampling/sample/sample.C b/applications/utilities/postProcessing/sampling/sample/sample.C index 6b09aa19b9b6777f8e42b599ff260526f65e5249..6641508a573946fbf394db86662bcd97d38eb1b2 100644 --- a/applications/utilities/postProcessing/sampling/sample/sample.C +++ b/applications/utilities/postProcessing/sampling/sample/sample.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -97,37 +97,82 @@ int main(int argc, char *argv[]) { timeSelector::addOptions(); #include "addRegionOption.H" - argList::addOption - ( - "dict", - "word", - "name of dictionary to provide sample information" - ); - + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); #include "createNamedMesh.H" - word sampleDict(args.optionLookupOrDefault<word>("dict", "sampleDict")); - - IOsampledSets sSets - ( - sampledSets::typeName, - mesh, - sampleDict, - IOobject::MUST_READ_IF_MODIFIED, - true - ); - - IOsampledSurfaces sSurfs - ( - sampledSurfaces::typeName, - mesh, - sampleDict, - IOobject::MUST_READ_IF_MODIFIED, - true - ); + const word dictName("sampleDict"); + + autoPtr<IOsampledSets> sSetsPtr; + autoPtr<IOsampledSurfaces> sSurfsPtr; + + if (args.optionFound("dict")) + { + // Construct from fileName + + fileName dictPath = args["dict"]; + if (isDir(dictPath)) + { + dictPath = dictPath / dictName; + } + + sSetsPtr.reset + ( + new IOsampledSets + ( + sampledSets::typeName, + mesh, + dictPath, + IOobject::MUST_READ_IF_MODIFIED, + true + ) + ); + + sSurfsPtr.reset + ( + new IOsampledSurfaces + ( + sampledSurfaces::typeName, + mesh, + dictPath, + IOobject::MUST_READ_IF_MODIFIED, + true + ) + ); + } + else + { + // Construct from name in system() directory + + sSetsPtr.reset + ( + new IOsampledSets + ( + sampledSets::typeName, + mesh, + dictName, + IOobject::MUST_READ_IF_MODIFIED, + true + ) + ); + + sSurfsPtr.reset + ( + new IOsampledSurfaces + ( + sampledSurfaces::typeName, + mesh, + dictName, + IOobject::MUST_READ_IF_MODIFIED, + true + ) + ); + } + + IOsampledSets& sSets = sSetsPtr(); + IOsampledSurfaces& sSurfs = sSurfsPtr(); forAll(timeDirs, timeI) { diff --git a/applications/utilities/postProcessing/sampling/sample/sampleDict b/applications/utilities/postProcessing/sampling/sample/sampleDict index 58bdc7c59cee694920619d7192288cf813c7fed6..86ba1b4849f442f22d78b2ec6e1b2f67d30b85c8 100644 --- a/applications/utilities/postProcessing/sampling/sample/sampleDict +++ b/applications/utilities/postProcessing/sampling/sample/sampleDict @@ -140,6 +140,7 @@ sets patchSeed { + type patchSeed; patches (".*Wall.*"); // Number of points to seed. Divided amongst all processors according // to fraction of patches they hold. diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C index 3c664cfc3b29297010cd924cc15dfd75d398d422..4bb711880a309c5c51c39be36ace7ae95abcb576 100644 --- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C +++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C @@ -385,12 +385,7 @@ bool merge int main(int argc, char *argv[]) { - argList::addOption - ( - "dict", - "file", - "specify an alternative to system/changeDictionaryDict" - ); + #include "addDictOption.H" argList::addOption ( "instance", @@ -432,21 +427,8 @@ int main(int argc, char *argv[]) runTime.setTime(times[0], 0); word instance = args.optionLookupOrDefault("instance", runTime.timeName()); - #include "createNamedMesh.H" - const word dictName("changeDictionaryDict"); - - fileName dictPath = dictName; - if (args.optionFound("dict")) - { - dictPath = args["dict"]; - if (isDir(dictPath)) - { - dictPath = dictPath / dictName; - } - } - const bool literalRE = args.optionFound("literalRE"); if (literalRE) { @@ -493,27 +475,10 @@ int main(int argc, char *argv[]) // Get the replacement rules from a dictionary - IOdictionary dict - ( - ( - args.optionFound("dict") - ? IOobject - ( - dictPath, - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - : IOobject - ( - dictName, - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ) - ); + + const word dictName("changeDictionaryDict"); + #include "setSystemMeshDictionaryIO.H" + IOdictionary dict(dictIO); const dictionary& replaceDicts = dict.subDict("dictionaryReplacement"); Info<< "Read dictionary " << dict.name() diff --git a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C index 39b6572ef11640e5df8ed0d470058b95987404fe..2e3a56007b22561df858fd9675a9534e928b3c9a 100644 --- a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C +++ b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -48,22 +48,22 @@ using namespace Foam; int main(int argc, char *argv[]) { #include "addRegionOption.H" - argList::addOption - ( - "dict", - "word", - "name of dictionary to provide patch agglomeration controls" - ); + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" #include "createNamedMesh.H" - word agglomDictName - ( - args.optionLookupOrDefault<word>("dict", "faceAgglomerateDict") - ); + const word dictName("faceAgglomerateDict"); + + #include "setConstantMeshDictionaryIO.H" + + // Read control dictionary + const IOdictionary agglomDict(dictIO); + + bool writeAgglom = readBool(agglomDict.lookup("writeFacesAgglomeration")); - const polyBoundaryMesh& patches = mesh.boundaryMesh(); + + const polyBoundaryMesh& boundary = mesh.boundaryMesh(); labelListIOList finalAgglom ( @@ -76,27 +76,9 @@ int main(int argc, char *argv[]) IOobject::NO_WRITE, false ), - patches.size() - ); - - - // Read control dictionary - IOdictionary agglomDict - ( - IOobject - ( - agglomDictName, - runTime.constant(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) + boundary.size() ); - bool writeAgglom = readBool(agglomDict.lookup("writeFacesAgglomeration")); - - const polyBoundaryMesh& boundary = mesh.boundaryMesh(); - forAll(boundary, patchId) { const polyPatch& pp = boundary[patchId]; @@ -178,7 +160,6 @@ int main(int argc, char *argv[]) forAll(boundary, patchId) { - fvPatchScalarField& bFacesAgglomeration = facesAgglomeration.boundaryField()[patchId]; @@ -188,7 +169,7 @@ int main(int argc, char *argv[]) } } - Info << "\nWriting facesAgglomeration" << endl; + Info<< "\nWriting facesAgglomeration" << endl; facesAgglomeration.write(); } diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/MRFProperties b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerateDict similarity index 74% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/MRFProperties rename to applications/utilities/preProcessing/faceAgglomerate/faceAgglomerateDict index c4c20f18d00832f8078eca66c760dfd069ef9282..9c164f15092a651ef06fa0b1f871dbee69d2fa82 100644 --- a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/MRFProperties +++ b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerateDict @@ -10,23 +10,19 @@ FoamFile version 2.0; format ascii; class dictionary; - location "constant"; - object MRFProperties; + object viewFactorsDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -zone1 -{ - cellZone rotor; - - active on; - - // Fixed patches (by default they 'move' with the MRF zone) - nonRotatingPatches (); +// Write agglomeration as a volScalarField with calculated boundary values +writeFacesAgglomeration true; - origin (0 0 0); - axis (0 0 1); - omega constant 1047.2; +// Per patch (wildcard possible) the coarsening level +bottomAir_to_heater +{ + nFacesInCoarsestLevel 30; + featureAngle 10; } + // ************************************************************************* // diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C index b3b390af515122423aaf6a99116a267366cd1da2..03d1ba874d1edf9045ada1f7958bf7bb92d4ded0 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C +++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C @@ -680,35 +680,17 @@ int main(int argc, char *argv[]) ); argList::noParallel(); - argList::addOption - ( - "dict", - "word", - "specify alternative dictionary for the feature extraction information" - ); +# include "addDictOption.H" # include "setRootCase.H" # include "createTime.H" - word dictName - ( - args.optionLookupOrDefault<word>("dict", "surfaceFeatureExtractDict") - ); + const word dictName("surfaceFeatureExtractDict"); +# include "setSystemRunTimeDictionaryIO.H" Info<< "Reading " << dictName << nl << endl; - IOdictionary dict - ( - IOobject - ( - dictName, - runTime.system(), - runTime, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ) - ); + const IOdictionary dict(dictIO); forAllConstIter(dictionary, dict, iter) { diff --git a/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C b/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C index 305786f963dbc8fd30ecac409b5e451bcc396ac8..ea30c2dd55d4631fb3e6a2f1aacb6d24f9a4bb3c 100644 --- a/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C +++ b/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C @@ -96,12 +96,7 @@ int main(int argc, char *argv[]) "factor", "geometry scaling factor on output" ); - argList::addOption - ( - "dict", - "file", - "specify alternative dictionary for the coordinateSystems descriptions" - ); + #include "addDictOption.H" argList::addOption ( "from", @@ -154,19 +149,28 @@ int main(int argc, char *argv[]) { autoPtr<IOobject> csDictIoPtr; + const word dictName("coordinateSystems::typeName"); + + // Note: cannot use setSystemRunTimeDictionaryIO.H since dictionary + // is in constant + + fileName dictPath = ""; if (args.optionFound("dict")) { - const fileName dictPath = args["dict"]; + dictPath = args["dict"]; + if (isDir(dictPath)) + { + dictPath = dictPath / dictName; + } + } + if (dictPath.size()) + { csDictIoPtr.set ( new IOobject ( - ( - isDir(dictPath) - ? dictPath/coordinateSystems::typeName - : dictPath - ), + dictPath, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, @@ -180,7 +184,7 @@ int main(int argc, char *argv[]) ( new IOobject ( - coordinateSystems::typeName, + dictName, runTime.constant(), runTime, IOobject::MUST_READ, diff --git a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C index 7c9b3be904d7989160b98d77602da3c2564efb9b..f8a5ebf57a25ad8cd4dafa325b265203e459f1e3 100644 --- a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C +++ b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C @@ -103,12 +103,7 @@ int main(int argc, char *argv[]) "factor", "geometry scaling factor on output - default is 1" ); - argList::addOption - ( - "dict", - "file", - "specify an alternative dictionary for constant/coordinateSystems" - ); + #include "addDictOption.H" argList::addOption ( "from", diff --git a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C index 3a14ac63c42371d6e4dd20c69cfaa570b57596d3..87ff39d182edceabeeb8a6555a3b0ff31f641258 100644 --- a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C +++ b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C @@ -103,12 +103,7 @@ int main(int argc, char *argv[]) "factor", "geometry scaling factor on output - default is 1" ); - argList::addOption - ( - "dict", - "file", - "specify an alternative dictionary for constant/coordinateSystems" - ); + #include "addDictOption.H" argList::addOption ( "from", diff --git a/etc/config/scotch.sh b/etc/config/scotch.sh index df1dce8256a37aa91cda4cd3d4e0488b9beda4a9..1ee06e80b87b298f1b7bea4497422d42d7ed32d6 100644 --- a/etc/config/scotch.sh +++ b/etc/config/scotch.sh @@ -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-2012 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -33,7 +33,7 @@ # during the wmake process #------------------------------------------------------------------------------ -export SCOTCH_VERSION=scotch_5.1.11 +export SCOTCH_VERSION=scotch_6.0.0 export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$SCOTCH_VERSION # ----------------------------------------------------------------------------- diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C index e9e48e95540f87158fa7aa56c5923bdd41b1a9f3..47e14b0577693049e73ac92827d06edc2482e5cc 100644 --- a/src/OpenFOAM/db/IOobject/IOobject.C +++ b/src/OpenFOAM/db/IOobject/IOobject.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -40,7 +40,7 @@ defineTypeNameAndDebug(Foam::IOobject, 0); // ----- ------ // "foo" ("", "", "foo") // "foo/bar" ("foo", "", "bar") -// "/XXX" ERROR - no absolute path +// "/XXX/bar" ("/XXX", "", "bar") // "foo/bar/" ERROR - no name // "foo/xxx/bar" ("foo", "xxx", "bar") // "foo/xxx/yyy/bar" ("foo", "xxx/yyy", "bar") @@ -64,14 +64,6 @@ bool Foam::IOobject::IOobject::fileNameComponents return false; } - if (path.isAbsolute()) - { - // called with absolute path - WarningIn("IOobject::fileNameComponents(const fileName&, ...)") - << "called with absolute path: " << path << "\n"; - return false; - } - string::size_type first = path.find('/'); if (first == string::npos) @@ -81,6 +73,15 @@ bool Foam::IOobject::IOobject::fileNameComponents // check afterwards name.string::operator=(path); } + else if (first == 0) + { + // Leading '/'. Absolute fileName + string::size_type last = path.rfind('/'); + instance = path.substr(0, last); + + // check afterwards + name.string::operator=(path.substr(last+1)); + } else { instance = path.substr(0, first); @@ -246,7 +247,14 @@ const Foam::fileName& Foam::IOobject::rootPath() const Foam::fileName Foam::IOobject::path() const { - return rootPath()/caseName()/instance()/db_.dbDir()/local(); + if (instance().isAbsolute()) + { + return instance(); + } + else + { + return rootPath()/caseName()/instance()/db_.dbDir()/local(); + } } @@ -256,61 +264,80 @@ Foam::fileName Foam::IOobject::path const fileName& local ) const { + //Note: can only be called with relative instance since is word type return rootPath()/caseName()/instance/db_.dbDir()/local; } Foam::fileName Foam::IOobject::filePath() const { - fileName path = this->path(); - fileName objectPath = path/name(); - - if (isFile(objectPath)) + if (instance().isAbsolute()) { - return objectPath; + fileName objectPath = instance()/name(); + if (isFile(objectPath)) + { + return objectPath; + } + else + { + return fileName::null; + } } else { - if - ( - time().processorCase() - && ( - instance() == time().system() - || instance() == time().constant() - ) - ) - { - fileName parentObjectPath = - rootPath()/caseName() - /".."/instance()/db_.dbDir()/local()/name(); + fileName path = this->path(); + fileName objectPath = path/name(); - if (isFile(parentObjectPath)) - { - return parentObjectPath; - } + if (isFile(objectPath)) + { + return objectPath; } - - if (!isDir(path)) + else { - word newInstancePath = time().findInstancePath(instant(instance())); + if + ( + time().processorCase() + && ( + instance() == time().system() + || instance() == time().constant() + ) + ) + { + fileName parentObjectPath = + rootPath()/caseName() + /".."/instance()/db_.dbDir()/local()/name(); + + if (isFile(parentObjectPath)) + { + return parentObjectPath; + } + } - if (newInstancePath.size()) + if (!isDir(path)) { - fileName fName + word newInstancePath = time().findInstancePath ( - rootPath()/caseName() - /newInstancePath/db_.dbDir()/local()/name() + instant(instance()) ); - if (isFile(fName)) + if (newInstancePath.size()) { - return fName; + fileName fName + ( + rootPath()/caseName() + /newInstancePath/db_.dbDir()/local()/name() + ); + + if (isFile(fName)) + { + return fName; + } } } } - } - return fileName::null; + return fileName::null; + } } diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C index 8619e2da91669622d1a06bba18bdc9415368e234..b589dfc883704190b17ba174d102e3d5648e611a 100644 --- a/src/OpenFOAM/db/Time/Time.C +++ b/src/OpenFOAM/db/Time/Time.C @@ -148,7 +148,7 @@ void Foam::Time::setControls() else { // Search directory for valid time directories - instantList timeDirs = findTimes(path()); + instantList timeDirs = findTimes(path(), constant()); if (startFrom == "firstTime") { @@ -694,13 +694,13 @@ Foam::word Foam::Time::timeName() const // Search the construction path for times Foam::instantList Foam::Time::times() const { - return findTimes(path()); + return findTimes(path(), constant()); } Foam::word Foam::Time::findInstancePath(const instant& t) const { - instantList timeDirs = findTimes(path()); + instantList timeDirs = findTimes(path(), constant()); forAllReverse(timeDirs, timeI) { @@ -716,7 +716,7 @@ Foam::word Foam::Time::findInstancePath(const instant& t) const Foam::instant Foam::Time::findClosestTime(const scalar t) const { - instantList timeDirs = findTimes(path()); + instantList timeDirs = findTimes(path(), constant()); // there is only one time (likely "constant") so return it if (timeDirs.size() == 1) @@ -755,15 +755,16 @@ Foam::instant Foam::Time::findClosestTime(const scalar t) const // // Foam::instant Foam::Time::findClosestTime(const scalar t) const // { -// instantList timeDirs = findTimes(path()); -// label timeIndex = min(findClosestTimeIndex(timeDirs, t), 0); +// instantList timeDirs = findTimes(path(), constant()); +// label timeIndex = min(findClosestTimeIndex(timeDirs, t), 0, constant()); // return timeDirs[timeIndex]; // } Foam::label Foam::Time::findClosestTimeIndex ( const instantList& timeDirs, - const scalar t + const scalar t, + const word& constantName ) { label nearestIndex = -1; @@ -771,7 +772,7 @@ Foam::label Foam::Time::findClosestTimeIndex forAll(timeDirs, timeI) { - if (timeDirs[timeI].name() == "constant") continue; + if (timeDirs[timeI].name() == constantName) continue; scalar diff = mag(timeDirs[timeI].value() - t); if (diff < deltaT) diff --git a/src/OpenFOAM/db/Time/Time.H b/src/OpenFOAM/db/Time/Time.H index 1e761cd73eaaff3d81b4a27d15c996d885bbd19c..695f666c2e9d08e8a5b3f84023547ef39faee052 100644 --- a/src/OpenFOAM/db/Time/Time.H +++ b/src/OpenFOAM/db/Time/Time.H @@ -374,7 +374,12 @@ public: instant findClosestTime(const scalar) const; //- Search instantList for the time index closest to the given time - static label findClosestTimeIndex(const instantList&, const scalar); + static label findClosestTimeIndex + ( + const instantList&, + const scalar, + const word& constantName = "constant" + ); //- Write using given format, version and compression virtual bool writeObject @@ -404,7 +409,11 @@ public: virtual word timeName() const; //- Search a given directory for valid time directories - static instantList findTimes(const fileName&); + static instantList findTimes + ( + const fileName&, + const word& constantName = "constant" + ); //- Return start time index virtual label startTimeIndex() const; diff --git a/src/OpenFOAM/db/Time/findTimes.C b/src/OpenFOAM/db/Time/findTimes.C index 87b3669fd6bd89ed0107995fd4133ea40f2dda9d..3384916737a8374d012ad20c9c529ac3742cb570 100644 --- a/src/OpenFOAM/db/Time/findTimes.C +++ b/src/OpenFOAM/db/Time/findTimes.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,7 +34,11 @@ Description // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -Foam::instantList Foam::Time::findTimes(const fileName& directory) +Foam::instantList Foam::Time::findTimes +( + const fileName& directory, + const word& constantName +) { if (debug) { @@ -53,7 +57,7 @@ Foam::instantList Foam::Time::findTimes(const fileName& directory) bool haveConstant = false; forAll(dirEntries, i) { - if (dirEntries[i] == "constant") + if (dirEntries[i] == constantName) { Times[nTimes].value() = 0; Times[nTimes].name() = dirEntries[i]; diff --git a/src/OpenFOAM/db/Time/timeSelector.C b/src/OpenFOAM/db/Time/timeSelector.C index 60b589a347478408fc08fbb026f468da0e6db971..7a8bcc5eb4efecceee540aeec5e597c4d5c27a7e 100644 --- a/src/OpenFOAM/db/Time/timeSelector.C +++ b/src/OpenFOAM/db/Time/timeSelector.C @@ -155,7 +155,8 @@ void Foam::timeSelector::addOptions Foam::List<Foam::instant> Foam::timeSelector::select ( const instantList& timeDirs, - const argList& args + const argList& args, + const word& constantName ) { if (timeDirs.size()) @@ -168,7 +169,7 @@ Foam::List<Foam::instant> Foam::timeSelector::select forAll(timeDirs, timeI) { - if (timeDirs[timeI].name() == "constant") + if (timeDirs[timeI].name() == constantName) { constantIdx = timeI; } @@ -250,7 +251,12 @@ Foam::List<Foam::instant> Foam::timeSelector::select0 const argList& args ) { - instantList timeDirs = timeSelector::select(runTime.times(), args); + instantList timeDirs = timeSelector::select + ( + runTime.times(), + args, + runTime.constant() + ); if (timeDirs.empty()) { diff --git a/src/OpenFOAM/db/Time/timeSelector.H b/src/OpenFOAM/db/Time/timeSelector.H index 88255cac0695c27523474e01399bf09587d1772c..ce22d83fcea5f3e1328370658ebfe22481683a32 100644 --- a/src/OpenFOAM/db/Time/timeSelector.H +++ b/src/OpenFOAM/db/Time/timeSelector.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -138,7 +138,8 @@ public: static instantList select ( const instantList&, - const argList& args + const argList& args, + const word& constantName = "constant" ); //- Return the set of times selected based on the argList options diff --git a/src/OpenFOAM/db/dictionary/entry/entryIO.C b/src/OpenFOAM/db/dictionary/entry/entryIO.C index c958b8f94961999611ed53e64edc63395107c1e0..bc0ffb9c09bbb0cc068072180ee72282bac25b1a 100644 --- a/src/OpenFOAM/db/dictionary/entry/entryIO.C +++ b/src/OpenFOAM/db/dictionary/entry/entryIO.C @@ -117,11 +117,12 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is) if (keyword.size() > 2 && keyword[1] == token::BEGIN_BLOCK) { // Recursive substitution mode. Replace between {} with - // expansion. + // expansion and then let standard variable expansion deal + // with rest. string s(keyword(2, keyword.size()-3)); - // Substitute dictionary and environment variables. Allow + // Substitute dictionary and environment variables. Do not allow // empty substitutions. - stringOps::inplaceExpand(s, parentDict, true, true); + stringOps::inplaceExpand(s, parentDict, true, false); keyword.std::string::replace(1, keyword.size()-1, s); } parentDict.substituteScopedKeyword(keyword); diff --git a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntry.C b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntry.C index 0566b8f350463d8cf0873f8c3c831a5156f10aad..779709e4a06b326abd2bc549e05045e79615adbc 100644 --- a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntry.C +++ b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntry.C @@ -47,13 +47,11 @@ bool Foam::primitiveEntry::expandVariable { if (w.size() > 2 && w[0] == '$' && w[1] == token::BEGIN_BLOCK) { - // Recursive substitution mode. Replace between {} with - // expansion. + // Recursive substitution mode. Replace between {} with expansion. string s(w(2, w.size()-3)); - // Substitute dictionary and environment variables. Allow + // Substitute dictionary and environment variables. Do not allow // empty substitutions. - stringOps::inplaceExpand(s, dict, true, true); - + stringOps::inplaceExpand(s, dict, true, false); string newW(w); newW.std::string::replace(1, newW.size()-1, s); @@ -83,6 +81,15 @@ bool Foam::primitiveEntry::expandVariable if (envStr.empty()) { + FatalIOErrorIn + ( + "primitiveEntry::expandVariable" + "(const string&, const dictionary&", + dict + ) << "Illegal dictionary entry or environment variable name " + << varName << endl << "Valid dictionary entries are " + << dict.toc() << exit(FatalIOError); + return false; } append(tokenList(IStringStream('(' + envStr + ')')())); diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C index 92991b1b1d0b9378b1026608d4fc149e27c731df..18b46f29af8e445d94ac97faf68c950e9f305792 100644 --- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C +++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -46,7 +46,7 @@ Foam::IOOutputFilter<OutputFilter>::IOOutputFilter ( const word& outputFilterName, const objectRegistry& obr, - const fileName& dictName, + const word& dictName, const IOobject::readOption rOpt, const bool readFromFiles ) @@ -66,6 +66,30 @@ Foam::IOOutputFilter<OutputFilter>::IOOutputFilter {} +template<class OutputFilter> +Foam::IOOutputFilter<OutputFilter>::IOOutputFilter +( + const word& outputFilterName, + const objectRegistry& obr, + const fileName& dictName, + const IOobject::readOption rOpt, + const bool readFromFiles +) +: + IOdictionary + ( + IOobject + ( + dictName, + obr, + rOpt, + IOobject::NO_WRITE + ) + ), + OutputFilter(outputFilterName, obr, *this, readFromFiles) +{} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class OutputFilter> diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H index ebddc142cb2fb17d4422e5d8e7b785ea328a922a..c115023a63593f1d12404894c86527111f7b10ae 100644 --- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H +++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -89,7 +89,19 @@ public: ( const word& outputFilterName, const objectRegistry&, - const fileName& dictName = OutputFilter::typeName() + "Dict", + const word& dictName = OutputFilter::typeName() + "Dict", + const IOobject::readOption rOpt = IOobject::MUST_READ_IF_MODIFIED, + const bool loadFromFile = false + ); + + //- Construct for given objectRegistry and dictionary + // Dictionary read from full path. + // Allow the possibility to load fields from files + IOOutputFilter + ( + const word& outputFilterName, + const objectRegistry&, + const fileName& dictName, const IOobject::readOption rOpt = IOobject::MUST_READ_IF_MODIFIED, const bool loadFromFile = false ); diff --git a/src/OpenFOAM/include/addDictOption.H b/src/OpenFOAM/include/addDictOption.H new file mode 100644 index 0000000000000000000000000000000000000000..f538e572948c95a5e9e47f85f08bfcd4ab66b366 --- /dev/null +++ b/src/OpenFOAM/include/addDictOption.H @@ -0,0 +1,10 @@ +// +// addDictOption.H +// ~~~~~~~~~~~~~~~~~ + + Foam::argList::addOption + ( + "dict", + "file", + "read control dictionary from specified location" + ); diff --git a/src/OpenFOAM/include/setConstantMeshDictionaryIO.H b/src/OpenFOAM/include/setConstantMeshDictionaryIO.H new file mode 100644 index 0000000000000000000000000000000000000000..4f97cf16940800ddfcf6168f5584496e342edb64 --- /dev/null +++ b/src/OpenFOAM/include/setConstantMeshDictionaryIO.H @@ -0,0 +1,33 @@ +// +// setConstantMeshDictionaryIO.H +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + fileName dictPath = ""; + if (args.optionFound("dict")) + { + dictPath = args["dict"]; + if (isDir(dictPath)) + { + dictPath = dictPath / dictName; + } + } + + IOobject dictIO + ( + dictName, + runTime.constant(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + + if (dictPath.size()) + { + dictIO = IOobject + ( + dictPath, + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + } diff --git a/src/OpenFOAM/include/setSystemMeshDictionaryIO.H b/src/OpenFOAM/include/setSystemMeshDictionaryIO.H new file mode 100644 index 0000000000000000000000000000000000000000..6e89f94c33fb2b1ec344d3c47a8bfcfc84369d87 --- /dev/null +++ b/src/OpenFOAM/include/setSystemMeshDictionaryIO.H @@ -0,0 +1,33 @@ +// +// setSystemMeshDictionaryIO.H +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + fileName dictPath = ""; + if (args.optionFound("dict")) + { + dictPath = args["dict"]; + if (isDir(dictPath)) + { + dictPath = dictPath / dictName; + } + } + + IOobject dictIO + ( + dictName, + runTime.system(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + + if (dictPath.size()) + { + dictIO = IOobject + ( + dictPath, + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + } diff --git a/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H b/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H new file mode 100644 index 0000000000000000000000000000000000000000..e594e83d960110735ddf042462655c2d46318756 --- /dev/null +++ b/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H @@ -0,0 +1,33 @@ +// +// setSystemRunTimeDictionaryIO.H +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + fileName dictPath = ""; + if (args.optionFound("dict")) + { + dictPath = args["dict"]; + if (isDir(dictPath)) + { + dictPath = dictPath / dictName; + } + } + + IOobject dictIO + ( + dictName, + runTime.system(), + runTime, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + + if (dictPath.size()) + { + dictIO = IOobject + ( + dictPath, + runTime, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ); + } diff --git a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C index b7e11d644fed2cc622e40beeb174e453c05c0d48..feabf361096502db97ae9d189d2487b81ce9571e 100644 --- a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C +++ b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C @@ -312,7 +312,7 @@ Foam::string Foam::stringOps::getVariable " const bool\n" ")\n", dict - ) << "Cannot find environment variable " + ) << "Cannot find dictionary variable " << name << exit(FatalIOError); } diff --git a/src/conversion/meshReader/meshReader.C b/src/conversion/meshReader/meshReader.C index b6f50c24525da948890767078f08283e2406bb49..851492229dd4730e4ebfa1a0461f11a2587871d0 100644 --- a/src/conversion/meshReader/meshReader.C +++ b/src/conversion/meshReader/meshReader.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -138,7 +138,7 @@ Foam::autoPtr<Foam::polyMesh> Foam::meshReader::mesh IOobject ( polyMesh::defaultRegion, - "constant", + registry.time().constant(), registry ), xferMove(points_), diff --git a/src/conversion/meshReader/meshReaderAux.C b/src/conversion/meshReader/meshReaderAux.C index 91708d8055734358c7823121d9fd59743b4081de..95360dba1e71965d77dd330fd367cb57a6c45e40 100644 --- a/src/conversion/meshReader/meshReaderAux.C +++ b/src/conversion/meshReader/meshReaderAux.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,7 +26,7 @@ License #include "meshReader.H" #include "IOMap.H" #include "OFstream.H" - +#include "Time.H" // * * * * * * * * * * * * * * * Static Functions * * * * * * * * * * * * * // @@ -80,7 +80,7 @@ void Foam::meshReader::writeInterfaces(const objectRegistry& registry) const IOobject ( "interfaces", - "constant", + registry.time().constant(), polyMesh::meshSubDir, registry, IOobject::NO_READ, @@ -115,7 +115,7 @@ void Foam::meshReader::writeMeshLabelList IOobject ( propertyName, - "constant", + registry.time().constant(), polyMesh::meshSubDir, registry, IOobject::NO_READ, diff --git a/src/conversion/meshWriter/starcd/STARCDMeshWriter.C b/src/conversion/meshWriter/starcd/STARCDMeshWriter.C index 2df70059e2ae8224989b88d148b823d5d8f49752..08383060e144ff41ccf1d526f079ee186ba36ef1 100644 --- a/src/conversion/meshWriter/starcd/STARCDMeshWriter.C +++ b/src/conversion/meshWriter/starcd/STARCDMeshWriter.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -72,7 +72,7 @@ void Foam::meshWriters::STARCD::getCellTable() IOobject ( "cellTableId", - "constant", + mesh_.time().constant(), polyMesh::meshSubDir, mesh_, IOobject::READ_IF_PRESENT, @@ -506,7 +506,7 @@ bool Foam::meshWriters::STARCD::write(const fileName& meshName) const if ( mesh_.time().timeName() != "0" - && mesh_.time().timeName() != "constant" + && mesh_.time().timeName() != mesh_.time().constant() ) { baseName += "_" + mesh_.time().timeName(); diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C index f87d6f7d38f01cc6bbee45899027a72a1c21af5a..9cd5e35fda2cdaae80c1eddb04204f834b791643 100644 --- a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C +++ b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C @@ -105,7 +105,7 @@ Foam::fileName Foam::fileFormats::edgeMeshFormatsCore::findMeshInstance } } - return "constant"; + return t.constant(); } @@ -148,7 +148,7 @@ Foam::fileName Foam::fileFormats::edgeMeshFormatsCore::findMeshFile } // fallback to "constant" - return t.path()/"constant"/localName; + return t.path()/t.constant()/localName; } #endif diff --git a/src/fieldSources/Make/files b/src/fieldSources/Make/files index 11f91ff58ad4e2d3a5429e9ac793043e6de4726c..a81d39f8f2fe3a2e94bd7c38082a3b79a6d8d618 100644 --- a/src/fieldSources/Make/files +++ b/src/fieldSources/Make/files @@ -3,13 +3,17 @@ basicSource/basicSourceIO.C basicSource/basicSourceList.C basicSource/IObasicSourceList.C -general/semiImplicitSource/semiImplicitSource.C -general/explicitSetValue/explicitSetValue.C general/codedSource/codedSource.C +general/explicitSetValue/explicitSetValue.C +general/semiImplicitSource/semiImplicitSource.C +derived/actuationDiskSource/actuationDiskSource.C +derived/explicitPorositySource/explicitPorositySource.C +derived/fixedTemperatureSource/fixedTemperatureSource.C +derived/MRFSource/MRFSource.C derived/pressureGradientExplicitSource/pressureGradientExplicitSource.C derived/pressureGradientExplicitSource/pressureGradientExplicitSourceIO.C - +derived/radialActuationDiskSource/radialActuationDiskSource.C derived/rotorDiskSource/rotorDiskSource.C derived/rotorDiskSource/bladeModel/bladeModel.C derived/rotorDiskSource/profileModel/profileModel.C @@ -21,15 +25,11 @@ derived/rotorDiskSource/trimModel/trimModel/trimModelNew.C derived/rotorDiskSource/trimModel/fixed/fixedTrim.C derived/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C -derived/actuationDiskSource/actuationDiskSource.C -derived/radialActuationDiskSource/radialActuationDiskSource.C - interRegion = derived/interRegionHeatTransferModel -$(interRegion)/interRegionHeatTransferModel/interRegionHeatTransferModel.C $(interRegion)/constantHeatTransfer/constantHeatTransfer.C +$(interRegion)/interRegionHeatTransferModel/interRegionHeatTransferModel.C $(interRegion)/tabulatedHeatTransfer/tabulatedHeatTransfer.C $(interRegion)/variableHeatTransfer/variableHeatTransfer.C -derived/fixedTemperatureSource/fixedTemperatureSource.C LIB = $(FOAM_LIBBIN)/libfieldSources diff --git a/src/fieldSources/basicSource/basicSource.C b/src/fieldSources/basicSource/basicSource.C index 9ebcdc5834f30cf42cab164395a404db33206693..64be60fa84e8adf9b81f2e67b630992c587fa9f9 100644 --- a/src/fieldSources/basicSource/basicSource.C +++ b/src/fieldSources/basicSource/basicSource.C @@ -481,4 +481,36 @@ void Foam::basicSource::setValue(fvMatrix<tensor>& eqn, const label fieldI) } +void Foam::basicSource::relativeFlux(surfaceScalarField& phi) const +{ + // do nothing +} + + +void Foam::basicSource::relativeFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + // do nothing +} + + +void Foam::basicSource::absoluteFlux(surfaceScalarField& phi) const +{ + // do nothing +} + + +void Foam::basicSource::absoluteFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + // do nothing +} + + // ************************************************************************* // diff --git a/src/fieldSources/basicSource/basicSource.H b/src/fieldSources/basicSource/basicSource.H index 69e9dcf408b9588b8ef24eea9007afca51bb7e42..3e4740cead022cd494f98923cb7afc88b7af399e 100644 --- a/src/fieldSources/basicSource/basicSource.H +++ b/src/fieldSources/basicSource/basicSource.H @@ -427,6 +427,29 @@ public: ); + // Flux manipulations + + //- Make the given absolute flux relative + virtual void relativeFlux(surfaceScalarField& phi) const; + + //- Make the given absolute mass-flux relative + virtual void relativeFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + //- Make the given relative flux absolute + virtual void absoluteFlux(surfaceScalarField& phi) const; + + //- Make the given relative mass-flux absolute + virtual void absoluteFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + // I-O //- Write the source header information diff --git a/src/fieldSources/basicSource/basicSourceList.C b/src/fieldSources/basicSource/basicSourceList.C index 2d484868a44c969dd66d9539e07fa08d206c0b40..a7224e9a6c08bcf12ac72fa4e4e1b63908ff17c5 100644 --- a/src/fieldSources/basicSource/basicSourceList.C +++ b/src/fieldSources/basicSource/basicSourceList.C @@ -108,6 +108,50 @@ void Foam::basicSourceList::reset(const dictionary& dict) } +void Foam::basicSourceList::relativeFlux(surfaceScalarField& phi) const +{ + forAll(*this, i) + { + this->operator[](i).relativeFlux(phi); + } +} + + +void Foam::basicSourceList::relativeFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + forAll(*this, i) + { + this->operator[](i).relativeFlux(rho, phi); + } +} + + +void Foam::basicSourceList::absoluteFlux(surfaceScalarField& phi) const +{ + forAll(*this, i) + { + this->operator[](i).absoluteFlux(phi); + } +} + + +void Foam::basicSourceList::absoluteFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + forAll(*this, i) + { + this->operator[](i).absoluteFlux(rho, phi); + } +} + + bool Foam::basicSourceList::read(const dictionary& dict) { checkTimeIndex_ = mesh_.time().timeIndex() + 2; diff --git a/src/fieldSources/basicSource/basicSourceList.H b/src/fieldSources/basicSource/basicSourceList.H index 5f5e053a942ece384be0b04617e7ccec75a042e0..002d23b1fb37ee0ae3dfa981465a48fb82295bdf 100644 --- a/src/fieldSources/basicSource/basicSourceList.H +++ b/src/fieldSources/basicSource/basicSourceList.H @@ -152,6 +152,29 @@ public: void constrain(fvMatrix<Type>& eqn, const word& fieldName); + // Flux manipulations + + //- Make the given absolute flux relative + void relativeFlux(surfaceScalarField& phi) const; + + //- Make the given absolute mass-flux relative + void relativeFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + //- Make the given relative flux absolute + void absoluteFlux(surfaceScalarField& phi) const; + + //- Make the given relative mass-flux absolute + void absoluteFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + // I-O //- Read dictionary diff --git a/src/fieldSources/derived/MRFSource/MRFSource.C b/src/fieldSources/derived/MRFSource/MRFSource.C new file mode 100644 index 0000000000000000000000000000000000000000..3b0582a2327f881a08174e07d429cd06bf18d238 --- /dev/null +++ b/src/fieldSources/derived/MRFSource/MRFSource.C @@ -0,0 +1,176 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*----------------------------------------------------------------------------*/ + +#include "MRFSource.H" +#include "fvMesh.H" +#include "fvMatrices.H" +#include "MRFZone.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(MRFSource, 0); + addToRunTimeSelectionTable + ( + basicSource, + MRFSource, + dictionary + ); +} + +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // + +void Foam::MRFSource::initialise() +{ + if (selectionMode_ != smCellZone) + { + FatalErrorIn("void Foam::MRFSource::initialise()") + << "The porosity region must be specified as a cellZone. Current " + << "selection mode is " << selectionModeTypeNames_[selectionMode_] + << exit(FatalError); + } + + mrfPtr_.reset + ( + new MRFZone + ( + name_, + mesh_, + coeffs_, + cellSetName_ + ) + ); + + const volVectorField& U = mesh_.lookupObject<volVectorField>(UName_); + + mrfPtr_->correctBoundaryVelocity(const_cast<volVectorField&>(U)); + + fieldNames_.setSize(1, UName_); + applied_.setSize(1, false); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::MRFSource::MRFSource +( + const word& name, + const word& modelType, + const dictionary& dict, + const fvMesh& mesh +) +: + basicSource(name, modelType, dict, mesh), + mrfPtr_(NULL), + UName_(coeffs_.lookupOrDefault<word>("UName", "U")), + rhoName_(coeffs_.lookupOrDefault<word>("rhoName", "rho")) +{ + initialise(); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::MRFSource::addSup +( + fvMatrix<vector>& eqn, + const label fieldI +) +{ + if (eqn.dimensions() == dimForce) + { + const volScalarField& rho = + mesh_.lookupObject<volScalarField>(rhoName_); + + // use 'true' flag to add to rhs of equation + mrfPtr_->addCoriolis(rho, eqn, true); + } + else + { + // use 'true' flag to add to rhs of equation + mrfPtr_->addCoriolis(eqn, true); + } +} + + +void Foam::MRFSource::relativeFlux(surfaceScalarField& phi) const +{ + mrfPtr_->relativeFlux(phi); +} + + +void Foam::MRFSource::relativeFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + mrfPtr_->relativeFlux(rho, phi); +} + + +void Foam::MRFSource::absoluteFlux(surfaceScalarField& phi) const +{ + mrfPtr_->absoluteFlux(phi); +} + + +void Foam::MRFSource::absoluteFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + mrfPtr_->absoluteFlux(rho, phi); +} + + +void Foam::MRFSource::writeData(Ostream& os) const +{ + os << indent << name_ << endl; + dict_.write(os); +} + + +bool Foam::MRFSource::read(const dictionary& dict) +{ + if (basicSource::read(dict)) + { + coeffs_.readIfPresent("UName", UName_); + coeffs_.readIfPresent("rhoName", rhoName_); + + return true; + } + else + { + return false; + } +} + + +// ************************************************************************* // diff --git a/src/fieldSources/derived/MRFSource/MRFSource.H b/src/fieldSources/derived/MRFSource/MRFSource.H new file mode 100644 index 0000000000000000000000000000000000000000..1742ac301104e65ce5343b3733fb538715f2ea76 --- /dev/null +++ b/src/fieldSources/derived/MRFSource/MRFSource.H @@ -0,0 +1,173 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::MRFSource + +Description + Multiple Reference Frame (MRF) source + + Example usage: + + MRFSourceCoeffs + { + origin (0 0 0); + axis (0 0 1); + omega 104.72; + } + +SourceFiles + MRFSource.C + +\*---------------------------------------------------------------------------*/ + +#ifndef MRFSource_H +#define MRFSource_H + +#include "basicSource.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class MRFZone; + +/*---------------------------------------------------------------------------*\ + Class MRFSource Declaration +\*---------------------------------------------------------------------------*/ + +class MRFSource +: + public basicSource +{ + +protected: + + // Protected data + + //- Run-time selectable porosity model + autoPtr<MRFZone> mrfPtr_; + + //- Velocity field name, default = U + word UName_; + + //- Density field name, default = rho + word rhoName_; + + + // Protected Member Functions + + //- Initialise + void initialise(); + + +private: + + // Private Member Functions + + //- Disallow default bitwise copy construct + MRFSource(const MRFSource&); + + //- Disallow default bitwise assignment + void operator=(const MRFSource&); + + +public: + + //- Runtime type information + TypeName("MRFSource"); + + + // Constructors + + //- Construct from components + MRFSource + ( + const word& name, + const word& modelType, + const dictionary& dict, + const fvMesh& mesh + ); + + + //- Destructor + virtual ~MRFSource() + {} + + + // Member Functions + + // Add explicit and implicit contributions + + //- Vector + virtual void addSup + ( + fvMatrix<vector>& eqn, + const label fieldI + ); + + + // Flux manipulations + + //- Make the given absolute flux relative + virtual void relativeFlux(surfaceScalarField& phi) const; + + //- Make the given absolute mass-flux relative + virtual void relativeFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + //- Make the given relative flux absolute + virtual void absoluteFlux(surfaceScalarField& phi) const; + + //- Make the given relative mass-flux absolute + virtual void absoluteFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + + // I-O + + //- Write data + virtual void writeData(Ostream&) const; + + //- Read dictionary + virtual bool read(const dictionary& dict); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.C b/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.C new file mode 100644 index 0000000000000000000000000000000000000000..9c5eeb17ca6d63d2a0fd2a442fca9d5d9b39968c --- /dev/null +++ b/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.C @@ -0,0 +1,145 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*----------------------------------------------------------------------------*/ + +#include "explicitPorositySource.H" +#include "fvMesh.H" +#include "fvMatrices.H" +#include "porosityModel.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(explicitPorositySource, 0); + addToRunTimeSelectionTable + ( + basicSource, + explicitPorositySource, + dictionary + ); +} + +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // + +void Foam::explicitPorositySource::initialise() +{ + if (selectionMode_ != smCellZone) + { + FatalErrorIn("void Foam::explicitPorositySource::initialise()") + << "The porosity region must be specified as a cellZone. Current " + << "selection mode is " << selectionModeTypeNames_[selectionMode_] + << exit(FatalError); + } + + porosityPtr_.reset + ( + porosityModel::New + ( + name_, + mesh_, + coeffs_, + cellSetName_ + ).ptr() + ), + + fieldNames_.setSize(1, UName_); + applied_.setSize(1, false); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::explicitPorositySource::explicitPorositySource +( + const word& name, + const word& modelType, + const dictionary& dict, + const fvMesh& mesh +) +: + basicSource(name, modelType, dict, mesh), + porosityPtr_(NULL), + UName_(coeffs_.lookupOrDefault<word>("UName", "U")), + rhoName_(coeffs_.lookupOrDefault<word>("rhoName", "rho")), + muName_(coeffs_.lookupOrDefault<word>("muName", "thermo:mu")) +{ + initialise(); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::explicitPorositySource::addSup +( + fvMatrix<vector>& eqn, + const label fieldI +) +{ + fvMatrix<vector> porosityEqn(eqn.psi(), eqn.dimensions()); + + if (eqn.dimensions() == dimForce) + { + const volScalarField& rho = + mesh_.lookupObject<volScalarField>(rhoName_); + const volScalarField& mu = mesh_.lookupObject<volScalarField>(muName_); + + porosityPtr_->addResistance(porosityEqn, rho, mu); + } + else + { + porosityPtr_->addResistance(porosityEqn); + } + + eqn -= porosityEqn; +} + + +void Foam::explicitPorositySource::writeData(Ostream& os) const +{ + os << indent << name_ << endl; + dict_.write(os); +} + + +bool Foam::explicitPorositySource::read(const dictionary& dict) +{ + if (basicSource::read(dict)) + { + coeffs_.readIfPresent("UName", UName_); + coeffs_.readIfPresent("rhoName", rhoName_); + coeffs_.readIfPresent("muName", muName_); + + return true; + } + else + { + return false; + } +} + + +// ************************************************************************* // diff --git a/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.H b/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.H new file mode 100644 index 0000000000000000000000000000000000000000..30fc6c90da7bf0757fc4387201969bb90a5ead6a --- /dev/null +++ b/src/fieldSources/derived/explicitPorositySource/explicitPorositySource.H @@ -0,0 +1,166 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::explicitPorositySource + +Description + Explicit porosity source + + Sources described by, for example using the DarcyForchheimer model: + + explicitPorositySourceCoeffs + { + type DarcyForchheimer; + DarcyForchheimerCoeffs + { + d d [0 -2 0 0 0 0 0] (5e7 -1000 -1000); + f f [0 -1 0 0 0 0 0] (0 0 0); + + coordinateSystem + { + e1 (0.70710678 0.70710678 0); + e2 (0 0 1); + } + } + } + +Note: + The porous region must be selected as a cellZone. + +SourceFiles + explicitPorositySource.C + +\*---------------------------------------------------------------------------*/ + +#ifndef explicitPorositySource_H +#define explicitPorositySource_H + +#include "basicSource.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class porosityModel; + +/*---------------------------------------------------------------------------*\ + Class explicitPorositySource Declaration +\*---------------------------------------------------------------------------*/ + +class explicitPorositySource +: + public basicSource +{ + +protected: + + // Protected data + + //- Run-time selectable porosity model + autoPtr<porosityModel> porosityPtr_; + + //- Velocity field name, default = U + word UName_; + + //- Density field name (compressible case only), default = rho + word rhoName_; + + //- Dynamic viscosity field name (compressible case only) + // default = thermo:mu + word muName_; + + + // Protected Member Functions + + //- Initialise + void initialise(); + + +private: + + // Private Member Functions + + //- Disallow default bitwise copy construct + explicitPorositySource(const explicitPorositySource&); + + //- Disallow default bitwise assignment + void operator=(const explicitPorositySource&); + + +public: + + //- Runtime type information + TypeName("explicitPorositySource"); + + + // Constructors + + //- Construct from components + explicitPorositySource + ( + const word& name, + const word& modelType, + const dictionary& dict, + const fvMesh& mesh + ); + + + //- Destructor + virtual ~explicitPorositySource() + {} + + + // Member Functions + + // Add explicit and implicit contributions + + //- Vector + virtual void addSup + ( + fvMatrix<vector>& eqn, + const label fieldI + ); + + + // I-O + + //- Write data + virtual void writeData(Ostream&) const; + + //- Read dictionary + virtual bool read(const dictionary& dict); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/fieldSources/derived/fixedTemperatureSource/fixedTemperatureSource.H b/src/fieldSources/derived/fixedTemperatureSource/fixedTemperatureSource.H index 755293403823bc4be733b9bca90f3ba483217a6c..05789b808dfb1757109ee948be51a34d2ee74f3f 100644 --- a/src/fieldSources/derived/fixedTemperatureSource/fixedTemperatureSource.H +++ b/src/fieldSources/derived/fixedTemperatureSource/fixedTemperatureSource.H @@ -32,13 +32,12 @@ Description fixedTemperatureSourceCoeffs { - fieldNames (h e hs); // names of fields to apply source - mode uniform; // constant or lookup + mode uniform; // uniform or lookup // uniform option - temperature constant 500; // fixed temperature [K] + temperature constant 500; // fixed temperature with time [K] - // loolup option + // lookup option // TName T; // optional temperature field name } diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C index f09f38d4ee7450d7bdf56559d0e949d08144815c..c9de2ad6a51ce2bc5bc56b3322a6249c51c3a02f 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C @@ -230,15 +230,16 @@ Foam::MRFZone::MRFZone ( const word& name, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) : mesh_(mesh), name_(name), coeffs_(dict), - active_(readBool(coeffs_.lookup("active"))), - cellZoneName_(coeffs_.lookup("cellZone")), - cellZoneID_(mesh_.cellZones().findZoneID(cellZoneName_)), + active_(true), + cellZoneName_(cellZoneName), + cellZoneID_(), excludedPatchNames_ ( coeffs_.lookupOrDefault("nonRotatingPatches", wordList(0)) @@ -247,12 +248,20 @@ Foam::MRFZone::MRFZone axis_(coeffs_.lookup("axis")), omega_(DataEntry<scalar>::New("omega", coeffs_)) { + if (cellZoneName_ == word::null) + { + coeffs_.lookup("active") >> active_; + coeffs_.lookup("cellZone") >> cellZoneName_; + } + if (!active_) { cellZoneID_ = -1; } else { + cellZoneID_ = mesh_.cellZones().findZoneID(cellZoneName_); + const polyBoundaryMesh& patches = mesh_.boundaryMesh(); axis_ = axis_/mag(axis_); @@ -268,7 +277,13 @@ Foam::MRFZone::MRFZone { FatalErrorIn ( - "MRFZone(const word&, const fvMesh&, const dictionary&)" + "MRFZone" + "(" + "const word&, " + "const fvMesh&, " + "const dictionary&, " + "const word&" + ")" ) << "cannot find MRF patch " << excludedPatchNames_[i] << exit(FatalError); @@ -283,7 +298,13 @@ Foam::MRFZone::MRFZone { FatalErrorIn ( - "MRFZone(const word&, const fvMesh&, const dictionary&)" + "MRFZone" + "(" + "const word&, " + "const fvMesh&, " + "const dictionary&, " + "const word&" + ")" ) << "cannot find MRF cellZone " << cellZoneName_ << exit(FatalError); @@ -328,7 +349,7 @@ void Foam::MRFZone::addCoriolis } -void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn) const +void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn, const bool rhs) const { if (cellZoneID_ == -1) { @@ -342,10 +363,21 @@ void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn) const const vector Omega = this->Omega(); - forAll(cells, i) + if (rhs) { - label celli = cells[i]; - Usource[celli] -= V[celli]*(Omega ^ U[celli]); + forAll(cells, i) + { + label celli = cells[i]; + Usource[celli] += V[celli]*(Omega ^ U[celli]); + } + } + else + { + forAll(cells, i) + { + label celli = cells[i]; + Usource[celli] -= V[celli]*(Omega ^ U[celli]); + } } } @@ -353,7 +385,8 @@ void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn) const void Foam::MRFZone::addCoriolis ( const volScalarField& rho, - fvVectorMatrix& UEqn + fvVectorMatrix& UEqn, + const bool rhs ) const { if (cellZoneID_ == -1) @@ -368,10 +401,21 @@ void Foam::MRFZone::addCoriolis const vector Omega = this->Omega(); - forAll(cells, i) + if (rhs) { - label celli = cells[i]; - Usource[celli] -= V[celli]*rho[celli]*(Omega ^ U[celli]); + forAll(cells, i) + { + label celli = cells[i]; + Usource[celli] += V[celli]*rho[celli]*(Omega ^ U[celli]); + } + } + else + { + forAll(cells, i) + { + label celli = cells[i]; + Usource[celli] -= V[celli]*rho[celli]*(Omega ^ U[celli]); + } } } diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H index 5c6e05e2d3988620e5f0f67b799e3004a3d0e6ff..5d379f2e40a8adb56fdd4613e6d9150d08d20b13 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H @@ -144,7 +144,13 @@ public: // Constructors //- Construct from fvMesh - MRFZone(const word& name, const fvMesh& mesh, const dictionary& dict); + MRFZone + ( + const word& name, + const fvMesh& mesh, + const dictionary& dict, + const word& cellZoneName = word::null + ); //- Return clone autoPtr<MRFZone> clone() const @@ -185,13 +191,20 @@ public: ) const; //- Add the Coriolis force contribution to the momentum equation - void addCoriolis(fvVectorMatrix& UEqn) const; + // Adds to the lhs of the equation; optionally add to rhs + void addCoriolis + ( + fvVectorMatrix& UEqn, + const bool rhs = false + ) const; //- Add the Coriolis force contribution to the momentum equation + // Adds to the lhs of the equation; optionally add to rhs void addCoriolis ( const volScalarField& rho, - fvVectorMatrix& UEqn + fvVectorMatrix& UEqn, + const bool rhs = false ) const; //- Make the given absolute velocity relative within the MRF region diff --git a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.C b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.C index 36a9ba7ada0bccd2e0af5e6bceb534580278835e..b0857fa78ed849978a61a5133c035dedf5352296 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.C +++ b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.C @@ -47,15 +47,16 @@ Foam::porosityModels::DarcyForchheimer::DarcyForchheimer const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) : - porosityModel(name, modelType, mesh, dict), + porosityModel(name, modelType, mesh, dict, cellZoneName), coordSys_(coeffs_, mesh), D_("D", dimless/sqr(dimLength), tensor::zero), F_("F", dimless/dimLength, tensor::zero), rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")), - muName_(coeffs_.lookupOrDefault<word>("mu", "mu")), + muName_(coeffs_.lookupOrDefault<word>("mu", "thermo:mu")), nuName_(coeffs_.lookupOrDefault<word>("nu", "nu")) { // local-to-global transformation tensor diff --git a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H index a85fae7fc66af9352cc56867fdfe1de21b31c6fe..ab3007d204df0675ba4eb60e35a0b2d3540f2ad6 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H +++ b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H @@ -136,7 +136,8 @@ public: const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ); //- Destructor diff --git a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.C b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.C index 55c4202d5a27c5466ce68593f4da8980cda39ae3..59cef7436869d4761b80f3a424b91db80c648da3 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.C +++ b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.C @@ -102,10 +102,11 @@ Foam::porosityModels::fixedCoeff::fixedCoeff const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) : - porosityModel(name, modelType, mesh, dict), + porosityModel(name, modelType, mesh, dict, cellZoneName), coordSys_(coeffs_, mesh), alpha_("alpha", dimless/dimTime, tensor::zero), beta_("beta", dimless/dimLength, tensor::zero) diff --git a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H index c0e28ac87e31bec4a4ac20085b6562e2ae6e701d..61f4c36224db92adf8065daec6835f0703a0f424 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H +++ b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H @@ -113,7 +113,8 @@ public: const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ); //- Destructor diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C index f0997c822211a116787e1990364ad82955b952f0..77de5b1ffecd0ada7aa9ff1e50801b48f8d130e4 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C +++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C @@ -73,17 +73,26 @@ Foam::porosityModel::porosityModel const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) : name_(name), mesh_(mesh), dict_(dict), coeffs_(dict.subDict(modelType + "Coeffs")), - active_(readBool(dict_.lookup("active"))), - zoneName_(dict_.lookup("cellZone")), - cellZoneIds_(mesh_.cellZones().findIndices(zoneName_)) + active_(true), + zoneName_(cellZoneName), + cellZoneIds_() { + if (zoneName_ == word::null) + { + dict.lookup("active") >> active_; + dict_.lookup("cellZone") >> zoneName_; + } + + cellZoneIds_ = mesh_.cellZones().findIndices(zoneName_); + Info<< " creating porous zone: " << zoneName_ << endl; bool foundZone = !cellZoneIds_.empty(); @@ -99,6 +108,7 @@ Foam::porosityModel::porosityModel "const word&, " "const fvMesh&, " "const dictionary&" + "const word&, " ")" ) << "cannot find porous cellZone " << zoneName_ << exit(FatalError); diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.H b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.H index 56131ba3dd97cd5c287f699acc9eb3f9fcce153c..1c61e29f1812f77ed002260ce8db43e43aecb9f0 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.H +++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.H @@ -127,9 +127,10 @@ public: const word& modelName, const word& name, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ), - (modelName, name, mesh, dict) + (modelName, name, mesh, dict, cellZoneName) ); //- Constructor @@ -138,7 +139,8 @@ public: const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName = word::null ); //- Return pointer to new porosityModel object created on the freestore @@ -182,7 +184,8 @@ public: ( const word& name, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName = word::null ); //- Destructor diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModelNew.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModelNew.C index 1da8c91c4dfb583e022ce27059a0abaee880e63e..d0fe203537f3fe6ae7f79d61990ff35d49d8794d 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModelNew.C +++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModelNew.C @@ -31,7 +31,8 @@ Foam::autoPtr<Foam::porosityModel> Foam::porosityModel::New ( const word& name, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) { const word modelType(dict.lookup("type")); @@ -48,9 +49,10 @@ Foam::autoPtr<Foam::porosityModel> Foam::porosityModel::New ( "porosityModel::New" "(" - "const word& name," + "const word&, " "const fvMesh&, " - "const dictionary&" + "const dictionary&, " + "const word&" ")" ) << "Unknown " << typeName << " type " << modelType << nl << nl @@ -59,7 +61,17 @@ Foam::autoPtr<Foam::porosityModel> Foam::porosityModel::New << exit(FatalError); } - return autoPtr<porosityModel>(cstrIter()(name, modelType, mesh, dict)); + return autoPtr<porosityModel> + ( + cstrIter() + ( + name, + modelType, + mesh, + dict, + cellZoneName + ) + ); } diff --git a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C index 15fbae39dfb78486fe133002bb94ef1990956ec1..2516c8c6b2010ac599bbec1dfc6237992f1df862 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C +++ b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C @@ -47,10 +47,11 @@ Foam::porosityModels::powerLaw::powerLaw const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ) : - porosityModel(name, modelType, mesh, dict), + porosityModel(name, modelType, mesh, dict, cellZoneName), C0_(readScalar(coeffs_.lookup("C0"))), C1_(readScalar(coeffs_.lookup("C1"))), rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")) diff --git a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H index 2c26946265728b207391fc08149704e160e1ca7d..fb0797aaa733edbabeccecc710b368b0958c98b3 100644 --- a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H +++ b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H @@ -117,7 +117,8 @@ public: const word& name, const word& modelType, const fvMesh& mesh, - const dictionary& dict + const dictionary& dict, + const word& cellZoneName ); //- Destructor diff --git a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.C index 56c1444262a40aac91ca10408a3f5a28ff602c1c..2f2195c8ff3863754a68d31180e94656fc96adbb 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.C @@ -38,6 +38,9 @@ supersonicFreestreamFvPatchVectorField ) : mixedFvPatchVectorField(p, iF), + TName_("T"), + pName_("p"), + psiName_("thermo:psi"), UInf_(vector::zero), pInf_(0), TInf_(0), @@ -59,6 +62,9 @@ supersonicFreestreamFvPatchVectorField ) : mixedFvPatchVectorField(ptf, p, iF, mapper), + TName_(ptf.TName_), + pName_(ptf.pName_), + psiName_(ptf.psiName_), UInf_(ptf.UInf_), pInf_(ptf.pInf_), TInf_(ptf.TInf_), @@ -75,6 +81,9 @@ supersonicFreestreamFvPatchVectorField ) : mixedFvPatchVectorField(p, iF), + TName_(dict.lookupOrDefault<word>("T", "T")), + pName_(dict.lookupOrDefault<word>("p", "p")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")), UInf_(dict.lookup("UInf")), pInf_(readScalar(dict.lookup("pInf"))), TInf_(readScalar(dict.lookup("TInf"))), @@ -120,6 +129,9 @@ supersonicFreestreamFvPatchVectorField ) : mixedFvPatchVectorField(sfspvf), + TName_(sfspvf.TName_), + pName_(sfspvf.pName_), + psiName_(sfspvf.psiName_), UInf_(sfspvf.UInf_), pInf_(sfspvf.pInf_), TInf_(sfspvf.TInf_), @@ -135,6 +147,9 @@ supersonicFreestreamFvPatchVectorField ) : mixedFvPatchVectorField(sfspvf, iF), + TName_(sfspvf.TName_), + pName_(sfspvf.pName_), + psiName_(sfspvf.psiName_), UInf_(sfspvf.UInf_), pInf_(sfspvf.pInf_), TInf_(sfspvf.TInf_), @@ -152,13 +167,13 @@ void Foam::supersonicFreestreamFvPatchVectorField::updateCoeffs() } const fvPatchField<scalar>& pT = - patch().lookupPatchField<volScalarField, scalar>("T"); + patch().lookupPatchField<volScalarField, scalar>(TName_); const fvPatchField<scalar>& pp = - patch().lookupPatchField<volScalarField, scalar>("p"); + patch().lookupPatchField<volScalarField, scalar>(pName_); const fvPatchField<scalar>& ppsi = - patch().lookupPatchField<volScalarField, scalar>("thermo:psi"); + patch().lookupPatchField<volScalarField, scalar>(psiName_); // Need R of the free-stream flow. Assume R is independent of location // along patch so use face 0 @@ -288,6 +303,9 @@ void Foam::supersonicFreestreamFvPatchVectorField::updateCoeffs() void Foam::supersonicFreestreamFvPatchVectorField::write(Ostream& os) const { fvPatchVectorField::write(os); + writeEntryIfDifferent<word>(os, "T", "T", TName_); + writeEntryIfDifferent<word>(os, "p", "p", pName_); + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); os.writeKeyword("UInf") << UInf_ << token::END_STATEMENT << nl; os.writeKeyword("pInf") << pInf_ << token::END_STATEMENT << nl; os.writeKeyword("TInf") << TInf_ << token::END_STATEMENT << nl; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H index 402fc365f34fd746309db74c192931938c140603..6f6ea27bcb04d8ebaa379c8a22bae30404bf2705 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H @@ -40,6 +40,9 @@ Description \table Property | Description | Required | Default value + TName | Temperature field name | no | T + pName | Pressure field name | no | p + psiName | Compressibility field name | no | thermo:psi UInf | free-stream velocity | yes | pInf | free-stream pressure | yes | TInf | free-stream temperature | yes | @@ -88,6 +91,15 @@ class supersonicFreestreamFvPatchVectorField { // Private data + //- Name of temperature field, default = "T" + word TName_; + + //- Name of pressure field, default = "p" + word pName_; + + //- Name of compressibility field field, default = "thermo:psi" + word psiName_; + //- Velocity of the free stream vector UInf_; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C index 55c7140f377428a9d1c25a88b34cd28011129ecd..f53442df8e6a06f4af3082a70817ff45d8d49366 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C @@ -40,7 +40,7 @@ Foam::totalTemperatureFvPatchScalarField::totalTemperatureFvPatchScalarField fixedValueFvPatchScalarField(p, iF), UName_("U"), phiName_("phi"), - psiName_("psi"), + psiName_("thermo:psi"), gamma_(0.0), T0_(p.size(), 0.0) {} @@ -73,7 +73,7 @@ Foam::totalTemperatureFvPatchScalarField::totalTemperatureFvPatchScalarField fixedValueFvPatchScalarField(p, iF), UName_(dict.lookupOrDefault<word>("U", "U")), phiName_(dict.lookupOrDefault<word>("phi", "phi")), - psiName_(dict.lookupOrDefault<word>("psi", "psi")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")), gamma_(readScalar(dict.lookup("gamma"))), T0_("T0", dict, p.size()) { @@ -179,7 +179,7 @@ void Foam::totalTemperatureFvPatchScalarField::write(Ostream& os) const fvPatchScalarField::write(os); writeEntryIfDifferent<word>(os, "U", "U", UName_); writeEntryIfDifferent<word>(os, "phi", "phi", phiName_); - writeEntryIfDifferent<word>(os, "psi", "psi", psiName_); + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); os.writeKeyword("gamma") << gamma_ << token::END_STATEMENT << nl; T0_.writeEntry("T0", os); writeEntry("value", os); diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H index d793696ade806c95a64d5c51c68eb10b85da952b..6a032dfee9547bf4bddd9e2b46aed246c1bcc27d 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -36,7 +36,7 @@ Description Property | Description | Required | Default value U | Velocity field name | no | U phi | Flux field name | no | phi - psi | Compressibility field name | no | psi + psi | Compressibility field name | no | thermo:psi gamma | ratio of specific heats (Cp/Cv) | yes | T0 | reference temperature | yes | \endtable diff --git a/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.C index ca19c5d8abc386d06b8313ff7971c82b9e00cc0a..a4a64c22d43776b6645ebee9698bb7c705371ddb 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.C @@ -41,7 +41,7 @@ Foam::waveTransmissiveFvPatchField<Type>::waveTransmissiveFvPatchField ) : advectiveFvPatchField<Type>(p, iF), - psiName_("psi"), + psiName_("thermo:psi"), gamma_(0.0) {} @@ -70,7 +70,7 @@ Foam::waveTransmissiveFvPatchField<Type>::waveTransmissiveFvPatchField ) : advectiveFvPatchField<Type>(p, iF, dict), - psiName_(dict.lookupOrDefault<word>("psi", "psi")), + psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")), gamma_(readScalar(dict.lookup("gamma"))) {} @@ -108,27 +108,21 @@ Foam::waveTransmissiveFvPatchField<Type>::advectionSpeed() const { // Lookup the velocity and compressibility of the patch const fvPatchField<scalar>& psip = - this->patch().template lookupPatchField<volScalarField, scalar> - ( - psiName_ - ); + this->patch().template + lookupPatchField<volScalarField, scalar>(psiName_); const surfaceScalarField& phi = this->db().template lookupObject<surfaceScalarField>(this->phiName_); fvsPatchField<scalar> phip = - this->patch().template lookupPatchField<surfaceScalarField, scalar> - ( - this->phiName_ - ); + this->patch().template + lookupPatchField<surfaceScalarField, scalar>(this->phiName_); if (phi.dimensions() == dimDensity*dimVelocity*dimArea) { const fvPatchScalarField& rhop = - this->patch().template lookupPatchField<volScalarField, scalar> - ( - this->rhoName_ - ); + this->patch().template + lookupPatchField<volScalarField, scalar>(this->rhoName_); phip /= rhop; } @@ -145,18 +139,12 @@ void Foam::waveTransmissiveFvPatchField<Type>::write(Ostream& os) const { fvPatchField<Type>::write(os); - if (this->phiName_ != "phi") - { - os.writeKeyword("phi") << this->phiName_ << token::END_STATEMENT << nl; - } - if (this->rhoName_ != "rho") - { - os.writeKeyword("rho") << this->rhoName_ << token::END_STATEMENT << nl; - } - if (psiName_ != "psi") - { - os.writeKeyword("psi") << psiName_ << token::END_STATEMENT << nl; - } + this->template + writeEntryIfDifferent<word>(os, "phi", "phi", this->phiName_); + this->template + writeEntryIfDifferent<word>(os, "rho", "rho", this->rhoName_); + this->template + writeEntryIfDifferent<word>(os, "psi", "thermo:psi", psiName_); os.writeKeyword("gamma") << gamma_ << token::END_STATEMENT << nl; diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C index 69c25178ed22a4d2839bbe521dd94be1029e62a4..d0e43dbb10efff738504cdee3cfcb43839a497b6 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C @@ -2372,11 +2372,13 @@ void Foam::autoLayerDriver::getLayerCellsFaces Foam::autoLayerDriver::autoLayerDriver ( meshRefinement& meshRefiner, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ) : meshRefiner_(meshRefiner), - globalToPatch_(globalToPatch) + globalToMasterPatch_(globalToMasterPatch), + globalToSlavePatch_(globalToSlavePatch) {} @@ -2435,7 +2437,12 @@ void Foam::autoLayerDriver::addLayers // Create baffles (pairs of faces that share the same points) // Baffles stored as owner and neighbour face that have been created. List<labelPair> baffles; - meshRefiner_.createZoneBaffles(globalToPatch_, baffles); + meshRefiner_.createZoneBaffles + ( + globalToMasterPatch_, + globalToSlavePatch_, + baffles + ); if (debug&meshRefinement::MESH) { diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H index 272f1af09e8fd06083b641412c5fd356377991af..416544a7199de145d4400e14b2d71c58b8d1d9a0 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H @@ -99,7 +99,10 @@ class autoLayerDriver meshRefinement& meshRefiner_; //- From surface region to patch - const labelList globalToPatch_; + const labelList globalToMasterPatch_; + + //- From surface region to patch + const labelList globalToSlavePatch_; @@ -518,7 +521,8 @@ public: autoLayerDriver ( meshRefinement& meshRefiner, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ); diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C index 73d09f449ffbbf6980326229cf30b4e6da480b97..8ffcaa5f57874ef0ee7eb702dbf18cf8f35e801f 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C @@ -1135,6 +1135,12 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo << " " << medialRatio.name() << " : ratio of medial distance to wall distance" << nl << endl; + meshRefiner_.mesh().setInstance(meshRefiner_.timeName()); + meshRefiner_.write + ( + debug, + mesh.time().path()/meshRefiner_.timeName() + ); dispVec.write(); medialDist.write(); medialVec.write(); @@ -1409,6 +1415,94 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance *dispVec[pointI]; } + + +//XXXXX +// // Smear displacement away from fixed values (medialRatio=0 or 1) +// { +// const edgeList& edges = mesh.edges(); +// scalarField edgeWeight(edges.size(), 0.0); +// forAll(edges, edgeI) +// { +// if (isMasterEdge[edgeI]) +// { +// scalar eMag = edges[edgeI].mag(mesh.points()); +// if (eMag > VSMALL) +// { +// edgeWeight[edgeI] = 1.0/eMag; +// } +// else +// { +// edgeWeight[edgeI] = GREAT; +// } +// } +// } +// scalarField invSumWeight(mesh.nPoints()); +// sumWeights(isMasterEdge, edgeWeight, invSumWeight); +// +// +// // Get smoothly varying patch field. +// Info<< "shrinkMeshDistance : Smoothing displacement ..." << endl; +// +// const scalar lambda = 0.33; +// const scalar mu = -0.34; +// +// pointField average(mesh.nPoints()); +// for (label iter = 0; iter < 90; iter++) +// { +// // Calculate average of field +// averageNeighbours +// ( +// mesh, +// edgeWeight, +// invSumWeight, +// displacement, +// average +// ); +// +// forAll(displacement, i) +// { +// if (medialRatio[i] > SMALL && medialRatio[i] < 1-SMALL) +// { +// displacement[i] = +// (1-lambda)*displacement[i] +// +lambda*average[i]; +// } +// } +// +// +// // Calculate average of field +// averageNeighbours +// ( +// mesh, +// edgeWeight, +// invSumWeight, +// displacement, +// average +// ); +// +// forAll(displacement, i) +// { +// if (medialRatio[i] > SMALL && medialRatio[i] < 1-SMALL) +// { +// displacement[i] = (1-mu)*displacement[i]+mu*average[i]; +// } +// } +// +// +// // Do residual calculation every so often. +// if ((iter % 10) == 0) +// { +// Info<< " Iteration " << iter << " residual " +// << gSum(mag(displacement-average)) +// /returnReduce(average.size(), sumOp<label>()) +// << endl; +// } +// } +// } +//XXXXX + + if (debug&meshRefinement::MESH || debug&meshRefinement::LAYERINFO) { const_cast<Time&>(mesh.time())++; diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index a5b663890c843ec1baa20abdbbca6102f07d5d37..3215e4b7e74e08dce463cea5b32c53498b602d33 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -57,13 +57,15 @@ Foam::autoRefineDriver::autoRefineDriver meshRefinement& meshRefiner, decompositionMethod& decomposer, fvMeshDistribute& distributor, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ) : meshRefiner_(meshRefiner), decomposer_(decomposer), distributor_(distributor), - globalToPatch_(globalToPatch) + globalToMasterPatch_(globalToMasterPatch), + globalToSlavePatch_(globalToSlavePatch) {} @@ -313,7 +315,8 @@ void Foam::autoRefineDriver::removeInsideCells meshRefiner_.splitMesh ( nBufferLayers, // nBufferLayers - globalToPatch_, + globalToMasterPatch_, + globalToSlavePatch_, refineParams.keepPoints()[0] ); @@ -521,7 +524,8 @@ void Foam::autoRefineDriver::baffleAndSplitMesh !handleSnapProblems, // merge free standing baffles? motionDict, const_cast<Time&>(mesh.time()), - globalToPatch_, + globalToMasterPatch_, + globalToSlavePatch_, refineParams.keepPoints()[0] ); } @@ -606,7 +610,8 @@ void Foam::autoRefineDriver::splitAndMergeBaffles //true, // merge free standing baffles? motionDict, const_cast<Time&>(mesh.time()), - globalToPatch_, + globalToMasterPatch_, + globalToSlavePatch_, refineParams.keepPoints()[0] ); diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H index d75dd5daf5f840c5b22d6af6553465a72ba05422..37a0f6b10258fd7ed7a1d54b6a66c447720ee678 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -65,7 +65,10 @@ class autoRefineDriver fvMeshDistribute& distributor_; //- From surface region to patch - const labelList globalToPatch_; + const labelList globalToMasterPatch_; + + //- From surface region to patch + const labelList globalToSlavePatch_; // Private Member Functions @@ -146,7 +149,8 @@ public: meshRefinement& meshRefiner, decompositionMethod& decomposer, fvMeshDistribute& distributor, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ); diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C index 54a78f477c6a5e7170572da5c8867654c564c543..b7b79d715e3e71cd3ca2656d511ff86b46ac3282 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C @@ -573,11 +573,13 @@ bool Foam::autoSnapDriver::outwardsDisplacement Foam::autoSnapDriver::autoSnapDriver ( meshRefinement& meshRefiner, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ) : meshRefiner_(meshRefiner), - globalToPatch_(globalToPatch) + globalToMasterPatch_(globalToMasterPatch), + globalToSlavePatch_(globalToSlavePatch) {} @@ -1191,7 +1193,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::autoSnapDriver::repatchToSurface if (hitSurface[i] != -1 && !isZonedFace.get(faceI)) { - closestPatch[i] = globalToPatch_ + closestPatch[i] = globalToMasterPatch_ [ surfaces.globalRegion ( @@ -1265,7 +1267,12 @@ void Foam::autoSnapDriver::doSnap // Create baffles (pairs of faces that share the same points) // Baffles stored as owner and neighbour face that have been created. List<labelPair> baffles; - meshRefiner_.createZoneBaffles(globalToPatch_, baffles); + meshRefiner_.createZoneBaffles + ( + globalToMasterPatch_, + globalToSlavePatch_, + baffles + ); // Selectively 'forget' about the baffles, i.e. not check across them diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H index e4cea95be28ea6efe80a06f044f96a678ef3b0a2..e6763bc084850a9150d726e7a880544093755f59 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H @@ -59,8 +59,11 @@ class autoSnapDriver //- Mesh+surface meshRefinement& meshRefiner_; - //- From surface region to patch - const labelList globalToPatch_; + //- From global surface region to master side patch + const labelList globalToMasterPatch_; + + //- From global surface region to slave side patch + const labelList globalToSlavePatch_; // Private Member Functions @@ -390,7 +393,8 @@ public: autoSnapDriver ( meshRefinement& meshRefiner, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ); diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriverFeature.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriverFeature.C index b9990cb078b09ab7c927276aacec3a8fa9195dc1..7285c1ed003b3a3de61b1c54c38bed4f8acc6b54 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriverFeature.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriverFeature.C @@ -573,7 +573,7 @@ void Foam::autoSnapDriver::calcNearestFacePointProperties pFc[i] = pp.faceCentres()[faceI]; //label meshFaceI = pp.addressing()[faceI]; //pFid[i] = mesh.boundaryMesh().whichPatch(meshFaceI); - pFid[i] = globalToPatch_[faceSurfaceGlobalRegion[faceI]]; + pFid[i] = globalToMasterPatch_[faceSurfaceGlobalRegion[faceI]]; } } diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C index 26a40327d6f610118c88c560b43419e7b8c86587..69cdf234cdb41828140af5bc4553d348a05f2de9 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C @@ -55,6 +55,7 @@ License #include "searchableSurfaces.H" #include "treeBoundBox.H" #include "zeroGradientFvPatchFields.H" +#include "fvMeshTools.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -1700,7 +1701,7 @@ Foam::label Foam::meshRefinement::addPatch oldToNew[addedPatchI] = insertPatchI; // Shuffle into place - polyPatches.reorder(oldToNew); + polyPatches.reorder(oldToNew, true); fvPatches.reorder(oldToNew); reorderPatchFields<volScalarField>(mesh, oldToNew); @@ -1736,6 +1737,28 @@ Foam::label Foam::meshRefinement::addMeshedPatch // Add patch label patchI = addPatch(mesh_, name, patchInfo); +// dictionary patchDict(patchInfo); +// patchDict.set("nFaces", 0); +// patchDict.set("startFace", 0); +// autoPtr<polyPatch> ppPtr +// ( +// polyPatch::New +// ( +// name, +// patchDict, +// 0, +// mesh_.boundaryMesh() +// ) +// ); +// label patchI = fvMeshTools::addPatch +// ( +// mesh_, +// ppPtr(), +// dictionary(), // optional field values +// calculatedFvPatchField<scalar>::typeName, +// true +// ); + // Store label sz = meshedPatches_.size(); meshedPatches_.setSize(sz+1); diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H index b98230e4122c925527c9158dbcc57b8bc8c8abc4..c265f05257568c8444f9562991ec6e6cf11c9c3a 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H @@ -330,10 +330,11 @@ private: // Baffle handling //- Get faces to repatch. Returns map from face to patch. - Map<label> getZoneBafflePatches + Map<labelPair> getZoneBafflePatches ( const bool allowBoundary, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ) const; //- Geometric test on see whether face needs to be baffled: @@ -349,7 +350,7 @@ private: //- Determine patches for baffles void getBafflePatches ( - const labelList& globalToPatch, + const labelList& globalToMasterPatch, const labelList& neiLevel, const pointField& neiCc, labelList& ownPatch, @@ -426,7 +427,7 @@ private: const dictionary& motionDict, const bool removeEdgeConnectedCells, const scalarField& perpendicularAngle, - const labelList& globalToPatch + const labelList& globalToMasterPatch ) const; @@ -707,7 +708,8 @@ public: const bool mergeFreeStanding, const dictionary& motionDict, Time& runTime, - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, const point& keepPoint ); @@ -716,7 +718,8 @@ public: autoPtr<mapPolyMesh> splitMesh ( const label nBufferLayers, - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, const point& keepPoint ); @@ -741,7 +744,8 @@ public: // baffles. autoPtr<mapPolyMesh> createZoneBaffles ( - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, List<labelPair>& ); diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index b9c189ffa070b5ac75036ba6e1ef00cffd0b5020..11dde360ebb20829b3bb2267be1246eb7d6a847b 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -259,7 +259,7 @@ bool Foam::meshRefinement::validBaffleTopology // Determine patches for baffles on all intersected unnamed faces void Foam::meshRefinement::getBafflePatches ( - const labelList& globalToPatch, + const labelList& globalToMasterPatch, const labelList& neiLevel, const pointField& neiCc, @@ -376,11 +376,11 @@ void Foam::meshRefinement::getBafflePatches } // Pick up the patches - ownPatch[faceI] = globalToPatch + ownPatch[faceI] = globalToMasterPatch [ surfaces_.globalRegion(surface1[i], region1[i]) ]; - neiPatch[faceI] = globalToPatch + neiPatch[faceI] = globalToMasterPatch [ surfaces_.globalRegion(surface2[i], region2[i]) ]; @@ -406,14 +406,14 @@ void Foam::meshRefinement::getBafflePatches } -// Get faces to repatch. Returns map from face to patch. -Foam::Map<Foam::label> Foam::meshRefinement::getZoneBafflePatches +Foam::Map<Foam::labelPair> Foam::meshRefinement::getZoneBafflePatches ( const bool allowBoundary, - const labelList& globalToPatch + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch ) const { - Map<label> bafflePatch(mesh_.nFaces()/1000); + Map<labelPair> bafflePatch(mesh_.nFaces()/1000); const wordList& faceZoneNames = surfaces_.faceZoneNames(); const faceZoneMesh& fZones = mesh_.faceZones(); @@ -427,40 +427,39 @@ Foam::Map<Foam::label> Foam::meshRefinement::getZoneBafflePatches const faceZone& fZone = fZones[zoneI]; - //// Get patch allocated for zone - //label patchI = surfaceToCyclicPatch_[surfI]; - // Get patch of (first region) of surface - label patchI = globalToPatch[surfaces_.globalRegion(surfI, 0)]; + // Get patch allocated for zone + label globalRegionI = surfaces_.globalRegion(surfI, 0); + labelPair zPatches + ( + globalToMasterPatch[globalRegionI], + globalToSlavePatch[globalRegionI] + ); - Info<< "For surface " - << surfaces_.names()[surfI] - << " found faceZone " << fZone.name() - << " and patch " << mesh_.boundaryMesh()[patchI].name() + Info<< "For zone " << fZone.name() << " found patches " + << mesh_.boundaryMesh()[zPatches[0]].name() << " and " + << mesh_.boundaryMesh()[zPatches[1]].name() << endl; - forAll(fZone, i) { label faceI = fZone[i]; if (allowBoundary || mesh_.isInternalFace(faceI)) { - if (!bafflePatch.insert(faceI, patchI)) + labelPair patches = zPatches; + if (fZone.flipMap()[i]) { - label oldPatchI = bafflePatch[faceI]; + patches = patches.reversePair(); + } - if (oldPatchI != patchI) - { - FatalErrorIn("getZoneBafflePatches(const bool)") - << "Face " << faceI - << " fc:" << mesh_.faceCentres()[faceI] - << " in zone " << fZone.name() - << " is in patch " - << mesh_.boundaryMesh()[oldPatchI].name() - << " and in patch " - << mesh_.boundaryMesh()[patchI].name() - << abort(FatalError); - } + if (!bafflePatch.insert(faceI, patches)) + { + FatalErrorIn("getZoneBafflePatches(..)") + << "Face " << faceI + << " fc:" << mesh_.faceCentres()[faceI] + << " in zone " << fZone.name() + << " is in multiple zones!" + << abort(FatalError); } } } @@ -698,7 +697,8 @@ Foam::List<Foam::labelPair> Foam::meshRefinement::getDuplicateFaces Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createZoneBaffles ( - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, List<labelPair>& baffles ) { @@ -714,20 +714,30 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createZoneBaffles // Get faces (internal only) to be baffled. Map from face to patch // label. - Map<label> faceToPatch(getZoneBafflePatches(false, globalToPatch)); + Map<labelPair> faceToPatch + ( + getZoneBafflePatches + ( + false, + globalToMasterPatch, + globalToSlavePatch + ) + ); label nZoneFaces = returnReduce(faceToPatch.size(), sumOp<label>()); if (nZoneFaces > 0) { // Convert into labelLists labelList ownPatch(mesh_.nFaces(), -1); - forAllConstIter(Map<label>, faceToPatch, iter) + labelList neiPatch(mesh_.nFaces(), -1); + forAllConstIter(Map<labelPair>, faceToPatch, iter) { - ownPatch[iter.key()] = iter(); + ownPatch[iter.key()] = iter().first(); + neiPatch[iter.key()] = iter().second(); } // Create baffles. both sides same patch. - map = createBaffles(ownPatch, ownPatch); + map = createBaffles(ownPatch, neiPatch); // Get pairs of faces created. // Just loop over faceMap and store baffle if we encounter a slave @@ -744,7 +754,10 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createZoneBaffles label oldFaceI = faceMap[faceI]; // Does face originate from face-to-patch - Map<label>::const_iterator iter = faceToPatch.find(oldFaceI); + Map<labelPair>::const_iterator iter = faceToPatch.find + ( + oldFaceI + ); if (iter != faceToPatch.end()) { @@ -1344,7 +1357,8 @@ void Foam::meshRefinement::findCellZoneGeometric // Sync syncTools::syncFaceList(mesh_, namedSurfaceIndex, maxEqOp<label>()); } -//XXXXXXXXX + + void Foam::meshRefinement::findCellZoneInsideWalk ( const labelList& locationSurfaces, // indices of surfaces with inside point @@ -1446,7 +1460,6 @@ void Foam::meshRefinement::findCellZoneInsideWalk } } } -//XXXXXXXXX bool Foam::meshRefinement::calcRegionToZone @@ -1827,7 +1840,8 @@ void Foam::meshRefinement::baffleAndSplitMesh const bool mergeFreeStanding, const dictionary& motionDict, Time& runTime, - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, const point& keepPoint ) { @@ -1849,7 +1863,7 @@ void Foam::meshRefinement::baffleAndSplitMesh labelList ownPatch, neiPatch; getBafflePatches ( - globalToPatch, + globalToMasterPatch, neiLevel, neiCc, @@ -1899,7 +1913,7 @@ void Foam::meshRefinement::baffleAndSplitMesh motionDict, removeEdgeConnectedCells, perpendicularAngle, - globalToPatch + globalToMasterPatch ) //markFacesOnProblemCellsGeometric(motionDict) ); @@ -1917,7 +1931,7 @@ void Foam::meshRefinement::baffleAndSplitMesh motionDict, removeEdgeConnectedCells, perpendicularAngle, - globalToPatch + globalToMasterPatch ) ); forAll(facePatchTopo, faceI) @@ -2051,7 +2065,8 @@ void Foam::meshRefinement::baffleAndSplitMesh Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh ( const label nBufferLayers, - const labelList& globalToPatch, + const labelList& globalToMasterPatch, + const labelList& globalToSlavePatch, const point& keepPoint ) { @@ -2066,7 +2081,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh labelList ownPatch, neiPatch; getBafflePatches ( - globalToPatch, + globalToMasterPatch, neiLevel, neiCc, @@ -2129,9 +2144,9 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh // Patch for exposed faces for lack of anything sensible. label defaultPatch = 0; - if (globalToPatch.size()) + if (globalToMasterPatch.size()) { - defaultPatch = globalToPatch[0]; + defaultPatch = globalToMasterPatch[0]; } for (label i = 0; i < nBufferLayers; i++) diff --git a/src/meshTools/coordinateSystems/coordinateSystems.C b/src/meshTools/coordinateSystems/coordinateSystems.C index fef44796e3c10d68830462450bf70ad08210ecf3..1739ecd8e2218ca429eb75b7819e95500c5af38f 100644 --- a/src/meshTools/coordinateSystems/coordinateSystems.C +++ b/src/meshTools/coordinateSystems/coordinateSystems.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -85,7 +85,7 @@ const Foam::coordinateSystems& Foam::coordinateSystems::New IOobject ( typeName, - "constant", + obr.time().constant(), obr, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE diff --git a/src/parallel/decompose/ptscotchDecomp/Make/options b/src/parallel/decompose/ptscotchDecomp/Make/options index 1e34631aa1b218aa0ba7f2af1e1becd6a7bcdbd4..d4e551bcac5ed58e743887ded2c42234d28b99a0 100644 --- a/src/parallel/decompose/ptscotchDecomp/Make/options +++ b/src/parallel/decompose/ptscotchDecomp/Make/options @@ -9,4 +9,4 @@ EXE_INC = \ -I../decompositionMethods/lnInclude LIB_LIBS = \ - -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lrt + -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch -lrt diff --git a/src/postProcessing/postCalc/postCalc.C b/src/postProcessing/postCalc/postCalc.C index ff2dd174e0781c46feeaddeab750da2bd0abab53..0dfb6bf95707c0d1fa3482827ee2288f43b6f3b3 100644 --- a/src/postProcessing/postCalc/postCalc.C +++ b/src/postProcessing/postCalc/postCalc.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -68,12 +68,7 @@ int main(int argc, char *argv[]) "noFlow", "suppress creating flow models (execFlowFunctionObjects only)" ); - Foam::argList::addOption - ( - "dict", - "name", - "dictionary to use" - ); + #include "addDictOption.H" #include "setRootCase.H" #include "createTime.H" diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C index 9d053dc3de8f5b9b7c0d888284cf47e66b333adb..d0a12c305c9f908322598e4cf9f8f4a962250e4c 100644 --- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C +++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C @@ -765,7 +765,7 @@ kinematicSingleLayer::kinematicSingleLayer ( IOobject ( - "mu", // must have same name as mu to enable mapping + "thermo:mu", // must have same name as mu to enable mapping time().timeName(), regionMesh(), IOobject::NO_READ, diff --git a/src/surfMesh/surfaceFormats/surfaceFormatsCore.C b/src/surfMesh/surfaceFormats/surfaceFormatsCore.C index c1d1aac7acae2753ec2839ff61de09f10d92a668..c098eaf1b9114eb7df187633c0f77ca130010dc5 100644 --- a/src/surfMesh/surfaceFormats/surfaceFormatsCore.C +++ b/src/surfMesh/surfaceFormats/surfaceFormatsCore.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -105,7 +105,7 @@ Foam::fileName Foam::fileFormats::surfaceFormatsCore::findMeshInstance } } - return "constant"; + return t.constant(); } @@ -148,7 +148,7 @@ Foam::fileName Foam::fileFormats::surfaceFormatsCore::findMeshFile } // fallback to "constant" - return t.path()/"constant"/localName; + return t.path()/t.constant()/localName; } #endif diff --git a/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C b/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C index 604a5dbbe3843ca1348caf90b708a8663d5b5799..69666b7c63a0a591021ed049dc00e439bbc4bb4c 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C @@ -52,7 +52,7 @@ Foam::radiation::noRadiation::noRadiation const volScalarField& T ) : - radiationModel(dict, T) + radiationModel(T) {} diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C index 55e2e1fb53668ee06a9154ec9c506c27822a016d..5948101185c074bc1aa90c44b10bca28be2c7759 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C @@ -43,6 +43,33 @@ namespace Foam // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // +Foam::IOobject Foam::radiation::radiationModel::createIOobject +( + const fvMesh& mesh +) const +{ + IOobject io + ( + "radiationProperties", + mesh.time().constant(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ); + + if (io.headerOk()) + { + io.readOpt() = IOobject::MUST_READ_IF_MODIFIED; + return io; + } + else + { + io.readOpt() = IOobject::NO_READ; + return io; + } +} + + void Foam::radiation::radiationModel::initialise() { if (radiation_) @@ -62,35 +89,6 @@ void Foam::radiation::radiationModel::initialise() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::radiation::radiationModel::radiationModel(const volScalarField& T) -: - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), - mesh_(T.mesh()), - time_(T.time()), - T_(T), - radiation_(false), - coeffs_(dictionary::null), - solverFreq_(0), - firstIter_(true), - absorptionEmission_(NULL), - scatter_(NULL) -{} - - -Foam::radiation::radiationModel::radiationModel -( - const dictionary& dict, - const volScalarField& T -) : IOdictionary ( @@ -101,8 +99,7 @@ Foam::radiation::radiationModel::radiationModel T.mesh(), IOobject::NO_READ, IOobject::NO_WRITE - ), - dict + ) ), mesh_(T.mesh()), time_(T.time()), @@ -122,17 +119,7 @@ Foam::radiation::radiationModel::radiationModel const volScalarField& T ) : - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), + IOdictionary(createIOobject(T.mesh())), mesh_(T.mesh()), time_(T.time()), T_(T), @@ -143,6 +130,11 @@ Foam::radiation::radiationModel::radiationModel absorptionEmission_(NULL), scatter_(NULL) { + if (readOpt() == IOobject::NO_READ) + { + radiation_ = false; + } + initialise(); } diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H index 5f5a92887baea8fa00ccb07c4e0df30472636e08..1218dac9e9b72612be3a91984f2d08d52215ec88 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H @@ -109,6 +109,9 @@ private: // Private Member Functions + //- Create IO object if dictionary is present + IOobject createIOobject(const fvMesh& mesh) const; + //- Initialise void initialise(); @@ -156,9 +159,6 @@ public: //- Null constructor radiationModel(const volScalarField& T); - //- Construct with dictionary - radiationModel(const dictionary& dict, const volScalarField& T); - //- Construct from components radiationModel(const word& type, const volScalarField& T); diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C index ae13f11d1a503f2d1838c78c4540dbd66c222ec7..0a4dd3730c8e47d264c38de8d4255444bdfdfec3 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C @@ -33,23 +33,27 @@ Foam::radiation::radiationModel::New const volScalarField& T ) { - // get model name, but do not register the dictionary - const word modelType + IOobject radIO ( - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) - ).lookup("radiationModel") + "radiationProperties", + T.time().constant(), + T.mesh(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE, + false ); + word modelType("none"); + if (radIO.headerOk()) + { + IOdictionary(radIO).lookup("radiationModel") >> modelType; + } + else + { + Info<< "Radiation model not active: radiationProperties not found" + << endl; + } + Info<< "Selecting radiationModel " << modelType << endl; TConstructorTable::iterator cstrIter = diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C index 1350653865ff03b4557c110307c2df1f7ba1605e..d8630cc77dbb21bf742cdca1e64f43821d118664 100644 --- a/src/triSurface/triSurface/triSurface.C +++ b/src/triSurface/triSurface/triSurface.C @@ -83,7 +83,7 @@ Foam::fileName Foam::triSurface::triSurfInstance(const Time& d) << "reading " << foamName << " from constant/" << endl; } - return "constant"; + return d.constant(); } diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun index ca4e9e4bd84db1274086f8d9521027c1ab0f93f7..6763873c72aa5f2e8a3c6face61c654817615293 100755 --- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun +++ b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun @@ -10,7 +10,7 @@ application=`getApplication` runApplication blockMesh runApplication topoSet -dict cRefine.topoSetDict -runApplication refineMesh -overwrite -dict +runApplication refineMesh -overwrite -dict system/refineMeshDict rm log.topoSet runApplication topoSet -dict f.topoSetDict diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes index e683569e7a4ff14a8dce39837c09a946d0f1cecb..ce5f53c2cf9759f169675321eb09bc0b59cbb59b 100644 --- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes +++ b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes @@ -50,7 +50,7 @@ laplacianSchemes default Gauss linear corrected; laplacian(muEff,U) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; - laplacian(alphaEff,h) Gauss linear corrected; + laplacian(thermo:alpha,h) Gauss linear corrected; laplacian((((rho*(1|A(U)))*rho)*gh)) Gauss linear corrected; laplacian(interpolate((rho*(1|A(U)))),p) Gauss linear corrected; laplacian(gammaRad,G) Gauss linear corrected; diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes index ba8fe3450957cef74c51d40a8806c5b7fdc71181..afb9f402f103f655e60bcebdde33457f94302ce8 100644 --- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes +++ b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes @@ -32,7 +32,7 @@ divSchemes laplacianSchemes { default none; - laplacian(alpha,h) Gauss linear uncorrected; + laplacian(thermo:alpha,h) Gauss linear uncorrected; } interpolationSchemes diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0.org/T b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0.org/T index 85431492b2ff7f5527c6f82e582d533d8349fa63..3ddfa33af1cc4faa80700b3981855743bc50800d 100644 --- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0.org/T +++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0.org/T @@ -39,7 +39,7 @@ boundaryField U U; phi phi; rho none; - psi psi; + psi thermo:psi; gamma 1.4; } diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/T b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/T index 5361f751ed6c0641f80cd0af5082aef76c43190c..4fee89f86e76dba1287952d26dc7c97f80836833 100644 --- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/T +++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/T @@ -1243,7 +1243,7 @@ boundaryField type totalTemperature; U U; phi phi; - psi psi; + psi thermo:psi; gamma 1.4; T0 uniform 297; value nonuniform List<scalar> diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/p b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/p index 982367ad38085aa13beae19a5ebe4ca1a6940fe4..9de87d0b3f89fddad04d3c5a42733512bf59c8d9 100644 --- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/p +++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/0/p @@ -1235,7 +1235,7 @@ boundaryField field p; phi phi; rho rho; - psi psi; + psi thermo:psi; gamma 1.4; fieldInf 101325; lInf 0.025; @@ -1275,7 +1275,7 @@ boundaryField U U; phi phi; rho none; - psi psi; + psi thermo:psi; gamma 1.4; p0 uniform 101325; value nonuniform List<scalar> diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/T b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/T similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/T rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/T diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/U b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/U similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/U rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/U diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/alphat b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/alphat similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/alphat rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/alphat diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/epsilon b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/epsilon similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/epsilon rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/epsilon diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/k b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/k similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/k rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/k diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/mut b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/mut similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/mut rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/mut diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/p b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/p similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/0/p rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/0/p diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/Allrun b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/Allrun rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/Allrun diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/RASProperties b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/RASProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/RASProperties rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/RASProperties diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/polyMesh/blockMeshDict.m4 b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/polyMesh/blockMeshDict.m4 rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/polyMesh/boundary b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/polyMesh/boundary similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/polyMesh/boundary rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/porosityProperties b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/sourcesProperties similarity index 58% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/porosityProperties rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/sourcesProperties index 22add8ff299919833276bb7b4770c81785d1ace6..6137d5900e33a0f991e238e97b99a0ec3d1b0968 100644 --- a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/porosityProperties +++ b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/sourcesProperties @@ -11,27 +11,36 @@ FoamFile format ascii; class dictionary; location "constant"; - object porosityProperties; + object sourcesProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // porosity1 { - type DarcyForchheimer; - active yes; + type explicitPorositySource; + active true; + timeStart 0; + duration 1000000; + selectionMode cellZone; cellZone porosity; - DarcyForchheimerCoeffs + explicitPorositySourceCoeffs { - d d [0 -2 0 0 0 0 0] (5e7 -1000 -1000); - f f [0 -1 0 0 0 0 0] (0 0 0); + type DarcyForchheimer; - coordinateSystem + DarcyForchheimerCoeffs { - e1 (0.70710678 0.70710678 0); - e2 (0 0 1); + d d [0 -2 0 0 0 0 0] (5e7 -1000 -1000); + f f [0 -1 0 0 0 0 0] (0 0 0); + + coordinateSystem + { + e1 (0.70710678 0.70710678 0); + e2 (0 0 1); + } } } } -// ************************************************************************* // + +************************************************************************* // diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/thermophysicalProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/thermophysicalProperties diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/turbulenceProperties b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/turbulenceProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/turbulenceProperties rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/constant/turbulenceProperties diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/controlDict b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/controlDict similarity index 96% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/controlDict rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/controlDict index 63886eda94d690ecdb5ec01e4b63198b2a91fed0..5a690b046ddce702ec81f2ed6c9aeba2b9bfaf56 100644 --- a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/controlDict +++ b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousMRFLTSPimpleFoam; +application rhoLTSPimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/fvSchemes b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/fvSchemes rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/fvSolution b/tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/system/fvSolution rename to tutorials/compressible/rhoLTSPimpleFoam/angledDuct/system/fvSolution diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p index fa4008822f40a122b52b124b049854df1dbc30fa..0f1e50b4b897813357996cc8f94848c3249d886f 100644 --- a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p +++ b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p @@ -31,7 +31,7 @@ boundaryField field p; phi phi; rho rho; - psi psi; + psi thermo:psi; gamma 1.3; fieldInf 1e5; lInf 0.3; diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties index 014d7ffc49fd2e1a0940f5c07d21a51c60c02310..955bebb2d53b720343f10ffdd98024b8131779b7 100644 --- a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties +++ b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties @@ -42,7 +42,7 @@ gasThermoTypes thermoType { - $.gasThermoTypes.constant; + ${:gasThermoTypes.constant}; } mixture diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/T b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/T similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/T rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/T diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/U b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/U similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/U rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/U diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/alphat b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/alphat similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/alphat rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/alphat diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/epsilon b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/epsilon similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/epsilon rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/epsilon diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/k b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/k similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/k rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/k diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/mut b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/mut similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/mut rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/mut diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/p b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/p similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/0/p rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/p diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/Allrun b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/Allrun rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/Allrun diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/RASProperties b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/RASProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/RASProperties rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/RASProperties diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/polyMesh/boundary similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/polyMesh/boundary rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/porosityProperties b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/porosityProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/porosityProperties rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/porosityProperties diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/thermophysicalProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/thermophysicalProperties diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/transportProperties b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/transportProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/transportProperties rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/transportProperties diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/turbulenceProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/turbulenceProperties rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/turbulenceProperties diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/makeMesh b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/makeMesh similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/makeMesh rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/makeMesh diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/controlDict b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/controlDict similarity index 96% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/controlDict rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/controlDict index 2e2970fd6f11c72ec084b1f0c95d3923f24e88d9..3ee2c8f628a2690341bd46457ebce4821a6eebb2 100644 --- a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/controlDict +++ b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousMRFPimpleFoam; +application rhoPimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/fvSchemes rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/system/fvSolution rename to tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSolution diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/0 b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/0 deleted file mode 120000 index f1c4a884b51ae4171513426c3b7f5f585d0d889e..0000000000000000000000000000000000000000 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/0 +++ /dev/null @@ -1 +0,0 @@ -../angledDuctImplicit/0 \ No newline at end of file diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/Allrun b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/Allrun deleted file mode 120000 index 09efeaf930d72136d1edbe49a421bc368227ad21..0000000000000000000000000000000000000000 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/Allrun +++ /dev/null @@ -1 +0,0 @@ -../angledDuctImplicit/Allrun \ No newline at end of file diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/MRFProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/MRFProperties deleted file mode 100644 index fd749d03963870c76ab4a9d85ad86bd95c33a71f..0000000000000000000000000000000000000000 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/MRFProperties +++ /dev/null @@ -1,20 +0,0 @@ -/*--------------------------------*- 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; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// none - -// ************************************************************************* // diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/MRFProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/MRFProperties deleted file mode 100644 index fd749d03963870c76ab4a9d85ad86bd95c33a71f..0000000000000000000000000000000000000000 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/MRFProperties +++ /dev/null @@ -1,20 +0,0 @@ -/*--------------------------------*- 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; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// none - -// ************************************************************************* // diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/0 b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/0 similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/0 rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/0 diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/Allrun b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/Allrun rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/Allrun diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/constant b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/constant similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/constant rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/constant diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict similarity index 96% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict index 4208f0d7564a0dffee439962d23367206545fca6..4974079c9d7ff51a1f65a7ded878e7afb9eb2592 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict +++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousMRFSimpleFoam; +application rhoPorousSimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSchemes b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSchemes rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSolution b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/fvSolution rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/T b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/T similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/T rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/T diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/U b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/U similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/U rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/U diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/alphat b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/alphat similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/alphat rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/alphat diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/epsilon b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/epsilon rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/k b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/k rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/mut b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/mut rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/p b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/p similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/0/p rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/p diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/Allrun b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/Allrun similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/Allrun rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/Allrun diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/MRFProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/MRFProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/MRFProperties rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/MRFProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/RASProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/RASProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/RASProperties rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/RASProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/blockMeshDict.m4 b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/blockMeshDict.m4 rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/boundary b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/boundary rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/porosityProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/porosityProperties rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/sourcesProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/sourcesProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/sourcesProperties rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/sourcesProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict similarity index 96% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict index 22f84576a10d2e942c9eb465ca7db3f3c0636d5d..ded00ba56989e5cf543268e42fa253de1208fb42 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/controlDict +++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousMRFSimpleFoam; +application rhoPorousSimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSchemes b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSchemes rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSolution b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSolution rename to tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/T b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/T new file mode 100644 index 0000000000000000000000000000000000000000..561ca236be3bbed252ef63b29c24063a3bea4c6b --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/T @@ -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 volScalarField; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 293; + +boundaryField +{ + + front + { + type zeroGradient; + } + back + { + type zeroGradient; + } + wall + { + type zeroGradient; + } + porosityWall + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + value $internalField; + inletValue $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/U b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/U new file mode 100644 index 0000000000000000000000000000000000000000..20e25d12a8c318b8b0532714ad2919ed4068fe7c --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/U @@ -0,0 +1,57 @@ +/*--------------------------------*- 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; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type fixedValue; + value uniform (0 0 0); + } + back + { + type fixedValue; + value uniform (0 0 0); + } + wall + { + type fixedValue; + value uniform (0 0 0); + } + porosityWall + { + type slip; + value uniform (0 0 0); + } + inlet + { + type flowRateInletVelocity; + massFlowRate constant 0.1; + value uniform (0 0 0); + } + outlet + { + type inletOutlet; + value uniform (0 0 0); + inletValue uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/alphat b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/alphat similarity index 84% rename from tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/alphat rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/alphat index aefa32d852bcadeec8d59effb605a7a8182c6ee6..f609fa6c14c41bba0ec2726af2cf56a9ca8c949a 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/alphat +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/alphat @@ -21,32 +21,36 @@ internalField uniform 0; boundaryField { - //- Set patchGroups for constraint patches - #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - - ground + front { type alphatWallFunction; value uniform 0; } - - igloo_region0 + back { type alphatWallFunction; value uniform 0; } - - twoFridgeFreezers_seal_0 + wall { type alphatWallFunction; value uniform 0; } - - twoFridgeFreezers_herring_1 + porosityWall { type alphatWallFunction; value uniform 0; } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } } diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/epsilon b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/epsilon new file mode 100644 index 0000000000000000000000000000000000000000..7588e13063f38c366c8ffde4243960a54be45481 --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/epsilon @@ -0,0 +1,64 @@ +/*--------------------------------*- 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 epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -3 0 0 0 0 ]; + +internalField uniform 200; + +boundaryField +{ + front + { + type compressible::epsilonWallFunction; + value uniform 200; + } + + back + { + type compressible::epsilonWallFunction; + value uniform 200; + } + + wall + { + type compressible::epsilonWallFunction; + value uniform 200; + } + + porosityWall + { + type compressible::epsilonWallFunction; + value uniform 200; + } + + inlet + { + type compressible::turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + value uniform 200; + } + + outlet + { + type inletOutlet; + inletValue uniform 200; + value uniform 200; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/k b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/k new file mode 100644 index 0000000000000000000000000000000000000000..85df9b83c3bce148f8c7ac811acd0cf59387505a --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/k @@ -0,0 +1,64 @@ +/*--------------------------------*- 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 k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform 1; + +boundaryField +{ + front + { + type compressible::kqRWallFunction; + value uniform 1; + } + + back + { + type compressible::kqRWallFunction; + value uniform 1; + } + + wall + { + type compressible::kqRWallFunction; + value uniform 1; + } + + porosityWall + { + type compressible::kqRWallFunction; + value uniform 1; + } + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; + value uniform 1; + } + + outlet + { + type inletOutlet; + inletValue uniform 1; + value uniform 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/mut b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/mut new file mode 100644 index 0000000000000000000000000000000000000000..2ba718d5b53378d89430ecd57f631fb03f833a0f --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/mut @@ -0,0 +1,62 @@ +/*--------------------------------*- 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 mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -1 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + front + { + type mutkWallFunction; + value uniform 0; + } + + back + { + type mutkWallFunction; + value uniform 0; + } + + wall + { + type mutkWallFunction; + value uniform 0; + } + + porosityWall + { + type mutkWallFunction; + value uniform 0; + } + + inlet + { + type calculated; + value uniform 0; + } + + outlet + { + type calculated; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/porosityProperties b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/p similarity index 60% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/porosityProperties rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/p index adc5ef3cc2132d7cce9aa225dd447c2b99a9dac3..21db04d6109a0348229d019cb3a13d728044c86d 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/constant/porosityProperties +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/0/p @@ -9,31 +9,43 @@ FoamFile { version 2.0; format ascii; - class dictionary; - location "constant"; - object porosityProperties; + class volScalarField; + object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -porosity1 -{ - type fixedCoeff; - active yes; - cellZone porosity; +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1.0e5; - fixedCoeffCoeffs +boundaryField +{ + front + { + type zeroGradient; + } + back + { + type zeroGradient; + } + wall { - alpha alpha [0 0 -1 0 0 0 0] (500 -1000 -1000); - beta beta [0 -1 0 0 0 0 0] (0 0 0); - rhoRef 1; + type zeroGradient; + } + porosityWall + { + type zeroGradient; + } - coordinateSystem - { - e1 (0.70710678 0.70710678 0); - e2 (0 0 1); - } + inlet + { + type zeroGradient; + } + outlet + { + type fixedValue; + value $internalField; } } - // ************************************************************************* // diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/Allrun b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..e51c24da589a43cad82e0ee61b0940f550f0a880 --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/Allrun @@ -0,0 +1,14 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application=`getApplication` + +runApplication blockMesh +runApplication $application + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/RASProperties b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/RASProperties similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/RASProperties rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/RASProperties diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/blockMeshDict.m4 rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/boundary similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/sourcesProperties b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/sourcesProperties new file mode 100644 index 0000000000000000000000000000000000000000..d4d41da47fb2d7077329e33cd6c8b1248a299def --- /dev/null +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/sourcesProperties @@ -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 sourcesProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fixedTemperaure1 +{ + type fixedTemperatureSource; + active true; + timeStart 0; + duration 1000000; + selectionMode cellZone; + cellZone porosity; + + fixedTemperatureSourceCoeffs + { + mode uniform; + temperature 350; + } +} + + +porosity1 +{ + type explicitPorositySource; + active true; + timeStart 0; + duration 1000000; + selectionMode cellZone; + cellZone porosity; + + explicitPorositySourceCoeffs + { + type fixedCoeff; + active yes; + cellZone porosity; + + fixedCoeffCoeffs + { + alpha alpha [0 0 -1 0 0 0 0] (500 -1000 -1000); + beta beta [0 -1 0 0 0 0 0] (0 0 0); + rhoRef 1; + + coordinateSystem + { + e1 (0.70710678 0.70710678 0); + e2 (0 0 1); + } + } + } +} + + +************************************************************************* // diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties similarity index 97% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties index 920fff435c7b6e2c8b72b0af9f9e5e27324dbb6b..db1f5947af089c7ad50aba3b9b07cbfb10d2f643 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties @@ -17,7 +17,7 @@ FoamFile thermoType { - type heRhoThermo; + type hePsiThermo; mixture pureMixture; transport sutherland; thermo hConst; diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict similarity index 96% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict index 4208f0d7564a0dffee439962d23367206545fca6..2ec29c29a85d3870b10f2fb141af823cc4b8b31c 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicit/system/controlDict +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application rhoPorousMRFSimpleFoam; +application rhoSimpleFoam; startFrom startTime; diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSchemes b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSchemes similarity index 94% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSchemes rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSchemes index e106336cb2dd0a748f8d4dc499995db3c8067024..576b46fe86e27be61a028433c302cce09643ec89 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/system/fvSchemes +++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSchemes @@ -39,10 +39,9 @@ laplacianSchemes { laplacian(muEff,U) Gauss linear corrected; laplacian(alphaEff,e) Gauss linear corrected; - laplacian((rho*rAU),p) Gauss linear corrected; + laplacian((rho*(1|A(U))),p) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; - laplacian(1,p) Gauss linear corrected; } interpolationSchemes diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution similarity index 100% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution rename to tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/0/p b/tutorials/compressible/sonicFoam/laminar/forwardStep/0/p index e4c6d1271167aeca841b9c31fc91d9eeb7f2ba59..bdbc4f96ce910e8e160544dd595aa116766e1bf5 100644 --- a/tutorials/compressible/sonicFoam/laminar/forwardStep/0/p +++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/0/p @@ -32,7 +32,7 @@ boundaryField field p; phi phi; rho rho; - psi psi; + psi thermo:psi; gamma 1.4; fieldInf 1; lInf 3; diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/p b/tutorials/compressible/sonicFoam/ras/prism/0/p index a922f0a8a5c43d18acf88282bc9e5bdca2dcf5b0..c1cc7124ff9f8cf2012de0fa92a5cd1173939012 100644 --- a/tutorials/compressible/sonicFoam/ras/prism/0/p +++ b/tutorials/compressible/sonicFoam/ras/prism/0/p @@ -32,7 +32,7 @@ boundaryField field p; phi phi; rho rho; - psi psi; + psi thermo:psi; gamma 1.3; fieldInf 100000; lInf 1; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/T b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/T index dd74be1133a46b9ff97ad2064ed6cc089baf8d8d..7e8969b3078e2322a1a0b322509d596eb333ca63 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/T +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/T @@ -23,13 +23,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type fixedValue; - value uniform 265; - } - - igloo_region0 + wall { type fixedValue; value uniform 265; @@ -43,8 +37,7 @@ boundaryField twoFridgeFreezers_herring_1 { - type fixedValue; - value uniform 303; + $twoFridgeFreezers_seal_0; } } diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/U b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/U index f1a91fe9714a2a5299bc4a09327c18ac9df13324..03d53ee7ed6204637a49f2c048c169f6a52a7efb 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/U +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/U @@ -23,25 +23,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type fixedValue; - value uniform (0 0 0); - } - - igloo_region0 - { - type fixedValue; - value uniform (0 0 0); - } - - twoFridgeFreezers_seal_0 - { - type fixedValue; - value uniform (0 0 0); - } - - twoFridgeFreezers_herring_1 + wall { type fixedValue; value uniform (0 0 0); diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/epsilon b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/epsilon index b75802e0e81c67886d7640dda6eff85934947043..e36fe920fca9129567de3e086d9304c174333b7a 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/epsilon +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/epsilon @@ -24,25 +24,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type epsilonWallFunction; - value uniform 0.01; - } - - igloo_region0 - { - type epsilonWallFunction; - value uniform 0.01; - } - - twoFridgeFreezers_seal_0 - { - type epsilonWallFunction; - value uniform 0.01; - } - - twoFridgeFreezers_herring_1 + wall { type epsilonWallFunction; value uniform 0.01; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/k b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/k index 04edc9d0d718ca3ad5d6c5030f7988a9571fde1a..0d889ec8f851f20eb41b7231500003ea9474167a 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/k +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/k @@ -24,25 +24,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type kqRWallFunction; - value uniform 0.1; - } - - igloo_region0 - { - type kqRWallFunction; - value uniform 0.1; - } - - twoFridgeFreezers_seal_0 - { - type kqRWallFunction; - value uniform 0.1; - } - - twoFridgeFreezers_herring_1 + wall { type kqRWallFunction; value uniform 0.1; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/kappat b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/kappat index 5c82ad4a5580eb46a966f9a8bcc4b1030a435732..44f2524e7fe1831c0d373adcc6586c9fff364f8c 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/kappat +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/kappat @@ -24,28 +24,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type kappatJayatillekeWallFunction; - Prt 0.85; - value uniform 0; - } - - igloo_region0 - { - type kappatJayatillekeWallFunction; - Prt 0.85; - value uniform 0; - } - - twoFridgeFreezers_seal_0 - { - type kappatJayatillekeWallFunction; - Prt 0.85; - value uniform 0; - } - - twoFridgeFreezers_herring_1 + wall { type kappatJayatillekeWallFunction; Prt 0.85; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/nut b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/nut index b8dae4d50fbd4d2ede26b7377332d56ee79e78fd..42472f31f0e68965ee9a1ad13f6601fa5b0fccd3 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/nut +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/nut @@ -24,25 +24,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type nutkWallFunction; - value uniform 0; - } - - igloo_region0 - { - type nutkWallFunction; - value uniform 0; - } - - twoFridgeFreezers_seal_0 - { - type nutkWallFunction; - value uniform 0; - } - - twoFridgeFreezers_herring_1 + wall { type nutkWallFunction; value uniform 0; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p index 19bfa3d347bb90bc7845cd7e598947c04de99f63..5a2eb19619103fb42215271895f29e7570444dad 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p @@ -23,25 +23,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type calculated; - value $internalField; - } - - igloo_region0 - { - type calculated; - value $internalField; - } - - twoFridgeFreezers_seal_0 - { - type calculated; - value $internalField; - } - - twoFridgeFreezers_herring_1 + wall { type calculated; value $internalField; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p_rgh b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p_rgh index e39f2ab7cec1a5b80d80c8ba492fe66bf148105c..69ceeb45df80d6666aa57b7a0d5ace5a82eba0c2 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p_rgh +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/0/p_rgh @@ -23,28 +23,7 @@ boundaryField //- Set patchGroups for constraint patches #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes" - ground - { - type fixedFluxPressure; - rho rhok; - value uniform 0; - } - - igloo_region0 - { - type fixedFluxPressure; - rho rhok; - value uniform 0; - } - - twoFridgeFreezers_seal_0 - { - type fixedFluxPressure; - rho rhok; - value uniform 0; - } - - twoFridgeFreezers_herring_1 + wall { type fixedFluxPressure; rho rhok; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/polyMesh/blockMeshDict b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/polyMesh/blockMeshDict index 57de714b2f21d69799a5ac2742c90c6cae941e47..c854ce532d428bb89c9389ccb5b1a3085f262077 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/polyMesh/blockMeshDict +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/polyMesh/blockMeshDict @@ -78,7 +78,8 @@ boundary ground { - type wall; + type wall; + inGroups (wall); faces ( (0 3 2 1) diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/controlDict b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/controlDict index 590a482d4a0ab0771e23f9cf7b5f5c20c7c442c2..31ca07d47d105adc96770c8f2667ff9a10b655ea 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/controlDict +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/controlDict @@ -15,6 +15,13 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +libs +( + "libincompressibleTurbulenceModel.so" + "libincompressibleRASModels.so" + "libincompressibleTransportModels.so" +); + application buoyantBoussinesqSimpleFoam; startFrom startTime; diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict index 09e2478dbb33706da812b761e393eb4e280df091..7c420218539e58612ac150f681086e87a7ed50c6 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict @@ -15,9 +15,9 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 6; +numberOfSubdomains 2; -method hierarchical; +method scotch; simpleCoeffs { diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/snappyHexMeshDict b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/snappyHexMeshDict index bc90ed1c2b5ff900402f1dc5e704347fddf8f3f7..c5e80f8d1a3715a2600d25caa26d4fb32be862cf 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/snappyHexMeshDict +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/snappyHexMeshDict @@ -148,12 +148,28 @@ castellatedMeshControls level (3 3); } } + + // Optional specification of patch type (default is wall). No + // constraint types (cyclic, symmetry) etc. are allowed. + patchInfo + { + type wall; + inGroups (wall); + } } "iglo.*" { // Surface-wise min and max refinement level level (1 1); + + // Optional specification of patch type (default is wall). No + // constraint types (cyclic, symmetry) etc. are allowed. + patchInfo + { + type wall; + inGroups (wall); + } } } diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/G b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/G similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/G rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/G diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/T b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/T similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/T rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/T diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/U b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/U similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/U rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/U diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/alphat b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/alphat similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/alphat rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/alphat diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/epsilon similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/epsilon diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/k similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/k diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/mut b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/mut similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/mut rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/mut diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/p similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/p diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p_rgh b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/p_rgh similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p_rgh rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/0/p_rgh diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/Allclean b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/Allclean similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/Allclean rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/Allclean diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/Allrun b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/Allrun similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/Allrun rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/Allrun diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/RASProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/RASProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/RASProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/RASProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/g b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/g similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/g rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/g diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/polyMesh/blockMeshDict b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/polyMesh/blockMeshDict similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/polyMesh/blockMeshDict rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/polyMesh/blockMeshDict diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/polyMesh/boundary b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/polyMesh/boundary similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/polyMesh/boundary rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/polyMesh/boundary diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/radiationProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/radiationProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/radiationProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/radiationProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/controlDict b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/controlDict similarity index 96% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/controlDict rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/controlDict index 3a0f2f992fdd130a79a8399cf6de5c9130fe4ade..9e129840100693b9588d49189ad5637815be529a 100644 --- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/controlDict +++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application buoyantSimpleRadiationFoam; +application buoyantSimpleFoam; startFrom latestTime; diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/fvSchemes similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/fvSchemes diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/fvSolution similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/system/fvSolution diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/G b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/G similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/G rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/G diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/IDefault b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/IDefault similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/IDefault rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/IDefault diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/T b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/T similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/T rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/T diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/U b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/U similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/U rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/U diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/alphat b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/alphat similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/alphat rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/alphat diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/epsilon b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/epsilon similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/epsilon rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/epsilon diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/k b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/k similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/k rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/k diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/mut b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/mut similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/mut rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/mut diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/p similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/p diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p_rgh b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/p_rgh similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p_rgh rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/0/p_rgh diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/Allclean b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/Allclean similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/Allclean rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/Allclean diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/Allrun b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/Allrun similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/Allrun rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/Allrun diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/RASProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/RASProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/RASProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/RASProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/g b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/g similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/g rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/g diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/polyMesh/blockMeshDict b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/polyMesh/blockMeshDict similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/polyMesh/blockMeshDict rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/polyMesh/blockMeshDict diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/polyMesh/boundary b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/polyMesh/boundary similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/polyMesh/boundary rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/polyMesh/boundary diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/radiationProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/radiationProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/radiationProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/radiationProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/controlDict b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/controlDict similarity index 96% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/controlDict rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/controlDict index 95fff8df10f0e4b9049ce4b1826d90d5f0db9367..76e8fe4beff90b9a3ab183db020965f809f5023b 100644 --- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/controlDict +++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/controlDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -application buoyantSimpleRadiationFoam; +application buoyantSimpleFoam; startFrom latestTime; diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/fvSchemes similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/fvSchemes diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/fvSolution similarity index 100% rename from tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution rename to tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/system/fvSolution diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun index 61fd0e371bf42fa954a5f677fbfb6c239b342af2..ecc9459467659daa24afa9c8c32d84ed8a0d4169 100755 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun @@ -23,7 +23,7 @@ done for i in bottomAir topAir do - faceAgglomerate -region $i -dict viewFactorsDict > log.faceAgglomerate.$i 2>&1 + faceAgglomerate -region $i -dict constant/viewFactorsDict > log.faceAgglomerate.$i 2>&1 done for i in bottomAir topAir @@ -42,7 +42,7 @@ runApplication `getApplication` # #for i in bottomAir topAir #do -# mpirun -np 4 faceAgglomerate -region $i -dict viewFactorsDict -parallel> log.faceAgglomerate.$i 2>&1 +# mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel> log.faceAgglomerate.$i 2>&1 #done #for i in bottomAir topAir diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/MRFProperties b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/MRFProperties deleted file mode 100644 index 3089e7d82686521503963e6587be23733db8d073..0000000000000000000000000000000000000000 --- a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/MRFProperties +++ /dev/null @@ -1,28 +0,0 @@ -/*--------------------------------*- 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; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -zone1 -{ - cellZone rotor; - active yes; - origin (0 0 0); - axis (0 0 1); - omega 104.72; -} - - -// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict b/tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict index 92c3f3dd82835d3c571d49dacbc7a0f8b57fbae2..544288617fb6712ce5406f73102526af3e589111 100644 --- a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict +++ b/tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict @@ -85,43 +85,7 @@ baffles name baffles; type wall; - patchFields - { - epsilon - { - type epsilonWallFunction; - Cmu 0.09; - kappa 0.41; - E 9.8; - value uniform 0; - } - k - { - type kqRWallFunction; - value uniform 0; - } - nut - { - type nutkWallFunction; - Cmu 0.09; - kappa 0.41; - E 9.8; - value uniform 0; - } - nuTilda - { - type zeroGradient; - } - p - { - type zeroGradient; - } - U - { - type fixedValue; - value uniform (0 0 0); - } - } + ${..master.patchFields} } } } diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun b/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun index 656b92f3addbd931034a7f844bb2f46dffce0a97..f4d2c06b9412ae0029ac96b15ad8bb187fb0dd48 100755 --- a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun +++ b/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun @@ -15,7 +15,7 @@ runApplication mirrorMesh -overwrite rm log.mirrorMesh rm log.changeDictionary -runApplication changeDictionary -instance system -dict system/changeDictionaryDict.Y +runApplication changeDictionary -instance system -dict system/changeDictionaryDict.Y runApplication mirrorMesh -overwrite diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/U b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/U similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/U rename to tutorials/incompressible/simpleFoam/mixerVessel2D/0/U diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/epsilon b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/epsilon rename to tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/k b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/k similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/k rename to tutorials/incompressible/simpleFoam/mixerVessel2D/0/k diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/nut b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/nut similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/nut rename to tutorials/incompressible/simpleFoam/mixerVessel2D/0/nut diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/p b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/p similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/p rename to tutorials/incompressible/simpleFoam/mixerVessel2D/0/p diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/Allrun b/tutorials/incompressible/simpleFoam/mixerVessel2D/Allrun similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/Allrun rename to tutorials/incompressible/simpleFoam/mixerVessel2D/Allrun diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/RASProperties b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/RASProperties similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/RASProperties rename to tutorials/incompressible/simpleFoam/mixerVessel2D/constant/RASProperties diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 rename to tutorials/incompressible/simpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/polyMesh/boundary similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/polyMesh/boundary rename to tutorials/incompressible/simpleFoam/mixerVessel2D/constant/polyMesh/boundary diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/sourcesProperties b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/sourcesProperties similarity index 82% rename from tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/sourcesProperties rename to tutorials/incompressible/simpleFoam/mixerVessel2D/constant/sourcesProperties index ddd2bf9c9faaa53e07e1835ad4a289e8a38e8495..8b7fb7bcf238ea417a80bcea72015643d29f94c1 100644 --- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/sourcesProperties +++ b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/sourcesProperties @@ -15,19 +15,20 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -source1 +MRF1 { - type fixedTemperatureSource; + type MRFSource; active true; timeStart 0; - duration 1000000; + duration 1e100; selectionMode cellZone; - cellZone porosity; + cellZone rotor; - fixedTemperatureSourceCoeffs + MRFSourceCoeffs { - mode uniform; - temperature 350; + origin (0 0 0); + axis (0 0 1); + omega 104.72; } } diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/transportProperties b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/constant/transportProperties rename to tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh b/tutorials/incompressible/simpleFoam/mixerVessel2D/makeMesh similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh rename to tutorials/incompressible/simpleFoam/mixerVessel2D/makeMesh diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/controlDict b/tutorials/incompressible/simpleFoam/mixerVessel2D/system/controlDict similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/controlDict rename to tutorials/incompressible/simpleFoam/mixerVessel2D/system/controlDict diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/fvSchemes b/tutorials/incompressible/simpleFoam/mixerVessel2D/system/fvSchemes similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/fvSchemes rename to tutorials/incompressible/simpleFoam/mixerVessel2D/system/fvSchemes diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/fvSolution b/tutorials/incompressible/simpleFoam/mixerVessel2D/system/fvSolution similarity index 100% rename from tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/system/fvSolution rename to tutorials/incompressible/simpleFoam/mixerVessel2D/system/fvSolution diff --git a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties index 5c93f36555fb23d2470c0721fae62da403190349..aa8b02241a5b7ed42e112ad151f2340bb5ea59db 100644 --- a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties @@ -44,7 +44,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties index fc5042f2c19d9695cc92d7c9d3c51753f976172d..bc122d0a3791682a799e6ab51be69453dafc5428 100644 --- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties +++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties index 29cfd8d563a15366018ca647af8ac59556abec4b..0517933f4d4b7470debddaedb58196a8662a04ad 100644 --- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties +++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties @@ -35,7 +35,7 @@ solution interpolationSchemes { rho cell; - mu cell; + thermo:mu cell; U cellPoint; Cp cell; T cell; diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties index 875e31a59c626d8f66982de456cb801c56dbf372..68e6be961fcf77de5a29026e74b7ae2c5f7d9773 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties index 78f4e7bb5dcc06fec98d6f6521d26a7fef98091f..a4d326c0411c0f9831860b14739a1294fa5cac6d 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties index 6704aad9146ee24c13108ef2749e2349ec9eb112..42ddef823562d0f19e64ba22fa74c97fc5496bfb 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/filter/constant/reactingCloud1Properties index 613b407de15bd9dd5ca7257a66ed3818d232ce5a..cb6c2dd3becd14a73d94c1392f5671307b8e7898 100644 --- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/reactingCloud1Properties index 10bb7ccc333cd1af3293421a91f8815c849185fd..56b0a2d3e7c473f1316a983cbfa0e1aed79c467d 100644 --- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/reactingCloud1Properties index aac578722d8a63635cf9afd4869a7755edd1d948..b4d1d9abdf50879e95417c9dbe5aac5e873ca786 100644 --- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/reactingCloud1Properties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties index 153a5fc0b2bd83c346589193ad9b8d783199c74a..0ce1e3bbc8a22230ffde01e1393f55c4e6c05deb 100644 --- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties +++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties @@ -38,7 +38,7 @@ solution { rho cell; U cellPoint; - mu cell; + thermo:mu cell; T cell; Cp cell; p cell; diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun index bdeacd7831d2a2c15696477e68478f10fb58ff2c..8d214a96af50508e27d18d8fe09993d254b2383e 100755 --- a/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun +++ b/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun @@ -18,7 +18,7 @@ refineMeshByCellSet() topoSet > log.topoSet.$1 2>&1 echo "refining primary zone - $1" - refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + refineMesh -dict system/refineMeshDict -overwrite > log.refineMesh.$1 2>&1 fi shift done diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun index 213a2a5ecf094bfac092971663a6d716f15d619c..a6b927d81adf7694873d4a22e48a6447fb9d7d18 100755 --- a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun +++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun @@ -18,7 +18,7 @@ refineMeshByCellSet() topoSet > log.topoSet.$1 2>&1 echo "refining primary zone - $1" - refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + refineMesh -dict sytem/refineMeshDict -overwrite > log.refineMesh.$1 2>&1 fi shift done diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun index 37600b5049bfd7d7ba5f66902446f4fe9df287cf..fb8009740b73608e7fe5994fef71b25e63915a9d 100755 --- a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun +++ b/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun @@ -17,7 +17,7 @@ refineMeshByCellSet() topoSet > log.topoSet.$1 2>&1 echo "refining primary zone - $1" - refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + refineMesh -dict system/refineMeshDict -overwrite > log.refineMesh.$1 2>&1 fi shift done diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun index a66f56c1a7d5e33a012d58d0ae648d98715b26be..bdd17ed03350834cc6921cb53e2555ce1cf305fd 100755 --- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun +++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun @@ -10,7 +10,7 @@ application=`getApplication` runRefineMesh () { echo "Running refineMesh on $PWD" - refineMesh -dict > log.refineMesh 2>&1 + refineMesh -dict system/refineMeshDict > log.refineMesh 2>&1 } runApplication blockMesh diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict index 46e0c66bf817f5a8ee41f406537d8e130e9ad627..c127ff67d25c8e2175277ec631ffa86c6f6f7730 100644 --- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict +++ b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict @@ -65,10 +65,7 @@ baffles type cyclic; neighbourPatch porous_half0; - patchFields - { - ${...master.patchFields} - } + ${..master.patchFields} } } }