diff --git a/Allwmake b/Allwmake index e5edf6fc97..4ae49dca1d 100755 --- a/Allwmake +++ b/Allwmake @@ -14,15 +14,24 @@ cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || { . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments #------------------------------------------------------------------------------ +# Preamble. Report compiler version +case "$WM_COMPILER" in + Gcc*) gcc --version 2>/dev/null | sed -ne '1p' ;; + Clang*) clang --version 2>/dev/null | sed -ne '1p' ;; +esac +# Preamble. Report mpirun location +command -v mpirun 2>/dev/null || true + echo "========================================" date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown" -echo "Starting ${WM_PROJECT_DIR##*/} ${0##*}" +echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*}" echo " $WM_COMPILER $WM_COMPILER_TYPE compiler" echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}" +echo "========================================" echo -# Compile wmake tools -(cd "${WM_DIR:-wmake}/src" && make) +# Compile tools for wmake +"${WM_DIR:-wmake}"/src/Allmake # Compile ThirdParty libraries and applications if [ -d "$WM_THIRD_PARTY_DIR" ] @@ -51,6 +60,13 @@ then (cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all) fi +# Count files in given directory. Ignore "Test-*" binaries. +_foamCountDirEntries() +{ + (cd "$1" 2>/dev/null && find -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\ + sed -e '\@/Test-@d' | wc -l +} + # Some summary information echo date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown" @@ -59,4 +75,11 @@ echo " ${WM_PROJECT_DIR##*/}" echo " $WM_COMPILER $WM_COMPILER_TYPE compiler" echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}" echo +echo " api = $(wmakeBuildInfo -show-api 2>/dev/null)" +echo " patch = $(wmakeBuildInfo -show-patch 2>/dev/null)" +echo " bin = $(_foamCountDirEntries $FOAM_APPBIN) entries" +echo " lib = $(_foamCountDirEntries $FOAM_LIBBIN) entries" +echo +echo "========================================" + #------------------------------------------------------------------------------ diff --git a/COPYING b/COPYING index 495df7b8a1..ee33ff0be7 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,6 @@ GNU GENERAL PUBLIC LICENSE - OpenFOAM(R) is Copyright (C) 2011 OpenFOAM Foundation - Contact: OpenFOAM Foundation (OpenFOAM.Foundation@gmail.com) + OpenFOAM(R) is released by OpenCFD Ltd. via www.openfoam.com You may use, distribute and copy the OpenFOAM CFD Toolbox under the terms of GNU General Public License version 3, which is displayed below, or diff --git a/META-INFO/.gitignore b/META-INFO/.gitignore new file mode 100644 index 0000000000..eddcd95786 --- /dev/null +++ b/META-INFO/.gitignore @@ -0,0 +1,5 @@ +# Do not track build information +build-info + +# Do not track time-stamp +time-stamp diff --git a/META-INFO/README.md b/META-INFO/README.md new file mode 100644 index 0000000000..3ac2880aa3 --- /dev/null +++ b/META-INFO/README.md @@ -0,0 +1,84 @@ +# META-INFO + +Meta-information is for OpenFOAM internal use only. + +Do not rely on any files or any file contents in this directory, +or even the existence of this directory. + +The format, content and meaning may be changed at anytime without +notice. + +The information is provided here for internal documentation purposes. + +## api-info + +This file and its contents are to be tracked by git. + +- File content (api) generated by wmakeBuildInfo from OPENFOAM define + in `wmake/rules/General/general` + +- File content (patch) is manually generated content. + + +## build-info + +This file is *never* to be tracked by git, but may be present in shipped +source archives. + +- File content (branch, build) generated by wmakeBuildInfo from git + information and cached from previous wmake (api) + + +## Content types + +### api + +- 4-digit year-month (YYMM) integer corresponding to the major + release or in unusual cases an intermediate release. + +- Format is year-month, as per `date +%y%m`. + Eg, `1712` for the Dec-2017 release. + + +### patch + +- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level + for the given **released** API. + Development branches have a patch value of `0`. + +- Format is year-month-day, as per `date +%y%m%d`. + +- The first release is by definition unpatched, and thus carries + a patch value of `0`. If this release were to be patched the following + day, the patch level would jump accordingly. + +The patch value is only meaningful together with the api value. + + +## Flow of information + +Changes in the build information must be reflected in information +available in the final binaries. Conversely, it is necessary for later +distributions to have a record of the same information. + +| property | source | saved | +|-----------|---------------------------|------------| +| api | wmake/rules | api-info | +| patch | manual (api-info) | build-info | +| branch | git | build-info | +| build | git | build-info | + + +The command `wmakeBuildInfo -check` is used to determine if +the saved information needs synchronization. The command +`wmakeBuildInfo -update` preforms the synchronitzation. + + +## Notes + +The saved information is split into two separate files. The `api-info` +contains more permanent information, whereas the `build-info` is more +transient in nature. + +---- +2018-11-29 diff --git a/META-INFO/api-info b/META-INFO/api-info new file mode 100644 index 0000000000..5891e7c19c --- /dev/null +++ b/META-INFO/api-info @@ -0,0 +1,2 @@ +api=1812 +patch=0 diff --git a/applications/solvers/DNS/dnsFoam/Allwmake b/applications/solvers/DNS/dnsFoam/Allwmake index 64bef012d9..605293b5b6 100755 --- a/applications/solvers/DNS/dnsFoam/Allwmake +++ b/applications/solvers/DNS/dnsFoam/Allwmake @@ -1,12 +1,13 @@ #!/bin/sh cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments . $WM_PROJECT_DIR/wmake/scripts/have_fftw #------------------------------------------------------------------------------ if have_fftw then - wmake + wmake $targetType else echo "==> skip dnsFoam solver (no FFTW)" fi diff --git a/applications/solvers/DNS/dnsFoam/dnsFoam.C b/applications/solvers/DNS/dnsFoam/dnsFoam.C index e7011cdb75..68f55a0503 100644 --- a/applications/solvers/DNS/dnsFoam/dnsFoam.C +++ b/applications/solvers/DNS/dnsFoam/dnsFoam.C @@ -44,9 +44,14 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Direct numerical simulation for boxes of isotropic turbulence." + ); + #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMeshNoClear.H" #include "createControl.H" diff --git a/applications/solvers/basic/laplacianFoam/createFields.H b/applications/solvers/basic/laplacianFoam/createFields.H index 2c38779b3a..dbddccb904 100644 --- a/applications/solvers/basic/laplacianFoam/createFields.H +++ b/applications/solvers/basic/laplacianFoam/createFields.H @@ -31,11 +31,6 @@ IOdictionary transportProperties Info<< "Reading diffusivity DT\n" << endl; -dimensionedScalar DT -( - "DT", - dimArea/dimTime, - transportProperties -); +dimensionedScalar DT("DT", dimViscosity, transportProperties); #include "createFvOptions.H" diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C index 9bffe121d4..4acd51b41f 100644 --- a/applications/solvers/basic/laplacianFoam/laplacianFoam.C +++ b/applications/solvers/basic/laplacianFoam/laplacianFoam.C @@ -59,9 +59,13 @@ Description int main(int argc, char *argv[]) { - #include "addCheckCaseOptions.H" - #include "setRootCase.H" + argList::addNote + ( + "Laplace equation solver for a scalar quantity." + ); + #include "addCheckCaseOptions.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" diff --git a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/createFields.H b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/createFields.H index d14935caab..fc66a21b16 100644 --- a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/createFields.H +++ b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/createFields.H @@ -47,7 +47,4 @@ Info<< "Reading diffusivity DT\n" << endl; - dimensionedScalar DT - ( - transportProperties.lookup("DT") - ); + dimensionedScalar DT("DT", dimViscosity, transportProperties); diff --git a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/overLaplacianDyMFoam.C b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/overLaplacianDyMFoam.C index 9a1c1018d9..7294e5ea67 100644 --- a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/overLaplacianDyMFoam.C +++ b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/overLaplacianDyMFoam.C @@ -60,8 +60,12 @@ Description int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Overset Laplace equation solver for a scalar quantity." + ); + #include "setRootCaseLists.H" #include "createTime.H" #include "createNamedDynamicFvMesh.H" diff --git a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/write.H b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/write.H index 47aa182c0a..6b14ba4995 100644 --- a/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/write.H +++ b/applications/solvers/basic/laplacianFoam/overLaplacianDyMFoam/write.H @@ -1,4 +1,4 @@ - if (runTime.outputTime()) + if (runTime.writeTime()) { volVectorField gradT(fvc::grad(T)); diff --git a/applications/solvers/basic/potentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/createFields.H index 5152727b1d..4b3352557a 100644 --- a/applications/solvers/basic/potentialFoam/createFields.H +++ b/applications/solvers/basic/potentialFoam/createFields.H @@ -38,10 +38,9 @@ if (args.found("initialiseUBCs")) // Construct a pressure field // If it is available read it otherwise construct from the velocity BCs // converting fixed-value BCs to zero-gradient and vice versa. -word pName("p"); -// Update name of the pressure field from the command-line option -args.readIfPresent("pName", pName); +// Allow override from command-line -pName option +const word pName = args.opt("pName", "p"); // Infer the pressure BCs from the velocity wordList pBCTypes diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H index 67c1c67e59..80f04a8a68 100644 --- a/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H @@ -38,10 +38,9 @@ if (args.found("initialiseUBCs")) // Construct a pressure field // If it is available read it otherwise construct from the velocity BCs // converting fixed-value BCs to zero-gradient and vice versa. -word pName("p"); -// Update name of the pressure field from the command-line option -args.readIfPresent("pName", pName); +// Allow override from command-line -pName option +const word pName = args.opt("pName", "p"); // Infer the pressure BCs from the velocity wordList pBCTypes diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/overPotentialFoam.C b/applications/solvers/basic/potentialFoam/overPotentialFoam/overPotentialFoam.C index 3aa88e5998..fb7bfb7588 100644 --- a/applications/solvers/basic/potentialFoam/overPotentialFoam/overPotentialFoam.C +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/overPotentialFoam.C @@ -97,6 +97,11 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Overset potential flow solver which solves for the velocity potential" + ); + argList::addOption ( "pName", @@ -125,10 +130,10 @@ int main(int argc, char *argv[]) argList::addBoolOption ( "withFunctionObjects", - "execute functionObjects" + "Execute functionObjects" ); - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createNamedDynamicFvMesh.H" diff --git a/applications/solvers/basic/potentialFoam/potentialFoam.C b/applications/solvers/basic/potentialFoam/potentialFoam.C index ca54ea1c86..d041b4ad0d 100644 --- a/applications/solvers/basic/potentialFoam/potentialFoam.C +++ b/applications/solvers/basic/potentialFoam/potentialFoam.C @@ -94,6 +94,11 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Potential flow solver which solves for the velocity potential" + ); + argList::addOption ( "pName", @@ -122,11 +127,11 @@ int main(int argc, char *argv[]) argList::addBoolOption ( "withFunctionObjects", - "execute functionObjects" + "Execute functionObjects" ); #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" diff --git a/applications/solvers/basic/scalarTransportFoam/createFields.H b/applications/solvers/basic/scalarTransportFoam/createFields.H index 390ac4e473..ec2b2263c3 100644 --- a/applications/solvers/basic/scalarTransportFoam/createFields.H +++ b/applications/solvers/basic/scalarTransportFoam/createFields.H @@ -47,12 +47,7 @@ IOdictionary transportProperties Info<< "Reading diffusivity DT\n" << endl; -dimensionedScalar DT -( - "DT", - dimArea/dimTime, - transportProperties -); +dimensionedScalar DT("DT", dimViscosity, transportProperties); #include "createPhi.H" diff --git a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C index 6c2d703b93..6dae2ada21 100644 --- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C +++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C @@ -61,8 +61,13 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Passive scalar transport equation solver." + ); + #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" diff --git a/applications/solvers/combustion/PDRFoam/PDRFoam.C b/applications/solvers/combustion/PDRFoam/PDRFoam.C index 2511b8da12..b327b6f1e6 100644 --- a/applications/solvers/combustion/PDRFoam/PDRFoam.C +++ b/applications/solvers/combustion/PDRFoam/PDRFoam.C @@ -86,10 +86,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for compressible premixed/partially-premixed combustion with" + " turbulence modelling." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -115,7 +121,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "\n\nTime = " << runTime.timeName() << endl; #include "rhoEqn.H" diff --git a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C index 48a9aaf5c8..0169b5107b 100644 --- a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C +++ b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C @@ -71,8 +71,13 @@ Description int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Solver for compressible premixed/partially-premixed combustion with" + " turbulence modelling." + ); + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" @@ -101,8 +106,8 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - // Indicators for refinement. Note: before runTime++ - // only for post-processing reasons. + // Indicators for refinement. + // Note: before ++runTime only for post-processing reasons. tmp tmagGradP = mag(fvc::grad(p)); volScalarField normalisedGradP ( @@ -112,7 +117,7 @@ int main(int argc, char *argv[]) normalisedGradP.writeOpt() = IOobject::AUTO_WRITE; tmagGradP.clear(); - runTime++; + ++runTime; Info<< "\n\nTime = " << runTime.timeName() << endl; diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.C b/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.C index 26104e40ab..3da7d1af93 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.C @@ -49,7 +49,7 @@ Foam::XiGModels::basicSubGrid::basicSubGrid ) : XiGModel(XiGProperties, thermo, turbulence, Su), - k1(readScalar(XiGModelCoeffs_.lookup("k1"))), + k1(XiGModelCoeffs_.get("k1")), XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su)) {} @@ -104,7 +104,7 @@ bool Foam::XiGModels::basicSubGrid::read(const dictionary& XiGProperties) { XiGModel::read(XiGProperties); - XiGModelCoeffs_.lookup("k1") >> k1; + XiGModelCoeffs_.readEntry("k1", k1); return true; } diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C index 175c5f4f1c..670ab1ed83 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C @@ -81,7 +81,7 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties) { PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs"); - PDRDragModelCoeffs_.read("drag", on_); + PDRDragModelCoeffs_.readEntry("drag", on_); return true; } diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/basic/basic.C b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/basic/basic.C index 821380fe04..9c053b2acc 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/basic/basic.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/basic/basic.C @@ -165,8 +165,8 @@ bool Foam::PDRDragModels::basic::read(const dictionary& PDRProperties) { PDRDragModel::read(PDRProperties); - PDRDragModelCoeffs_.read("Csu", Csu.value()); - PDRDragModelCoeffs_.read("Csk", Csk.value()); + PDRDragModelCoeffs_.readEntry("Csu", Csu.value()); + PDRDragModelCoeffs_.readEntry("Csk", Csk.value()); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/Gulder/Gulder.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/Gulder/Gulder.C index c2b863087c..56ff3ed5ef 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/Gulder/Gulder.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/Gulder/Gulder.C @@ -49,13 +49,10 @@ Foam::XiEqModels::Gulder::Gulder ) : XiEqModel(XiEqProperties, thermo, turbulence, Su), - XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))), + XiEqCoef_(XiEqModelCoeffs_.get("XiEqCoef")), SuMin_(0.01*Su.average()), - uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))), - subGridSchelkin_ - ( - readBool(XiEqModelCoeffs_.lookup("subGridSchelkin")) - ) + uPrimeCoef_(XiEqModelCoeffs_.get("uPrimeCoef")), + subGridSchelkin_(XiEqModelCoeffs_.get("subGridSchelkin")) {} @@ -96,9 +93,9 @@ bool Foam::XiEqModels::Gulder::read(const dictionary& XiEqProperties) { XiEqModel::read(XiEqProperties); - XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_; - XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_; - XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_; + XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_); + XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_); + XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C index c7b55925ca..47e03c65ec 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C @@ -49,15 +49,12 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq ) : XiEqModel(XiEqProperties, thermo, turbulence, Su), - XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))), - XiEqExp_(readScalar(XiEqModelCoeffs_.lookup("XiEqExp"))), - lCoef_(readScalar(XiEqModelCoeffs_.lookup("lCoef"))), + XiEqCoef_(XiEqModelCoeffs_.get("XiEqCoef")), + XiEqExp_(XiEqModelCoeffs_.get("XiEqExp")), + lCoef_(XiEqModelCoeffs_.get("lCoef")), SuMin_(0.01*Su.average()), - uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))), - subGridSchelkin_ - ( - readBool(XiEqModelCoeffs_.lookup("subGridSchelkin")) - ), + uPrimeCoef_(XiEqModelCoeffs_.get("uPrimeCoef")), + subGridSchelkin_(XiEqModelCoeffs_.get("subGridSchelkin")), MaModel ( Su.mesh().lookupObject("combustionProperties"), @@ -147,11 +144,11 @@ bool Foam::XiEqModels::SCOPEXiEq::read(const dictionary& XiEqProperties) { XiEqModel::read(XiEqProperties); - XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_; - XiEqModelCoeffs_.lookup("XiEqExp") >> XiEqExp_; - XiEqModelCoeffs_.lookup("lCoef") >> lCoef_; - XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_; - XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_; + XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_); + XiEqModelCoeffs_.readEntry("XiEqExp", XiEqExp_); + XiEqModelCoeffs_.readEntry("lCoef", lCoef_); + XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_); + XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C index 64ddded3f4..7c1caaa1d5 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C @@ -48,7 +48,7 @@ Foam::XiEqModel::XiEqModel ( XiEqProperties.subDict ( - word(XiEqProperties.lookup("XiEqModel")) + "Coeffs" + XiEqProperties.get("XiEqModel") + "Coeffs" ) ), thermo_(thermo), @@ -142,10 +142,10 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const const scalarField upLocal(uPrimeCoef*sqrt((U & CT & U)*cellWidth)); - const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0)); + const scalarField deltaUp(upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0)); // Re use tN - N.primitiveFieldRef() = upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0); + N.primitiveFieldRef() = upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0); return tN; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C index 251d429c8f..1c9e935c8f 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C @@ -35,7 +35,7 @@ Foam::autoPtr Foam::XiEqModel::New const volScalarField& Su ) { - const word modelType(propDict.lookup("XiEqModel")); + const word modelType(propDict.get("XiEqModel")); Info<< "Selecting flame-wrinkling model " << modelType << endl; diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/instabilityXiEq/instabilityXiEq.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/instabilityXiEq/instabilityXiEq.C index 9894fb166e..15ee61375c 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/instabilityXiEq/instabilityXiEq.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/instabilityXiEq/instabilityXiEq.C @@ -49,7 +49,7 @@ Foam::XiEqModels::instability::instability ) : XiEqModel(XiEqProperties, thermo, turbulence, Su), - XiEqIn(readScalar(XiEqModelCoeffs_.lookup("XiEqIn"))), + XiEqIn(XiEqModelCoeffs_.get("XiEqIn")), XiEqModel_(XiEqModel::New(XiEqModelCoeffs_, thermo, turbulence, Su)) {} @@ -73,7 +73,7 @@ bool Foam::XiEqModels::instability::read(const dictionary& XiEqProperties) { XiEqModel::read(XiEqProperties); - XiEqModelCoeffs_.lookup("XiEqIn") >> XiEqIn; + XiEqModelCoeffs_.readEntry("XiEqIn", XiEqIn); return XiEqModel_->read(XiEqModelCoeffs_); } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/KTS/KTS.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/KTS/KTS.C index aaddecc9d9..58183d1bb4 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/KTS/KTS.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/KTS/KTS.C @@ -49,7 +49,7 @@ Foam::XiGModels::KTS::KTS ) : XiGModel(XiGProperties, thermo, turbulence, Su), - GEtaCoef_(readScalar(XiGModelCoeffs_.lookup("GEtaCoef"))) + GEtaCoef_(XiGModelCoeffs_.get("GEtaCoef")) {} @@ -76,7 +76,7 @@ bool Foam::XiGModels::KTS::read(const dictionary& XiGProperties) { XiGModel::read(XiGProperties); - XiGModelCoeffs_.lookup("GEtaCoef") >> GEtaCoef_; + XiGModelCoeffs_.readEntry("GEtaCoef", GEtaCoef_); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C index 217242b24b..883843a857 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C @@ -48,7 +48,7 @@ Foam::XiGModel::XiGModel ( XiGProperties.subDict ( - word(XiGProperties.lookup("XiGModel")) + "Coeffs" + XiGProperties.get("XiGModel") + "Coeffs" ) ), thermo_(thermo), diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C index b46192ea38..8b3c5a4881 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C @@ -35,7 +35,7 @@ Foam::autoPtr Foam::XiGModel::New const volScalarField& Su ) { - const word modelType(propDict.lookup("XiGModel")); + const word modelType(propDict.get("XiGModel")); Info<< "Selecting flame-wrinkling model " << modelType << endl; diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/instabilityG/instabilityG.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/instabilityG/instabilityG.C index eb3aeffeaf..595f6887ef 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/instabilityG/instabilityG.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/instabilityG/instabilityG.C @@ -49,8 +49,8 @@ Foam::XiGModels::instabilityG::instabilityG ) : XiGModel(XiGProperties, thermo, turbulence, Su), - GIn_(XiGModelCoeffs_.lookup("GIn")), - lambdaIn_(XiGModelCoeffs_.lookup("lambdaIn")), + GIn_("GIn", dimless/dimTime, XiGModelCoeffs_), + lambdaIn_("lambdaIn", dimLength, XiGModelCoeffs_), XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su)) {} @@ -86,8 +86,8 @@ bool Foam::XiGModels::instabilityG::read(const dictionary& XiGProperties) { XiGModel::read(XiGProperties); - XiGModelCoeffs_.lookup("GIn") >> GIn_; - XiGModelCoeffs_.lookup("lambdaIn") >> lambdaIn_; + XiGModelCoeffs_.readEntry("GIn", GIn_); + XiGModelCoeffs_.readEntry("lambdaIn", lambdaIn_); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C index 9580728905..0337093ec1 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C @@ -51,7 +51,7 @@ Foam::XiModel::XiModel ( XiProperties.subDict ( - word(XiProperties.lookup("XiModel")) + "Coeffs" + XiProperties.get("XiModel") + "Coeffs" ) ), thermo_(thermo), diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C index c2dccb0180..4eaad2b82d 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C @@ -38,7 +38,7 @@ Foam::autoPtr Foam::XiModel::New const surfaceScalarField& phi ) { - const word modelType(propDict.lookup("XiModel")); + const word modelType(propDict.get("XiModel")); Info<< "Selecting flame-wrinkling model " << modelType << endl; diff --git a/applications/solvers/combustion/PDRFoam/XiModels/algebraic/algebraic.C b/applications/solvers/combustion/PDRFoam/XiModels/algebraic/algebraic.C index d744272d69..f5750ce936 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/algebraic/algebraic.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/algebraic/algebraic.C @@ -52,7 +52,7 @@ Foam::XiModels::algebraic::algebraic ) : XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi), - XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))), + XiShapeCoef(XiModelCoeffs_.get("XiShapeCoef")), XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)), XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su)) {} @@ -89,7 +89,7 @@ bool Foam::XiModels::algebraic::read(const dictionary& XiProperties) { XiModel::read(XiProperties); - XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef; + XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef); return true; } diff --git a/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.C b/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.C index a3eabb0721..e243b44d9f 100644 --- a/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.C +++ b/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.C @@ -57,7 +57,7 @@ Foam::XiModels::transport::transport ) : XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi), - XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))), + XiShapeCoef(XiModelCoeffs_.get("XiShapeCoef")), XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)), XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su)) {} @@ -136,7 +136,7 @@ bool Foam::XiModels::transport::read(const dictionary& XiProperties) { XiModel::read(XiProperties); - XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef; + XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef); return true; } diff --git a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C index a6987d2ea0..b56d31a228 100644 --- a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C +++ b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C @@ -53,8 +53,8 @@ Foam::laminarFlameSpeedModels::SCOPE::polynomial::polynomial ) : FixedList(polyDict.lookup("coefficients")), - ll(readScalar(polyDict.lookup("lowerLimit"))), - ul(readScalar(polyDict.lookup("upperLimit"))), + ll(polyDict.get("lowerLimit")), + ul(polyDict.get("upperLimit")), llv(polyPhi(ll, *this)), ulv(polyPhi(ul, *this)), lu(0) @@ -75,39 +75,30 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE ( IFstream ( - fileName - ( - dict.lookup("fuelFile") - ) + dict.get("fuelFile") )() ).optionalSubDict(typeName + "Coeffs") ), LFL_ ( - readScalar + coeffsDict_.getCompat ( - coeffsDict_.lookupCompat - ( - "lowerFlammabilityLimit", - {{"lowerFlamabilityLimit", 1712}} - ) + "lowerFlammabilityLimit", + {{"lowerFlamabilityLimit", 1712}} ) ), UFL_ ( - readScalar + coeffsDict_.getCompat ( - coeffsDict_.lookupCompat - ( - "upperFlammabilityLimit", - {{"upperFlamabilityLimit", 1712}} - ) + "upperFlammabilityLimit", + {{"upperFlamabilityLimit", 1712}} ) ), SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")), SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")), - Texp_(readScalar(coeffsDict_.lookup("Texp"))), - pexp_(readScalar(coeffsDict_.lookup("pexp"))), + Texp_(coeffsDict_.get("Texp")), + pexp_(coeffsDict_.get("pexp")), MaPolyL_(coeffsDict_.subDict("lowerMaPolynomial")), MaPolyU_(coeffsDict_.subDict("upperMaPolynomial")) { @@ -417,7 +408,7 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const ( dimensionedScalar ( - psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio") + "stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_ )*ft/(scalar(1) - ft) ); } @@ -458,7 +449,7 @@ Foam::laminarFlameSpeedModels::SCOPE::operator()() const psiuReactionThermo_.Tu(), dimensionedScalar ( - psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio") + "stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_ )*ft/(scalar(1) - ft) ); } diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C index b6fda29be3..1386fd5cb8 100644 --- a/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C +++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C @@ -67,9 +67,15 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for compressible premixed/partially-premixed combustion with" + " turbulence modelling." + ); + #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" #include "createControl.H" @@ -107,7 +113,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/combustion/XiFoam/XiEngineFoam/XiEngineFoam.C b/applications/solvers/combustion/XiFoam/XiEngineFoam/XiEngineFoam.C index 6ac9443f4c..cce8806b83 100644 --- a/applications/solvers/combustion/XiFoam/XiEngineFoam/XiEngineFoam.C +++ b/applications/solvers/combustion/XiFoam/XiEngineFoam/XiEngineFoam.C @@ -65,11 +65,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for compressible premixed/partially-premixed combustion with" + " turbulence modelling in internal combustion engines." + ); + #define CREATE_TIME createEngineTime.H #define CREATE_MESH createEngineMesh.H #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createEngineTime.H" #include "createEngineMesh.H" #include "createControl.H" @@ -95,7 +101,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl; diff --git a/applications/solvers/combustion/XiFoam/XiEngineFoam/startSummary.H b/applications/solvers/combustion/XiFoam/XiEngineFoam/startSummary.H index 2d0c6fd707..f8755e15cc 100644 --- a/applications/solvers/combustion/XiFoam/XiEngineFoam/startSummary.H +++ b/applications/solvers/combustion/XiFoam/XiEngineFoam/startSummary.H @@ -8,7 +8,7 @@ if (Pstream::master()) ( new OFstream ( - runTime.rootPath()/runTime.globalCaseName() + runTime.globalPath() /("logSummary." + runTime.timeName() + ".dat") ) ); diff --git a/applications/solvers/combustion/XiFoam/XiFoam.C b/applications/solvers/combustion/XiFoam/XiFoam.C index 34c42e7d12..83f97741af 100644 --- a/applications/solvers/combustion/XiFoam/XiFoam.C +++ b/applications/solvers/combustion/XiFoam/XiFoam.C @@ -65,10 +65,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for compressible premixed/partially-premixed combustion with" + " turbulence modelling." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -92,7 +98,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; #include "rhoEqn.H" diff --git a/applications/solvers/combustion/XiFoam/readCombustionProperties.H b/applications/solvers/combustion/XiFoam/readCombustionProperties.H index 58b0626fb4..46c1d3ef52 100644 --- a/applications/solvers/combustion/XiFoam/readCombustionProperties.H +++ b/applications/solvers/combustion/XiFoam/readCombustionProperties.H @@ -12,34 +12,34 @@ ) ); - word SuModel + const word SuModel ( - combustionProperties.lookup("SuModel") + combustionProperties.get("SuModel") ); dimensionedScalar sigmaExt ( - combustionProperties.lookup("sigmaExt") + "sigmaExt", dimless/dimTime, combustionProperties ); - word XiModel + const word XiModel ( - combustionProperties.lookup("XiModel") + combustionProperties.get("XiModel") ); dimensionedScalar XiCoef ( - combustionProperties.lookup("XiCoef") + "XiCoef", dimless, combustionProperties ); dimensionedScalar XiShapeCoef ( - combustionProperties.lookup("XiShapeCoef") + "XiShapeCoef", dimless, combustionProperties ); dimensionedScalar uPrimeCoef ( - combustionProperties.lookup("uPrimeCoef") + "uPrimeCoef", dimless, combustionProperties ); ignition ign(combustionProperties, runTime, mesh); diff --git a/applications/solvers/combustion/chemFoam/chemFoam.C b/applications/solvers/combustion/chemFoam/chemFoam.C index aa074eb381..9ba449b713 100644 --- a/applications/solvers/combustion/chemFoam/chemFoam.C +++ b/applications/solvers/combustion/chemFoam/chemFoam.C @@ -32,7 +32,6 @@ Description provide comparison against other chemistry solvers, that uses a single cell mesh, and fields created from the initial conditions. - \*---------------------------------------------------------------------------*/ #include "fvCFD.H" @@ -49,13 +48,19 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for chemistry problems, designed for use on single cell cases" + " to provide comparison against other chemistry solvers" + ); + argList::noParallel(); #define CREATE_MESH createSingleCellMesh.H #define NO_CONTROL #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createSingleCellMesh.H" #include "createFields.H" @@ -73,7 +78,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; #include "solveChemistry.H" diff --git a/applications/solvers/combustion/chemFoam/createFields.H b/applications/solvers/combustion/chemFoam/createFields.H index 34fcf68290..7cc28d4562 100644 --- a/applications/solvers/combustion/chemFoam/createFields.H +++ b/applications/solvers/combustion/chemFoam/createFields.H @@ -18,8 +18,8 @@ ) ); - scalar p0 = readScalar(initialConditions.lookup("p")); - scalar T0 = readScalar(initialConditions.lookup("T")); + scalar p0 = initialConditions.get("p"); + scalar T0 = initialConditions.get("T"); #include "createBaseFields.H" diff --git a/applications/solvers/combustion/chemFoam/readControls.H b/applications/solvers/combustion/chemFoam/readControls.H index 09937a19a6..cec0b9867f 100644 --- a/applications/solvers/combustion/chemFoam/readControls.H +++ b/applications/solvers/combustion/chemFoam/readControls.H @@ -1,3 +1,3 @@ -runTime.controlDict().read("adjustTimeStep", adjustTimeStep); +runTime.controlDict().readEntry("adjustTimeStep", adjustTimeStep); -runTime.controlDict().read("maxDeltaT", maxDeltaT); +runTime.controlDict().readEntry("maxDeltaT", maxDeltaT); diff --git a/applications/solvers/combustion/chemFoam/readInitialConditions.H b/applications/solvers/combustion/chemFoam/readInitialConditions.H index 8e340a7e16..e5f0599cee 100644 --- a/applications/solvers/combustion/chemFoam/readInitialConditions.H +++ b/applications/solvers/combustion/chemFoam/readInitialConditions.H @@ -1,13 +1,13 @@ - word constProp(initialConditions.lookup("constantProperty")); - if ((constProp != "pressure") && (constProp != "volume")) + word constProp(initialConditions.get("constantProperty")); + if (constProp != "pressure" && constProp != "volume") { FatalError << "in initialConditions, unknown constantProperty type " << constProp << nl << " Valid types are: pressure volume." << abort(FatalError); } - word fractionBasis(initialConditions.lookup("fractionBasis")); - if ((fractionBasis != "mass") && (fractionBasis != "mole")) + word fractionBasis(initialConditions.get("fractionBasis")); + if (fractionBasis != "mass" && fractionBasis != "mole") { FatalError << "in initialConditions, unknown fractionBasis type " << nl << "Valid types are: mass or mole." @@ -40,7 +40,7 @@ const word& name = Y[i].name(); if (fractions.found(name)) { - X0[i] = readScalar(fractions.lookup(name)); + X0[i] = fractions.get(name); } } @@ -64,7 +64,7 @@ const word& name = Y[i].name(); if (fractions.found(name)) { - Y0[i] = readScalar(fractions.lookup(name)); + Y0[i] = fractions.get(name); } } diff --git a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C index c1e4d16529..a69b22fbd3 100644 --- a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C +++ b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C @@ -45,11 +45,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for cold-flow in internal combustion engines." + ); + #define CREATE_TIME createEngineTime.H #define CREATE_MESH createEngineMesh.H #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createEngineTime.H" #include "createEngineMesh.H" #include "createControl.H" @@ -74,7 +79,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Engine time = " << runTime.theta() << runTime.unit() << endl; diff --git a/applications/solvers/combustion/coldEngineFoam/startSummary.H b/applications/solvers/combustion/coldEngineFoam/startSummary.H index b4b72be696..93c8d9493f 100644 --- a/applications/solvers/combustion/coldEngineFoam/startSummary.H +++ b/applications/solvers/combustion/coldEngineFoam/startSummary.H @@ -8,7 +8,7 @@ if (Pstream::master()) ( new OFstream ( - runTime.rootPath()/runTime.globalCaseName() + runTime.globalPath() /("logSummary." + runTime.timeName() + ".dat") ) ); diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H index ded747d608..7d8fba8619 100644 --- a/applications/solvers/combustion/fireFoam/createFields.H +++ b/applications/solvers/combustion/fireFoam/createFields.H @@ -8,7 +8,7 @@ SLGThermo slgThermo(mesh, thermo); basicSpecieMixture& composition = thermo.composition(); PtrList& Y = composition.Y(); -const word inertSpecie(thermo.lookup("inertSpecie")); +const word inertSpecie(thermo.get("inertSpecie")); if (!composition.species().found(inertSpecie)) { FatalIOErrorIn(args.executable().c_str(), thermo) diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C index 199d4103a3..b5b102e41d 100644 --- a/applications/solvers/combustion/fireFoam/fireFoam.C +++ b/applications/solvers/combustion/fireFoam/fireFoam.C @@ -50,10 +50,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for fires and turbulent diffusion flames" + " with reacting particle clouds, surface film and pyrolysis modelling." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -79,7 +85,7 @@ int main(int argc, char *argv[]) #include "setMultiRegionDeltaT.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H index 6efaf1eb8d..4c9f34015d 100644 --- a/applications/solvers/combustion/reactingFoam/createFields.H +++ b/applications/solvers/combustion/reactingFoam/createFields.H @@ -8,7 +8,7 @@ thermo.validate(args.executable(), "h", "e"); basicSpecieMixture& composition = thermo.composition(); PtrList& Y = composition.Y(); -const word inertSpecie(thermo.lookup("inertSpecie")); +const word inertSpecie(thermo.get("inertSpecie")); if (!composition.species().found(inertSpecie)) { FatalIOErrorIn(args.executable().c_str(), thermo) diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C index 2a15a666e6..972b43bf0d 100644 --- a/applications/solvers/combustion/reactingFoam/reactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C @@ -47,10 +47,15 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for combustion with chemical reactions" + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -85,7 +90,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" } - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H index 4bdfc46d4f..94b40e98dd 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H +++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H @@ -8,7 +8,7 @@ thermo.validate(args.executable(), "h", "e"); basicSpecieMixture& composition = thermo.composition(); PtrList& Y = composition.Y(); -const word inertSpecie(thermo.lookup("inertSpecie")); +const word inertSpecie(thermo.get("inertSpecie")); if (!composition.species().found(inertSpecie)) { FatalIOErrorIn(args.executable().c_str(), thermo) diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C index f46cbc1b57..44954d980b 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C +++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C @@ -28,7 +28,7 @@ Group grpCombustionSolvers Description - Solver for combustion with chemical reactions using a density based + Solver for combustion with chemical reactions using a density-based thermodynamics package with enhanced buoyancy treatment. \*---------------------------------------------------------------------------*/ @@ -47,10 +47,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for combustion with chemical reactions using density-based" + " thermodynamics package," + " with enhanced buoyancy treatment." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -85,7 +92,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" } - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H index 95524e04ef..edd528174b 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H +++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H @@ -8,7 +8,7 @@ thermo.validate(args.executable(), "h", "e"); basicSpecieMixture& composition = thermo.composition(); PtrList& Y = composition.Y(); -const word inertSpecie(thermo.lookup("inertSpecie")); +const word inertSpecie(thermo.get("inertSpecie")); if (!composition.species().found(inertSpecie)) { FatalIOErrorIn(args.executable().c_str(), thermo) diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C index 37adbcc4c0..bdf0bc912f 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C @@ -28,7 +28,7 @@ Group grpCombustionSolvers Description - Solver for combustion with chemical reactions using density based + Solver for combustion with chemical reactions using density-based thermodynamics package. \*---------------------------------------------------------------------------*/ @@ -48,10 +48,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for combustion with chemical reactions using density-based" + " thermodynamics package." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -87,7 +93,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" } - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/combustion/reactingFoam/setRDeltaT.H b/applications/solvers/combustion/reactingFoam/setRDeltaT.H index 129e749fe8..3b8a3ae96f 100644 --- a/applications/solvers/combustion/reactingFoam/setRDeltaT.H +++ b/applications/solvers/combustion/reactingFoam/setRDeltaT.H @@ -29,7 +29,7 @@ License const dictionary& pimpleDict = pimple.dict(); // Maximum flow Courant number - scalar maxCo(readScalar(pimpleDict.lookup("maxCo"))); + scalar maxCo(pimpleDict.get("maxCo")); // Maximum time scale scalar maxDeltaT(pimpleDict.lookupOrDefault("maxDeltaT", GREAT)); @@ -118,7 +118,7 @@ License if (Yref.found(Yi.name())) { foundY = true; - scalar Yrefi = readScalar(Yref.lookup(Yi.name())); + const scalar Yrefi = Yref.get(Yi.name()); rDeltaTY.field() = max ( @@ -170,7 +170,7 @@ License rDeltaT = max ( rDeltaT, - (scalar(1.0) - rDeltaTDampingCoeff)*rDeltaT0 + (scalar(1) - rDeltaTDampingCoeff)*rDeltaT0 ); } diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C index 0590e8d098..ef0cf6b6dd 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C @@ -84,7 +84,7 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField rhoName_(dict.lookupOrDefault("rho", "rho")), psiName_(dict.lookupOrDefault("psi", "thermo:psi")), muName_(dict.lookupOrDefault("mu", "thermo:mu")), - accommodationCoeff_(readScalar(dict.lookup("accommodationCoeff"))), + accommodationCoeff_(dict.get("accommodationCoeff")), Twall_("Twall", dict, p.size()), gamma_(dict.lookupOrDefault("gamma", 1.4)) { @@ -94,10 +94,8 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField || mag(accommodationCoeff_) > 2.0 ) { - FatalIOErrorInFunction - ( - dict - ) << "unphysical accommodationCoeff specified" + FatalIOErrorInFunction(dict) + << "unphysical accommodationCoeff specified" << "(0 < accommodationCoeff <= 1)" << endl << exit(FatalIOError); } diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C index c79f8d5062..612f76a3ff 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C @@ -85,7 +85,7 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField psiName_(dict.lookupOrDefault("psi", "thermo:psi")), muName_(dict.lookupOrDefault("mu", "thermo:mu")), tauMCName_(dict.lookupOrDefault("tauMC", "tauMC")), - accommodationCoeff_(readScalar(dict.lookup("accommodationCoeff"))), + accommodationCoeff_(dict.get("accommodationCoeff")), Uwall_("Uwall", dict, p.size()), thermalCreep_(dict.lookupOrDefault("thermalCreep", true)), curvature_(dict.lookupOrDefault("curvature", true)) @@ -96,10 +96,8 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField || mag(accommodationCoeff_) > 2.0 ) { - FatalIOErrorInFunction - ( - dict - ) << "unphysical accommodationCoeff_ specified" + FatalIOErrorInFunction(dict) + << "unphysical accommodationCoeff_ specified" << "(0 < accommodationCoeff_ <= 1)" << endl << exit(FatalIOError); } @@ -120,7 +118,7 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField else { this->refValue() = *this; - this->valueFraction() = scalar(1.0); + this->valueFraction() = scalar(1); } } } diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C index 35469637d1..755bb13449 100644 --- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C +++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C @@ -28,8 +28,9 @@ Group grpCompressibleSolvers grpMovingMeshSolvers Description - Density-based compressible flow solver based on central-upwind schemes of - Kurganov and Tadmor with support for mesh-motion and topology changes. + Density-based compressible flow solver based on central-upwind + schemes of Kurganov and Tadmor + with support for mesh-motion and topology changes. \*---------------------------------------------------------------------------*/ @@ -47,10 +48,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Density-based compressible flow solver based on central-upwind" + " schemes of Kurganov and Tadmor.\n" + "With support for mesh-motion and topology changes." + ); + #define NO_CONTROL #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" #include "createFields.H" @@ -76,7 +84,7 @@ int main(int argc, char *argv[]) #include "readTimeControls.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C index 17dc6ab8e3..a4abfe940f 100644 --- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C +++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C @@ -28,8 +28,8 @@ Group grpCompressibleSolvers Description - Density-based compressible flow solver based on central-upwind schemes of - Kurganov and Tadmor. + Density-based compressible flow solver based on central-upwind + schemes of Kurganov and Tadmor. \*---------------------------------------------------------------------------*/ @@ -45,11 +45,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Density-based compressible flow solver based on central-upwind" + " schemes of Kurganov and Tadmor." + ); + #define NO_CONTROL #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFields.H" @@ -160,7 +166,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" } - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H index a3bd66654d..e15261990a 100644 --- a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H +++ b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H @@ -25,8 +25,8 @@ if (!local) { - const scalar T0 = readScalar(eosDict.lookup("T0")); - const scalar p0 = readScalar(eosDict.lookup("p0")); + const scalar T0 = eosDict.get("T0"); + const scalar p0 = eosDict.get("p0"); he = thermo.he(p, pow(p/p0, (gamma - scalar(1))/gamma)*T0); } diff --git a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/rhoPimpleAdiabaticFoam.C b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/rhoPimpleAdiabaticFoam.C index 4fcdfdbc51..eb72ee9717 100644 --- a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/rhoPimpleAdiabaticFoam.C +++ b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/rhoPimpleAdiabaticFoam.C @@ -58,10 +58,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for laminar or turbulent flow" + " of weakly compressible fluids for low Mach number" + " aeroacoustic applications." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -81,7 +88,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/test/foamVersion/Test-foamVersionString.C b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/compressibleContinuityErrs.H similarity index 64% rename from applications/test/foamVersion/Test-foamVersionString.C rename to applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/compressibleContinuityErrs.H index d9050004c6..f56e211be5 100644 --- a/applications/test/foamVersion/Test-foamVersionString.C +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/compressibleContinuityErrs.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -21,27 +21,33 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Application - foamVersionString.C +Global + continuityErrs Description - Print the OpenFOAM version strings. - - Simultaneously the smallest possible program to use a minimal bit of - the OpenFOAM library + Calculates and prints the continuity errors. \*---------------------------------------------------------------------------*/ -#include -#include "foamVersion.H" - -int main() { - std::cout - << "version " << Foam::FOAMversion << "\n" - << "build " << Foam::FOAMbuild << "\n"; + dimensionedScalar totalMass = fvc::domainIntegrate(cellMask*rho); - return 0; + scalar sumLocalContErr = + ( + fvc::domainIntegrate(mag(cellMask*(rho - thermo.rho())))/totalMass + ).value(); + + scalar globalContErr = + ( + fvc::domainIntegrate(cellMask*(rho - thermo.rho()))/totalMass + ).value(); + + cumulativeContErr += globalContErr; + + Info<< "time step continuity errors : sum local = " << sumLocalContErr + << ", global = " << globalContErr + << ", cumulative = " << cumulativeContErr + << endl; } // ************************************************************************* // diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/correctPhi.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/correctPhi.H index 37072312ff..584be00b5e 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/correctPhi.H +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/correctPhi.H @@ -1,11 +1,84 @@ -CorrectPhi -( - U, - phi, - p, - rho, - psi, - dimensionedScalar("rAUf", dimTime, 1), - divrhoU, - pimple -); +if (mesh.changing()) +{ + volVectorField::Boundary& bfld = U.boundaryFieldRef(); + forAll(bfld, patchi) + { + if (bfld[patchi].fixesValue()) + { + bfld[patchi].initEvaluate(); + } + } + + surfaceScalarField::Boundary& phiBfld = phi.boundaryFieldRef(); + forAll(bfld, patchi) + { + if (bfld[patchi].fixesValue()) + { + bfld[patchi].evaluate(); + + phiBfld[patchi] = + rho.boundaryField()[patchi] + * ( + bfld[patchi] + & mesh.Sf().boundaryField()[patchi] + ); + } + } +} + // Initialize BCs list for pcorr to zero-gradient + wordList pcorrTypes + ( + p.boundaryField().size(), + zeroGradientFvPatchScalarField::typeName + ); + + // Set BCs of pcorr to fixed-value for patches at which p is fixed + forAll(p.boundaryField(), patchi) + { + if (p.boundaryField()[patchi].fixesValue()) + { + pcorrTypes[patchi] = fixedValueFvPatchScalarField::typeName; + } + } + + volScalarField pcorr + ( + IOobject + ( + "pcorr", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar(p.dimensions(), Zero), + pcorrTypes + ); + + mesh.setFluxRequired(pcorr.name()); + +{ + dimensionedScalar rAUf("rAUf", dimTime, 1.0); + + while (pimple.correctNonOrthogonal()) + { + fvScalarMatrix pcorrEqn + ( + fvm::ddt(psi, pcorr) + + fvc::div(phi) + - fvm::laplacian(rAUf, pcorr) + == + divrhoU() + ); + + pcorrEqn.solve(mesh.solver(pcorr.select(pimple.finalInnerIter()))); + //Bypass virtual layer + //mesh.fvMesh::solve(pcorrEqn, d); + + if (pimple.finalNonOrthogonalIter()) + { + phi += pcorrEqn.flux(); + } + } +} diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H index 4c888d9e3a..724bc2ca9a 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H @@ -1,11 +1,4 @@ -#include "createTimeControls.H" - -bool correctPhi +bool ddtCorr ( - pimple.dict().lookupOrDefault("correctPhi", true) -); - -bool checkMeshCourantNo -( - pimple.dict().lookupOrDefault("checkMeshCourantNo", false) + pimple.dict().lookupOrDefault("ddtCorr", true) ); diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createFields.H index adb9fa1b61..8b99b23439 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createFields.H +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createFields.H @@ -1,10 +1,10 @@ Info<< "Reading thermophysical properties\n" << endl; -autoPtr pThermo +autoPtr pThermo ( - psiThermo::New(mesh) + fluidThermo::New(mesh) ); -psiThermo& thermo = pThermo(); +fluidThermo& thermo = pThermo(); thermo.validate(args.executable(), "h", "e"); volScalarField& p = thermo.p(); @@ -39,6 +39,8 @@ volVectorField U #include "compressibleCreatePhi.H" +pressureControl pressureControl(p, rho, pimple.dict(), false); + dimensionedScalar rhoMax ( dimensionedScalar::lookupOrDefault @@ -63,42 +65,25 @@ dimensionedScalar rhoMin mesh.setFluxRequired(p.name()); -Info<< "Creating field dpdt\n" << endl; -volScalarField dpdt -( - IOobject - ( - "dpdt", - runTime.timeName(), - mesh - ), - mesh, - dimensionedScalar(p.dimensions()/dimTime, Zero) -); - -Info<< "Creating field kinetic energy K\n" << endl; -volScalarField K("K", 0.5*magSqr(U)); +#include "createDpdt.H" +#include "createK.H" //- Overset specific // Add solver-specific interpolations { - dictionary oversetDict; - oversetDict.add("U", true); - oversetDict.add("p", true); - oversetDict.add("HbyA", true); - oversetDict.add("grad(p)", true); + wordHashSet& nonInt = + const_cast(Stencil::New(mesh).nonInterpolatedFields()); - const_cast - ( - mesh.schemesDict() - ).add - ( - "oversetInterpolationRequired", - oversetDict, - true - ); + nonInt.insert("HbyA"); + nonInt.insert("grad(p)"); + nonInt.insert("surfaceIntegrate(phi)"); + nonInt.insert("surfaceIntegrate(phiHbyA)"); + nonInt.insert("cellMask"); + nonInt.insert("cellDisplacement"); + nonInt.insert("interpolatedCells"); + nonInt.insert("cellInterpolationWeight"); } // Mask field for zeroing out contributions on hole cells diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/overRhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/overRhoPimpleDyMFoam.C index 0bbe9ca7de..20cdd542c9 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/overRhoPimpleDyMFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/overRhoPimpleDyMFoam.C @@ -38,10 +38,11 @@ Description #include "fvCFD.H" #include "dynamicFvMesh.H" -#include "psiThermo.H" +#include "fluidThermo.H" #include "turbulentFluidThermoModel.H" #include "bound.H" #include "pimpleControl.H" +#include "pressureControl.H" #include "CorrectPhi.H" #include "fvOptions.H" #include "localEulerDdtScheme.H" @@ -53,16 +54,22 @@ Description int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Transient solver for compressible turbulent flow.\n" + "With optional mesh motion and mesh topology changes." + ); + + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" - #include "createControl.H" + #include "createDyMControls.H" #include "createRDeltaT.H" #include "initContinuityErrs.H" #include "createFields.H" #include "createMRF.H" #include "createFvOptions.H" - #include "createRhoUf.H" + #include "createRhoUfIfPresent.H" #include "createControls.H" turbulence->validate(); @@ -80,66 +87,107 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readControls.H" + #include "readDyMControls.H" + + // Store divrhoU from the previous mesh so that it can be mapped + // and used in correctPhi to ensure the corrected phi has the + // same divergence + autoPtr divrhoU; + if (correctPhi) { - // Store divrhoU from the previous mesh so that it can be mapped - // and used in correctPhi to ensure the corrected phi has the - // same divergence - volScalarField divrhoU + divrhoU.reset ( - "divrhoU", - fvc::div(fvc::absolute(phi, rho, U)) + new volScalarField + ( + "divrhoU", + fvc::div(fvc::absolute(phi, rho, U)) + ) ); - - if (LTS) - { - #include "setRDeltaT.H" - } - else - { - #include "compressibleCourantNo.H" - #include "setDeltaT.H" - } - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - // Store momentum to set rhoUf for introduced faces. - volVectorField rhoU("rhoU", rho*U); - - // Do any mesh changes - mesh.update(); - - if (mesh.changing()) - { - #include "setCellMask.H" - } - - if (mesh.changing() && correctPhi) - { - // Calculate absolute flux from the mapped surface velocity - phi = mesh.Sf() & rhoUf; - - #include "correctPhi.H" - - // Make the fluxes relative to the mesh-motion - fvc::makeRelative(phi, rho, U); - } } - if (mesh.changing() && checkMeshCourantNo) + if (LTS) { - #include "meshCourantNo.H" + #include "setRDeltaT.H" + } + else + { + #include "compressibleCourantNo.H" + #include "setDeltaT.H" } - #include "rhoEqn.H" - Info<< "rhoEqn max/min : " << max(rho).value() - << " " << min(rho).value() << endl; + ++runTime; + + Info<< "Time = " << runTime.timeName() << nl << endl; // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { + if (pimple.firstIter() || moveMeshOuterCorrectors) + { + + // Do any mesh changes + mesh.update(); + + if (mesh.changing()) + { + MRF.update(); + + #include "setCellMask.H" + + const surfaceScalarField faceMaskOld + ( + localMin(mesh).interpolate(cellMask.oldTime()) + ); + + // Zero Uf on old faceMask (H-I) + rhoUf() *= faceMaskOld; + + surfaceVectorField rhoUfint(fvc::interpolate(rho*U)); + + // Update Uf and phi on new C-I faces + rhoUf() += (1-faceMaskOld)*rhoUfint; + + // Update Uf boundary + forAll(rhoUf().boundaryField(), patchI) + { + rhoUf().boundaryFieldRef()[patchI] = + rhoUfint.boundaryField()[patchI]; + } + + // Calculate absolute flux from the mapped surface velocity + phi = mesh.Sf() & rhoUf(); + + if (correctPhi) + { + #include "correctPhi.H" + } + + // Zero phi on current H-I + const surfaceScalarField faceMask + ( + localMin(mesh).interpolate(cellMask) + ); + + phi *= faceMask; + U *= cellMask; + + // Make the fluxes relative to the mesh-motion + fvc::makeRelative(phi, rho, U); + + } + + if (checkMeshCourantNo) + { + #include "meshCourantNo.H" + } + } + + if (pimple.firstIter() && !pimple.SIMPLErho()) + { + #include "rhoEqn.H" + } + #include "UEqn.H" #include "EEqn.H" @@ -155,6 +203,8 @@ int main(int argc, char *argv[]) } } + rho = thermo.rho(); + runTime.write(); runTime.printExecutionTime(Info); diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/pEqn.H index ec31872e6d..9c5414fb5c 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/pEqn.H @@ -1,80 +1,93 @@ -rho = thermo.rho(); -rho = max(rho, rhoMin); -rho = min(rho, rhoMax); -rho.relax(); +if (!pimple.SIMPLErho()) +{ + rho = thermo.rho(); +} +// Thermodynamic density needs to be updated by psi*d(p) after the +// pressure solution +const volScalarField psip0(psi*p); -surfaceScalarField faceMask(localMin(mesh).interpolate(cellMask)); +volScalarField rAU("rAU", 1.0/UEqn.A()); +mesh.interpolate(rAU); -volScalarField rAU(1.0/UEqn.A()); -surfaceScalarField rhorAUf("rhorAUf", faceMask*fvc::interpolate(rho*rAU)); +surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU)); volVectorField HbyA("HbyA", U); -HbyA = constrainHbyA(cellMask*rAU*UEqn.H(), U, p); + +HbyA = constrainHbyA(rAU*UEqn.H(), U, p); if (pimple.nCorrPISO() <= 1) { tUEqn.clear(); } +surfaceScalarField phiHbyA +( + "phiHbyA", + fvc::interpolate(rho)*fvc::flux(HbyA) +); + +if (ddtCorr) +{ + surfaceScalarField faceMaskOld + ( + localMin(mesh).interpolate(cellMask.oldTime()) + ); + + phiHbyA += + faceMaskOld*MRF.zeroFilter(rhorAUf*fvc::ddtCorr(rho, U, phi, rhoUf)); +} + +fvc::makeRelative(phiHbyA, rho, U); +MRF.makeRelative(fvc::interpolate(rho), phiHbyA); + +// Update the pressure BCs to ensure flux consistency +constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF); + if (pimple.transonic()) { surfaceScalarField phid ( "phid", - fvc::interpolate(psi) - *( - fvc::flux(HbyA) - + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho) - ) + (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA ); - fvc::makeRelative(phid, psi, U); - MRF.makeRelative(fvc::interpolate(psi), phid); + phiHbyA -= fvc::interpolate(psi*p)*phiHbyA/fvc::interpolate(rho); + + fvScalarMatrix pDDtEqn + ( + fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + + fvc::div(phiHbyA) + fvm::div(phid, p) + == + fvOptions(psi, p, rho.name()) + ); while (pimple.correctNonOrthogonal()) { - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - + fvm::div(phid, p) - - fvm::laplacian(rhorAUf, p) - == - fvOptions(psi, p, rho.name()) - ); + fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p)); + + // Relax the pressure equation to ensure diagonal-dominance + pEqn.relax(); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); if (pimple.finalNonOrthogonalIter()) { - phi == pEqn.flux(); + phi = phiHbyA + pEqn.flux(); } } } else { - surfaceScalarField phiHbyA + fvScalarMatrix pDDtEqn ( - "phiHbyA", - fvc::flux(rho*HbyA) - + rhorAUf*fvc::ddtCorr(rho, U, rhoUf) + fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + + fvc::div(phiHbyA) + == + fvOptions(psi, p, rho.name()) ); - fvc::makeRelative(phiHbyA, rho, U); - MRF.makeRelative(fvc::interpolate(rho), phiHbyA); - - // Update the pressure BCs to ensure flux consistency - constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF); - while (pimple.correctNonOrthogonal()) { - // Pressure corrector - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - + fvc::div(phiHbyA) - - fvm::laplacian(rhorAUf, p) - == - fvOptions(psi, p, rho.name()) - ); + fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p)); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); @@ -91,25 +104,24 @@ else // Explicitly relax pressure for momentum corrector p.relax(); -// Recalculate density from the relaxed pressure -rho = thermo.rho(); -rho = max(rho, rhoMin); -rho = min(rho, rhoMax); -rho.relax(); -Info<< "rho max/min : " << max(rho).value() - << " " << min(rho).value() << endl; - volVectorField gradP(fvc::grad(p)); //mesh.interpolate(gradP); -U = HbyA - rAU*cellMask*gradP; +U = cellMask*(HbyA - rAU*gradP); U.correctBoundaryConditions(); fvOptions.correct(U); K = 0.5*magSqr(U); +if (pressureControl.limit(p)) { - rhoUf = fvc::interpolate(rho*U); - surfaceVectorField n(mesh.Sf()/mesh.magSf()); - rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf)); + p.correctBoundaryConditions(); +} + +thermo.correctRho(psi*p - psip0, rhoMin, rhoMax) ; +rho = thermo.rho(); + +{ + // Correct rhoUf if the mesh is moving + fvc::correctRhoUf(rhoUf, rho, U, phi); } if (thermo.dpdt()) @@ -121,3 +133,9 @@ if (thermo.dpdt()) dpdt -= fvc::div(fvc::meshPhi(rho, U), p); } } + +surfaceScalarField faceMask +( + localMin(mesh).interpolate(cellMask) +); +phi *= faceMask; diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H index 08ab3a6af7..8f43318cab 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H +++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H @@ -1,6 +1,9 @@ #include "readTimeControls.H" -correctPhi = pimple.dict().lookupOrDefault("correctPhi", true); +correctPhi = pimple.dict().lookupOrDefault("correctPhi", false); checkMeshCourantNo = pimple.dict().lookupOrDefault("checkMeshCourantNo", false); + + +ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 4be24dda47..1b29ef79cb 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -52,10 +52,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for compressible turbulent flow.\n" + "With optional mesh motion and mesh topology changes." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" #include "createDyMControls.H" @@ -106,7 +112,7 @@ int main(int argc, char *argv[]) #include "setDeltaT.H" } - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/overRhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/overRhoSimpleFoam.C index d72329b0f9..0b8a6212d7 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/overRhoSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/overRhoSimpleFoam.C @@ -28,7 +28,7 @@ Group grpCompressibleSolvers Description - Overset steady-state solver for turbulent flow of compressible fluids. + Overset steady-state solver for compressible turbulent flow. \*---------------------------------------------------------------------------*/ @@ -47,10 +47,15 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Overset steady-state solver for compressible turbulent flow" + ); + #define CREATE_MESH createUpdatedDynamicFvMesh.H #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createUpdatedDynamicFvMesh.H" #include "createControl.H" diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C index 0283b3823a..b22a4e85a3 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C @@ -28,8 +28,8 @@ Group grpCompressibleSolvers Description - Steady-state solver for turbulent flow of compressible fluids, with - implicit or explicit porosity treatment and optional sources. + Steady-state solver for compressible turbulent flow, + with implicit or explicit porosity treatment and optional sources. \*---------------------------------------------------------------------------*/ @@ -45,10 +45,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Steady-state solver for compressible turbulent flow," + "with implicit or explicit porosity treatment and optional sources." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C index ae8252bbf5..5289275a25 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C @@ -28,7 +28,7 @@ Group grpCompressibleSolvers Description - Steady-state solver for turbulent flow of compressible fluids. + Steady-state solver for compressible turbulent flow. \*---------------------------------------------------------------------------*/ @@ -43,10 +43,15 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Steady-state solver for compressible turbulent flow." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C index 013dd4c3bb..4ecab1373c 100644 --- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C @@ -45,9 +45,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for trans-sonic/supersonic, turbulent flow" + " of a compressible gas.\n" + "With optional mesh motion and mesh topology changes." + ); + #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createDynamicFvMesh.H" #include "createDyMControls.H" @@ -81,7 +88,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C index 1ffbb6738f..0192aaf4ca 100644 --- a/applications/solvers/compressible/sonicFoam/sonicFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C @@ -43,10 +43,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for trans-sonic/supersonic, turbulent flow" + " of a compressible gas." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C index afe963d8cf..ad2554a110 100644 --- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C @@ -40,10 +40,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for trans-sonic/supersonic, laminar flow" + " of a compressible liquid." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C b/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C index 38eb94fc4d..57f4767a0a 100644 --- a/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C +++ b/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C @@ -28,8 +28,8 @@ Group grpDiscreteMethodsSolvers Description - Direct simulation Monte Carlo (DSMC) solver for, transient, multi-species - flows. + Direct simulation Monte Carlo (DSMC) solver + for transient, multi-species flows. \*---------------------------------------------------------------------------*/ @@ -40,11 +40,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Direct simulation Monte Carlo (DSMC) solver" + " for transient, multi-species flows." + ); + #define NO_CONTROL #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFields.H" diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C index 3bb0a881c3..ffc31a8d58 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C @@ -37,8 +37,13 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Equilibrate and/or precondition molecular dynamics systems." + ); + #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H index 3f43981907..8c9a222f16 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H @@ -12,7 +12,7 @@ IOdictionary mdEquilibrationDict ) ); -scalar targetTemperature = readScalar +scalar targetTemperature ( - mdEquilibrationDict.lookup("targetTemperature") + mdEquilibrationDict.get("targetTemperature") ); diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C index a9bbd6d32f..3889452aa5 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C +++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C @@ -39,10 +39,15 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Molecular dynamics solver for fluid dynamics." + ); + #define NO_CONTROL #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFields.H" diff --git a/applications/solvers/electromagnetics/electrostaticFoam/createFields.H b/applications/solvers/electromagnetics/electrostaticFoam/createFields.H index 04c86c4edb..e9c51b59a5 100644 --- a/applications/solvers/electromagnetics/electrostaticFoam/createFields.H +++ b/applications/solvers/electromagnetics/electrostaticFoam/createFields.H @@ -14,12 +14,16 @@ dimensionedScalar epsilon0 ( - physicalProperties.lookup("epsilon0") + "epsilon0", + dimensionSet(-1, -3, 4, 0, 0, 2, 0), + physicalProperties ); dimensionedScalar k ( - physicalProperties.lookup("k") + "k", + dimensionSet(-1, 0, 2, 0, 0, 1, 0), + physicalProperties ); diff --git a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C index 075a450441..8bad2f51a7 100644 --- a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C +++ b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C @@ -38,9 +38,13 @@ Description int main(int argc, char *argv[]) { - #include "addCheckCaseOptions.H" - #include "setRootCase.H" + argList::addNote + ( + "Solver for electrostatics." + ); + #include "addCheckCaseOptions.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFields.H" diff --git a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C index 33af0292ae..44ca32efc0 100644 --- a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C +++ b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C @@ -47,26 +47,31 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for the magnetic field generated by permanent magnets." + ); + argList::addBoolOption ( "noH", - "do not write the magnetic field intensity field" + "Do not write the magnetic field intensity field" ); argList::addBoolOption ( "noB", - "do not write the magnetic flux density field" + "Do not write the magnetic flux density field" ); argList::addBoolOption ( "HdotGradH", - "write the paramagnetic particle force field" + "Write the paramagnetic particle force field" ); #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" @@ -78,7 +83,7 @@ int main(int argc, char *argv[]) Info<< "Calculating the magnetic field potential" << endl; - runTime++; + ++runTime; while (simple.correctNonOrthogonal()) { diff --git a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C index 1f9d4e1b8e..5670f981f8 100644 --- a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C +++ b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C @@ -58,10 +58,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solver for magnetohydrodynamics (MHD):" + " incompressible, laminar flow of a conducting fluid" + " under the influence of a magnetic field." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/financial/financialFoam/createFields.H b/applications/solvers/financial/financialFoam/createFields.H index a64337e794..14bddd8adb 100644 --- a/applications/solvers/financial/financialFoam/createFields.H +++ b/applications/solvers/financial/financialFoam/createFields.H @@ -16,21 +16,21 @@ dimensionedScalar strike ( "strike", dimLength, - financialProperties.lookup("strike") + financialProperties ); dimensionedScalar r ( "r", dimless/dimTime, - financialProperties.lookup("r") + financialProperties ); dimensionedScalar sigma ( "sigma", dimensionSet(0, 0, -0.5, 0, 0), - financialProperties.lookup("sigma") + financialProperties ); dimensionedScalar sigmaSqr = sqr(sigma); diff --git a/applications/solvers/financial/financialFoam/financialFoam.C b/applications/solvers/financial/financialFoam/financialFoam.C index c8e8e7b5d0..e37ce81a43 100644 --- a/applications/solvers/financial/financialFoam/financialFoam.C +++ b/applications/solvers/financial/financialFoam/financialFoam.C @@ -40,11 +40,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Solves the Black-Scholes equation to price commodities." + ); + #define NO_CONTROL #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFields.H" diff --git a/applications/solvers/finiteArea/liquidFilmFoam/Make/files b/applications/solvers/finiteArea/liquidFilmFoam/Make/files old mode 100755 new mode 100644 diff --git a/applications/solvers/finiteArea/liquidFilmFoam/Make/options b/applications/solvers/finiteArea/liquidFilmFoam/Make/options old mode 100755 new mode 100644 diff --git a/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C b/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C index 31d049d2cb..79f4e3c617 100644 --- a/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C +++ b/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C @@ -47,7 +47,13 @@ Author int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Transient solver for incompressible, laminar flow" + " of Newtonian fluids in liquid film formulation." + ); + + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFaMesh.H" @@ -67,7 +73,7 @@ int main(int argc, char *argv[]) #include "capillaryCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; @@ -138,7 +144,7 @@ int main(int argc, char *argv[]) Us.correctBoundaryConditions(); } - if (runTime.outputTime()) + if (runTime.writeTime()) { vsm.mapToVolume(h, H.boundaryFieldRef()); vsm.mapToVolume(Us, U.boundaryFieldRef()); diff --git a/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H b/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H index 2f2c99ffda..caa0fd3441 100644 --- a/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H +++ b/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H @@ -10,32 +10,12 @@ IOdictionary transportProperties ) ); -dimensionedScalar mug -( - transportProperties.lookup("mug") -); +dimensionedScalar mug("mug", dimViscosity, transportProperties); +dimensionedScalar mul("mul", dimViscosity, transportProperties); -dimensionedScalar mul -( - transportProperties.lookup("mul") -); +dimensionedScalar rhog("rhog", dimDensity, transportProperties); +dimensionedScalar rhol("rhol", dimDensity, transportProperties); -dimensionedScalar sigma -( - transportProperties.lookup("sigma") -); +dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties); -dimensionedScalar rhol -( - transportProperties.lookup("rhol") -); - -dimensionedScalar rhog -( - transportProperties.lookup("rhog") -); - -dimensionedScalar h0 -( - transportProperties.lookup("h0") -); +dimensionedScalar h0("h0", dimLength, transportProperties); diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files index d10d3fe682..6aabdcf12a 100644 --- a/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files @@ -1,3 +1,3 @@ -surfactantFoam.C +sphereSurfactantFoam.C EXE = $(FOAM_APPBIN)/sphereSurfactantFoam diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H index 49e783e199..76ad60e90c 100644 --- a/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H @@ -12,25 +12,13 @@ areaScalarField Cs aMesh ); -dimensioned Cs0 -( - "Cs0", - dimensionSet(1, -2, 0, 0, 0, 0, 0), - 1.0 -); +dimensionedScalar Cs0("Cs0", dimMass/dimArea, 1.0); const areaVectorField& R = aMesh.areaCentres(); Cs = Cs0*(1.0 + R.component(vector::X)/mag(R)); - -dimensioned Ds -( - "Ds", - dimensionSet(0, 2, -1, 0, 0, 0, 0), - 1.0 -); - +dimensionedScalar Ds("Ds", dimViscosity, 1.0); areaVectorField Us ( @@ -48,7 +36,7 @@ areaVectorField Us dimensioned Uinf("Uinf", dimVelocity, 1.0); -forAll (Us, faceI) +forAll(Us, faceI) { Us[faceI].x() = Uinf.value()*(0.25*(3.0 + sqr(R[faceI].x()/mag(R[faceI]))) - 1.0); diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C b/applications/solvers/finiteArea/sphereSurfactantFoam/sphereSurfactantFoam.C similarity index 95% rename from applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C rename to applications/solvers/finiteArea/sphereSurfactantFoam/sphereSurfactantFoam.C index daee7e9e59..bf872e3d20 100644 --- a/applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/sphereSurfactantFoam.C @@ -41,10 +41,14 @@ Description int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Passive finiteArea scalar transport on a sphere" + ); + + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" - #include "createFaMesh.H" #include "createFaFields.H" #include "createVolFields.H" diff --git a/applications/solvers/finiteArea/surfactantFoam/createFaFields.H b/applications/solvers/finiteArea/surfactantFoam/createFaFields.H index a285b21cee..2ad74fa266 100644 --- a/applications/solvers/finiteArea/surfactantFoam/createFaFields.H +++ b/applications/solvers/finiteArea/surfactantFoam/createFaFields.H @@ -29,10 +29,7 @@ IOdictionary transportProperties Info<< "Reading diffusivity D\n" << endl; -dimensionedScalar Ds -( - transportProperties.lookup("Ds") -); +dimensionedScalar Ds("Ds", dimViscosity, transportProperties); areaVectorField Us ( diff --git a/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C b/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C index 4a0d63a89c..e202ece2fe 100644 --- a/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C +++ b/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C @@ -30,7 +30,7 @@ Group grpFiniteAreaSolvers Description - Passive scalar transport equation solver. + Passive scalar transport finiteArea equation solver. \heading Solver details The equation is given by: @@ -65,7 +65,12 @@ Author int main(int argc, char *argv[]) { - #include "setRootCase.H" + argList::addNote + ( + "Passive scalar transport finiteArea equation solver." + ); + + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createFaMesh.H" diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C index eaeb49019c..7f5ba27e90 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C @@ -59,10 +59,17 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for buoyant, turbulent flow" + " of incompressible fluids.\n" + "Uses the Boussinesq approximation." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -84,7 +91,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C index 8cc6523fc7..a953a1eef9 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C @@ -59,10 +59,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Steady-state solver for buoyant, turbulent flow" + " of incompressible fluids." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C index a75c39d0f4..43a87345dc 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C @@ -47,10 +47,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for buoyant, turbulent fluid flow" + " of compressible fluids, including radiation." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" @@ -73,7 +79,7 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C index a8fc1a9f35..a8421b9d84 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C @@ -44,10 +44,16 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Steady-state solver for buoyant, turbulent fluid flow" + " of compressible fluids, including radiation." + ); + #include "postProcess.H" #include "addCheckCaseOptions.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C index 1bababea09..831d1d3519 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C @@ -54,11 +54,18 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Transient solver for buoyant, turbulent fluid flow and solid heat" + " conduction with conjugate heat transfer" + " between solid and fluid regions." + ); + #define NO_CONTROL #define CREATE_MESH createMeshesPostProcess.H #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMeshes.H" #include "createFields.H" @@ -79,7 +86,7 @@ int main(int argc, char *argv[]) #include "solidRegionDiffusionNo.H" #include "setMultiRegionDeltaT.H" - runTime++; + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C index 12c7ac5514..0dc1e9c910 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C @@ -48,11 +48,18 @@ Description int main(int argc, char *argv[]) { + argList::addNote + ( + "Steady-state solver for buoyant, turbulent fluid flow and solid heat" + " conduction with conjugate heat transfer" + " between solid and fluid regions." + ); + #define NO_CONTROL #define CREATE_MESH createMeshesPostProcess.H #include "postProcess.H" - #include "setRootCase.H" + #include "setRootCaseLists.H" #include "createTime.H" #include "createMeshes.H" #include "createFields.H" diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H index d811d4be86..6cafd11a6f 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H @@ -3,7 +3,6 @@ PtrList thermoFluid(fluidRegions.size()); PtrList rhoFluid(fluidRegions.size()); PtrList UFluid(fluidRegions.size()); PtrList phiFluid(fluidRegions.size()); -PtrList gFluid(fluidRegions.size()); PtrList hRefFluid(fluidRegions.size()); PtrList ghFluid(fluidRegions.size()); PtrList ghfFluid(fluidRegions.size()); @@ -22,6 +21,8 @@ PtrList rhoMin(fluidRegions.size()); PtrList MRFfluid(fluidRegions.size()); PtrList fluidFvOptions(fluidRegions.size()); +const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime); + // Populate fluid field pointer lists forAll(fluidRegions, i) { @@ -91,23 +92,6 @@ forAll(fluidRegions, i) ) ); - Info<< " Adding to gFluid\n" << endl; - gFluid.set - ( - i, - new uniformDimensionedVectorField - ( - IOobject - ( - "g", - runTime.constant(), - fluidRegions[i], - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ) - ); - Info<< " Adding to hRefFluid\n" << endl; hRefFluid.set ( @@ -128,10 +112,9 @@ forAll(fluidRegions, i) dimensionedScalar ghRef ( - mag(gFluid[i].value()) > SMALL - ? gFluid[i] - & (cmptMag(gFluid[i].value())/mag(gFluid[i].value()))*hRefFluid[i] - : dimensionedScalar("ghRef", gFluid[i].dimensions()*dimLength, 0) + mag(g.value()) > SMALL + ? g & (cmptMag(g.value())/mag(g.value()))*hRefFluid[i] + : dimensionedScalar("ghRef", g.dimensions()*dimLength, 0) ); Info<< " Adding to ghFluid\n" << endl; @@ -141,7 +124,7 @@ forAll(fluidRegions, i) new volScalarField ( "gh", - (gFluid[i] & fluidRegions[i].C()) - ghRef + (g & fluidRegions[i].C()) - ghRef ) ); @@ -152,7 +135,7 @@ forAll(fluidRegions, i) new surfaceScalarField ( "ghf", - (gFluid[i] & fluidRegions[i].Cf()) - ghRef + (g & fluidRegions[i].Cf()) - ghRef ) ); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H index 119c2ad7ea..814c930275 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H @@ -14,7 +14,6 @@ volScalarField& p_rgh = p_rghFluid[i]; - const dimensionedVector& g = gFluid[i]; const volScalarField& gh = ghFluid[i]; const surfaceScalarField& ghf = ghfFluid[i]; diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H index be1e3e57c0..42d399c53d 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H @@ -3,7 +3,6 @@ PtrList thermoFluid(fluidRegions.size()); PtrList rhoFluid(fluidRegions.size()); PtrList UFluid(fluidRegions.size()); PtrList phiFluid(fluidRegions.size()); -PtrList gFluid(fluidRegions.size()); PtrList hRefFluid(fluidRegions.size()); PtrList ghFluid(fluidRegions.size()); PtrList ghfFluid(fluidRegions.size()); @@ -26,6 +25,8 @@ PtrList fluidFvOptions(fluidRegions.size()); List