diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options index f9cb15cc2f..9d6d7d5398 100644 --- a/applications/solvers/lagrangian/sprayFoam/Make/options +++ b/applications/solvers/lagrangian/sprayFoam/Make/options @@ -1,4 +1,5 @@ EXE_INC = \ + -I$(FOAM_SOLVERS)/lagrangian/reactingParcelFoam \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I${LIB_SRC}/meshTools/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ @@ -20,8 +21,7 @@ EXE_INC = \ -I$(LIB_SRC)/ODE/lnInclude \ -I$(LIB_SRC)/regionModels/regionModel/lnInclude \ -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \ - -I$(LIB_SRC)/combustionModels/lnInclude \ - -I$(FOAM_SOLVERS)/lagrangian/reactingParcelFoam + -I$(LIB_SRC)/combustionModels/lnInclude EXE_LIBS = \ diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/Make/files b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/files similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/Make/files rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/files diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/Make/options rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/createClouds.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/createClouds.H similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/createClouds.H rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/createClouds.H diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/logSummary.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/logSummary.H similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/logSummary.H rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/logSummary.H diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H new file mode 100644 index 0000000000..5109788ea1 --- /dev/null +++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H @@ -0,0 +1,73 @@ +rho = thermo.rho(); + +volScalarField rAU(1.0/UEqn.A()); +U = rAU*UEqn.H(); + +if (pimple.transonic()) +{ + surfaceScalarField phid + ( + "phid", + fvc::interpolate(psi) + *( + ((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)) + + fvc::ddtPhiCorr(rAU, rho, U, phi) + ) + ); + + while (pimple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvm::ddt(psi, p) + + fvm::div(phid, p) + - fvm::laplacian(rho*rAU, p) + == + parcels.Srho() + ); + + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); + + if (pimple.finalNonOrthogonalIter()) + { + phi == pEqn.flux(); + } + } +} +else +{ + phi = + fvc::interpolate(rho) + *( + ((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)) + + fvc::ddtPhiCorr(rAU, rho, U, phi) + ); + + while (pimple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvm::ddt(psi, p) + + fvc::div(phi) + - fvm::laplacian(rho*rAU, p) + == + parcels.Srho() + ); + + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); + + if (pimple.finalNonOrthogonalIter()) + { + phi += pEqn.flux(); + } + } +} + +#include "rhoEqn.H" +#include "compressibleContinuityErrs.H" + +U -= rAU*fvc::grad(p); +U.correctBoundaryConditions(); +K = 0.5*magSqr(U); + +dpdt = fvc::ddt(p); diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/readEngineTimeControls.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/readEngineTimeControls.H rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/sprayEngineFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C similarity index 99% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/sprayEngineFoam.C rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C index 7014cc1af3..a4ae147f51 100644 --- a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/sprayEngineFoam.C +++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C @@ -74,6 +74,8 @@ int main(int argc, char *argv[]) Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl; + mesh.move(); + parcels.evolve(); #include "rhoEqn.H" diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/startSummary.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/startSummary.H similarity index 100% rename from applications/solvers/lagrangian/sprayFoam/sprayEnginFoam/startSummary.H rename to applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/startSummary.H diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H index 6d2add98f9..97c9d455f1 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H @@ -114,11 +114,11 @@ public: //- the dragfunction K used in the momentum eq. // ddt(alpha*rhoa*Ua) + ... = ... alpha*beta*K*(Ua-Ub) // ddt(beta*rhob*Ub) + ... = ... alpha*beta*K*(Ub-Ua) - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** // for numerical reasons alpha and beta has been // extracted from the dragFunction K, // so you MUST divide K by alpha*beta when implemnting the drag function - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** virtual tmp K(const volScalarField& Ur) const = 0; }; diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H index e4871f2c51..f83a03804b 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H @@ -114,12 +114,12 @@ public: //- the heat-transfer function K used in the enthalpy eq. // ddt(alpha*rhoa*ha) + ... = ... alpha*beta*K*(Ta - Tb) // ddt(beta*rhob*hb) + ... = ... alpha*beta*K*(Tb - Ta) - // **********************************NB ! ***************************** + // ********************************** NB!***************************** // for numerical reasons alpha and beta has been // extracted from the heat-transfer function K, // so you MUST divide K by alpha*beta when implementing the // heat-transfer function - // **********************************NB ! ***************************** + // ********************************** NB!***************************** virtual tmp K(const volScalarField& Ur) const = 0; }; diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H index 31ea8164df..74f8f2b931 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H @@ -35,8 +35,8 @@ Description \verbatim Kunz, R.F., Boger, D.A., Stinebring, D.R., Chyczewski, Lindau. J.W., Gibeling, H.J., Venkateswaran, S., Govindan, T.R., - “A Preconditioned Implicit Method for Two-Phase Flows with Application - to Cavitation Prediction,” + "A Preconditioned Implicit Method for Two-Phase Flows with Application + to Cavitation Prediction," Computers and Fluids, 29(8):849-875, 2000. \endverbatim diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H index a775d91e45..3a9536c881 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H @@ -131,11 +131,11 @@ public: //- the dragfunction K used in the momentum eq. // ddt(alpha*rhoa*Ua) + ... = ... alpha*beta*K*(Ua-Ub) // ddt(beta*rhob*Ub) + ... = ... alpha*beta*K*(Ub-Ua) - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** // for numerical reasons alpha and beta has been // extracted from the dragFunction K, // so you MUST divide K by alpha*beta when implemnting the drag function - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** virtual tmp K(const volScalarField& Ur) const = 0; }; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H index e4871f2c51..5541795bfd 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H @@ -114,12 +114,12 @@ public: //- the heat-transfer function K used in the enthalpy eq. // ddt(alpha*rhoa*ha) + ... = ... alpha*beta*K*(Ta - Tb) // ddt(beta*rhob*hb) + ... = ... alpha*beta*K*(Tb - Ta) - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** // for numerical reasons alpha and beta has been // extracted from the heat-transfer function K, // so you MUST divide K by alpha*beta when implementing the // heat-transfer function - // **********************************NB ! ***************************** + // ********************************** NB! ***************************** virtual tmp K(const volScalarField& Ur) const = 0; }; diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H index 237c7cfb64..0831f158b6 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H @@ -114,11 +114,11 @@ public: //- the dragfunction K used in the momentum eq. // ddt(alpha*rhoa*Ua) + ... = ... alpha*beta*K*(Ua-Ub) // ddt(beta*rhob*Ub) + ... = ... alpha*beta*K*(Ub-Ua) - // **********************************NB ! ***************************** + // ********************************** NB ! ***************************** // for numerical reasons alpha and beta has been // extracted from the dragFunction K, // so you MUST divide K by alpha*beta when implemnting the drag function - // **********************************NB ! ***************************** + // ********************************** NB ! ***************************** virtual tmp K(const volScalarField& Ur) const = 0; }; diff --git a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C index 4ba6d43b4e..b32c249e7c 100644 --- a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C +++ b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/extrudeToRegionMesh.C @@ -1637,6 +1637,7 @@ int main(int argc, char *argv[]) #include "addRegionOption.H" #include "addOverwriteOption.H" + argList::addOption("dict", "name", "specify alternative dictionary"); #include "setRootCase.H" #include "createTime.H" diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C index a96179e970..cb7f5705aa 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.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 @@ -35,6 +35,9 @@ Usage \param -ascii \n Write Ensight data in ASCII format instead of "C Binary" + \parm -name \\n + define sub-directory name to use for Ensight data (default: "Ensight") + \param -noZero \n Exclude the often incomplete initial conditions. @@ -46,6 +49,9 @@ Usage Suppress writing the geometry. Can be useful for converting partial results for a static geometry. + \param -width \\n + width of Ensight data subdir + Note - no parallel data. - writes to \a Ensight directory to avoid collisions with foamToEnsight. @@ -96,6 +102,19 @@ int main(int argc, char *argv[]) "suppress writing the geometry. " "Can be useful for converting partial results for a static geometry" ); + argList::addOption + ( + "name", + "subdir", + "define sub-directory name to use for Ensight data " + "(default: \"Ensight\")" + ); + argList::addOption + ( + "width", + "n", + "width of Ensight data subdir" + ); // the volume field types that we handle wordHashSet volFieldTypes; @@ -133,7 +152,21 @@ int main(int argc, char *argv[]) // always write the geometry, unless the -noMesh option is specified bool optNoMesh = args.optionFound("noMesh"); - fileName ensightDir = args.rootPath()/args.globalCaseName()/"Ensight"; + // adjust output width + if (args.optionFound("width")) + { + ensightFile::subDirWidth(args.optionRead