diff --git a/Allwmake b/Allwmake
index e9e7995414..e0dded16f0 100755
--- a/Allwmake
+++ b/Allwmake
@@ -37,7 +37,10 @@ src/Allwmake $targetType $*
applications/Allwmake $targetType $*
# Optionally build OpenFOAM Doxygen documentation
-[ $genDoc -eq 1 ] && doc/Allwmake
+if [ $genDoc -eq 1 ]
+then
+ doc/Allwmake
+fi
# ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/DNS/DNSSolversDoc.H b/applications/solvers/DNS/DNSSolversDoc.H
new file mode 100644
index 0000000000..307be76cc5
--- /dev/null
+++ b/applications/solvers/DNS/DNSSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpDNSSolvers Direct Numerical Simulation solvers
+@{
+ \ingroup grpSolvers
+ This group contains Direct Numerical Simulation (DNS) solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/DNS/dnsFoam/dnsFoam.C b/applications/solvers/DNS/dnsFoam/dnsFoam.C
index 38c5b7be8f..444874c82f 100644
--- a/applications/solvers/DNS/dnsFoam/dnsFoam.C
+++ b/applications/solvers/DNS/dnsFoam/dnsFoam.C
@@ -24,6 +24,9 @@ License
Application
dnsFoam
+Group
+ grpDNSSolvers
+
Description
Direct numerical simulation solver for boxes of isotropic turbulence
diff --git a/applications/solvers/basic/basicSolversDoc.H b/applications/solvers/basic/basicSolversDoc.H
new file mode 100644
index 0000000000..c8bb86db95
--- /dev/null
+++ b/applications/solvers/basic/basicSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpBasicSolvers Basic solvers
+@{
+ \ingroup grpSolvers
+ This group contains basic solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C
index 218d91ac44..846a4b00a0 100644
--- a/applications/solvers/basic/laplacianFoam/laplacianFoam.C
+++ b/applications/solvers/basic/laplacianFoam/laplacianFoam.C
@@ -24,8 +24,30 @@ License
Application
laplacianFoam
+Group
+ grpBasicSolvers
+
Description
- Solves a simple Laplace equation, e.g. for thermal diffusion in a solid.
+ Laplace equation solver for a scalar quantity.
+
+ \heading Solver details
+ The solver is applicable to, e.g. for thermal diffusion in a solid. The
+ equation is given by:
+
+ \f[
+ \ddt{T} = \div \left( D_T \grad T \right)
+ \f]
+
+ Where:
+ \vartable
+ T | Scalar field which is solved for, e.g. temperature
+ D_T | Diffusion coefficient
+ \endvartable
+
+ \heading Required fields
+ \plaintable
+ T | Scalar field which is solved for, e.g. temperature
+ \endplaintable
\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/basic/potentialFoam/Make/options b/applications/solvers/basic/potentialFoam/Make/options
index 159afb0f46..b4ad3d8bdf 100644
--- a/applications/solvers/basic/potentialFoam/Make/options
+++ b/applications/solvers/basic/potentialFoam/Make/options
@@ -1,11 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
- -lfvOptions \
-lsampling
diff --git a/applications/solvers/basic/potentialFoam/createControls.H b/applications/solvers/basic/potentialFoam/createControls.H
deleted file mode 100644
index 7015cae02e..0000000000
--- a/applications/solvers/basic/potentialFoam/createControls.H
+++ /dev/null
@@ -1,9 +0,0 @@
-const dictionary& potentialFlow
-(
- mesh.solutionDict().subDict("potentialFlow")
-);
-
-const int nNonOrthCorr
-(
- potentialFlow.lookupOrDefault("nNonOrthogonalCorrectors", 0)
-);
diff --git a/applications/solvers/basic/potentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/createFields.H
index ce912510ec..36c4dcc08a 100644
--- a/applications/solvers/basic/potentialFoam/createFields.H
+++ b/applications/solvers/basic/potentialFoam/createFields.H
@@ -12,6 +12,7 @@ volVectorField U
mesh
);
+// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), vector::zero);
surfaceScalarField phi
@@ -34,7 +35,9 @@ if (args.optionFound("initialiseUBCs"))
}
-// Default name for the pressure field
+// 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
@@ -55,6 +58,9 @@ forAll(U.boundaryField(), patchi)
}
}
+// Note that registerObject is false for the pressure field. The pressure
+// field in this solver doesn't have a physical value during the solution.
+// It shouldn't be looked up and used by sub models or boundary conditions.
Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p
(
@@ -64,13 +70,28 @@ volScalarField p
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
- IOobject::NO_WRITE
+ IOobject::NO_WRITE,
+ false
),
mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0),
pBCTypes
);
+label pRefCell = 0;
+scalar pRefValue = 0.0;
+if (args.optionFound("writep"))
+{
+ setRefCell
+ (
+ p,
+ potentialFlow.dict(),
+ pRefCell,
+ pRefValue
+ );
+}
+
+
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
(
diff --git a/applications/solvers/basic/potentialFoam/potentialFoam.C b/applications/solvers/basic/potentialFoam/potentialFoam.C
index 5c56133788..a13d288a21 100644
--- a/applications/solvers/basic/potentialFoam/potentialFoam.C
+++ b/applications/solvers/basic/potentialFoam/potentialFoam.C
@@ -24,19 +24,69 @@ License
Application
potentialFoam
-Description
- Potential flow solver which solves for the velocity potential
- from which the flux-field is obtained and velocity field by reconstructing
- the flux.
+Group
+ grpBasicSolvers
- This application is particularly useful to generate starting fields for
- Navier-Stokes codes.
+Description
+ Potential flow solver.
+
+ \heading Solver details
+ The potential flow solution is typically employed to generate initial fields
+ for full Navier-Stokes codes. The flow is evolved using the equation:
+
+ \f[
+ \laplacian \Phi = \div(\vec{U})
+ \f]
+
+ Where:
+ \vartable
+ \Phi | Velocity potential [m2/s]
+ \vec{U} | Velocity [m/s]
+ \endvartable
+
+ The corresponding pressure field could be calculated from the divergence
+ of the Euler equation:
+
+ \f[
+ \laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0
+ \f]
+
+ but this generates excessive pressure variation in regions of large
+ velocity gradient normal to the flow direction. A better option is to
+ calculate the pressure field corresponding to velocity variation along the
+ stream-lines:
+
+ \f[
+ \laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0
+ \f]
+ where the flow direction tensor \f$\vec{F}\f$ is obtained from
+ \f[
+ \vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}}
+ \f]
+
+ \heading Required fields
+ \plaintable
+ U | Velocity [m/s]
+ \endplaintable
+
+ \heading Optional fields
+ \plaintable
+ p | Kinematic pressure [m2/s2]
+ Phi | Velocity potential [m2/s]
+ | Generated from p (if present) or U if not present
+ \endplaintable
+
+ \heading Options
+ \plaintable
+ -writep | write the Euler pressure
+ -writePhi | Write the final velocity potential
+ -initialiseUBCs | Update the velocity boundaries before solving for Phi
+ \endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pisoControl.H"
-#include "fvIOoptionList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -58,13 +108,13 @@ int main(int argc, char *argv[])
argList::addBoolOption
(
"writePhi",
- "Write the velocity potential field"
+ "Write the final velocity potential field"
);
argList::addBoolOption
(
"writep",
- "Calculate and write the pressure field"
+ "Calculate and write the Euler pressure field"
);
argList::addBoolOption
@@ -81,7 +131,6 @@ int main(int argc, char *argv[])
#include "createFields.H"
#include "createMRF.H"
- #include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -137,7 +186,7 @@ int main(int argc, char *argv[])
Phi.write();
}
- // Calculate the pressure field
+ // Calculate the pressure field from the Euler equation
if (args.optionFound("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
diff --git a/applications/solvers/basic/scalarTransportFoam/Make/options b/applications/solvers/basic/scalarTransportFoam/Make/options
index 51402dfc99..acbe7a6475 100644
--- a/applications/solvers/basic/scalarTransportFoam/Make/options
+++ b/applications/solvers/basic/scalarTransportFoam/Make/options
@@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
index 2430732e6d..f98225586f 100644
--- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
+++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
@@ -24,13 +24,37 @@ License
Application
scalarTransportFoam
+Group
+ grpBasicSolvers
+
Description
- Solves a transport equation for a passive scalar
+ Passive scalar transport equation solver.
+
+ \heading Solver details
+ The equation is given by:
+
+ \f[
+ \ddt{T} + \div \left(\vec{U} T\right) - \div \left(D_T \grad T \right)
+ = S_{T}
+ \f]
+
+ Where:
+ \vartable
+ T | Passive scalar
+ D_T | Diffusion coefficient
+ S_T | Source
+ \endvartable
+
+ \heading Required fields
+ \plaintable
+ T | Passive scalar
+ U | Velocity [m/s]
+ \endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/combustion/PDRFoam/EaEqn.H b/applications/solvers/combustion/PDRFoam/EaEqn.H
index 1baaa7180f..8b844a8159 100644
--- a/applications/solvers/combustion/PDRFoam/EaEqn.H
+++ b/applications/solvers/combustion/PDRFoam/EaEqn.H
@@ -1,7 +1,7 @@
{
volScalarField& hea = thermo.he();
- solve
+ fvScalarMatrix EaEqn
(
betav*fvm::ddt(rho, hea) + mvConvection->fvmDiv(phi, hea)
+ betav*fvc::ddt(rho, K) + fvc::div(phi, K)
@@ -16,7 +16,16 @@
: -betav*dpdt
)
- fvm::laplacian(Db, hea)
+ + betav*fvOptions(rho, hea)
);
+ EaEqn.relax();
+
+ fvOptions.constrain(EaEqn);
+
+ EaEqn.solve();
+
+ fvOptions.correct(hea);
+
thermo.correct();
}
diff --git a/applications/solvers/combustion/PDRFoam/EauEqn.H b/applications/solvers/combustion/PDRFoam/EauEqn.H
index f031d90732..91bb49b913 100644
--- a/applications/solvers/combustion/PDRFoam/EauEqn.H
+++ b/applications/solvers/combustion/PDRFoam/EauEqn.H
@@ -2,7 +2,7 @@ if (ign.ignited())
{
volScalarField& heau = thermo.heu();
- solve
+ fvScalarMatrix heauEqn
(
betav*fvm::ddt(rho, heau) + mvConvection->fvmDiv(phi, heau)
+ (betav*fvc::ddt(rho, K) + fvc::div(phi, K))*rho/thermo.rhou()
@@ -23,5 +23,13 @@ if (ign.ignited())
// A possible solution would be to solve for ftu as well as ft.
//- fvm::div(muEff*fvc::grad(b)/(b + 0.001), heau)
//+ fvm::Sp(fvc::div(muEff*fvc::grad(b)/(b + 0.001)), heau)
+ ==
+ betav*fvOptions(rho, heau)
);
+
+ fvOptions.constrain(heauEqn);
+
+ heauEqn.solve();
+
+ fvOptions.correct(heau);
}
diff --git a/applications/solvers/combustion/PDRFoam/Make/options b/applications/solvers/combustion/PDRFoam/Make/options
index 4768728619..405f5bcf62 100644
--- a/applications/solvers/combustion/PDRFoam/Make/options
+++ b/applications/solvers/combustion/PDRFoam/Make/options
@@ -16,7 +16,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/triSurface/lnInclude
+ -I$(LIB_SRC)/triSurface/lnInclude \
EXE_LIBS = \
-lengine \
@@ -29,4 +29,5 @@ EXE_LIBS = \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
- -ldynamicFvMesh
+ -ldynamicFvMesh \
+ -lfvOptions
diff --git a/applications/solvers/combustion/PDRFoam/PDRFoam.C b/applications/solvers/combustion/PDRFoam/PDRFoam.C
index fa8518ba49..7e2ed0b63e 100644
--- a/applications/solvers/combustion/PDRFoam/PDRFoam.C
+++ b/applications/solvers/combustion/PDRFoam/PDRFoam.C
@@ -24,6 +24,9 @@ License
Application
PDRFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for compressible premixed/partially-premixed combustion with
turbulence modelling.
@@ -54,16 +57,17 @@ Description
regions containing blockages which cannot be resolved by the mesh.
The fields used by this solver are:
-
- betav: Volume porosity
- Lobs: Average diameter of obstacle in cell (m)
- Aw: Obstacle surface area per unit volume (1/m)
- CR: Drag tensor (1/m)
- CT: Turbulence generation parameter (1/m)
- Nv: Number of obstacles in cell per unit volume (m^-2)
- nsv: Tensor whose diagonal indicates the number to substract from
- Nv to get the number of obstacles crossing the flow in each
- direction.
+ \plaintable
+ betav | Volume porosity
+ Lobs | Average diameter of obstacle in cell (m)
+ Aw | Obstacle surface area per unit volume (1/m)
+ CR | Drag tensor (1/m)
+ CT | Turbulence generation parameter (1/m)
+ Nv | Number of obstacles in cell per unit volume (m^-2)
+ nsv | Tensor whose diagonal indicates the number to substract from
+ | Nv to get the number of obstacles crossing the flow in each
+ | direction.
+ \endplaintable
\*---------------------------------------------------------------------------*/
@@ -77,6 +81,7 @@ Description
#include "Switch.H"
#include "bound.H"
#include "pimpleControl.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -93,11 +98,13 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
+ #include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
index 057286f1e9..4e561052fd 100644
--- a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
+++ b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
@@ -87,6 +87,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.H b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.H
index e7bd21a628..7c06ab6e79 100644
--- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.H
+++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.H
@@ -168,7 +168,7 @@ public:
virtual void writeFields() const
{
- notImplemented("PDRDragModel::write()");
+ NotImplemented;
}
};
diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModelNew.C b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModelNew.C
index 8a8ab924a3..3570aebd80 100644
--- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModelNew.C
+++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModelNew.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -45,10 +45,8 @@ Foam::autoPtr Foam::PDRDragModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "PDRDragModel::New"
- ) << "Unknown PDRDragModel type "
+ FatalErrorInFunction
+ << "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/combustion/PDRFoam/UEqn.H b/applications/solvers/combustion/PDRFoam/UEqn.H
index 1d949d17b7..983e020cab 100644
--- a/applications/solvers/combustion/PDRFoam/UEqn.H
+++ b/applications/solvers/combustion/PDRFoam/UEqn.H
@@ -7,13 +7,17 @@
+ turbulence->divDevRhoReff(U)
==
betav*rho*g
+ + betav*fvOptions(rho, U)
);
+ fvOptions.constrain(UEqn);
+
volSymmTensorField invA(inv(I*UEqn.A() + drag->Dcu()));
if (pimple.momentumPredictor())
{
U = invA & (UEqn.H() - betav*fvc::grad(p));
U.correctBoundaryConditions();
+ fvOptions.correct(U);
K = 0.5*magSqr(U);
}
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C
index bdedac7a33..82411751fb 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModelNew.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -44,15 +44,8 @@ Foam::autoPtr Foam::XiEqModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "XiEqModel::New"
- "("
- " const psiuReactionThermo& thermo,"
- " const compressible::RASModel& turbulence,"
- " const volScalarField& Su"
- ")"
- ) << "Unknown XiEqModel type "
+ FatalErrorInFunction
+ << "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C
index d77cfd8da6..0d7f1afcfb 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModelNew.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -44,15 +44,8 @@ Foam::autoPtr Foam::XiGModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "XiGModel::New"
- "("
- " const psiuReactionThermo& thermo,"
- " const compressible::RASModel& turbulence,"
- " const volScalarField& Su"
- ")"
- ) << "Unknown XiGModel type "
+ FatalErrorInFunction
+ << "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C
index 04f9b41cd1..a317eb50ec 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModelNew.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -47,10 +47,8 @@ Foam::autoPtr Foam::XiModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "XiModel::New"
- ) << "Unknown XiModel type "
+ FatalErrorInFunction
+ << "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.H b/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.H
index 2ba6ae4514..2a02795313 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.H
+++ b/applications/solvers/combustion/PDRFoam/XiModels/transport/transport.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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -116,7 +116,7 @@ public:
//- Correct the flame-wrinking Xi
virtual void correct()
{
- notImplemented("transport::correct()");
+ NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme
diff --git a/applications/solvers/combustion/PDRFoam/bEqn.H b/applications/solvers/combustion/PDRFoam/bEqn.H
index abec1938c3..8ad1161871 100644
--- a/applications/solvers/combustion/PDRFoam/bEqn.H
+++ b/applications/solvers/combustion/PDRFoam/bEqn.H
@@ -73,6 +73,8 @@ if (ign.ignited())
+ fvm::div(phiSt, b)
- fvm::Sp(fvc::div(phiSt), b)
- fvm::laplacian(Db, b)
+ ==
+ betav*fvOptions(rho, b)
);
@@ -82,8 +84,14 @@ if (ign.ignited())
// Solve for b
// ~~~~~~~~~~~
+ bEqn.relax();
+
+ fvOptions.constrain(bEqn);
+
bEqn.solve();
+ fvOptions.correct(b);
+
Info<< "min(b) = " << min(b).value() << endl;
if (composition.contains("ft"))
diff --git a/applications/solvers/combustion/PDRFoam/createFields.H b/applications/solvers/combustion/PDRFoam/createFields.H
index fb958b3b52..95f42a03d6 100644
--- a/applications/solvers/combustion/PDRFoam/createFields.H
+++ b/applications/solvers/combustion/PDRFoam/createFields.H
@@ -49,7 +49,7 @@ mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::New
(
rho,
U,
diff --git a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
index 7ae51fd5d1..d4d7782287 100644
--- a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
+++ b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -172,7 +172,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
}
else
{
- FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)")
+ FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
@@ -210,7 +210,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
}
else
{
- FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)")
+ FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
diff --git a/applications/solvers/combustion/PDRFoam/pEqn.H b/applications/solvers/combustion/PDRFoam/pEqn.H
index 714a3e84e8..499885875b 100644
--- a/applications/solvers/combustion/PDRFoam/pEqn.H
+++ b/applications/solvers/combustion/PDRFoam/pEqn.H
@@ -25,6 +25,8 @@ if (pimple.transonic())
betav*fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rho*invA, p)
+ ==
+ betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@@ -53,6 +55,8 @@ else
betav*fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rho*invA, p)
+ ==
+ betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@@ -69,6 +73,7 @@ else
U = HbyA - (invA & (betav*fvc::grad(p)));
U.correctBoundaryConditions();
+fvOptions.correct(U);
K = 0.5*magSqr(U);
if (thermo.dpdt())
diff --git a/applications/solvers/combustion/XiFoam/Make/options b/applications/solvers/combustion/XiFoam/Make/options
index c30b39fdee..f659b4dcbe 100644
--- a/applications/solvers/combustion/XiFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/Make/options
@@ -1,8 +1,4 @@
EXE_INC = \
- -I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
- -I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude\
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@@ -10,13 +6,12 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
+ -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
- -lfiniteVolume \
- -lfvOptions \
- -lsampling \
- -lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
@@ -24,4 +19,8 @@ EXE_LIBS = \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
- -llaminarFlameSpeedModels
+ -llaminarFlameSpeedModels \
+ -lfiniteVolume \
+ -lfvOptions \
+ -lsampling \
+ -lmeshTools
diff --git a/applications/solvers/combustion/XiFoam/UEqn.H b/applications/solvers/combustion/XiFoam/UEqn.H
index f493177d76..59e51b370b 100644
--- a/applications/solvers/combustion/XiFoam/UEqn.H
+++ b/applications/solvers/combustion/XiFoam/UEqn.H
@@ -6,8 +6,7 @@
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U)
==
- rho*g
- + fvOptions(rho, U)
+ fvOptions(rho, U)
);
UEqn.relax();
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/files b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/files
new file mode 100644
index 0000000000..55ea77cbdf
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/files
@@ -0,0 +1,3 @@
+XiDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/XiDyMFoam
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options
new file mode 100644
index 0000000000..a726de69b3
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options
@@ -0,0 +1,33 @@
+EXE_INC = \
+ -I.. \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
+ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
+ -I$(LIB_SRC)/dynamicMesh/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/engine/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
+
+EXE_LIBS = \
+ -lfiniteVolume \
+ -lfvOptions \
+ -ldynamicFvMesh \
+ -ltopoChangerFvMesh \
+ -ldynamicMesh \
+ -lmeshTools \
+ -lsampling \
+ -lengine \
+ -lturbulenceModels \
+ -lcompressibleTurbulenceModels \
+ -lcompressibleTransportModels \
+ -lfluidThermophysicalModels \
+ -lreactionThermophysicalModels \
+ -lspecie \
+ -llaminarFlameSpeedModels
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C
new file mode 100644
index 0000000000..0f6f2976f1
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C
@@ -0,0 +1,183 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
+ \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Application
+ XiFoam
+
+Group
+ grpCombustionSolvers grpMovingMeshSolvers
+
+Description
+ Solver for compressible premixed/partially-premixed combustion with
+ turbulence modelling.
+
+ Combusting RANS code using the b-Xi two-equation model.
+ Xi may be obtained by either the solution of the Xi transport
+ equation or from an algebraic exression. Both approaches are
+ based on Gulder's flame speed correlation which has been shown
+ to be appropriate by comparison with the results from the
+ spectral model.
+
+ Strain effects are encorporated directly into the Xi equation
+ but not in the algebraic approximation. Further work need to be
+ done on this issue, particularly regarding the enhanced removal rate
+ caused by flame compression. Analysis using results of the spectral
+ model will be required.
+
+ For cases involving very lean Propane flames or other flames which are
+ very strain-sensitive, a transport equation for the laminar flame
+ speed is present. This equation is derived using heuristic arguments
+ involving the strain time scale and the strain-rate at extinction.
+ the transport velocity is the same as that for the Xi equation.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "dynamicFvMesh.H"
+#include "psiuReactionThermo.H"
+#include "turbulentFluidThermoModel.H"
+#include "laminarFlameSpeed.H"
+#include "ignition.H"
+#include "Switch.H"
+#include "pimpleControl.H"
+#include "CorrectPhi.H"
+#include "fvOptions.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "setRootCase.H"
+
+ #include "createTime.H"
+ #include "createDynamicFvMesh.H"
+ #include "initContinuityErrs.H"
+
+ pimpleControl pimple(mesh);
+
+ #include "readCombustionProperties.H"
+ #include "readGravitationalAcceleration.H"
+ #include "createFields.H"
+ #include "createMRF.H"
+ #include "createFvOptions.H"
+ #include "createRhoUf.H"
+ #include "createControls.H"
+ #include "initContinuityErrs.H"
+ #include "compressibleCourantNo.H"
+ #include "setInitialDeltaT.H"
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ Info<< "\nStarting time loop\n" << endl;
+
+ while (runTime.run())
+ {
+ #include "createTimeControls.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
+ volScalarField divrhoU
+ (
+ "divrhoU",
+ fvc::div(fvc::absolute(phi, rho, U))
+ );
+
+ #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() && 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)
+ {
+ #include "meshCourantNo.H"
+ }
+
+ #include "rhoEqn.H"
+ Info<< "rhoEqn max/min : " << max(rho).value()
+ << " " << min(rho).value() << endl;
+
+ // --- Pressure-velocity PIMPLE corrector loop
+ while (pimple.loop())
+ {
+ #include "UEqn.H"
+
+ #include "ftEqn.H"
+ #include "bEqn.H"
+ #include "EauEqn.H"
+ #include "EaEqn.H"
+
+ if (!ign.ignited())
+ {
+ thermo.heu() == thermo.he();
+ }
+
+ // --- Pressure corrector loop
+ while (pimple.correct())
+ {
+ #include "pEqn.H"
+ }
+
+ if (pimple.turbCorr())
+ {
+ turbulence->correct();
+ }
+ }
+
+ rho = thermo.rho();
+
+ runTime.write();
+
+ Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+ << " ClockTime = " << runTime.elapsedClockTime() << " s"
+ << nl << endl;
+ }
+
+ Info<< "End\n" << endl;
+
+ return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/correctPhi.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/correctPhi.H
new file mode 100644
index 0000000000..37072312ff
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/correctPhi.H
@@ -0,0 +1,11 @@
+CorrectPhi
+(
+ U,
+ phi,
+ p,
+ rho,
+ psi,
+ dimensionedScalar("rAUf", dimTime, 1),
+ divrhoU,
+ pimple
+);
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H
new file mode 100644
index 0000000000..aed0e76956
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H
@@ -0,0 +1,11 @@
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+ pimple.dict().lookupOrDefault("correctPhi", true)
+);
+
+bool checkMeshCourantNo
+(
+ pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/pEqn.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/pEqn.H
new file mode 100644
index 0000000000..438396ae90
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/pEqn.H
@@ -0,0 +1,99 @@
+rho = thermo.rho();
+
+volScalarField rAU(1.0/UEqn.A());
+surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
+
+volVectorField HbyA("HbyA", U);
+HbyA = rAU*UEqn.H();
+
+if (pimple.transonic())
+{
+ surfaceScalarField phid
+ (
+ "phid",
+ fvc::interpolate(psi)
+ *(
+ (fvc::interpolate(HbyA) & mesh.Sf())
+ + rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
+ )
+ );
+
+ fvc::makeRelative(phid, psi, U);
+ MRF.makeRelative(fvc::interpolate(psi), phid);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvm::div(phid, p)
+ - fvm::laplacian(rhorAUf, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi == pEqn.flux();
+ }
+ }
+}
+else
+{
+ surfaceScalarField phiHbyA
+ (
+ "phiHbyA",
+ (
+ (fvc::interpolate(rho*HbyA) & mesh.Sf())
+ + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)
+ )
+ );
+
+ fvc::makeRelative(phiHbyA, rho, U);
+ MRF.makeRelative(phiHbyA);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvc::div(phiHbyA)
+ - fvm::laplacian(rhorAUf, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi = phiHbyA + pEqn.flux();
+ }
+ }
+}
+
+#include "rhoEqn.H"
+#include "compressibleContinuityErrs.H"
+
+U = HbyA - rAU*fvc::grad(p);
+U.correctBoundaryConditions();
+fvOptions.correct(U);
+K = 0.5*magSqr(U);
+
+{
+ rhoUf = fvc::interpolate(rho*U);
+ surfaceVectorField n(mesh.Sf()/mesh.magSf());
+ rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
+}
+
+if (thermo.dpdt())
+{
+ dpdt = fvc::ddt(p);
+
+ if (mesh.moving())
+ {
+ dpdt -= fvc::div(fvc::meshPhi(rho, U), p);
+ }
+}
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H
new file mode 100644
index 0000000000..cf50980460
--- /dev/null
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H
@@ -0,0 +1,7 @@
+ #include "readTimeControls.H"
+
+ bool correctPhi =
+ pimple.dict().lookupOrDefault("correctPhi", true);
+
+ bool checkMeshCourantNo =
+ pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/combustion/XiFoam/XiFoam.C b/applications/solvers/combustion/XiFoam/XiFoam.C
index 6090f923ca..a336810139 100644
--- a/applications/solvers/combustion/XiFoam/XiFoam.C
+++ b/applications/solvers/combustion/XiFoam/XiFoam.C
@@ -24,6 +24,9 @@ License
Application
XiFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for compressible premixed/partially-premixed combustion with
turbulence modelling.
@@ -56,7 +59,7 @@ Description
#include "ignition.H"
#include "Switch.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -70,7 +73,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh);
#include "readCombustionProperties.H"
- #include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
@@ -79,6 +81,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/combustion/chemFoam/Make/options b/applications/solvers/combustion/chemFoam/Make/options
index 8a3aee2784..176ec9fd9c 100644
--- a/applications/solvers/combustion/chemFoam/Make/options
+++ b/applications/solvers/combustion/chemFoam/Make/options
@@ -1,26 +1,14 @@
EXE_INC = \
- -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
- -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
- -I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
+ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude\
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
- -lturbulenceModels \
- -lcompressibleTurbulenceModels \
- -lreactionThermophysicalModels \
- -lcompressibleTransportModels \
- -lfluidThermophysicalModels \
-lchemistryModel \
- -lODE \
- -lthermophysicalFunctions \
- -lspecie \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/combustion/chemFoam/chemFoam.C b/applications/solvers/combustion/chemFoam/chemFoam.C
index a345551933..60c915d9dd 100644
--- a/applications/solvers/combustion/chemFoam/chemFoam.C
+++ b/applications/solvers/combustion/chemFoam/chemFoam.C
@@ -24,10 +24,14 @@ License
Application
chemFoam
+Group
+ grpCombustionSolvers
+
Description
- Solver for chemistry problems
- - designed for use on single cell cases to provide comparison against
- other chemistry solvers
+ Solver for chemistry problems designed for use on single cell cases to
+ provide comparison against other chemistry solvers
+
+ Note:
- single cell mesh created on-the-fly
- fields created on the fly from the initial conditions
@@ -35,7 +39,6 @@ Description
#include "fvCFD.H"
#include "psiReactionThermo.H"
-#include "turbulentFluidThermoModel.H"
#include "psiChemistryModel.H"
#include "chemistrySolver.H"
#include "OFstream.H"
diff --git a/applications/solvers/combustion/chemFoam/createControls.H b/applications/solvers/combustion/chemFoam/createControls.H
index 14dcf56a16..6aeb2fff15 100644
--- a/applications/solvers/combustion/chemFoam/createControls.H
+++ b/applications/solvers/combustion/chemFoam/createControls.H
@@ -1,8 +1,2 @@
-if (runTime.controlDict().lookupOrDefault("suppressSolverInfo", false))
-{
- lduMatrix::debug = 0;
-}
-
Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
-
scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));
diff --git a/applications/solvers/combustion/chemFoam/createFields.H b/applications/solvers/combustion/chemFoam/createFields.H
index 8855e4501a..ae5d54fc58 100644
--- a/applications/solvers/combustion/chemFoam/createFields.H
+++ b/applications/solvers/combustion/chemFoam/createFields.H
@@ -1,6 +1,6 @@
if (mesh.nCells() != 1)
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Solver only applicable to single cell cases"
<< exit(FatalError);
}
@@ -86,20 +86,6 @@
#include "createPhi.H"
- Info << "Creating turbulence model.\n" << endl;
- autoPtr turbulence
- (
- compressible::turbulenceModel::New
- (
- rho,
- U,
- phi,
- thermo
- )
- );
-
OFstream post(args.path()/"chemFoam.out");
post<< "# Time" << token::TAB << "Temperature [K]" << token::TAB
<< "Pressure [Pa]" << endl;
-
-
diff --git a/applications/solvers/combustion/coldEngineFoam/Make/options b/applications/solvers/combustion/coldEngineFoam/Make/options
index 0878858de7..6ef06f8991 100644
--- a/applications/solvers/combustion/coldEngineFoam/Make/options
+++ b/applications/solvers/combustion/coldEngineFoam/Make/options
@@ -12,7 +12,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lengine \
diff --git a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C
index e85010239b..14e35856f3 100644
--- a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C
+++ b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C
@@ -22,7 +22,10 @@ License
along with OpenFOAM. If not, see .
Application
- engineFoam
+ coldEngineFoam
+
+Group
+ grpCombustionSolvers grpMovingMeshSolvers
Description
Solver for cold-flow in internal combustion engines.
@@ -35,7 +38,7 @@ Description
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "OFstream.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "startSummary.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/combustion/combustionSolversDoc.H b/applications/solvers/combustion/combustionSolversDoc.H
new file mode 100644
index 0000000000..bc68bdb7fe
--- /dev/null
+++ b/applications/solvers/combustion/combustionSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpCombustionSolvers Combustion solvers
+@{
+ \ingroup grpSolvers
+ This group contains combustion solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/combustion/engineFoam/Make/options b/applications/solvers/combustion/engineFoam/Make/options
index ab0bbe9ffa..6fe414c1bb 100644
--- a/applications/solvers/combustion/engineFoam/Make/options
+++ b/applications/solvers/combustion/engineFoam/Make/options
@@ -1,7 +1,6 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/XiFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
diff --git a/applications/solvers/combustion/engineFoam/engineFoam.C b/applications/solvers/combustion/engineFoam/engineFoam.C
index 4602eac997..a13df4cea3 100644
--- a/applications/solvers/combustion/engineFoam/engineFoam.C
+++ b/applications/solvers/combustion/engineFoam/engineFoam.C
@@ -24,6 +24,9 @@ License
Application
engineFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for internal combustion engines.
@@ -59,7 +62,7 @@ Description
#include "OFstream.H"
#include "mathematicalConstants.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -83,6 +86,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "startSummary.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options
index fa336e9798..2d2d441e24 100644
--- a/applications/solvers/combustion/fireFoam/Make/options
+++ b/applications/solvers/combustion/fireFoam/Make/options
@@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I${LIB_SRC}/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C
index 31ace4dda8..4d8c59a297 100644
--- a/applications/solvers/combustion/fireFoam/fireFoam.C
+++ b/applications/solvers/combustion/fireFoam/fireFoam.C
@@ -24,8 +24,11 @@ License
Application
fireFoam
+Group
+ grpCombustionSolvers
+
Description
- Transient PIMPLE solver for Fires and turbulent diffusion flames with
+ Transient PIMPLE solver for fires and turbulent diffusion flames with
reacting Lagrangian parcels, surface film and pyrolysis modelling.
\*---------------------------------------------------------------------------*/
@@ -40,7 +43,7 @@ Description
#include "solidChemistryModel.H"
#include "psiCombustionModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -67,6 +70,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "readPyrolysisTimeControls.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/combustion/reactingFoam/EEqn.H b/applications/solvers/combustion/reactingFoam/EEqn.H
index bd47416425..9267c9a9be 100644
--- a/applications/solvers/combustion/reactingFoam/EEqn.H
+++ b/applications/solvers/combustion/reactingFoam/EEqn.H
@@ -17,8 +17,7 @@
)
- fvm::laplacian(turbulence->alphaEff(), he)
==
- rho*(U&g)
- + reaction->Sh()
+ reaction->Sh()
+ fvOptions(rho, he)
);
diff --git a/applications/solvers/combustion/reactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/Make/options
index b6a03d74d8..6363f6d80d 100644
--- a/applications/solvers/combustion/reactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/Make/options
@@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
diff --git a/applications/solvers/combustion/reactingFoam/UEqn.H b/applications/solvers/combustion/reactingFoam/UEqn.H
index f493177d76..907c9934e2 100644
--- a/applications/solvers/combustion/reactingFoam/UEqn.H
+++ b/applications/solvers/combustion/reactingFoam/UEqn.H
@@ -1,23 +1,24 @@
- MRF.correctBoundaryVelocity(U);
+// Solve the Momentum equation
- fvVectorMatrix UEqn
- (
- fvm::ddt(rho, U) + fvm::div(phi, U)
- + MRF.DDt(rho, U)
- + turbulence->divDevRhoReff(U)
- ==
- rho*g
- + fvOptions(rho, U)
- );
+MRF.correctBoundaryVelocity(U);
- UEqn.relax();
+tmp UEqn
+(
+ fvm::ddt(rho, U) + fvm::div(phi, U)
+ + MRF.DDt(rho, U)
+ + turbulence->divDevRhoReff(U)
+ ==
+ fvOptions(rho, U)
+);
- fvOptions.constrain(UEqn);
+UEqn().relax();
- if (pimple.momentumPredictor())
- {
- solve(UEqn == -fvc::grad(p));
+fvOptions.constrain(UEqn());
- fvOptions.correct(U);
- K = 0.5*magSqr(U);
- }
+if (pimple.momentumPredictor())
+{
+ solve(UEqn() == -fvc::grad(p));
+
+ fvOptions.correct(U);
+ K = 0.5*magSqr(U);
+}
diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H
index 19c115a8f2..71c805c43b 100644
--- a/applications/solvers/combustion/reactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/createFields.H
@@ -45,6 +45,28 @@ const volScalarField& T = thermo.T();
#include "compressibleCreatePhi.H"
+dimensionedScalar rhoMax
+(
+ dimensionedScalar::lookupOrDefault
+ (
+ "rhoMax",
+ pimple.dict(),
+ dimDensity,
+ GREAT
+ )
+);
+
+dimensionedScalar rhoMin
+(
+ dimensionedScalar::lookupOrDefault
+ (
+ "rhoMin",
+ pimple.dict(),
+ dimDensity,
+ 0
+ )
+);
+
mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl;
diff --git a/applications/solvers/combustion/reactingFoam/pEqn.H b/applications/solvers/combustion/reactingFoam/pEqn.H
index cedab05eab..2f352db5da 100644
--- a/applications/solvers/combustion/reactingFoam/pEqn.H
+++ b/applications/solvers/combustion/reactingFoam/pEqn.H
@@ -1,10 +1,18 @@
rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
-volScalarField rAU(1.0/UEqn.A());
+volScalarField rAU(1.0/UEqn().A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
-HbyA = rAU*UEqn.H();
+HbyA = rAU*UEqn().H();
+
+if (pimple.nCorrPISO() <= 1)
+{
+ UEqn.clear();
+}
if (pimple.transonic())
{
@@ -26,7 +34,7 @@ if (pimple.transonic())
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
- - fvm::laplacian(rho*rAU, p)
+ - fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@@ -58,7 +66,7 @@ else
(
fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- - fvm::laplacian(rho*rAU, p)
+ - fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@@ -75,6 +83,17 @@ else
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
+// 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;
+
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
diff --git a/applications/solvers/combustion/reactingFoam/pcEqn.H b/applications/solvers/combustion/reactingFoam/pcEqn.H
new file mode 100644
index 0000000000..3d7fffc459
--- /dev/null
+++ b/applications/solvers/combustion/reactingFoam/pcEqn.H
@@ -0,0 +1,125 @@
+rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
+
+volScalarField rAU(1.0/UEqn().A());
+volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
+volVectorField HbyA("HbyA", U);
+HbyA = rAU*UEqn().H();
+
+if (pimple.nCorrPISO() <= 1)
+{
+ UEqn.clear();
+}
+
+if (pimple.transonic())
+{
+ surfaceScalarField phid
+ (
+ "phid",
+ fvc::interpolate(psi)
+ *(
+ (fvc::interpolate(HbyA) & mesh.Sf())
+ + fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
+ /fvc::interpolate(rho)
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(psi), phid);
+
+ surfaceScalarField phic
+ (
+ "phic",
+ fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf()
+ );
+
+ HbyA -= (rAU - rAtU)*fvc::grad(p);
+
+ volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvm::div(phid, p)
+ + fvc::div(phic)
+ - fvm::laplacian(rhorAtU, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi == phic + pEqn.flux();
+ }
+ }
+}
+else
+{
+ surfaceScalarField phiHbyA
+ (
+ "phiHbyA",
+ (
+ (fvc::interpolate(rho*HbyA) & mesh.Sf())
+ + fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+ phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
+ HbyA -= (rAU - rAtU)*fvc::grad(p);
+
+ volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvc::div(phiHbyA)
+ - fvm::laplacian(rhorAtU, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi = phiHbyA + pEqn.flux();
+ }
+ }
+}
+
+#include "rhoEqn.H"
+#include "compressibleContinuityErrs.H"
+
+// Explicitly relax pressure for momentum corrector
+p.relax();
+
+U = HbyA - rAtU*fvc::grad(p);
+U.correctBoundaryConditions();
+fvOptions.correct(U);
+K = 0.5*magSqr(U);
+
+if (thermo.dpdt())
+{
+ dpdt = fvc::ddt(p);
+}
+
+// Recalculate density from the relaxed pressure
+rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+
+if (!pimple.transonic())
+{
+ rho.relax();
+}
+
+Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl;
diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C
index 79deedb763..dab20b2ed6 100644
--- a/applications/solvers/combustion/reactingFoam/reactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C
@@ -24,6 +24,9 @@ License
Application
reactingFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for combustion with chemical reactions.
@@ -34,7 +37,7 @@ Description
#include "psiCombustionModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@@ -51,11 +54,12 @@ int main(int argc, char *argv[])
#include "createTimeControls.H"
#include "createRDeltaT.H"
#include "initContinuityErrs.H"
- #include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
@@ -95,7 +99,14 @@ int main(int argc, char *argv[])
// --- Pressure corrector loop
while (pimple.correct())
{
- #include "pEqn.H"
+ if (pimple.consistent())
+ {
+ #include "pcEqn.H"
+ }
+ else
+ {
+ #include "pEqn.H"
+ }
}
if (pimple.turbCorr())
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
index c5ced108f0..e7b46c4e00 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
@@ -1,7 +1,6 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
index e8645bb47c..63b7b8a61f 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoReactingBuoyantFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for combustion with chemical reactions using density based
thermodynamics package, using enahanced buoyancy treatment.
@@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@@ -57,6 +60,8 @@ int main(int argc, char *argv[])
#include "createMRF.H"
#include "createFvOptions.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
index c5ced108f0..e7b46c4e00 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
@@ -1,7 +1,6 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/pEqn.H b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/pEqn.H
index 87ca80dbf6..c3b18e6bd7 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/pEqn.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/pEqn.H
@@ -5,11 +5,11 @@
// pressure solution - done in 2 parts. Part 1:
thermo.rho() -= psi*p;
- volScalarField rAU(1.0/UEqn.A());
+ volScalarField rAU(1.0/UEqn().A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
- HbyA = rAU*UEqn.H();
+ HbyA = rAU*UEqn().H();
if (pimple.transonic())
{
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
index 6eb245028d..610bf3a136 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoReactingFoam
+Group
+ grpCombustionSolvers
+
Description
Solver for combustion with chemical reactions using density based
thermodynamics package.
@@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@@ -52,11 +55,12 @@ int main(int argc, char *argv[])
#include "createTimeControls.H"
#include "createRDeltaT.H"
#include "initContinuityErrs.H"
- #include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/combustion/reactingFoam/setRDeltaT.H b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
index a01f9bac3b..b84be5a66d 100644
--- a/applications/solvers/combustion/reactingFoam/setRDeltaT.H
+++ b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
@@ -116,6 +116,9 @@ License
);
}
+ // Update tho boundary values of the reciprocal time-step
+ rDeltaT.correctBoundaryConditions();
+
Info<< " Overall = "
<< gMin(1/rDeltaT.internalField())
<< ", " << gMax(1/rDeltaT.internalField()) << endl;
diff --git a/applications/solvers/compressible/compressibleSolvers.H b/applications/solvers/compressible/compressibleSolvers.H
new file mode 100644
index 0000000000..85ab71f517
--- /dev/null
+++ b/applications/solvers/compressible/compressibleSolvers.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpCompressibleSolvers Compressible flow solvers
+@{
+ \ingroup grpSolvers
+ This group contains compressible flow solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C
index 22f5555335..d9a4a4e7df 100644
--- a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C
+++ b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C
@@ -94,15 +94,8 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
|| mag(accommodationCoeff_) > 2.0
)
{
- FatalIOErrorIn
+ FatalIOErrorInFunction
(
- "smoluchowskiJumpTFvPatchScalarField::"
- "smoluchowskiJumpTFvPatchScalarField"
- "("
- " const fvPatch&,"
- " const DimensionedField&,"
- " const dictionary&"
- ")",
dict
) << "unphysical accommodationCoeff specified"
<< "(0 < accommodationCoeff <= 1)" << endl
diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
index 6ec81dd4dc..4656fe7281 100644
--- a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
+++ b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -96,14 +96,8 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
|| mag(accommodationCoeff_) > 2.0
)
{
- FatalIOErrorIn
+ FatalIOErrorInFunction
(
- "maxwellSlipUFvPatchScalarField::maxwellSlipUFvPatchScalarField"
- "("
- "const fvPatch&, "
- "const DimensionedField&, "
- "const dictionary&"
- ")",
dict
) << "unphysical accommodationCoeff_ specified"
<< "(0 < accommodationCoeff_ <= 1)" << endl
diff --git a/applications/solvers/compressible/rhoCentralFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/Make/options
index 453c346040..24fc2d966e 100644
--- a/applications/solvers/compressible/rhoCentralFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/Make/options
@@ -11,6 +11,7 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
+ -lfvOptions \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/rhoCentralFoam/readFluxScheme.H b/applications/solvers/compressible/rhoCentralFoam/readFluxScheme.H
index 13f8f02c9c..e8c28d65c2 100644
--- a/applications/solvers/compressible/rhoCentralFoam/readFluxScheme.H
+++ b/applications/solvers/compressible/rhoCentralFoam/readFluxScheme.H
@@ -7,10 +7,8 @@ if (mesh.schemesDict().readIfPresent("fluxScheme", fluxScheme))
}
else
{
- FatalErrorIn
- (
- "rhoCentralFoam::readFluxScheme"
- ) << "fluxScheme: " << fluxScheme
+ FatalErrorInFunction
+ << "fluxScheme: " << fluxScheme
<< " is not a valid choice. "
<< "Options are: Tadmor, Kurganov"
<< abort(FatalError);
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
index fd02717d86..29b8a6faa4 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
@@ -13,6 +13,7 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
+ -lfvOptions \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 38ffddc779..dea76502f1 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoCentralDyMFoam
+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
@@ -49,6 +52,8 @@ int main(int argc, char *argv[])
#include "createFields.H"
#include "createTimeControls.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "readFluxScheme.H"
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index 4faed39f75..1b71f42b94 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoCentralFoam
+Group
+ grpCompressibleSolvers
+
Description
Density-based compressible flow solver based on central-upwind schemes of
Kurganov and Tadmor
@@ -51,6 +54,8 @@ int main(int argc, char *argv[])
#include "createTimeControls.H"
#include "createRDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "readFluxScheme.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/Make/options
index 2a9889aa1a..0bf2d5dee7 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/Make/options
index cff9147b31..9d6c2d3850 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/Make/options
@@ -8,7 +8,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
index bd30b60a90..667d78cd30 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
@@ -43,7 +43,7 @@ Description
#include "bound.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@@ -65,6 +65,8 @@ int main(int argc, char *argv[])
#include "createRhoUf.H"
#include "createControls.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index 382d041fd9..0ff153263f 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoPimpleFoam
+Group
+ grpCompressibleSolvers
+
Description
Transient solver for laminar or turbulent flow of compressible fluids
for HVAC and similar applications.
@@ -38,7 +41,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "bound.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "createMRF.H"
#include "createFvOptions.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/Make/options
index b30fe8bd00..aecfa919e7 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
index fdf8a2a769..80f317cd85 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
@@ -71,7 +71,7 @@ dimensionedScalar rhoMin
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::New
(
rho,
U,
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
index ee0ed0de42..0c899c3171 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
@@ -8,7 +8,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
index 149049e63e..537eea2ea3 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
@@ -70,7 +70,7 @@ dimensionedScalar rhoMin
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::New
(
rho,
U,
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
index a7482b3df1..bc9b2d67cd 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoPorousSimpleFoam
+Group
+ grpCompressibleSolvers
+
Description
Steady-state solver for turbulent flow of compressible fluids with
RANS turbulence modelling, implicit or explicit porosity treatment
@@ -34,7 +37,7 @@ Description
#include "fvCFD.H"
#include "rhoThermo.H"
#include "turbulentFluidThermoModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "IOporosityModelList.H"
#include "simpleControl.H"
@@ -54,6 +57,8 @@ int main(int argc, char *argv[])
#include "createZones.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
index d554931e62..07a4ca7d0f 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
rhoSimpleFoam
+Group
+ grpCompressibleSolvers
+
Description
Steady-state SIMPLE solver for laminar or turbulent RANS flow of
compressible fluids.
@@ -34,7 +37,7 @@ Description
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "simpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -51,6 +54,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/compressible/sonicFoam/Make/options b/applications/solvers/compressible/sonicFoam/Make/options
index 6e90739a0b..f66a8538ae 100644
--- a/applications/solvers/compressible/sonicFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/Make/options
@@ -6,7 +6,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
index a638d4dc9c..c6a648d203 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
@@ -9,7 +9,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/cfdTools \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
index 8d913919d2..ac2614c2dd 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
@@ -39,7 +39,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -60,6 +60,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C
index 95a4b4cc9d..8abeef1614 100644
--- a/applications/solvers/compressible/sonicFoam/sonicFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C
@@ -37,7 +37,7 @@ Description
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -54,6 +54,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
index c60a331b2d..9fda461211 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
@@ -21,6 +21,9 @@ License
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see .
+Group
+ grpCompressibleSolvers
+
Application
sonicLiquidFoam
diff --git a/applications/solvers/discreteMethods/discreteMethodsSolversDoc.H b/applications/solvers/discreteMethods/discreteMethodsSolversDoc.H
new file mode 100644
index 0000000000..06c67407aa
--- /dev/null
+++ b/applications/solvers/discreteMethods/discreteMethodsSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpDiscreteMethodsSolvers Discrete method solvers
+@{
+ \ingroup grpSolvers
+ This group contains discrete method solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C b/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C
index a5e0562155..edf3691fb4 100644
--- a/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C
+++ b/applications/solvers/discreteMethods/dsmc/dsmcFoam/dsmcFoam.C
@@ -24,6 +24,9 @@ License
Application
dsmcFoam
+Group
+ grpDiscreteMethodsSolvers
+
Description
Direct simulation Monte Carlo (DSMC) solver for 3D, transient, multi-
species flows
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
index 50c7f66085..fa2b04f563 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
@@ -24,6 +24,9 @@ License
Application
mdEquilibrationFoam
+Group
+ grpDiscreteMethodsSolvers
+
Description
Equilibrates and/or preconditions molecular dynamics systems
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
index 68f6530c95..f06436c603 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
@@ -24,6 +24,9 @@ License
Application
mdFoam
+Group
+ grpDiscreteMethodsSolvers
+
Description
Molecular dynamics solver for fluid dynamics
diff --git a/applications/solvers/doc/solver.dox b/applications/solvers/doc/solver.dox
new file mode 100644
index 0000000000..4c829de162
--- /dev/null
+++ b/applications/solvers/doc/solver.dox
@@ -0,0 +1,44 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\page pageSolvers Solvers
+
+\section secSolvers Overview
+The available solvers are grouped into the following categories:
+ - \ref grpBasicSolvers
+ - \ref grpCombustionSolvers
+ - \ref grpCompressibleSolvers
+ - \ref grpDiscreteMethodsSolvers
+ - \ref grpDNSSolvers
+ - \ref grpElectroMagneticsSolvers
+ - \ref grpFinancialSolvers
+ - \ref grpHeatTransferSolvers
+ - \ref grpIncompressibleSolvers
+ - \ref grpLagrangianSolvers
+ - \ref grpMultiphaseSolvers
+ - \ref grpStressAnalysisSolvers
+
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/doc/solversDoc.H b/applications/solvers/doc/solversDoc.H
new file mode 100644
index 0000000000..da58bc0ce3
--- /dev/null
+++ b/applications/solvers/doc/solversDoc.H
@@ -0,0 +1,37 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpSolvers Solvers
+@{
+ This group contains solvers
+@}
+
+\defgroup grpMovingMeshSolvers Moving mesh solvers
+@{
+ \ingroup grpSolvers
+ This group contains moving mesh solvers solvers
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/electromagnetics/electromagneticsSolversDoc.H b/applications/solvers/electromagnetics/electromagneticsSolversDoc.H
new file mode 100644
index 0000000000..773733f5bb
--- /dev/null
+++ b/applications/solvers/electromagnetics/electromagneticsSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpElectroMagneticsSolvers Electro-magnetics solvers
+@{
+ \ingroup grpSolvers
+ This group contains electro-magnetics solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
index 94cd1f0ca7..5c4a248df0 100644
--- a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
+++ b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
@@ -24,6 +24,9 @@ License
Application
electrostaticFoam
+Group
+ grpElectroMagneticsSolvers
+
Description
Solver for electrostatics.
diff --git a/applications/solvers/electromagnetics/magneticFoam/createFields.H b/applications/solvers/electromagnetics/magneticFoam/createFields.H
index 22d4008921..189ef5d105 100644
--- a/applications/solvers/electromagnetics/magneticFoam/createFields.H
+++ b/applications/solvers/electromagnetics/magneticFoam/createFields.H
@@ -58,7 +58,7 @@
if (magnetZonei == -1)
{
- FatalIOErrorIn(args.executable().c_str(), transportProperties)
+ FatalIOErrorInFunction(transportProperties)
<< "Cannot find faceZone for magnet " << magnets[i].name()
<< exit(FatalIOError);
}
diff --git a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C
index 1b7d4f4f94..6613d2f206 100644
--- a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C
+++ b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C
@@ -24,6 +24,9 @@ License
Application
magneticFoam
+Group
+ grpElectroMagneticsSolvers
+
Description
Solver for the magnetic field generated by permanent magnets.
diff --git a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
index c9cb0242bd..497e977e85 100644
--- a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
+++ b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
@@ -24,6 +24,9 @@ License
Application
mhdFoam
+Group
+ grpElectroMagneticsSolvers
+
Description
Solver for magnetohydrodynamics (MHD): incompressible, laminar flow of a
conducting fluid under the influence of a magnetic field.
diff --git a/applications/solvers/financial/financialFoam/financialFoam.C b/applications/solvers/financial/financialFoam/financialFoam.C
index 16640d7ce7..2c912c7b93 100644
--- a/applications/solvers/financial/financialFoam/financialFoam.C
+++ b/applications/solvers/financial/financialFoam/financialFoam.C
@@ -24,6 +24,9 @@ License
Application
financialFoam
+Group
+ grpFinancialSolvers
+
Description
Solves the Black-Scholes equation to price commodities.
diff --git a/applications/solvers/financial/financialSolversDoc.H b/applications/solvers/financial/financialSolversDoc.H
new file mode 100644
index 0000000000..02197d5e37
--- /dev/null
+++ b/applications/solvers/financial/financialSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpFinancialSolvers Financial solvers
+@{
+ \ingroup grpSolvers
+ This group contains financial solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
index 9a60cac433..c14a8799f6 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
index e71cd3febe..bc348b840e 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
buoyantBoussinesqPimpleFoam
+Group
+ grpHeatTransferSolvers
+
Description
Transient solver for buoyant, turbulent flow of incompressible fluids
@@ -49,7 +52,7 @@ Description
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -72,6 +75,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/createFields.H
index f98c472e11..b8d07b1f1a 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/createFields.H
@@ -49,7 +49,7 @@ volVectorField U
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- incompressible::RASModel::New(U, phi, laminarTransport)
+ incompressible::New(U, phi, laminarTransport)
);
// Kinematic density for buoyancy force
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
index 48d83838ac..9046994122 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
@@ -3,15 +3,16 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+ -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
+ -lradiationModels \
-lfiniteVolume \
-lsampling \
-lmeshTools \
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
index c495e58285..fec770c974 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/TEqn.H
@@ -9,7 +9,8 @@
fvm::div(phi, T)
- fvm::laplacian(alphaEff, T)
==
- fvOptions(T)
+ radiation->ST(rhoCpRef, T)
+ + fvOptions(T)
);
TEqn.relax();
@@ -18,6 +19,8 @@
TEqn.solve();
+ radiation->correct();
+
fvOptions.correct(T);
rhok = 1.0 - beta*(T - TRef);
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
index 6dff329d1f..8547f274fa 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
buoyantBoussinesqSimpleFoam
+Group
+ grpHeatTransferSolvers
+
Description
Steady-state solver for buoyant, turbulent flow of incompressible fluids
@@ -48,7 +51,8 @@ Description
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
-#include "fvIOoptionList.H"
+#include "radiationModel.H"
+#include "fvOptions.H"
#include "simpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -63,10 +67,13 @@ int main(int argc, char *argv[])
simpleControl simple(mesh);
#include "createFields.H"
+ #include "createIncompressibleRadiationModel.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/createFields.H
index 17306f7d46..014bf8045c 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/createFields.H
@@ -49,7 +49,7 @@ volVectorField U
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- incompressible::RASModel::New(U, phi, laminarTransport)
+ incompressible::New(U, phi, laminarTransport)
);
// Kinematic density for buoyancy force
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
index 7138a3dad0..934083f2bb 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
@@ -2,7 +2,6 @@ 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)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
index cd254643b0..5437e7f625 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
buoyantPimpleFoam
+Group
+ grpHeatTransferSolvers
+
Description
Transient solver for buoyant, turbulent flow of compressible fluids for
ventilation and heat-transfer.
@@ -37,7 +40,7 @@ Description
#include "rhoThermo.H"
#include "turbulentFluidThermoModel.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -51,7 +54,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh);
- #include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
@@ -61,6 +63,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
index 977fb1542a..af2b8926aa 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
@@ -50,9 +50,11 @@ autoPtr turbulence
)
);
-Info<< "Calculating field g.h\n" << endl;
-volScalarField gh("gh", g & mesh.C());
-surfaceScalarField ghf("ghf", g & mesh.Cf());
+
+#include "readGravitationalAcceleration.H"
+#include "readhRef.H"
+#include "gh.H"
+
Info<< "Reading field p_rgh\n" << endl;
volScalarField p_rgh
@@ -88,3 +90,27 @@ volScalarField dpdt
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
+
+label pRefCell = 0;
+scalar pRefValue = 0.0;
+
+if (p_rgh.needReference())
+{
+ setRefCell
+ (
+ p,
+ p_rgh,
+ pimple.dict(),
+ pRefCell,
+ pRefValue
+ );
+
+ p += dimensionedScalar
+ (
+ "p",
+ p.dimensions(),
+ pRefValue - getRefCellValue(p, pRefCell)
+ );
+}
+
+dimensionedScalar initialMass("initialMass", fvc::domainIntegrate(rho));
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H
index e2f99671a3..76b4925917 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H
@@ -1,4 +1,9 @@
{
+ bool closedVolume = p_rgh.needReference();
+
+ dimensionedScalar compressibility = fvc::domainIntegrate(psi);
+ bool compressible = (compressibility.value() > SMALL);
+
rho = thermo.rho();
// Thermodynamic density needs to be updated by psi*d(p) after the
@@ -36,19 +41,27 @@
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
- fvScalarMatrix p_rghDDtEqn
+ tmp p_rghDDtEqn
(
- fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
- + fvc::div(phiHbyA)
- ==
- fvOptions(psi, p_rgh, rho.name())
+ new fvScalarMatrix(p_rgh, dimMass/dimTime)
);
+ if (compressible)
+ {
+ p_rghDDtEqn =
+ (
+ fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ ==
+ fvOptions(psi, p_rgh, rho.name())
+ );
+ }
+
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix p_rghEqn
(
- p_rghDDtEqn
+ p_rghDDtEqn()
+ + fvc::div(phiHbyA)
- fvm::laplacian(rAUf, p_rgh)
);
@@ -81,6 +94,32 @@
dpdt = fvc::ddt(p);
}
- #include "rhoEqn.H"
+ if (compressible)
+ {
+ #include "rhoEqn.H"
+ }
#include "compressibleContinuityErrs.H"
+
+ if (closedVolume)
+ {
+ if (!compressible)
+ {
+ p += dimensionedScalar
+ (
+ "p",
+ p.dimensions(),
+ pRefValue - getRefCellValue(p, pRefCell)
+ );
+ }
+ else
+ {
+ p += (initialMass - fvc::domainIntegrate(thermo.rho()))
+ /compressibility;
+ rho = thermo.rho();
+ }
+ p_rgh = p - rho*gh;
+ }
+
+ Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value()
+ << endl;
}
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
index ac34158a6e..0d9433bac7 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
@@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
index 403fb6fecd..6aa339f56e 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
buoyantSimpleFoam
+Group
+ grpHeatTransferSolvers
+
Description
Steady-state solver for buoyant, turbulent flow of compressible fluids,
including radiation, for ventilation and heat-transfer.
@@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "radiationModel.H"
#include "simpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -48,13 +51,14 @@ int main(int argc, char *argv[])
simpleControl simple(mesh);
- #include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createRadiationModel.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H
index 5b07f643b1..d7cf3eb704 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H
@@ -39,7 +39,7 @@ volVectorField U
Info<< "Creating turbulence model\n" << endl;
autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::New
(
rho,
U,
@@ -49,9 +49,10 @@ autoPtr turbulence
);
-Info<< "Calculating field g.h\n" << endl;
-volScalarField gh("gh", g & mesh.C());
-surfaceScalarField ghf("ghf", g & mesh.Cf());
+#include "readGravitationalAcceleration.H"
+#include "readhRef.H"
+#include "gh.H"
+
Info<< "Reading field p_rgh\n" << endl;
volScalarField p_rgh
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
index a470461654..2b6f5e7e70 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
@@ -15,7 +15,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
index 7fe33fab37..34fcad63b7 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
@@ -24,13 +24,17 @@ License
Application
chtMultiRegionFoam
+Group
+ grpHeatTransferSolvers
+
Description
Combination of heatConductionFoam and buoyantFoam for conjugate heat
- transfer between solid regions and fluid regions. Both regions include
- the fvOptions framework.
+ transfer between solid regions and fluid regions.
- It handles secondary fluid or solid circuits which can be coupled
- thermally with the main fluid region. i.e radiators, etc.
+ Note:
+ - Both regions support the fvOptions framework.
+ - It handles secondary fluid or solid circuits which can be coupled
+ thermally with the main fluid region. i.e radiators, etc.
\*---------------------------------------------------------------------------*/
@@ -43,7 +47,7 @@ Description
#include "solidRegionDiffNo.H"
#include "solidThermo.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "coordinateSystem.H"
#include "fixedFluxPressureFvPatchScalarField.H"
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
index 22155c7aa4..252ecae022 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
@@ -12,7 +12,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
index 6c07dcbdfc..263dae535e 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
chtMultiRegionSimpleFoam
+Group
+ grpHeatTransferSolvers
+
Description
Steady-state version of chtMultiRegionFoam
@@ -36,7 +39,7 @@ Description
#include "regionProperties.H"
#include "solidThermo.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "coordinateSystem.H"
#include "fixedFluxPressureFvPatchScalarField.H"
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H
index 1811878bd7..aabee1cd37 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/createFluidFields.H
@@ -4,10 +4,11 @@ PtrList rhoFluid(fluidRegions.size());
PtrList UFluid(fluidRegions.size());
PtrList phiFluid(fluidRegions.size());
PtrList gFluid(fluidRegions.size());
-PtrList turbulence(fluidRegions.size());
-PtrList p_rghFluid(fluidRegions.size());
+PtrList hRefFluid(fluidRegions.size());
PtrList ghFluid(fluidRegions.size());
PtrList ghfFluid(fluidRegions.size());
+PtrList turbulence(fluidRegions.size());
+PtrList p_rghFluid(fluidRegions.size());
PtrList radiation(fluidRegions.size());
List initialMassFluid(fluidRegions.size());
@@ -19,7 +20,7 @@ PtrList rhoMax(fluidRegions.size());
PtrList rhoMin(fluidRegions.size());
PtrList MRFfluid(fluidRegions.size());
-PtrList fluidFvOptions(fluidRegions.size());
+PtrList fluidFvOptions(fluidRegions.size());
// Populate fluid field pointer lists
forAll(fluidRegions, i)
@@ -107,6 +108,54 @@ forAll(fluidRegions, i)
)
);
+ Info<< " Adding to hRefFluid\n" << endl;
+ hRefFluid.set
+ (
+ i,
+ new uniformDimensionedScalarField
+ (
+ IOobject
+ (
+ "hRef",
+ runTime.constant(),
+ fluidRegions[i],
+ IOobject::READ_IF_PRESENT,
+ IOobject::NO_WRITE
+ ),
+ dimensionedScalar("hRef", dimLength, 0)
+ )
+ );
+
+ 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)
+ );
+
+ Info<< " Adding to ghFluid\n" << endl;
+ ghFluid.set
+ (
+ i,
+ new volScalarField
+ (
+ "gh",
+ (gFluid[i] & fluidRegions[i].C()) - ghRef
+ )
+ );
+
+ Info<< " Adding to ghfFluid\n" << endl;
+ ghfFluid.set
+ (
+ i,
+ new surfaceScalarField
+ (
+ "ghf",
+ (gFluid[i] & fluidRegions[i].Cf()) - ghRef
+ )
+ );
+
Info<< " Adding to turbulence\n" << endl;
turbulence.set
(
@@ -120,20 +169,6 @@ forAll(fluidRegions, i)
).ptr()
);
- Info<< " Adding to ghFluid\n" << endl;
- ghFluid.set
- (
- i,
- new volScalarField("gh", gFluid[i] & fluidRegions[i].C())
- );
-
- Info<< " Adding to ghfFluid\n" << endl;
- ghfFluid.set
- (
- i,
- new surfaceScalarField("ghf", gFluid[i] & fluidRegions[i].Cf())
- );
-
p_rghFluid.set
(
i,
@@ -219,6 +254,8 @@ forAll(fluidRegions, i)
fluidFvOptions.set
(
i,
- new fv::IOoptionList(fluidRegions[i])
+ new fv::options(fluidRegions[i])
);
+
+ turbulence[i].validate();
}
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
index a008b0c1d4..6cde0ec06b 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
@@ -13,7 +13,7 @@
const volScalarField& psi = thermo.psi();
IOMRFZoneList& MRF = MRFfluid[i];
- fv::IOoptionList& fvOptions = fluidFvOptions[i];
+ fv::options& fvOptions = fluidFvOptions[i];
const dimensionedScalar initialMass
(
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H
index 2e66546483..be3ec79a2c 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H
@@ -4,10 +4,11 @@ PtrList rhoFluid(fluidRegions.size());
PtrList UFluid(fluidRegions.size());
PtrList phiFluid(fluidRegions.size());
PtrList gFluid(fluidRegions.size());
-PtrList turbulence(fluidRegions.size());
-PtrList p_rghFluid(fluidRegions.size());
+PtrList hRefFluid(fluidRegions.size());
PtrList ghFluid(fluidRegions.size());
PtrList ghfFluid(fluidRegions.size());
+PtrList turbulence(fluidRegions.size());
+PtrList p_rghFluid(fluidRegions.size());
PtrList radiation(fluidRegions.size());
PtrList KFluid(fluidRegions.size());
PtrList dpdtFluid(fluidRegions.size());
@@ -16,7 +17,7 @@ List initialMassFluid(fluidRegions.size());
List frozenFlowFluid(fluidRegions.size(), false);
PtrList MRFfluid(fluidRegions.size());
-PtrList fluidFvOptions(fluidRegions.size());
+PtrList fluidFvOptions(fluidRegions.size());
// Populate fluid field pointer lists
forAll(fluidRegions, i)
@@ -104,6 +105,54 @@ forAll(fluidRegions, i)
)
);
+ Info<< " Adding to hRefFluid\n" << endl;
+ hRefFluid.set
+ (
+ i,
+ new uniformDimensionedScalarField
+ (
+ IOobject
+ (
+ "hRef",
+ runTime.constant(),
+ fluidRegions[i],
+ IOobject::READ_IF_PRESENT,
+ IOobject::NO_WRITE
+ ),
+ dimensionedScalar("hRef", dimLength, 0)
+ )
+ );
+
+ 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)
+ );
+
+ Info<< " Adding to ghFluid\n" << endl;
+ ghFluid.set
+ (
+ i,
+ new volScalarField
+ (
+ "gh",
+ (gFluid[i] & fluidRegions[i].C()) - ghRef
+ )
+ );
+
+ Info<< " Adding to ghfFluid\n" << endl;
+ ghfFluid.set
+ (
+ i,
+ new surfaceScalarField
+ (
+ "ghf",
+ (gFluid[i] & fluidRegions[i].Cf()) - ghRef
+ )
+ );
+
Info<< " Adding to turbulence\n" << endl;
turbulence.set
(
@@ -117,20 +166,6 @@ forAll(fluidRegions, i)
).ptr()
);
- Info<< " Adding to ghFluid\n" << endl;
- ghFluid.set
- (
- i,
- new volScalarField("gh", gFluid[i] & fluidRegions[i].C())
- );
-
- Info<< " Adding to ghfFluid\n" << endl;
- ghfFluid.set
- (
- i,
- new surfaceScalarField("ghf", gFluid[i] & fluidRegions[i].Cf())
- );
-
p_rghFluid.set
(
i,
@@ -209,6 +244,8 @@ forAll(fluidRegions, i)
fluidFvOptions.set
(
i,
- new fv::IOoptionList(fluidRegions[i])
+ new fv::options(fluidRegions[i])
);
+
+ turbulence[i].validate();
}
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H
index 002faddb59..cd42cc00fd 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H
@@ -36,12 +36,21 @@
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
+ tmp p_rghDDtEqn
+ (
+ new fvScalarMatrix(p_rgh, dimMass/dimTime)
+ );
+
{
- fvScalarMatrix p_rghDDtEqn
- (
- fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
- + fvc::div(phiHbyA)
- );
+ if (compressible)
+ {
+ p_rghDDtEqn =
+ (
+ fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ ==
+ fvOptions(psi, p_rgh, rho.name())
+ );
+ }
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution - done in 2 parts. Part 1:
@@ -52,6 +61,7 @@
fvScalarMatrix p_rghEqn
(
p_rghDDtEqn
+ + fvc::div(phiHbyA)
- fvm::laplacian(rhorAUf, p_rgh)
);
@@ -93,8 +103,11 @@
dpdt = fvc::ddt(p);
}
- // Solve continuity
- #include "rhoEqn.H"
+ if (compressible)
+ {
+ // Solve continuity
+ #include "rhoEqn.H"
+ }
// Update continuity errors
#include "compressibleContinuityErrors.H"
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H
index e61f057316..8d3a291bef 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H
@@ -23,7 +23,7 @@
radiation::radiationModel& rad = radiation[i];
IOMRFZoneList& MRF = MRFfluid[i];
- fv::IOoptionList& fvOptions = fluidFvOptions[i];
+ fv::options& fvOptions = fluidFvOptions[i];
const dimensionedScalar initialMass
(
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidFields.H
index cb9be11787..d80e053727 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidFields.H
@@ -2,7 +2,7 @@
PtrList coordinates(solidRegions.size());
PtrList thermos(solidRegions.size());
PtrList radiations(solidRegions.size());
- PtrList solidHeatSources(solidRegions.size());
+ PtrList solidHeatSources(solidRegions.size());
PtrList betavSolid(solidRegions.size());
PtrList aniAlphas(solidRegions.size());
@@ -22,7 +22,7 @@
solidHeatSources.set
(
i,
- new fv::IOoptionList(solidRegions[i])
+ new fv::options(solidRegions[i])
);
if (!thermos[i].isotropic())
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
index ab168a2016..9eb71909c1 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
@@ -29,4 +29,4 @@ volScalarField& h = thermo.he();
const volScalarField& betav = betavSolid[i];
-fv::IOoptionList& fvOptions = solidHeatSources[i];
+fv::options& fvOptions = solidHeatSources[i];
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H
old mode 100755
new mode 100644
diff --git a/applications/solvers/heatTransfer/heatTransferSolversDoc.H b/applications/solvers/heatTransfer/heatTransferSolversDoc.H
new file mode 100644
index 0000000000..e85a79b97c
--- /dev/null
+++ b/applications/solvers/heatTransfer/heatTransferSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpHeatTransferSolvers Heat transfer solvers
+@{
+ \ingroup grpSolvers
+ This group contains heat transfer solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/heatTransfer/thermoFoam/Make/options b/applications/solvers/heatTransfer/thermoFoam/Make/options
index 7138a3dad0..934083f2bb 100644
--- a/applications/solvers/heatTransfer/thermoFoam/Make/options
+++ b/applications/solvers/heatTransfer/thermoFoam/Make/options
@@ -2,7 +2,6 @@ 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)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
diff --git a/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H b/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H
index 90b475794b..4af3af3ce4 100644
--- a/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H
+++ b/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H
@@ -44,7 +44,7 @@
{
autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::New
(
rho,
U,
@@ -59,7 +59,7 @@
{
autoPtr turbulence
(
- compressible::LESModel::New
+ compressible::New
(
rho,
U,
diff --git a/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C b/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
index a23ce288e3..a9f906e84c 100644
--- a/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
+++ b/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
@@ -24,6 +24,9 @@ License
Application
thermoFoam
+Group
+ grpHeatTransferSolvers
+
Description
Evolves the thermodynamics on a frozen flow field
@@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "LESModel.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "simpleControl.H"
#include "pimpleControl.H"
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
index d33d199f06..48a0b023a7 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
@@ -5,11 +5,12 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
-lfiniteVolume \
- -lmeshTools
+ -lmeshTools \
+ -lfvOptions
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
index f57f444121..74fcec0eb3 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
@@ -24,6 +24,9 @@ License
Application
ajointShapeOptimizationFoam
+Group
+ grpIncompressibleSolvers
+
Description
Steady-state solver for incompressible, turbulent flow of non-Newtonian
fluids with optimisation of duct shape by applying "blockage" in regions
@@ -49,6 +52,7 @@ Description
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "simpleControl.H"
+#include "fvOptions.H"
template
void zeroCells
@@ -76,9 +80,12 @@ int main(int argc, char *argv[])
simpleControl simple(mesh);
#include "createFields.H"
+ #include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "initAdjointContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
@@ -108,12 +115,18 @@ int main(int argc, char *argv[])
fvm::div(phi, U)
+ turbulence->divDevReff(U)
+ fvm::Sp(alpha, U)
+ ==
+ fvOptions(U)
);
UEqn().relax();
+ fvOptions.constrain(UEqn());
+
solve(UEqn() == -fvc::grad(p));
+ fvOptions.correct(U);
+
volScalarField rAU(1.0/UEqn().A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
@@ -150,6 +163,7 @@ int main(int argc, char *argv[])
// Momentum corrector
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
+ fvOptions.correct(U);
}
// Adjoint Pressure-velocity SIMPLE corrector
@@ -173,12 +187,18 @@ int main(int argc, char *argv[])
- adjointTransposeConvection
+ turbulence->divDevReff(Ua)
+ fvm::Sp(alpha, Ua)
+ ==
+ fvOptions(Ua)
);
UaEqn().relax();
+ fvOptions.constrain(UaEqn());
+
solve(UaEqn() == -fvc::grad(pa));
+ fvOptions.correct(Ua);
+
volScalarField rAUa(1.0/UaEqn().A());
volVectorField HbyAa("HbyAa", Ua);
HbyAa = rAUa*UaEqn().H();
@@ -215,6 +235,7 @@ int main(int argc, char *argv[])
// Adjoint momentum corrector
Ua = HbyAa - rAUa*fvc::grad(pa);
Ua.correctBoundaryConditions();
+ fvOptions.correct(Ua);
}
laminarTransport.correct();
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H b/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
index fa27e4b38b..cb7da73687 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
@@ -82,7 +82,7 @@ singlePhaseTransportModel laminarTransport(U, phi);
autoPtr turbulence
(
- incompressible::RASModel::New(U, phi, laminarTransport)
+ incompressible::New(U, phi, laminarTransport)
);
diff --git a/applications/solvers/incompressible/boundaryFoam/Make/options b/applications/solvers/incompressible/boundaryFoam/Make/options
index 770a9fae92..9af500124c 100644
--- a/applications/solvers/incompressible/boundaryFoam/Make/options
+++ b/applications/solvers/incompressible/boundaryFoam/Make/options
@@ -13,4 +13,5 @@ EXE_LIBS = \
-lincompressibleTransportModels \
-lfiniteVolume \
-lmeshTools \
+ -lfvOptions \
-lsampling
diff --git a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
index 4e35c5258f..62931e8654 100644
--- a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
+++ b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
@@ -24,9 +24,12 @@ License
Application
boundaryFoam
+Group
+ grpIncompressibleSolvers
+
Description
Steady-state solver for incompressible, 1D turbulent flow, typically to
- generate boundary layer conditions at an inlet, for use in a simulation.
+ generate boundary layer conditions at an inlet.
Boundary layer code to calculate the U, k and epsilon distributions.
Used to create inlet boundary conditions for experimental comparisons
@@ -38,6 +41,7 @@ Description
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
+#include "fvOptions.H"
#include "wallFvPatch.H"
#include "makeGraph.H"
@@ -52,8 +56,11 @@ int main(int argc, char *argv[])
#include "createTime.H"
#include "createMesh.H"
#include "createFields.H"
+ #include "createFvOptions.H"
#include "interrogateWallPatches.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
@@ -67,13 +74,17 @@ int main(int argc, char *argv[])
fvVectorMatrix UEqn
(
- divR == gradP
+ divR == gradP + fvOptions(U)
);
UEqn.relax();
+ fvOptions.constrain(UEqn);
+
UEqn.solve();
+ fvOptions.correct(U);
+
// Correct driving force for a constant volume flow rate
dimensionedVector UbarStar = flowMask & U.weightedAverage(mesh.V());
diff --git a/applications/solvers/incompressible/boundaryFoam/createFields.H b/applications/solvers/incompressible/boundaryFoam/createFields.H
index 15faa59f82..5ecfebfcb4 100644
--- a/applications/solvers/incompressible/boundaryFoam/createFields.H
+++ b/applications/solvers/incompressible/boundaryFoam/createFields.H
@@ -33,7 +33,7 @@ singlePhaseTransportModel laminarTransport(U, phi);
autoPtr turbulence
(
- incompressible::RASModel::New(U, phi, laminarTransport)
+ incompressible::New(U, phi, laminarTransport)
);
dimensionedVector Ubar("Ubar", dimVelocity, laminarTransport);
diff --git a/applications/solvers/incompressible/boundaryFoam/interrogateWallPatches.H b/applications/solvers/incompressible/boundaryFoam/interrogateWallPatches.H
index 7fd01f0e9e..513ca54a42 100644
--- a/applications/solvers/incompressible/boundaryFoam/interrogateWallPatches.H
+++ b/applications/solvers/incompressible/boundaryFoam/interrogateWallPatches.H
@@ -36,7 +36,7 @@ forAll(patches, patchi)
|| mag(wallNormal & wallNormal2) < 0.99
)
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "wall faces are not parallel for patches "
<< patches[patchId].name() << " and "
<< currPatch.name() << nl
@@ -45,7 +45,7 @@ forAll(patches, patchi)
}
else
{
- FatalErrorIn(args.executable()) << "number of wall faces > 2"
+ FatalErrorInFunction
<< nl << exit(FatalError);
}
}
@@ -54,7 +54,7 @@ forAll(patches, patchi)
if (nWallFaces == 0)
{
- FatalErrorIn(args.executable()) << "No wall patches identified"
+ FatalErrorInFunction
<< exit(FatalError);
}
else
diff --git a/applications/solvers/incompressible/icoFoam/icoFoam.C b/applications/solvers/incompressible/icoFoam/icoFoam.C
index 80e13faa8d..a7d0da4a8a 100644
--- a/applications/solvers/incompressible/icoFoam/icoFoam.C
+++ b/applications/solvers/incompressible/icoFoam/icoFoam.C
@@ -24,9 +24,40 @@ License
Application
icoFoam
+Group
+ grpIncompressibleSolvers
+
Description
Transient solver for incompressible, laminar flow of Newtonian fluids.
+ \heading Solver details
+ The solver uses the PISO algorithm to solve the continuity equation:
+
+ \f[
+ \div \vec{U} = 0
+ \f]
+
+ and momentum equation:
+
+ \f[
+ \ddt{\vec{U}}
+ + \div \left( \vec{U} \vec{U} \right)
+ - \div \left(\nu \grad \vec{U} \right)
+ = - \grad p
+ \f]
+
+ Where:
+ \vartable
+ \vec{U} | Velocity
+ p | Pressure
+ \endvartable
+
+ \heading Required fields
+ \plaintable
+ U | Velocity [m/s]
+ p | Kinematic pressure, p/rho [m2/s2]
+ \endplaintable
+
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
diff --git a/applications/solvers/incompressible/incompressibleSolversDoc.H b/applications/solvers/incompressible/incompressibleSolversDoc.H
new file mode 100644
index 0000000000..1ae50df034
--- /dev/null
+++ b/applications/solvers/incompressible/incompressibleSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpIncompressibleSolvers Incompressible flow solvers
+@{
+ \ingroup grpSolvers
+ This group contains incompressible flow solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
index 9d3b567d3b..e1153a2772 100644
--- a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
+++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
@@ -24,6 +24,9 @@ License
Application
nonNewtonianIcoFoam
+Group
+ grpIncompressibleSolvers
+
Description
Transient solver for incompressible, laminar flow of non-Newtonian fluids.
diff --git a/applications/solvers/incompressible/pimpleFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/Make/options
index 20feab872f..9af500124c 100644
--- a/applications/solvers/incompressible/pimpleFoam/Make/options
+++ b/applications/solvers/incompressible/pimpleFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
index 20feab872f..9af500124c 100644
--- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
+++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
index bfa86ea1d9..f31dace8fe 100644
--- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
SRFPimpleFoam
+Group
+ grpIncompressibleSolvers
+
Description
Large time-step transient solver for incompressible, flow in a single
rotating frame using the PIMPLE (merged PISO-SIMPLE) algorithm.
@@ -37,7 +40,7 @@ Description
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
#include "SRFModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -54,6 +57,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/Make/options
index 90e43d56aa..41aeca934c 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/Make/options
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
index cb01c03d63..deb266dd3d 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
pimpleDyMFoam.C
+Group
+ grpIncompressibleSolvers grpMovingMeshSolvers
+
Description
Transient solver for incompressible, flow of Newtonian fluids
on a moving mesh using the PIMPLE (merged PISO-SIMPLE) algorithm.
@@ -38,7 +41,7 @@ Description
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -60,6 +63,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
index 72c6178d72..5a56b2b0ef 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
@@ -24,21 +24,54 @@ License
Application
pimpleFoam
+Group
+ grpIncompressibleSolvers
+
Description
Large time-step transient solver for incompressible, flow using the PIMPLE
(merged PISO-SIMPLE) algorithm.
+ \heading Solver details
+ The solver uses the PIMPLE (merged PISO-SIMPLE) algorithm to solve the
+ continuity equation:
+
+ \f[
+ \div \vec{U} = 0
+ \f]
+
+ and momentum equation:
+
+ \f[
+ \ddt{\vec{U}} + \div \left( \vec{U} \vec{U} \right) - \div \gvec{R}
+ = - \grad p + \vec{S}_U
+ \f]
+
+ Where:
+ \vartable
+ \vec{U} | Velocity
+ p | Pressure
+ \vec{R} | Stress tensor
+ \vec{S}_U | Momentum source
+ \endvartable
+
Sub-models include:
- turbulence modelling, i.e. laminar, RAS or LES
- run-time selectable MRF and finite volume options, e.g. explicit porosity
+ \heading Required fields
+ \plaintable
+ U | Velocity [m/s]
+ p | Kinematic pressure, p/rho [m2/s2]
+ \ | As required by user selection
+ \endplaintable
+
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -57,6 +90,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/pisoFoam/Make/options b/applications/solvers/incompressible/pisoFoam/Make/options
index 20feab872f..9af500124c 100644
--- a/applications/solvers/incompressible/pisoFoam/Make/options
+++ b/applications/solvers/incompressible/pisoFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/incompressible/pisoFoam/pisoFoam.C b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
index 482b695cb9..24e99aba73 100644
--- a/applications/solvers/incompressible/pisoFoam/pisoFoam.C
+++ b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
@@ -24,20 +24,51 @@ License
Application
pisoFoam
+Group
+ grpIncompressibleSolvers
+
Description
Transient solver for incompressible flow.
+ \heading Solver details
+ The solver uses the PISO algorithm to solve the continuity equation:
+
+ \f[
+ \div \vec{U} = 0
+ \f]
+
+ and momentum equation:
+
+ \f[
+ \ddt{\vec{U}} + \div \left( \vec{U} \vec{U} \right) - \div \gvec{R}
+ = - \grad p
+ \f]
+
+ Where:
+ \vartable
+ \vec{U} | Velocity
+ p | Pressure
+ \vec{R} | Stress tensor
+ \endvartable
+
Sub-models include:
- turbulence modelling, i.e. laminar, RAS or LES
- run-time selectable MRF and finite volume options, e.g. explicit porosity
+ \heading Required fields
+ \plaintable
+ U | Velocity [m/s]
+ p | Kinematic pressure, p/rho [m2/s2]
+ \ | As required by user selection
+ \endplaintable
+
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "pisoControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -54,6 +85,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
index 47ec8ac9f6..e7693a073e 100644
--- a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
+++ b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
@@ -24,6 +24,9 @@ License
Application
shallowWaterFoam
+Group
+ grpIncompressibleSolvers
+
Description
Transient solver for inviscid shallow-water equations with rotation.
diff --git a/applications/solvers/incompressible/simpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/Make/options
index bc0201f371..1d9ded80bf 100644
--- a/applications/solvers/incompressible/simpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
index a888499d85..90df601079 100644
--- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
@@ -6,7 +6,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C
index 97617bd925..ea791c8868 100644
--- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C
+++ b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
SRFSimpleFoam
+Group
+ grpIncompressibleSolvers
+
Description
Steady-state solver for incompressible, turbulent flow of non-Newtonian
fluids in a single rotating frame.
@@ -35,7 +38,7 @@ Description
#include "turbulentTransportModel.H"
#include "SRFModel.H"
#include "simpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -51,6 +54,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H
index 9d9fb484fc..5658b68ec6 100644
--- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H
+++ b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H
@@ -66,5 +66,5 @@ singlePhaseTransportModel laminarTransport(U, phi);
autoPtr turbulence
(
- incompressible::RASModel::New(U, phi, laminarTransport)
+ incompressible::New(U, phi, laminarTransport)
);
diff --git a/applications/solvers/incompressible/simpleFoam/UEqn.H b/applications/solvers/incompressible/simpleFoam/UEqn.H
index 032e0e044b..12b5621636 100644
--- a/applications/solvers/incompressible/simpleFoam/UEqn.H
+++ b/applications/solvers/incompressible/simpleFoam/UEqn.H
@@ -7,7 +7,7 @@
fvm::div(phi, U)
+ MRF.DDt(U)
+ turbulence->divDevReff(U)
- ==
+ ==
fvOptions(U)
);
diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
index a888499d85..90df601079 100644
--- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
@@ -6,7 +6,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C
index 3c9ef15c95..8010a7325e 100644
--- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C
+++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C
@@ -24,6 +24,9 @@ License
Application
porousSimpleFoam
+Group
+ grpIncompressibleSolvers
+
Description
Steady-state solver for incompressible, turbulent flow with
implicit or explicit porosity treatment and support for multiple reference
@@ -36,7 +39,7 @@ Description
#include "turbulentTransportModel.H"
#include "simpleControl.H"
#include "IOporosityModelList.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -54,6 +57,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/incompressible/simpleFoam/simpleFoam.C b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
index eeb7bc1e34..1b84b48f7b 100644
--- a/applications/solvers/incompressible/simpleFoam/simpleFoam.C
+++ b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
@@ -24,8 +24,40 @@ License
Application
simpleFoam
+Group
+ grpIncompressibleSolvers
+
Description
- Steady-state solver for incompressible, turbulent flow
+ Steady-state solver for incompressible flows with turbulence modelling.
+
+ \heading Solver details
+ The solver uses the SIMPLE algorithm to solve the continuity equation:
+
+ \f[
+ \div \vec{U} = 0
+ \f]
+
+ and momentum equation:
+
+ \f[
+ \div \left( \vec{U} \vec{U} \right) - \div \gvec{R}
+ = - \grad p + \vec{S}_U
+ \f]
+
+ Where:
+ \vartable
+ \vec{U} | Velocity
+ p | Pressure
+ \vec{R} | Stress tensor
+ \vec{S}_U | Momentum source
+ \endvartable
+
+ \heading Required fields
+ \plaintable
+ U | Velocity [m/s]
+ p | Kinematic pressure, p/rho [m2/s2]
+ \ | As required by user selection
+ \endplaintable
\*---------------------------------------------------------------------------*/
@@ -33,7 +65,7 @@ Description
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "simpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -50,6 +82,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
index 8999e03663..22c16b4c80 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
+++ b/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
@@ -24,6 +24,9 @@ License
Application
DPMFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient solver for the coupled transport of a single kinematic particle
cloud including the effect of the volume fraction of particles on the
diff --git a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/MPPICFoam.C b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/MPPICFoam.C
index 69048cf5a6..4bb369f11b 100644
--- a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/MPPICFoam.C
+++ b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/MPPICFoam.C
@@ -24,6 +24,9 @@ License
Application
MPPICFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient solver for the coupled transport of a single kinematic particle
cloud including the effect of the volume fraction of particles on the
diff --git a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
index 21a47f8893..aed6969724 100644
--- a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
@@ -20,6 +20,7 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools \
-llagrangian \
-llagrangianIntermediate \
diff --git a/applications/solvers/lagrangian/DPMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/Make/options
index 75f2b0a88c..8ab44318e6 100644
--- a/applications/solvers/lagrangian/DPMFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/Make/options
@@ -32,4 +32,5 @@ EXE_LIBS = \
-lsurfaceFilmModels \
-lsampling \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
index 35e1cb7fb6..9c23effa57 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/Make/options
+++ b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
@@ -24,7 +24,6 @@ EXE_INC = \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
index 3bfb2be776..dbf2a79605 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
+++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
@@ -24,14 +24,16 @@ License
Application
coalChemistryFoam
+Group
+ grpLagrangianSolvers
+
Description
- Transient solver for:
- - compressible,
- - turbulent flow,
- with
- - coal and limestone parcel injections,
- - energy source, and
- - combustion.
+ Transient PIMPLE solver for compressible, laminar or turbulent flow with
+ coal and thermodynamic parcels, and combustion.
+
+ Note:
+ - includes run-time selectable finite volume options, e.g. sources,
+ constraints
\*---------------------------------------------------------------------------*/
@@ -40,7 +42,7 @@ Description
#include "basicThermoCloud.H"
#include "coalCloud.H"
#include "psiCombustionModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "radiationModel.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
@@ -68,6 +70,8 @@ int main(int argc, char *argv[])
#include "createClouds.H"
#include "createRadiationModel.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
index cb41f9a407..2f9a7ce6f4 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
@@ -17,7 +17,7 @@ const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.contains(inertSpecie))
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Specified inert specie '" << inertSpecie << "' not found in "
<< "species list. Available species:" << composition.species()
<< exit(FatalError);
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
index 1f2e7a32db..0004a128e4 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
@@ -28,6 +28,7 @@ EXE_LIBS = \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools \
-lregionModels \
-lsurfaceFilmModels
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
index a6a35147e9..4f94e7f64f 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
@@ -32,6 +32,7 @@ EXE_LIBS = \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools \
-lregionModels \
-lsurfaceFilmModels \
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/icoUncoupledKinematicParcelDyMFoam.C b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/icoUncoupledKinematicParcelDyMFoam.C
index b355148a94..0110832f2d 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/icoUncoupledKinematicParcelDyMFoam.C
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/icoUncoupledKinematicParcelDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
uncoupledKinematicParcelDyMFoam
+Group
+ grpLagrangianSolvers grpMovingMeshSolvers
+
Description
Transient solver for the passive transport of a single kinematic
particle cloud.
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelFoam.C b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelFoam.C
index befcb57d02..42273c1be5 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelFoam.C
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelFoam.C
@@ -24,6 +24,9 @@ License
Application
icoUncoupledKinematicParcelFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient solver for the passive transport of a single kinematic
particle cloud.
diff --git a/applications/solvers/lagrangian/lagrangianSolversDoc.H b/applications/solvers/lagrangian/lagrangianSolversDoc.H
new file mode 100644
index 0000000000..7eb88c4f3f
--- /dev/null
+++ b/applications/solvers/lagrangian/lagrangianSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpLagrangianSolvers Lagrangian solvers
+@{
+ \ingroup grpSolvers
+ This group contains Lagrangian solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
index fedb72a15c..8b2729e8c0 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
@@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I${LIB_SRC}/sampling/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
index 98b33ff285..8014596ae6 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
@@ -24,6 +24,9 @@ License
Application
reactingParcelFilmFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient PIMPLE solver for compressible, laminar or turbulent flow with
reacting Lagrangian parcels, and surface film modelling.
@@ -37,7 +40,7 @@ Description
#include "psiCombustionModel.H"
#include "radiationModel.H"
#include "SLGThermo.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -63,6 +66,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index a797d28efb..755aa59e9a 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -23,7 +23,6 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(FOAM_SOLVERS)/combustion/reactingFoam
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index 9d05da0425..54f0e9e9b2 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -17,7 +17,7 @@ const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.contains(inertSpecie))
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Specified inert specie '" << inertSpecie << "' not found in "
<< "species list. Available species:" << composition.species()
<< exit(FatalError);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
index b3e758df12..8ccd5d5ecd 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
@@ -24,10 +24,16 @@ License
Application
reactingParcelFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient PIMPLE solver for compressible, laminar or turbulent flow with
- reacting multiphase Lagrangian parcels, including run-time selectable
- finite volume options, e.g. sources, constraints
+ reacting multiphase Lagrangian parcels.
+
+ Note:
+ - includes run-time selectable finite volume options, e.g. sources,
+ constraints
\*---------------------------------------------------------------------------*/
@@ -36,7 +42,7 @@ Description
#include "basicReactingMultiphaseCloud.H"
#include "rhoCombustionModel.H"
#include "radiationModel.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
#include "localEulerDdtScheme.H"
@@ -63,6 +69,8 @@ int main(int argc, char *argv[])
#include "createMRF.H"
#include "createFvOptions.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "compressibleCourantNo.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
index a797d28efb..755aa59e9a 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
@@ -23,7 +23,6 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(FOAM_SOLVERS)/combustion/reactingFoam
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
index cfabbfb5b0..7a26729e54 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
@@ -17,7 +17,7 @@ const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.contains(inertSpecie))
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Specified inert specie '" << inertSpecie << "' not found in "
<< "species list. Available species:" << composition.species()
<< exit(FatalError);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
index 9a49318c23..a04bc4aa5e 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
@@ -24,6 +24,9 @@ License
Application
simpleReactingParcelFoam
+Group
+ grpLagrangianSolvers
+
Description
Steady state SIMPLE solver for compressible, laminar or turbulent flow with
reacting multiphase Lagrangian parcels, including run-time selectable
@@ -37,7 +40,7 @@ Description
#include "rhoCombustionModel.H"
#include "radiationModel.H"
#include "IOporosityModelList.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "SLGThermo.H"
#include "simpleControl.H"
@@ -60,6 +63,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/files b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/files
new file mode 100644
index 0000000000..963e828de6
--- /dev/null
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/files
@@ -0,0 +1,3 @@
+simpleCoalParcelFoam.C
+
+EXE = $(FOAM_APPBIN)/simpleCoalParcelFoam
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
new file mode 100644
index 0000000000..efdf721ee3
--- /dev/null
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
@@ -0,0 +1,57 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I${LIB_SRC}/meshTools/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+ -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+ -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+ -I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
+ -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+ -I$(LIB_SRC)/ODE/lnInclude \
+ -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
+ -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+ -I$(LIB_SRC)/combustionModels/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(FOAM_SOLVERS)/lagrangian/reactingParcelFoam/simpleReactingParcelFoam
+
+
+EXE_LIBS = \
+ -lfiniteVolume \
+ -lmeshTools \
+ -lturbulenceModels \
+ -lcompressibleTurbulenceModels \
+ -llagrangian \
+ -llagrangianIntermediate \
+ -llagrangianTurbulence \
+ -lspecie \
+ -lfluidThermophysicalModels \
+ -lliquidProperties \
+ -lliquidMixtureProperties \
+ -lsolidProperties \
+ -lsolidMixtureProperties \
+ -lthermophysicalFunctions \
+ -lreactionThermophysicalModels \
+ -lSLGThermo \
+ -lchemistryModel \
+ -lradiationModels \
+ -lODE \
+ -lregionModels \
+ -lsurfaceFilmModels \
+ -lcombustionModels \
+ -lfvOptions \
+ -lsampling \
+ -lcoalCombustion
+
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/createClouds.H b/applications/solvers/lagrangian/simpleCoalParcelFoam/createClouds.H
new file mode 100644
index 0000000000..3a371a0f10
--- /dev/null
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/createClouds.H
@@ -0,0 +1,9 @@
+Info<< "\nConstructing coal cloud" << endl;
+coalCloud parcels
+(
+ "reactingCloud1",
+ rho,
+ U,
+ g,
+ slgThermo
+);
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/simpleCoalParcelFoam.C b/applications/solvers/lagrangian/simpleCoalParcelFoam/simpleCoalParcelFoam.C
new file mode 100644
index 0000000000..5db8e7ede5
--- /dev/null
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/simpleCoalParcelFoam.C
@@ -0,0 +1,100 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenCFD Ltd
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Application
+ simpleReactingParcelFoam
+
+Description
+ Steady state SIMPLE solver for laminar or turbulent flow with coal
+ Lagrangian parcels.
+
+ Note:
+ - including run-time selectable finite volume options,e.g. sources,
+ constraints
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "turbulentFluidThermoModel.H"
+#include "coalCloud.H"
+#include "rhoCombustionModel.H"
+#include "radiationModel.H"
+#include "IOporosityModelList.H"
+#include "fvOptions.H"
+#include "SLGThermo.H"
+#include "simpleControl.H"
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "setRootCase.H"
+
+ #include "createTime.H"
+ #include "createMesh.H"
+ #include "readGravitationalAcceleration.H"
+
+ simpleControl simple(mesh);
+
+ #include "createFields.H"
+ #include "createRadiationModel.H"
+ #include "createClouds.H"
+ #include "createMRF.H"
+ #include "createFvOptions.H"
+ #include "initContinuityErrs.H"
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ Info<< "\nStarting time loop\n" << endl;
+
+ while (simple.loop())
+ {
+ Info<< "Time = " << runTime.timeName() << nl << endl;
+
+ parcels.evolve();
+
+ // --- Pressure-velocity SIMPLE corrector loop
+ {
+ #include "UEqn.H"
+ #include "YEqn.H"
+ #include "EEqn.H"
+ #include "pEqn.H"
+ }
+
+ turbulence->correct();
+
+ runTime.write();
+
+ Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+ << " ClockTime = " << runTime.elapsedClockTime() << " s"
+ << nl << endl;
+ }
+
+ Info<< "End\n" << endl;
+
+ return(0);
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options
index 5e01b76369..af719ec4c2 100644
--- a/applications/solvers/lagrangian/sprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/Make/options
@@ -24,7 +24,6 @@ EXE_INC = \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/lagrangian/sprayFoam/createFields.H b/applications/solvers/lagrangian/sprayFoam/createFields.H
index 7cc45050ce..e043feb221 100644
--- a/applications/solvers/lagrangian/sprayFoam/createFields.H
+++ b/applications/solvers/lagrangian/sprayFoam/createFields.H
@@ -17,7 +17,7 @@ const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.contains(inertSpecie))
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Specified inert specie '" << inertSpecie << "' not found in "
<< "species list. Available species:" << composition.species()
<< exit(FatalError);
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
index 6ffe1ddd9f..75d59e0933 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
@@ -26,7 +26,6 @@ EXE_INC = \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
index 38ac4e515b..ff36ee4c48 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
sprayDyMFoam
+Group
+ grpLagrangianSolvers grpMovingMeshSolvers
+
Description
Transient PIMPLE solver for compressible, laminar or turbulent flow with
spray parcels and support for moving meshes.
@@ -39,7 +42,7 @@ Description
#include "SLGThermo.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -63,6 +66,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
index 576c892149..69fd826ce6 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
@@ -27,7 +27,6 @@ EXE_INC = \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
index 730d0f3fb4..7d2b3b2100 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
@@ -24,6 +24,9 @@ License
Application
sprayEngineFoam
+Group
+ grpLagrangianSolvers grpMovingMeshSolvers
+
Description
Transient PIMPLE solver for compressible, laminar or turbulent engine
flow swith spray parcels.
@@ -39,7 +42,7 @@ Description
#include "radiationModel.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -65,6 +68,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "startSummary.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
index 066ce82f68..28e6caa581 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
@@ -24,6 +24,9 @@ License
Application
sprayFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient PIMPLE solver for compressible, laminar or turbulent flow with
spray parcels.
@@ -37,7 +40,7 @@ Description
#include "radiationModel.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -61,6 +64,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
index 0726b90a3f..f9056dd790 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
@@ -25,6 +25,7 @@ EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools \
-lregionModels \
-lsurfaceFilmModels
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
index 6545c4d72b..c6b592fb45 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
@@ -24,6 +24,9 @@ License
Application
uncoupledKinematicParcelFoam
+Group
+ grpLagrangianSolvers
+
Description
Transient solver for the passive transport of a single kinematic
particle cloud.
diff --git a/applications/solvers/multiphase/cavitatingFoam/Make/options b/applications/solvers/multiphase/cavitatingFoam/Make/options
index c4628e3498..02d5a1cc3e 100644
--- a/applications/solvers/multiphase/cavitatingFoam/Make/options
+++ b/applications/solvers/multiphase/cavitatingFoam/Make/options
@@ -14,4 +14,5 @@ EXE_LIBS = \
-lincompressibleTurbulenceModels \
-lbarotropicCompressibilityModel \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
index 5ec5c9a72c..b5d7b2cdfa 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
@@ -17,6 +17,7 @@ EXE_LIBS = \
-lincompressibleTurbulenceModels \
-lbarotropicCompressibilityModel \
-lfiniteVolume \
+ -lfvOptions \
-ldynamicMesh \
-ldynamicFvMesh \
-lmeshTools
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
index 189208de95..e2305c4f70 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
cavitatingFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Transient cavitation code based on the homogeneous equilibrium model
from which the compressibility of the liquid/vapour "mixture" is obtained.
@@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
index b521f5b9c6..3fd2ea3780 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
@@ -24,6 +24,9 @@ License
Application
cavitatingFoam
+Group
+ grpMultiphaseSolvers
+
Description
Transient cavitation code based on the homogeneous equilibrium model
from which the compressibility of the liquid/vapour "mixture" is obtained.
@@ -55,6 +58,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index af8f0442e1..e24e6697f9 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -20,4 +20,5 @@ EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index 01b2a8d5a1..cc7d5a2832 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -25,4 +25,5 @@ EXE_LIBS = \
-ldynamicMesh \
-lmeshTools \
-ldynamicFvMesh \
- -lfiniteVolume
+ -lfiniteVolume \
+ -lfvOptions
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 4e40addf20..0f6bf83172 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
compressibleInterDyMFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Solver for 2 compressible, non-isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach,
@@ -66,6 +69,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index 7736099eaa..bb7548164b 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -24,6 +24,9 @@ License
Application
compressibleInterFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for 2 compressible, non-isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach.
@@ -61,6 +64,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
index e9c5322c79..a3217a073b 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -152,7 +152,7 @@ Foam::tmp Foam::twoPhaseMixtureThermo::THE
const labelList& cells
) const
{
- notImplemented("twoPhaseMixtureThermo::THE(...)");
+ NotImplemented;
return T0;
}
@@ -165,7 +165,7 @@ Foam::tmp Foam::twoPhaseMixtureThermo::THE
const label patchi
) const
{
- notImplemented("twoPhaseMixtureThermo::THE(...)");
+ NotImplemented;
return T0;
}
@@ -267,6 +267,26 @@ Foam::tmp Foam::twoPhaseMixtureThermo::CpByCpv
}
+Foam::tmp Foam::twoPhaseMixtureThermo::nu() const
+{
+ return mu()/(alpha1()*thermo1_->rho() + alpha2()*thermo2_->rho());
+}
+
+
+Foam::tmp Foam::twoPhaseMixtureThermo::nu
+(
+ const label patchi
+) const
+{
+ return
+ mu(patchi)
+ /(
+ alpha1().boundaryField()[patchi]*thermo1_->rho(patchi)
+ + alpha2().boundaryField()[patchi]*thermo2_->rho(patchi)
+ );
+}
+
+
Foam::tmp Foam::twoPhaseMixtureThermo::kappa() const
{
return alpha1()*thermo1_->kappa() + alpha2()*thermo2_->kappa();
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
index b8320bd105..3cde04bb46 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
@@ -122,14 +122,14 @@ public:
// Non-const access allowed for transport equations
virtual volScalarField& he()
{
- notImplemented("twoPhaseMixtureThermo::he()");
+ NotImplemented;
return thermo1_->he();
}
//- Enthalpy/Internal energy [J/kg]
virtual const volScalarField& he() const
{
- notImplemented("twoPhaseMixtureThermo::he() const");
+ NotImplemented;
return thermo1_->he();
}
@@ -239,6 +239,12 @@ public:
// Fields derived from transport state variables
+ //- Kinematic viscosity of mixture [m^2/s]
+ virtual tmp nu() const;
+
+ //- Kinematic viscosity of mixture for patch [m^2/s]
+ virtual tmp nu(const label patchi) const;
+
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
virtual tmp kappa() const;
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
index 59a9ba5a26..b237353985 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
@@ -19,4 +19,5 @@ EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
index 4fd75efebf..667941ecc5 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
@@ -24,6 +24,9 @@ License
Application
compressibleMultiphaseInterFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for n compressible, non-isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach.
@@ -56,6 +59,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
index 7733cf1364..55af594283 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
@@ -270,7 +270,7 @@ Foam::tmp Foam::multiphaseMixtureThermo::THE
const labelList& cells
) const
{
- notImplemented("multiphaseMixtureThermo::THE(...)");
+ NotImplemented;
return T0;
}
@@ -283,7 +283,7 @@ Foam::tmp Foam::multiphaseMixtureThermo::THE
const label patchi
) const
{
- notImplemented("multiphaseMixtureThermo::THE(...)");
+ NotImplemented;
return T0;
}
@@ -303,6 +303,28 @@ Foam::tmp Foam::multiphaseMixtureThermo::rho() const
}
+Foam::tmp Foam::multiphaseMixtureThermo::rho
+(
+ const label patchi
+) const
+{
+ PtrDictionary::const_iterator phasei = phases_.begin();
+
+ tmp trho
+ (
+ phasei().boundaryField()[patchi]*phasei().thermo().rho(patchi)
+ );
+
+ for (++phasei; phasei != phases_.end(); ++phasei)
+ {
+ trho() +=
+ phasei().boundaryField()[patchi]*phasei().thermo().rho(patchi);
+ }
+
+ return trho;
+}
+
+
Foam::tmp Foam::multiphaseMixtureThermo::Cp() const
{
PtrDictionary::const_iterator phasei = phases_.begin();
@@ -501,6 +523,21 @@ Foam::tmp Foam::multiphaseMixtureThermo::CpByCpv
}
+Foam::tmp Foam::multiphaseMixtureThermo::nu() const
+{
+ return mu()/rho();
+}
+
+
+Foam::tmp Foam::multiphaseMixtureThermo::nu
+(
+ const label patchi
+) const
+{
+ return mu(patchi)/rho(patchi);
+}
+
+
Foam::tmp Foam::multiphaseMixtureThermo::kappa() const
{
PtrDictionary::const_iterator phasei = phases_.begin();
@@ -680,10 +717,8 @@ Foam::multiphaseMixtureThermo::surfaceTensionForce() const
if (sigma == sigmas_.end())
{
- FatalErrorIn
- (
- "multiphaseMixtureThermo::surfaceTensionForce() const"
- ) << "Cannot find interface " << interfacePair(alpha1, alpha2)
+ FatalErrorInFunction
+ << "Cannot find interface " << interfacePair(alpha1, alpha2)
<< " in list of sigma values"
<< exit(FatalError);
}
@@ -811,12 +846,8 @@ void Foam::multiphaseMixtureThermo::correctContactAngle
if (tp == acap.thetaProps().end())
{
- FatalErrorIn
- (
- "multiphaseMixtureThermo::correctContactAngle"
- "(const phaseModel& alpha1, const phaseModel& alpha2, "
- "fvPatchVectorFieldField& nHatb) const"
- ) << "Cannot find interface " << interfacePair(alpha1, alpha2)
+ FatalErrorInFunction
+ << "Cannot find interface " << interfacePair(alpha1, alpha2)
<< "\n in table of theta properties for patch "
<< acap.patch().name()
<< exit(FatalError);
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H
index a769a45914..b62ea97f68 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.H
@@ -253,14 +253,14 @@ public:
// Non-const access allowed for transport equations
virtual volScalarField& he()
{
- notImplemented("multiphaseMixtureThermo::he()");
+ NotImplemented;
return phases_[0].thermo().he();
}
//- Enthalpy/Internal energy [J/kg]
virtual const volScalarField& he() const
{
- notImplemented("multiphaseMixtureThermo::he() const");
+ NotImplemented;
return phases_[0].thermo().he();
}
@@ -315,6 +315,9 @@ public:
//- Density [kg/m^3]
virtual tmp rho() const;
+ //- Density for patch [kg/m^3]
+ virtual tmp rho(const label patchi) const;
+
//- Heat capacity at constant pressure [J/kg/K]
virtual tmp Cp() const;
@@ -373,6 +376,12 @@ public:
// Fields derived from transport state variables
+ //- Kinematic viscosity of mixture [m^2/s]
+ virtual tmp nu() const;
+
+ //- Kinematic viscosity of mixture for patch [m^2/s]
+ virtual tmp nu(const label patchi) const;
+
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
virtual tmp kappa() const;
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/phaseModel/phaseModel.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/phaseModel/phaseModel.C
index 1559f25a48..2d3a7b6163 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/phaseModel/phaseModel.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -80,7 +80,7 @@ Foam::phaseModel::phaseModel
Foam::autoPtr Foam::phaseModel::clone() const
{
- notImplemented("phaseModel::clone() const");
+ NotImplemented;
return autoPtr(NULL);
}
diff --git a/applications/solvers/multiphase/driftFluxFoam/Make/options b/applications/solvers/multiphase/driftFluxFoam/Make/options
index b237960a08..a92f599820 100644
--- a/applications/solvers/multiphase/driftFluxFoam/Make/options
+++ b/applications/solvers/multiphase/driftFluxFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
diff --git a/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C b/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
index 3b88b1b956..d35c3a262b 100644
--- a/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
+++ b/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
@@ -24,6 +24,9 @@ License
Application
driftFluxFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for 2 incompressible fluids using the mixture approach with the
drift-flux approximation for relative motion of the phases.
@@ -41,7 +44,7 @@ Description
#include "turbulenceModel.H"
#include "CompressibleTurbulenceModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "gaussLaplacianScheme.H"
#include "uncorrectedSnGrad.H"
@@ -63,6 +66,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/mixtureViscosityModel/mixtureViscosityModelNew.C b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/mixtureViscosityModel/mixtureViscosityModelNew.C
index ecd9c25623..b36e3f6e77 100644
--- a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/mixtureViscosityModel/mixtureViscosityModelNew.C
+++ b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/mixtureViscosityModel/mixtureViscosityModelNew.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -46,11 +46,8 @@ Foam::autoPtr Foam::mixtureViscosityModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "mixtureViscosityModel::New(const volVectorField&, "
- "const surfaceScalarField&)"
- ) << "Unknown mixtureViscosityModel type "
+ FatalErrorInFunction
+ << "Unknown mixtureViscosityModel type "
<< modelType << nl << nl
<< "Valid mixtureViscosityModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
index 578b23f38b..be4de6b2c0 100644
--- a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
+++ b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -82,13 +82,8 @@ Foam::autoPtr Foam::relativeVelocityModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "relativeVelocityModel::New"
- "("
- "const dictionary&"
- ")"
- ) << "Unknown time scale model type " << modelType
+ FatalErrorInFunction
+ << "Unknown time scale model type " << modelType
<< ", constructor not in hash table" << nl << nl
<< " Valid time scale model types are:" << nl
<< dictionaryConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options
index df659a93d2..cfe4a92072 100644
--- a/applications/solvers/multiphase/interFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H
index a2e9097e30..6a24830137 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/interFoam/alphaEqn.H
@@ -25,7 +25,7 @@
{
if (nAlphaSubCycles > 1)
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Sub-cycling is not supported "
"with the CrankNicolson ddt scheme"
<< exit(FatalError);
@@ -36,7 +36,7 @@
}
else
{
- FatalErrorIn(args.executable())
+ FatalErrorInFunction
<< "Only Euler and CrankNicolson ddt schemes are supported"
<< exit(FatalError);
}
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
index 2e8c289ff7..33aac0ab4a 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
@@ -11,7 +11,6 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index f30a195806..7f3f677349 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
interDyMFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Solver for 2 incompressible, isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach,
@@ -42,7 +45,7 @@ Description
#include "immiscibleIncompressibleTwoPhaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H"
@@ -82,6 +85,8 @@ int main(int argc, char *argv[])
#include "correctPhi.H"
#include "createUf.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "CourantNo.H"
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 26f22af205..c6dc2f47e4 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -24,6 +24,9 @@ License
Application
interFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for 2 incompressible, isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach.
@@ -46,7 +49,7 @@ Description
#include "immiscibleIncompressibleTwoPhaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H"
@@ -70,6 +73,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "correctPhi.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "readTimeControls.H"
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
index 7198616b30..53234dcaee 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
@@ -11,7 +11,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index 1a0ae893c2..59180b8723 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -79,10 +79,12 @@ autoPtr turbulence
incompressible::turbulenceModel::New(U, phi, mixture)
);
+
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
#include "gh.H"
+
volScalarField p
(
IOobject
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
index 86a05e71f1..201b6bb926 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
@@ -24,6 +24,9 @@ License
Application
interMixingFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for 3 incompressible fluids, two of which are miscible,
using a VOF method to capture the interface.
@@ -36,7 +39,7 @@ Description
#include "immiscibleIncompressibleThreePhaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H"
@@ -60,6 +63,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "correctPhi.H"
+ turbulence->validate();
+
if (!LTS)
{
#include "readTimeControls.H"
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
index 254f3ad8be..a29ad660e8 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
@@ -8,7 +8,6 @@ EXE_INC = \
-IphaseChangeTwoPhaseMixtures/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude\
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
index 0512ee1946..0a4397e063 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
@@ -11,7 +11,6 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude\
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
index 93e4ebc0d1..a3b3e64cbc 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
interPhaseChangeDyMFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Solver for 2 incompressible, isothermal immiscible fluids with phase-change
(e.g. cavitation). Uses a VOF (volume of fluid) phase-fraction based
@@ -49,7 +52,7 @@ Description
#include "phaseChangeTwoPhaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -86,6 +89,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index 8552126034..525efbc3ab 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -24,6 +24,9 @@ License
Application
interPhaseChangeFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for 2 incompressible, isothermal immiscible fluids with phase-change
(e.g. cavitation). Uses a VOF (volume of fluid) phase-fraction based
@@ -47,7 +50,7 @@ Description
#include "phaseChangeTwoPhaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -66,6 +69,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C
index 0a86459705..0825368e5c 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -62,10 +62,8 @@ Foam::phaseChangeTwoPhaseMixture::New
if (cstrIter == componentsConstructorTablePtr_->end())
{
- FatalErrorIn
- (
- "phaseChangeTwoPhaseMixture::New"
- ) << "Unknown phaseChangeTwoPhaseMixture type "
+ FatalErrorInFunction
+ << "Unknown phaseChangeTwoPhaseMixture type "
<< phaseChangeTwoPhaseMixtureTypeName << endl << endl
<< "Valid phaseChangeTwoPhaseMixtures are : " << endl
<< componentsConstructorTablePtr_->sortedToc()
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
index a18d189f7c..2cb9a28a02 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
@@ -22,4 +22,5 @@ EXE_LIBS = \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lfiniteVolume \
+ -lfvOptions \
-lmeshTools
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
index 72542bc01b..3bdd49ec7a 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -46,7 +46,7 @@ Foam::autoPtr Foam::dragModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("dragModel::New")
+ FatalErrorInFunction
<< "Unknown dragModelType type "
<< dragModelType << endl << endl
<< "Valid dragModel types are : " << endl
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
index aaa972032d..deabfc900f 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
@@ -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-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -50,7 +50,7 @@ Foam::autoPtr Foam::heatTransferModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("heatTransferModel::New")
+ FatalErrorInFunction
<< "Unknown heatTransferModelType type "
<< heatTransferModelType << endl << endl
<< "Valid heatTransferModel types are : " << endl
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
index 8244f739d7..2ec41b40f8 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
@@ -24,6 +24,9 @@ License
Application
multiphaseEulerFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for a system of many compressible fluid phases including
heat-transfer.
@@ -61,6 +64,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
index b9014f3f46..b58f00291b 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -48,7 +48,7 @@ Foam::autoPtr Foam::diameterModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("diameterModel::New")
+ FatalErrorInFunction
<< "Unknown diameterModelType type "
<< diameterModelType << endl << endl
<< "Valid diameterModel types are : " << endl
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index 767600e394..d0cd5c9b18 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -295,12 +295,8 @@ void Foam::multiphaseSystem::correctContactAngle
if (tp == acap.thetaProps().end())
{
- FatalErrorIn
- (
- "multiphaseSystem::correctContactAngle"
- "(const phaseModel& phase1, const phaseModel& phase2, "
- "fvPatchVectorFieldField& nHatb) const"
- ) << "Cannot find interface " << interfacePair(phase1, phase2)
+ FatalErrorInFunction
+ << "Cannot find interface " << interfacePair(phase1, phase2)
<< "\n in table of theta properties for patch "
<< acap.patch().name()
<< exit(FatalError);
@@ -478,12 +474,8 @@ Foam::multiphaseSystem::multiphaseSystem
if (cAlpha == cAlphas_.end())
{
- WarningIn
- (
- "multiphaseSystem::multiphaseSystem"
- "(const volVectorField& U,"
- "const surfaceScalarField& phi)"
- ) << "Compression coefficient not specified for "
+ WarningInFunction
+ << "Compression coefficient not specified for "
"phase pair ("
<< phase1.name() << ' ' << phase2.name()
<< ") for which a surface tension "
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
index f107cfb440..9dc9f2bf80 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
@@ -201,7 +201,7 @@ Foam::phaseModel::~phaseModel()
Foam::autoPtr Foam::phaseModel::clone() const
{
- notImplemented("phaseModel::clone() const");
+ NotImplemented;
return autoPtr(NULL);
}
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
index 2eb366fd98..0cd432b02c 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
index f6419312ce..1a210c20e6 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
@@ -11,7 +11,6 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
index a04341c7ba..a4413f6295 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
multiphaseInterFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Solver for n incompressible fluids which captures the interfaces and
includes surface-tension and contact-angle effects for each phase.
@@ -37,7 +40,7 @@ Description
#include "multiphaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -76,6 +79,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
index 0fb8ff1208..130c9f1cb6 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
@@ -24,6 +24,9 @@ License
Application
multiphaseInterFoam
+Group
+ grpMultiphaseSolvers
+
Description
Solver for n incompressible fluids which captures the interfaces and
includes surface-tension and contact-angle effects for each phase.
@@ -36,7 +39,7 @@ Description
#include "multiphaseMixture.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
#include "setInitialDeltaT.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index f1305897ba..1bbd3177af 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -288,7 +288,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
if (sigma == sigmas_.end())
{
- FatalErrorIn("multiphaseMixture::surfaceTensionForce() const")
+ FatalErrorInFunction
<< "Cannot find interface " << interfacePair(alpha1, alpha2)
<< " in list of sigma values"
<< exit(FatalError);
@@ -442,12 +442,8 @@ void Foam::multiphaseMixture::correctContactAngle
if (tp == acap.thetaProps().end())
{
- FatalErrorIn
- (
- "multiphaseMixture::correctContactAngle"
- "(const phase& alpha1, const phase& alpha2, "
- "fvPatchVectorFieldField& nHatb) const"
- ) << "Cannot find interface " << interfacePair(alpha1, alpha2)
+ FatalErrorInFunction
+ << "Cannot find interface " << interfacePair(alpha1, alpha2)
<< "\n in table of theta properties for patch "
<< acap.patch().name()
<< exit(FatalError);
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.C
index f3adfa9b61..ae68ff1682 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.C
@@ -67,7 +67,7 @@ Foam::phase::phase
Foam::autoPtr Foam::phase::clone() const
{
- notImplemented("phase::clone() const");
+ NotImplemented;
return autoPtr(NULL);
}
diff --git a/applications/solvers/multiphase/multiphaseSolversDoc.H b/applications/solvers/multiphase/multiphaseSolversDoc.H
new file mode 100644
index 0000000000..1efb73e01b
--- /dev/null
+++ b/applications/solvers/multiphase/multiphaseSolversDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ You should have received a copy of the GNU General Public License along with
+ OpenFOAM. If not, see .
+
+\defgroup grpMultiphaseSolvers Multiphase solvers
+@{
+ \ingroup grpSolvers
+ This group contains multiphase solvers.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
index 72a106ba1e..2026e36fb6 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
index df44bd78a0..4c789c10bb 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
@@ -9,7 +9,6 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
index b740ab2b9b..7687ba6aab 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
potentialFreeSurfaceDyMFoam
+Group
+ grpMultiphaseSolvers grpMovingMeshSolvers
+
Description
Incompressible Navier-Stokes solver with inclusion of a wave height field
to enable single-phase free-surface approximations.
@@ -42,7 +45,7 @@ Description
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fixedFluxPressureFvPatchScalarField.H"
@@ -79,6 +82,8 @@ int main(int argc, char *argv[])
#include "correctPhi.H"
#include "createUf.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
index b98bdb694d..0bbb2c1807 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
@@ -24,6 +24,9 @@ License
Application
potentialFreeSurfaceFoam
+Group
+ grpMultiphaseSolvers
+
Description
Incompressible Navier-Stokes solver with inclusion of a wave height field
to enable single-phase free-surface approximations
@@ -38,7 +41,7 @@ Description
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -58,6 +61,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H"
#include "initContinuityErrs.H"
+ turbulence->validate();
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files
index 35878ec93a..0642107d64 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/files
@@ -16,6 +16,7 @@ saturationModels/saturationModel/newSaturationModel.C
saturationModels/Antoine/Antoine.C
saturationModels/AntoineExtended/AntoineExtended.C
saturationModels/ArdenBuck/ArdenBuck.C
+saturationModels/polynomial/polynomial.C
saturationModels/constantSaturationConditions/constantSaturationConditions.C
LIB = $(FOAM_LIBBIN)/libreactingEulerianInterfacialCompositionModels
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C
index 06754e2f86..03b21be490 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Henry/Henry.C
@@ -50,16 +50,8 @@ Foam::interfaceCompositionModels::Henry::Henry
{
if (k_.size() != this->speciesNames_.size())
{
- FatalErrorIn
- (
- "template "
- "Foam::interfaceCompositionModels::Henry:: "
- "Henry "
- "( "
- "const dictionary& dict, "
- "const phasePair& pair "
- ")"
- ) << "Differing number of species and solubilities"
+ FatalErrorInFunction
+ << "Differing number of species and solubilities"
<< exit(FatalError);
}
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C
index 169580e3cf..6818c243f1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/NonRandomTwoLiquid/NonRandomTwoLiquid.C
@@ -63,17 +63,8 @@ NonRandomTwoLiquid
{
if (this->speciesNames_.size() != 2)
{
- FatalErrorIn
- (
- "template"
- "Foam::interfaceCompositionModels::"
- "NonRandomTwoLiquid::"
- "NonRandomTwoLiquid"
- "( "
- "const dictionary& dict, "
- "const phasePair& pair "
- ")"
- ) << "NonRandomTwoLiquid model is suitable for two species only."
+ FatalErrorInFunction
+ << "NonRandomTwoLiquid model is suitable for two species only."
<< exit(FatalError);
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
index c0d9b64e39..435bb7df2a 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
@@ -64,16 +64,8 @@ Foam::interfaceCompositionModels::Saturated::Saturated
{
if (this->speciesNames_.size() != 1)
{
- FatalErrorIn
- (
- "template"
- "Foam::interfaceCompositionModels::Saturated::"
- "Saturated"
- "( "
- "const dictionary& dict, "
- "const phasePair& pair "
- ")"
- ) << "Saturated model is suitable for one species only."
+ FatalErrorInFunction
+ << "Saturated model is suitable for one species only."
<< exit(FatalError);
}
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C
index 8b04d8f5f1..16b3055687 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/interfaceCompositionModel/newInterfaceCompositionModel.C
@@ -54,7 +54,7 @@ Foam::interfaceCompositionModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("interfaceCompositionModel::New")
+ FatalErrorInFunction
<< "Unknown interfaceCompositionModelType type "
<< interfaceCompositionModelType << endl << endl
<< "Valid interfaceCompositionModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C
index d8ee288ef0..1251c98fe0 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/massTransferModels/massTransferModel/newMassTransferModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::massTransferModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("massTransferModel::New")
+ FatalErrorInFunction
<< "Unknown massTransferModelType type "
<< massTransferModelType << endl << endl
<< "Valid massTransferModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C
index 0c273ee866..90f1c989c5 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C
@@ -95,7 +95,7 @@ Foam::saturationModels::Antoine::Tsat
const volScalarField& p
) const
{
- return B_/(A_ - log10(p)) - C_;
+ return B_/(log(p) - A_) - C_;
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H
index ec9ba27b25..6252aaf817 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H
@@ -61,7 +61,7 @@ class Antoine
{
protected:
- // Private data
+ // Protected data
//- Constant A
dimensionedScalar A_;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C
index f05ee21b83..8e0ad9b316 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C
@@ -108,10 +108,7 @@ Foam::saturationModels::AntoineExtended::Tsat
const volScalarField& p
) const
{
- notImplemented
- (
- "saturationModels::AntoineExtended::Tsat(const volScalarField& p)"
- );
+ NotImplemented;
return volScalarField::null();
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C
index 4c27901589..273a63ca5f 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C
@@ -115,10 +115,7 @@ Foam::saturationModels::ArdenBuck::Tsat
const volScalarField& p
) const
{
- notImplemented
- (
- "saturationModels::ArdenBuck::Tsat(const volScalarField& p)"
- );
+ NotImplemented;
return volScalarField::null();
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.C
new file mode 100644
index 0000000000..886fefe8e8
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.C
@@ -0,0 +1,136 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "polynomial.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace saturationModels
+{
+ defineTypeNameAndDebug(polynomial, 0);
+ addToRunTimeSelectionTable(saturationModel, polynomial, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::saturationModels::polynomial::polynomial(const dictionary& dict)
+:
+ saturationModel(),
+ C_(dict.lookup("C<8>"))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::saturationModels::polynomial::~polynomial()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::tmp
+Foam::saturationModels::polynomial::pSat
+(
+ const volScalarField& T
+) const
+{
+ NotImplemented;
+ return volScalarField::null();
+}
+
+
+Foam::tmp
+Foam::saturationModels::polynomial::pSatPrime
+(
+ const volScalarField& T
+) const
+{
+ NotImplemented;
+ return volScalarField::null();
+}
+
+
+Foam::tmp
+Foam::saturationModels::polynomial::lnPSat
+(
+ const volScalarField& T
+) const
+{
+ NotImplemented;
+ return volScalarField::null();
+}
+
+
+Foam::tmp
+Foam::saturationModels::polynomial::Tsat
+(
+ const volScalarField& p
+) const
+{
+ tmp tTsat
+ (
+ new volScalarField
+ (
+ IOobject
+ (
+ "Tsat",
+ p.mesh().time().timeName(),
+ p.mesh(),
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ p.mesh(),
+ dimensionedScalar("zero", dimTemperature, 0)
+ )
+ );
+
+ volScalarField& Tsat = tTsat();
+
+ forAll(Tsat,celli)
+ {
+ Tsat[celli] = C_.value(p[celli]);
+ }
+
+ forAll(Tsat.boundaryField(), patchi)
+ {
+ scalarField& Tsatp = Tsat.boundaryField()[patchi];
+ const scalarField& pp = p.boundaryField()[patchi];
+
+ forAll(Tsatp, facei)
+ {
+ Tsatp[facei] = C_.value(pp[facei]);
+ }
+ }
+
+ return tTsat;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.H
new file mode 100644
index 0000000000..c2715040e2
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/polynomial/polynomial.H
@@ -0,0 +1,112 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::saturationModels::polynomial
+
+Description
+ Polynomial equation for the saturation vapour temperature in terms of
+ the vapour pressure (in Pa).
+
+ \f[
+ T_sat = \sum_i C_i p^i
+ \f]
+
+ where \f$p\f$ is the pressure in Pa and \f$C\f$ are the coefficients.
+
+ Currently this class only provides \f$T_sat\f$, the inverse function to
+ return the vapour pressure for a given temperature are not implemented.
+
+SourceFiles
+ polynomial.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef polynomial_H
+#define polynomial_H
+
+#include "saturationModel.H"
+#include "Polynomial.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace saturationModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class polynomial Declaration
+\*---------------------------------------------------------------------------*/
+
+class polynomial
+:
+ public saturationModel
+{
+ // Private data
+
+ //- Polynomial coefficients
+ Polynomial<8> C_;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("polynomial");
+
+ // Constructors
+
+ //- Construct from a dictionary
+ polynomial(const dictionary& dict);
+
+
+ //- Destructor
+ virtual ~polynomial();
+
+
+ // Member Functions
+
+ //- Saturation pressure
+ virtual tmp pSat(const volScalarField& T) const;
+
+ //- Saturation pressure derivetive w.r.t. temperature
+ virtual tmp pSatPrime(const volScalarField& T) const;
+
+ //- Natural log of the saturation pressure
+ virtual tmp lnPSat(const volScalarField& T) const;
+
+ //- Saturation temperature
+ virtual tmp Tsat(const volScalarField& p) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace saturationModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C
index 93770692a5..920d7c62c8 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/newSaturationModel.C
@@ -42,7 +42,7 @@ Foam::autoPtr Foam::saturationModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("saturationModel::New")
+ FatalErrorInFunction
<< "Unknown saturationModelType type "
<< saturationModelType << endl << endl
<< "Valid saturationModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
index 0b01665863..82359c0508 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
@@ -45,7 +45,7 @@ Foam::surfaceTensionModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("surfaceTensionModel::New")
+ FatalErrorInFunction
<< "Unknown surfaceTensionModelType type "
<< surfaceTensionModelType << endl << endl
<< "Valid surfaceTensionModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files
index 9a526d3625..1293886cde 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/files
@@ -25,6 +25,7 @@ liftModels/constantLiftCoefficient/constantLiftCoefficient.C
liftModels/Moraga/Moraga.C
liftModels/LegendreMagnaudet/LegendreMagnaudet.C
liftModels/TomiyamaLift/TomiyamaLift.C
+liftModels/wallDampedLift/wallDampedLift.C
heatTransferModels/heatTransferModel/heatTransferModel.C
heatTransferModels/heatTransferModel/newHeatTransferModel.C
@@ -61,4 +62,12 @@ aspectRatioModels/Wellek/Wellek.C
wallDependentModel/wallDependentModel.C
+wallDampingModels/wallDampingModel/wallDampingModel.C
+wallDampingModels/wallDampingModel/newWallDampingModel.C
+wallDampingModels/noWallDamping/noWallDamping.C
+wallDampingModels/interpolated/interpolatedWallDamping.C
+wallDampingModels/linear/linearWallDamping.C
+wallDampingModels/cosine/cosineWallDamping.C
+wallDampingModels/sine/sineWallDamping.C
+
LIB = $(FOAM_LIBBIN)/libreactingEulerianInterfacialModels
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C
index ff4cb63441..568c1b2682 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/aspectRatioModel/newAspectRatioModel.C
@@ -45,7 +45,7 @@ Foam::aspectRatioModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("aspectRatioModel::New")
+ FatalErrorInFunction
<< "Unknown aspectRatioModelType type "
<< aspectRatioModelType << endl << endl
<< "Valid aspectRatioModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C
index 386b06d6aa..a670b67e44 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.C
@@ -77,7 +77,7 @@ Foam::aspectRatioModels::constantAspectRatio::E() const
(
IOobject
(
- "zero",
+ aspectRatioModel::typeName + ":E",
mesh.time().timeName(),
mesh
),
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
index 041468a15b..e077e31b2d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::dragModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("dragModel::New")
+ FatalErrorInFunction
<< "Unknown dragModelType type "
<< dragModelType << endl << endl
<< "Valid dragModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C
index 2f3e0db699..00ca3d49ee 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/segregated/segregated.C
@@ -66,7 +66,7 @@ Foam::dragModels::segregated::~segregated()
Foam::tmp Foam::dragModels::segregated::CdRe() const
{
- FatalErrorIn("Foam::dragModels::segregated::CdRe() const")
+ FatalErrorInFunction
<< "Not implemented."
<< "Drag coefficient not defined for the segregated model."
<< exit(FatalError);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
index 24f02b69b4..8cdb07f297 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::heatTransferModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("heatTransferModel::New")
+ FatalErrorInFunction
<< "Unknown heatTransferModelType type "
<< heatTransferModelType << endl << endl
<< "Valid heatTransferModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C
index 5548dfd70a..fa364a68c1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C
@@ -79,11 +79,8 @@ Foam::tmp Foam::liftModels::Moraga::Cl() const
|| max(sqrSr).value() > 0.04
)
{
- WarningIn
- (
- "Foam::tmp "
- "Foam::liftModels::Moraga::Cl() const"
- ) << "Re and/or Sr are out of the range of applicability of the "
+ WarningInFunction
+ << "Re and/or Sr are out of the range of applicability of the "
<< "Moraga model. Clamping to range bounds"
<< endl;
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C
index c53ff96e3d..3da4caee7c 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/liftModel/newLiftModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::liftModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("liftModel::New")
+ FatalErrorInFunction
<< "Unknown liftModelType type "
<< liftModelType << endl << endl
<< "Valid liftModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.C
new file mode 100644
index 0000000000..b21b2ae03a
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.C
@@ -0,0 +1,91 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "wallDampedLift.H"
+#include "phasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace liftModels
+{
+ defineTypeNameAndDebug(wallDamped, 0);
+ addToRunTimeSelectionTable(liftModel, wallDamped, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::liftModels::wallDamped::wallDamped
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ liftModel(dict, pair),
+ liftModel_(liftModel::New(dict.subDict("lift"), pair)),
+ wallDampingModel_
+ (
+ wallDampingModel::New(dict.subDict("wallDamping"), pair)
+ )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::liftModels::wallDamped::~wallDamped()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::tmp Foam::liftModels::wallDamped::Cl() const
+{
+ return wallDampingModel_->damp(liftModel_->Cl());
+}
+
+
+Foam::tmp Foam::liftModels::wallDamped::Fi() const
+{
+ return wallDampingModel_->damp(liftModel_->Fi());
+}
+
+
+Foam::tmp Foam::liftModels::wallDamped::F() const
+{
+ return wallDampingModel_->damp(liftModel_->F());
+}
+
+
+Foam::tmp Foam::liftModels::wallDamped::Ff() const
+{
+ return wallDampingModel_->damp(liftModel_->Ff());
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.H
new file mode 100644
index 0000000000..8a13850dd8
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/liftModels/wallDampedLift/wallDampedLift.H
@@ -0,0 +1,112 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::liftModels::wallDamped
+
+Description
+
+SourceFiles
+ wallDamped.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef wallDampedLift_H
+#define wallDampedLift_H
+
+#include "liftModel.H"
+#include "wallDampingModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace liftModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class wallDamped Declaration
+\*---------------------------------------------------------------------------*/
+
+class wallDamped
+:
+ public liftModel
+{
+ // Private data
+
+ //- The lift model to damp
+ autoPtr liftModel_;
+
+ //- The wall-damping model
+ autoPtr wallDampingModel_;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("wallDamped");
+
+
+ // Constructors
+
+ //- Construct from a dictionary and a phase pair
+ wallDamped
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~wallDamped();
+
+
+ // Member Functions
+
+ //- Return lift coefficient
+ virtual tmp Cl() const;
+
+ //- Return phase-intensive lift force
+ virtual tmp Fi() const;
+
+ //- Return lift force
+ virtual tmp F() const;
+
+ //- Return face lift force
+ virtual tmp Ff() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace liftModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C
index 651286c3ee..a7181b4396 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/swarmCorrections/swarmCorrection/newSwarmCorrection.C
@@ -45,7 +45,7 @@ Foam::swarmCorrection::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("swarmCorrection::New")
+ FatalErrorInFunction
<< "Unknown swarmCorrectionType type "
<< swarmCorrectionType << endl << endl
<< "Valid swarmCorrection types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C
index 093013cca3..1f0fc837cb 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C
@@ -25,7 +25,7 @@ License
#include "Burns.H"
#include "phasePair.H"
-#include "PhaseCompressibleTurbulenceModel.H"
+#include "phaseCompressibleTurbulenceModel.H"
#include "addToRunTimeSelectionTable.H"
#include "dragModel.H"
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C
index a6f8a16fbd..98463216e8 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/Gosman/Gosman.C
@@ -25,7 +25,7 @@ License
#include "Gosman.H"
#include "phasePair.H"
-#include "PhaseCompressibleTurbulenceModel.H"
+#include "phaseCompressibleTurbulenceModel.H"
#include "addToRunTimeSelectionTable.H"
#include "dragModel.H"
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C
index 848911fe2d..68c0e1627d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/LopezDeBertodano/LopezDeBertodano.C
@@ -25,7 +25,7 @@ License
#include "LopezDeBertodano.H"
#include "phasePair.H"
-#include "PhaseCompressibleTurbulenceModel.H"
+#include "phaseCompressibleTurbulenceModel.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C
index fb8126c5d2..5488561463 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C
@@ -25,7 +25,7 @@ License
#include "constantTurbulentDispersionCoefficient.H"
#include "phasePair.H"
-#include "PhaseCompressibleTurbulenceModel.H"
+#include "phaseCompressibleTurbulenceModel.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C
index 14d560969b..e440e3d1ee 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C
@@ -45,7 +45,7 @@ Foam::turbulentDispersionModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("turbulentDispersionModel::New")
+ FatalErrorInFunction
<< "Unknown turbulentDispersionModelType type "
<< turbulentDispersionModelType << endl << endl
<< "Valid turbulentDispersionModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C
index 72f620a424..4c4ced9ddc 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/virtualMassModels/virtualMassModel/newVirtualMassModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::virtualMassModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("virtualMassModel::New")
+ FatalErrorInFunction
<< "Unknown virtualMassModelType type "
<< virtualMassModelType << endl << endl
<< "Valid virtualMassModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.C
new file mode 100644
index 0000000000..c204cf32f6
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.C
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "cosineWallDamping.H"
+#include "phasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallDampingModels
+{
+ defineTypeNameAndDebug(cosine, 0);
+ addToRunTimeSelectionTable
+ (
+ wallDampingModel,
+ cosine,
+ dictionary
+ );
+}
+}
+
+
+// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallDampingModels::cosine::limiter() const
+{
+ return
+ (
+ 0.5*
+ (
+ 1
+ - cos
+ (
+ constant::mathematical::pi
+ *min(yWall()/(Cd_*pair_.dispersed().d()), scalar(1))
+ )
+ )
+ );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::cosine::cosine
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ interpolated(dict, pair),
+ Cd_("Cd", dimless, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::cosine::~cosine()
+{}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.H
new file mode 100644
index 0000000000..0042c4e97a
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/cosine/cosineWallDamping.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModels::cosine
+
+Description
+
+SourceFiles
+ cosineWallDamping.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef cosineWallDamping_H
+#define cosineWallDamping_H
+
+#include "interpolatedWallDamping.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallDampingModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class cosine Declaration
+\*---------------------------------------------------------------------------*/
+
+class cosine
+:
+ public interpolated
+{
+ // Private data
+
+ //- Diameter coefficient
+ const dimensionedScalar Cd_;
+
+
+protected:
+
+ // Protected member functions
+
+ //- Return the force limiter field
+ virtual tmp limiter() const;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("cosine");
+
+
+ // Constructors
+
+ //- Construct from components
+ cosine
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~cosine();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallDampingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.C
new file mode 100644
index 0000000000..b1a9522636
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.C
@@ -0,0 +1,91 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "interpolatedWallDamping.H"
+#include "phasePair.H"
+#include "surfaceInterpolate.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallDampingModels
+{
+ defineTypeNameAndDebug(interpolated, 0);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::interpolated::interpolated
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ wallDampingModel(dict, pair)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::interpolated::~interpolated()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallDampingModels::interpolated::damp
+(
+ const tmp& F
+) const
+{
+ return limiter()*F;
+}
+
+
+Foam::tmp
+Foam::wallDampingModels::interpolated::damp
+(
+ const tmp& F
+) const
+{
+ return limiter()*F;
+}
+
+
+Foam::tmp
+Foam::wallDampingModels::interpolated::damp
+(
+ const tmp& Ff
+) const
+{
+ return fvc::interpolate(limiter())*Ff;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H
new file mode 100644
index 0000000000..d9eeef2609
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H
@@ -0,0 +1,116 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModels::interpolated
+
+Description
+
+SourceFiles
+ interpolatedWallDamping.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef interpolatedWallDamping_H
+#define interpolatedWallDamping_H
+
+#include "wallDampingModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallDampingModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class interpolated Declaration
+\*---------------------------------------------------------------------------*/
+
+class interpolated
+:
+ public wallDampingModel
+{
+protected:
+
+ // Protected member functions
+
+ //- Return the force limiter field
+ virtual tmp limiter() const = 0;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("interpolated");
+
+
+ // Constructors
+
+ //- Construct from components
+ interpolated
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~interpolated();
+
+
+ // Member Functions
+
+ //- Return damped coefficient
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+
+ //- Return damped force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+
+ //- Return damped face force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallDampingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.C
new file mode 100644
index 0000000000..bdb34973f2
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.C
@@ -0,0 +1,75 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "linearWallDamping.H"
+#include "phasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallDampingModels
+{
+ defineTypeNameAndDebug(linear, 0);
+ addToRunTimeSelectionTable
+ (
+ wallDampingModel,
+ linear,
+ dictionary
+ );
+}
+}
+
+
+// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallDampingModels::linear::limiter() const
+{
+ return min(yWall()/(Cd_*pair_.dispersed().d()), scalar(1));
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::linear::linear
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ interpolated(dict, pair),
+ Cd_("Cd", dimless, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::linear::~linear()
+{}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.H
new file mode 100644
index 0000000000..582baa3bdd
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/linear/linearWallDamping.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModels::linear
+
+Description
+
+SourceFiles
+ linearWallDamping.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef linearWallDamping_H
+#define linearWallDamping_H
+
+#include "interpolatedWallDamping.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallDampingModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class linear Declaration
+\*---------------------------------------------------------------------------*/
+
+class linear
+:
+ public interpolated
+{
+ // Private data
+
+ //- Diameter coefficient
+ const dimensionedScalar Cd_;
+
+
+protected:
+
+ // Protected member functions
+
+ //- Return the force limiter field
+ virtual tmp limiter() const;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("linear");
+
+
+ // Constructors
+
+ //- Construct from components
+ linear
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~linear();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallDampingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.C
new file mode 100644
index 0000000000..0a177a6090
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.C
@@ -0,0 +1,97 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "noWallDamping.H"
+#include "phasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallDampingModels
+{
+ defineTypeNameAndDebug(noWallDamping, 0);
+ addToRunTimeSelectionTable
+ (
+ wallDampingModel,
+ noWallDamping,
+ dictionary
+ );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::noWallDamping::noWallDamping
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ wallDampingModel(dict, pair)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::noWallDamping::~noWallDamping()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallDampingModels::noWallDamping::damp
+(
+ const tmp& Cl
+) const
+{
+ return Cl;
+}
+
+
+Foam::tmp
+Foam::wallDampingModels::noWallDamping::damp
+(
+ const tmp& F
+) const
+{
+ return F;
+}
+
+
+Foam::tmp
+Foam::wallDampingModels::noWallDamping::damp
+(
+ const tmp& Ff
+) const
+{
+ return Ff;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.H
new file mode 100644
index 0000000000..7c4100934c
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/noWallDamping/noWallDamping.H
@@ -0,0 +1,108 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModels::noWallDamping
+
+Description
+
+SourceFiles
+ noWallDamping.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef noWallDamping_H
+#define noWallDamping_H
+
+#include "wallDampingModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallDampingModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class noWallDamping Declaration
+\*---------------------------------------------------------------------------*/
+
+class noWallDamping
+:
+ public wallDampingModel
+{
+public:
+
+ //- Runtime type information
+ TypeName("none");
+
+
+ // Constructors
+
+ //- Construct from components
+ noWallDamping
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~noWallDamping();
+
+
+ // Member Functions
+
+ //- Return damped coefficient
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+
+ //- Return damped force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+
+ //- Return damped face force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallDampingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.C
new file mode 100644
index 0000000000..eb975aa85f
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.C
@@ -0,0 +1,79 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "sineWallDamping.H"
+#include "phasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallDampingModels
+{
+ defineTypeNameAndDebug(sine, 0);
+ addToRunTimeSelectionTable
+ (
+ wallDampingModel,
+ sine,
+ dictionary
+ );
+}
+}
+
+
+// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallDampingModels::sine::limiter() const
+{
+ return sin
+ (
+ constant::mathematical::piByTwo
+ *min(yWall()/(Cd_*pair_.dispersed().d()), scalar(1))
+ );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::sine::sine
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ interpolated(dict, pair),
+ Cd_("Cd", dimless, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModels::sine::~sine()
+{}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.H
new file mode 100644
index 0000000000..7a87afe14e
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/sine/sineWallDamping.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModels::sine
+
+Description
+
+SourceFiles
+ sineWallDamping.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef sineWallDamping_H
+#define sineWallDamping_H
+
+#include "interpolatedWallDamping.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallDampingModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class sine Declaration
+\*---------------------------------------------------------------------------*/
+
+class sine
+:
+ public interpolated
+{
+ // Private data
+
+ //- Diameter coefficient
+ const dimensionedScalar Cd_;
+
+
+protected:
+
+ // Protected member functions
+
+ //- Return the force limiter field
+ virtual tmp limiter() const;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("sine");
+
+
+ // Constructors
+
+ //- Construct from components
+ sine
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~sine();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallDampingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/newWallDampingModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/newWallDampingModel.C
new file mode 100644
index 0000000000..a5b0748679
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/newWallDampingModel.C
@@ -0,0 +1,59 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "wallDampingModel.H"
+#include "phasePair.H"
+
+// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr Foam::wallDampingModel::New
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+{
+ word wallDampingModelType(dict.lookup("type"));
+
+ Info<< "Selecting wallDampingModel for "
+ << pair << ": " << wallDampingModelType << endl;
+
+ dictionaryConstructorTable::iterator cstrIter =
+ dictionaryConstructorTablePtr_->find(wallDampingModelType);
+
+ if (cstrIter == dictionaryConstructorTablePtr_->end())
+ {
+ FatalErrorInFunction
+ << "Unknown wallDampingModelType type "
+ << wallDampingModelType << endl << endl
+ << "Valid wallDampingModel types are : " << endl
+ << dictionaryConstructorTablePtr_->sortedToc()
+ << exit(FatalError);
+ }
+
+ return cstrIter()(dict, pair);
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.C
new file mode 100644
index 0000000000..4ba2e6fcd8
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.C
@@ -0,0 +1,59 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "wallDampingModel.H"
+#include "phasePair.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTypeNameAndDebug(wallDampingModel, 0);
+ defineRunTimeSelectionTable(wallDampingModel, dictionary);
+}
+
+const Foam::dimensionSet Foam::wallDampingModel::dimF(1, -2, -2, 0, 0);
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallDampingModel::wallDampingModel
+(
+ const dictionary& dict,
+ const phasePair& pair
+)
+:
+ wallDependentModel(pair.phase1().mesh()),
+ pair_(pair)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::wallDampingModel::~wallDampingModel()
+{}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.H
new file mode 100644
index 0000000000..395a363af2
--- /dev/null
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/wallDampingModel/wallDampingModel.H
@@ -0,0 +1,146 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallDampingModel
+
+Description
+
+SourceFiles
+ wallDampingModel.C
+ newWallDampingModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef wallDampingModel_H
+#define wallDampingModel_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "wallDependentModel.H"
+#include "volFields.H"
+#include "dictionary.H"
+#include "runTimeSelectionTables.H"
+
+namespace Foam
+{
+
+class phasePair;
+
+/*---------------------------------------------------------------------------*\
+ Class wallDampingModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class wallDampingModel
+:
+ public wallDependentModel
+{
+protected:
+
+ // Protected data
+
+ //- Phase pair
+ const phasePair& pair_;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("wallDampingModel");
+
+
+ // Declare runtime construction
+
+ declareRunTimeSelectionTable
+ (
+ autoPtr,
+ wallDampingModel,
+ dictionary,
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ ),
+ (dict, pair)
+ );
+
+
+ // Static data members
+
+ //- Coefficient dimensions
+ static const dimensionSet dimF;
+
+
+ // Constructors
+
+ //- Construct from components
+ wallDampingModel
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ //- Destructor
+ virtual ~wallDampingModel();
+
+
+ // Selectors
+
+ static autoPtr New
+ (
+ const dictionary& dict,
+ const phasePair& pair
+ );
+
+
+ // Member Functions
+
+ //- Return damped coefficient
+ virtual tmp damp
+ (
+ const tmp&
+ ) const = 0;
+
+ //- Return damped force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const = 0;
+
+ //- Return damped face force
+ virtual tmp damp
+ (
+ const tmp&
+ ) const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C
index 9f7d905c19..08dfd7065d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/newWallLubricationModel.C
@@ -44,7 +44,7 @@ Foam::autoPtr Foam::wallLubricationModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("wallLubricationModel::New")
+ FatalErrorInFunction
<< "Unknown wallLubricationModelType type "
<< wallLubricationModelType << endl << endl
<< "Valid wallLubricationModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C
index 2dcc6d0a5e..e288235568 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/blendingMethod/newBlendingMethod.C
@@ -43,7 +43,7 @@ Foam::autoPtr Foam::blendingMethod::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("blendingMethod::New")
+ FatalErrorInFunction
<< "Unknown blendingMethodType type "
<< blendingMethodType << endl << endl
<< "Valid blendingMethod types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C
index d9bfe2b598..5106653535 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/blendingMethods/linear/linear.C
@@ -93,14 +93,8 @@ Foam::blendingMethods::linear::linear
< minPartlyContinuousAlpha_[*iter]
)
{
- FatalErrorIn
- (
- "Foam::blendingMethods::linear::linear"
- "("
- "const dictionary& dict,"
- "const wordList& phaseNames"
- ")"
- ) << "The supplied fully continuous volume fraction for "
+ FatalErrorInFunction
+ << "The supplied fully continuous volume fraction for "
<< *iter
<< " is less than the partly continuous value."
<< endl << exit(FatalError);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
index db17065417..b93dd16af6 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
@@ -10,7 +10,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
index 175a993e30..8950f3d958 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
@@ -67,26 +67,7 @@ ThermalPhaseChangePhaseSystem
IOobject::groupName("iDmdt", pair.name()),
this->mesh().time().timeName(),
this->mesh(),
- IOobject::NO_READ,
- IOobject::AUTO_WRITE
- ),
- this->mesh(),
- dimensionedScalar("zero", dimDensity/dimTime, 0)
- )
- );
-
- // Initially assume no mass transfer
- wDmdt_.insert
- (
- pair,
- new volScalarField
- (
- IOobject
- (
- IOobject::groupName("wDmdt", pair.name()),
- this->mesh().time().timeName(),
- this->mesh(),
- IOobject::NO_READ,
+ IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
this->mesh(),
@@ -115,6 +96,101 @@ Foam::ThermalPhaseChangePhaseSystem::saturation() const
}
+template
+Foam::autoPtr
+Foam::ThermalPhaseChangePhaseSystem::heatTransfer() const
+{
+ typedef compressible::alphatPhaseChangeWallFunctionFvPatchScalarField
+ alphatPhaseChangeWallFunction;
+
+ autoPtr eqnsPtr =
+ Foam::HeatAndMassTransferPhaseSystem::heatTransfer();
+
+ phaseSystem::heatTransferTable& eqns = eqnsPtr();
+
+ // Accumulate mDotL contributions from boundaries
+ forAllConstIter
+ (
+ phaseSystem::phasePairTable,
+ this->phasePairs_,
+ phasePairIter
+ )
+ {
+ const phasePair& pair(phasePairIter());
+
+ if (pair.ordered())
+ {
+ continue;
+ }
+
+ const phaseModel& phase = pair.phase1();
+ const phaseModel& otherPhase = pair.phase2();
+
+ volScalarField mDotL
+ (
+ IOobject
+ (
+ "mDotL",
+ phase.mesh().time().timeName(),
+ phase.mesh(),
+ IOobject::NO_READ,
+ IOobject::NO_WRITE,
+ false
+ ),
+ phase.mesh(),
+ dimensionedScalar("",dimensionSet(1,-1,-3,0,0),0.0)
+ );
+
+ if
+ (
+ otherPhase.mesh().foundObject
+ (
+ "alphat." + otherPhase.name()
+ )
+ )
+ {
+ const volScalarField& alphat =
+ otherPhase.mesh().lookupObject
+ (
+ "alphat." + otherPhase.name()
+ );
+
+ const fvPatchList& patches = this->mesh().boundary();
+ forAll(patches, patchi)
+ {
+ const fvPatch& currPatch = patches[patchi];
+
+ if
+ (
+ isA
+ (
+ alphat.boundaryField()[patchi]
+ )
+ )
+ {
+ const scalarField& patchMDotL =
+ refCast
+ (
+ alphat.boundaryField()[patchi]
+ ).mDotL();
+
+ forAll(patchMDotL,facei)
+ {
+ label faceCelli = currPatch.faceCells()[facei];
+ mDotL[faceCelli] = patchMDotL[facei];
+ }
+ }
+ }
+ }
+
+ *eqns[otherPhase.name()] -= mDotL;
+
+ }
+
+ return eqnsPtr;
+}
+
+
template
Foam::autoPtr
Foam::ThermalPhaseChangePhaseSystem::massTransfer() const
@@ -189,6 +265,8 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
BasePhaseSystem::correctThermo();
+
+
forAllConstIter
(
phaseSystem::phasePairTable,
@@ -206,6 +284,18 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
const phaseModel& phase1 = pair.phase1();
const phaseModel& phase2 = pair.phase2();
+ Info<< phase1.name() << " min/max T "
+ << min(phase1.thermo().T()).value()
+ << " - "
+ << max(phase1.thermo().T()).value()
+ << endl;
+
+ Info<< phase2.name() << " min/max T "
+ << min(phase2.thermo().T()).value()
+ << " - "
+ << max(phase2.thermo().T()).value()
+ << endl;
+
const volScalarField& T1(phase1.thermo().T());
const volScalarField& T2(phase2.thermo().T());
@@ -214,7 +304,6 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
volScalarField& dmdt(*this->dmdt_[pair]);
volScalarField& iDmdt(*this->iDmdt_[pair]);
- volScalarField& wDmdt(*this->wDmdt_[pair]);
volScalarField& Tf = *this->Tf_[pair];
@@ -287,6 +376,21 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
<< endl;
// Accumulate dmdt contributions from boundaries
+ volScalarField wDmdt
+ (
+ IOobject
+ (
+ IOobject::groupName("wDmdt", pair.name()),
+ this->mesh().time().timeName(),
+ this->mesh(),
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE,
+ false
+ ),
+ this->mesh(),
+ dimensionedScalar("zero", dimDensity/dimTime, 0)
+ );
+
if
(
phase2.mesh().foundObject
@@ -295,9 +399,6 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
)
)
{
- scalar wDmdtRelax(this->mesh().fieldRelaxationFactor("wDmdt"));
- wDmdt *= (1 - wDmdtRelax);
-
const volScalarField& alphat =
phase2.mesh().lookupObject
(
@@ -326,7 +427,7 @@ void Foam::ThermalPhaseChangePhaseSystem::correctThermo()
forAll(patchDmdt,facei)
{
label faceCelli = currPatch.faceCells()[facei];
- wDmdt[faceCelli] += wDmdtRelax*patchDmdt[facei];
+ wDmdt[faceCelli] += patchDmdt[facei];
}
}
}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H
index e67b8209fe..b54c183150 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.H
@@ -77,10 +77,6 @@ protected:
HashPtrTable
iDmdt_;
- //- Wall Mass transfer rate
- HashPtrTable
- wDmdt_;
-
public:
@@ -99,6 +95,9 @@ public:
//- Return the saturationModel
const saturationModel& saturation() const;
+ //- Return the heat transfer matrices
+ virtual autoPtr heatTransfer() const;
+
//- Return the mass transfer matrices
virtual autoPtr massTransfer() const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
index 8db37d2bf0..b58f00291b 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
@@ -48,7 +48,7 @@ Foam::autoPtr Foam::diameterModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
- FatalErrorIn("diameterModel::New")
+ FatalErrorInFunction
<< "Unknown diameterModelType type "
<< diameterModelType << endl << endl
<< "Valid diameterModel types are : " << endl
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
index 8d705049f7..b737cd0322 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
@@ -37,7 +37,6 @@ Foam::AnisothermalPhaseModel::AnisothermalPhaseModel
)
:
BasePhaseModel(fluid, phaseName, index),
- divU_(NULL),
K_
(
IOobject
@@ -88,10 +87,7 @@ Foam::AnisothermalPhaseModel::heEqn()
const volScalarField& contErr(this->continuityError());
- const volScalarField alphaEff
- (
- this->thermo_->alphaEff(this->turbulence().mut())
- );
+ const volScalarField alphaEff(this->turbulence().alphaEff());
volScalarField& he = this->thermo_->he();
@@ -136,25 +132,6 @@ bool Foam::AnisothermalPhaseModel::compressible() const
}
-template
-const Foam::tmp&
-Foam::AnisothermalPhaseModel::divU() const
-{
- return divU_;
-}
-
-
-template
-void
-Foam::AnisothermalPhaseModel::divU
-(
- const tmp& divU
-)
-{
- divU_ = divU;
-}
-
-
template
const Foam::volScalarField&
Foam::AnisothermalPhaseModel::K() const
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H
index a8c4be694a..1b7ec2f615 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H
@@ -54,9 +54,6 @@ class AnisothermalPhaseModel
{
// Private data
- //- Dilatation rate
- tmp divU_;
-
//- Kinetic energy
volScalarField K_;
@@ -94,12 +91,6 @@ public:
//- Return true if the phase is compressible otherwise false
virtual bool compressible() const;
- //- Return the phase dilatation rate (d(alpha)/dt + div(alpha*phi))
- virtual const tmp& divU() const;
-
- //- Set the phase dilatation rate (d(alpha)/dt + div(alpha*phi))
- virtual void divU(const tmp& divU);
-
//- Return the phase kinetic energy
virtual const volScalarField& K() const;
};
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
index d06c61987a..74c6b7b46a 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
@@ -25,7 +25,7 @@ License
#include "MovingPhaseModel.H"
#include "phaseSystem.H"
-#include "PhaseCompressibleTurbulenceModel.H"
+#include "phaseCompressibleTurbulenceModel.H"
#include "fixedValueFvPatchFields.H"
#include "slipFvPatchFields.H"
#include "partialSlipFvPatchFields.H"
@@ -174,9 +174,10 @@ Foam::MovingPhaseModel::MovingPhaseModel
fluid.mesh(),
dimensionedVector("0", dimAcceleration, vector::zero)
),
+ divU_(NULL),
turbulence_
(
- PhaseCompressibleTurbulenceModel::New
+ phaseCompressibleTurbulenceModel::New
(
*this,
this->thermo().rho(),
@@ -317,6 +318,25 @@ Foam::MovingPhaseModel::DUDt() const
}
+template
+const Foam::tmp&
+Foam::MovingPhaseModel::divU() const
+{
+ return divU_;
+}
+
+
+template
+void
+Foam::MovingPhaseModel::divU
+(
+ const tmp& divU
+)
+{
+ divU_ = divU;
+}
+
+
template
Foam::tmp