diff --git a/Allwmake b/Allwmake
index 16edfd1f6f..9187532553 100755
--- a/Allwmake
+++ b/Allwmake
@@ -26,12 +26,12 @@ else
fi
# build OpenFOAM libraries and applications
-src/Allwmake
-applications/Allwmake
+src/Allwmake $*
+applications/Allwmake $*
if [ "$1" = doc ]
then
- doc/Allwmake
+ doc/Allwmake $*
fi
# ----------------------------------------------------------------- end-of-file
diff --git a/applications/Allwmake b/applications/Allwmake
index 00bc326641..7f7ac6718d 100755
--- a/applications/Allwmake
+++ b/applications/Allwmake
@@ -16,7 +16,7 @@ wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
set -x
-wmake all utilities
-wmake all solvers
+wmake all utilities $*
+wmake all solvers $*
# ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.H b/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.H
index 109354319e..aaf4620e3c 100644
--- a/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.H
+++ b/applications/solvers/combustion/PDRFoam/PDRModels/XiGModels/basicXiSubG/basicXiSubG.H
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -22,8 +22,7 @@ License
along with OpenFOAM. If not, see .
Class
- Foam::XiGModel::basicSubGrid
-
+ Foam::XiGModels::basicSubGrid
Description
@@ -39,13 +38,14 @@ Description
and the removal:
- \f[ - k_{1} /frac{\vert \dwea{\vec{U}} \vert}{L_{sub}}
- \frac{\Xi_{sub}-1}{\Xi_{sub}} \f]
+ \f[
+ - k_{1} /frac{\vert \dwea{\vec{U}} \vert}{L_{sub}}
+ \frac{\Xi_{sub}-1}{\Xi_{sub}}
+ \f]
Finally, \f$ G_{sub} \f$ is added to generation rate \f$ G_{in} \f$
due to the turbulence.
-
SourceFiles
basicSubGrid.C
@@ -64,7 +64,7 @@ namespace XiGModels
{
/*---------------------------------------------------------------------------*\
- Class basicSubGrid Declaration
+ Class basicSubGrid Declaration
\*---------------------------------------------------------------------------*/
class basicSubGrid
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.H b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.H
index 4c7095a6ed..1a4bb1ec0b 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.H
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.H
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see .
Class
- Foam::XiEqModel::SCOPEXiEq
+ Foam::XiEqModels::SCOPEXiEq
Description
Simple SCOPEXiEq model for XiEq based on SCOPEXiEqs correlation
@@ -120,7 +120,6 @@ public:
//- Update properties from given dictionary
virtual bool read(const dictionary& XiEqProperties);
-
};
diff --git a/applications/solvers/combustion/chemFoam/readInitialConditions.H b/applications/solvers/combustion/chemFoam/readInitialConditions.H
index b25fd944c5..8e340a7e16 100644
--- a/applications/solvers/combustion/chemFoam/readInitialConditions.H
+++ b/applications/solvers/combustion/chemFoam/readInitialConditions.H
@@ -87,7 +87,7 @@
forAll(Y, i)
{
Y[i] = Y0[i];
- h0 += Y0[i]*specieData[i].Hs(p[i], T0);
+ h0 += Y0[i]*specieData[i].Hs(p[0], T0);
}
thermo.he() = dimensionedScalar("h", dimEnergy/dimMass, h0);
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
index 365e64d1b1..ca2936633a 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
@@ -1,5 +1,8 @@
EXE_INC = \
-I../buoyantBoussinesqSimpleFoam \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/lnInclude \
@@ -9,6 +12,8 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
+ -lfvOptions \
+ -lsampling \
-lmeshTools \
-lincompressibleTurbulenceModel \
-lincompressibleRASModels \
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/TEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/TEqn.H
index 65c92dab51..76b0ef0168 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/TEqn.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/TEqn.H
@@ -11,12 +11,18 @@
- fvm::laplacian(alphaEff, T)
==
radiation->ST(rhoCpRef, T)
+ + fvOptions(T)
);
TEqn.relax();
+
+ fvOptions.constrain(TEqn);
+
TEqn.solve();
radiation->correct();
+ fvOptions.correct(T);
+
rhok = 1.0 - beta*(T - TRef);
}
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H
index 07f46ec998..92768088b9 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H
@@ -5,10 +5,14 @@
fvm::ddt(U)
+ fvm::div(phi, U)
+ turbulence->divDevReff(U)
+ ==
+ fvOptions(U)
);
UEqn.relax();
+ fvOptions.constrain(UEqn);
+
if (pimple.momentumPredictor())
{
solve
@@ -23,4 +27,6 @@
)*mesh.magSf()
)
);
+
+ fvOptions.correct(U);
}
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
index 65dda0653e..6168082e1d 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
@@ -48,8 +48,9 @@ Description
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "RASModel.H"
-#include "pimpleControl.H"
#include "radiationModel.H"
+#include "fvIOoptionList.H"
+#include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -61,6 +62,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createIncompressibleRadiationModel.H"
+ #include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "readTimeControls.H"
#include "CourantNo.H"
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
index 6905967f04..6a6311e47c 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
@@ -1,5 +1,8 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/lnInclude \
-I$(LIB_SRC)/transportModels \
@@ -7,7 +10,9 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
+ -lsampling \
-lmeshTools \
+ -lfvOptions \
-lincompressibleTurbulenceModel \
-lincompressibleRASModels \
-lincompressibleTransportModels
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
index a0c5d24b2b..c495e58285 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
@@ -8,10 +8,17 @@
(
fvm::div(phi, T)
- fvm::laplacian(alphaEff, T)
+ ==
+ fvOptions(T)
);
TEqn.relax();
+
+ fvOptions.constrain(TEqn);
+
TEqn.solve();
+ fvOptions.correct(T);
+
rhok = 1.0 - beta*(T - TRef);
}
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H
index cbe464fc02..dd516edf2f 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H
@@ -4,16 +4,20 @@
(
fvm::div(phi, U)
+ turbulence->divDevReff(U)
+ ==
+ fvOptions(U)
);
UEqn().relax();
+ fvOptions.constrain(UEqn());
+
if (simple.momentumPredictor())
{
solve
(
UEqn()
- ==
+ ==
fvc::reconstruct
(
(
@@ -22,4 +26,6 @@
)*mesh.magSf()
)
);
+
+ fvOptions.correct(U);
}
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
index 4fc37efd28..b0d2f98aeb 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
@@ -48,6 +48,7 @@ Description
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "RASModel.H"
+#include "fvIOoptionList.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -59,6 +60,7 @@ int main(int argc, char *argv[])
#include "createMesh.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
+ #include "createFvOptions.H"
#include "initContinuityErrs.H"
simpleControl simple(mesh);
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
index 5297be327f..b2cd9ac54e 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
@@ -26,21 +26,18 @@ Application
Description
Combination of heatConductionFoam and buoyantFoam for conjugate heat
- transfer between a solid region and fluid region. It includes
- porous media in the primary fluid region treated explicitly.
+ transfer between solid regions and fluid regions. Both regions include
+ the fvOptions framework.
It handles secondary fluid or solid circuits which can be coupled
thermally with the main fluid region. i.e radiators, etc.
- The secondary fluid region is
-
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "rhoThermo.H"
#include "turbulenceModel.H"
#include "fixedGradientFvPatchFields.H"
-#include "zeroGradientFvPatchFields.H"
#include "regionProperties.H"
#include "compressibleCourantNo.H"
#include "solidRegionDiffNo.H"
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
index 000948514e..de963fe3b2 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
@@ -30,7 +30,7 @@ Description
Sub-models include:
- turbulence modelling, i.e. laminar, RAS or LES
- - run-time selectable finitie volume options, e.g. MRF, explicit porosity
+ - run-time selectable finite volume options, e.g. MRF, explicit porosity
\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/resetPhiPatches.H b/applications/solvers/incompressible/potentialFreeSurfaceFoam/resetPhiPatches.H
deleted file mode 100644
index fe428b6e3b..0000000000
--- a/applications/solvers/incompressible/potentialFreeSurfaceFoam/resetPhiPatches.H
+++ /dev/null
@@ -1,8 +0,0 @@
-FieldField& phibf = phi.boundaryField();
-const FieldField& Ubf = U.boundaryField();
-const FieldField& Sfbf = mesh.Sf().boundaryField();
-
-forAll(phibf, patchI)
-{
- phibf[patchI] = (Ubf[patchI] & Sfbf[patchI]);
-}
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/Make/files b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/files
similarity index 100%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/Make/files
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/files
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/Make/options b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
similarity index 100%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/Make/options
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/UEqn.H
similarity index 100%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/UEqn.H
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/createFields.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/createFields.H
similarity index 100%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/createFields.H
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/createFields.H
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H
similarity index 88%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H
index 888d06a889..11dfa8a520 100644
--- a/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H
@@ -1,5 +1,3 @@
-#include "resetPhiPatches.H"
-
volScalarField rAU(1.0/UEqn().A());
surfaceScalarField rAUf("Dp", fvc::interpolate(rAU));
@@ -22,6 +20,9 @@ adjustPhi(phiHbyA, U, p_gh);
fvOptions.relativeFlux(phiHbyA);
+// Update the phi BCs from U before p BCs are updated
+phi.boundaryField() = mesh.Sf().boundaryField() & U.boundaryField();
+
// Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal())
{
diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
similarity index 100%
rename from applications/solvers/incompressible/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
rename to applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
diff --git a/applications/test/GAMGAgglomeration/Test-GAMGAgglomeration.C b/applications/test/GAMGAgglomeration/Test-GAMGAgglomeration.C
index a11b78772e..2dd7905294 100644
--- a/applications/test/GAMGAgglomeration/Test-GAMGAgglomeration.C
+++ b/applications/test/GAMGAgglomeration/Test-GAMGAgglomeration.C
@@ -35,116 +35,6 @@ Description
#include "meshTools.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-void checkConnectedAgglomeration
-(
- const lduMesh& mesh,
- const labelUList& restrict,
- const label nCoarse
-)
-{
- if (mesh.lduAddr().size() != restrict.size())
- {
- FatalErrorIn
- (
- "checkConnectedAgglomeration(const lduMesh&, const labelList&)"
- ) << "nCells:" << mesh.lduAddr().size()
- << " agglom:" << restrict.size()
- << abort(FatalError);
- }
-
- // Seed (master) for every region
- labelList regionToMaster(nCoarse, -1);
- labelList master(mesh.lduAddr().size(), -1);
- forAll(restrict, cellI)
- {
- label region = restrict[cellI];
- if (regionToMaster[region] == -1)
- {
- // Set cell to be master for region
- //Pout<< "For region " << region
- // << " allocating local master " << cellI
- // << endl;
- regionToMaster[region] = cellI;
- master[cellI] = cellI;
- }
- }
-
- // Now loop and transport master through region
- const labelUList& lower = mesh.lduAddr().lowerAddr();
- const labelUList& upper = mesh.lduAddr().upperAddr();
-
- while (true)
- {
- label nChanged = 0;
-
- forAll(lower, faceI)
- {
- label own = lower[faceI];
- label nei = upper[faceI];
-
- if (restrict[own] == restrict[nei])
- {
- // Region-internal face
-
- if (master[own] != -1)
- {
- if (master[nei] == -1)
- {
- master[nei] = master[own];
- nChanged++;
- }
- else if (master[nei] != master[own])
- {
- FatalErrorIn("checkConnectedAgglomeration(..)")
- << "problem" << abort(FatalError);
- }
- }
- else if (master[nei] != -1)
- {
- master[own] = master[nei];
- nChanged++;
- }
- }
- }
-
- reduce(nChanged, sumOp