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/README.md b/README.md
new file mode 100644
index 0000000000..fde9c6ac91
--- /dev/null
+++ b/README.md
@@ -0,0 +1,22 @@
+# About OpenFOAM
+OpenFOAM is a free, open source CFD software package developed primarily by [OpenCFD](http://www.openfoam.com) since 2004 and is currently distributed by [ESI-OpenCFD](http://www.openfoam.com) and the [OpenFOAM Foundation](http://openfoam.org). It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
+
+OpenFOAM+ uses the OpenFOAM Foundation version as a common code base, with wider functionality and platform support. Its purpose is to accelerate the public availability of new features which are sponsored by OpenCFD's customers and contributed by the OpenFOAM community.
+
+
+# Copyright
+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. See the file COPYING in this directory or [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/), for a description of the GNU General Public License terms under which you can copy the files.
+
+
+# OpenFOAM Trademark
+OpenCFD Limited, owner of the OpenFOAM Trademark, has granted the use of the Trademark to the OpenFOAM Foundation. Violations of the Trademark are continuously monitored and will be duly prosecuted. Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the OpenFOAM trademark.
+
+
+# Useful Links
+- [Download and installation instructions](http://www.openfoam.com/releases)
+- [Documentation](http://www.openfoam.com/documentation)
+- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php)
+- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php)
+- [Contacting OpenCFD](http://www.openfoam.com/contact)
+
+Copyright 2016 OpenCFD Ltd
diff --git a/README.org b/README.org
deleted file mode 100644
index 5842a0ef04..0000000000
--- a/README.org
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- mode: org; -*-
-#
-#+TITLE: README for OpenFOAM-dev
-#+AUTHOR: The OpenFOAM Foundation
-#+DATE: 9th March 2015
-#+LINK: http://www.openfoam.org
-#+OPTIONS: author:nil ^:{}
-# Copyright (c) 2015 OpenFOAM Foundation.
-
-* About OpenFOAM
- OpenFOAM is a free, open source computational fluid dynamics (CFD) software
- package released by the OpenFOAM Foundation. It has a large user base across
- most areas of engineering and science, from both commercial and academic
- organisations. OpenFOAM has an extensive range of features to solve anything
- from complex fluid flows involving chemical reactions, turbulence and heat
- transfer, to solid dynamics and electromagnetics.
-
-* Copyright
- 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. See the file =COPYING= in this directory or
- [[http://www.gnu.org/licenses/]], for a description of the GNU General Public
- License terms under which you can copy the files.
-
-* [[http://www.OpenFOAM.org/git.php][Download and installation instructions]]
-* [[http://www.OpenFOAM.org/docs][Documentation]]
-* [[http://OpenFOAM.github.io/Documentation-dev/html][Source code documentation]]
-* [[http://www.OpenFOAM.org/bugs][Reporting bugs in OpenFOAM]]
-* [[http://www.openfoam.org/contact][Contacting the OpenFOAM Foundation]]
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..958de584c3 100644
--- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
+++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
- \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
+ \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@@ -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"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -58,7 +82,7 @@ int main(int argc, char *argv[])
while (simple.correctNonOrthogonal())
{
- solve
+ fvScalarMatrix TEqn
(
fvm::ddt(T)
+ fvm::div(phi, T)
@@ -66,6 +90,11 @@ int main(int argc, char *argv[])
==
fvOptions(T)
);
+
+ fvOptions.constrain(TEqn);
+
+ TEqn.solve();
+
}
runTime.write();
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/XiDyMFoam.C b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C
index d4cb0666e2..0f6f2976f1 100644
--- a/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/XiDyMFoam.C
@@ -24,6 +24,9 @@ License
Application
XiFoam
+Group
+ grpCombustionSolvers grpMovingMeshSolvers
+
Description
Solver for compressible premixed/partially-premixed combustion with
turbulence modelling.
@@ -58,7 +61,7 @@ Description
#include "Switch.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
-#include "fvIOoptionList.H"
+#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
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..35c6c59560 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/createFields.H
@@ -37,9 +37,9 @@ volVectorField U
#include "compressibleCreatePhi.H"
Info<< "Creating turbulence model\n" << endl;
-autoPtr turbulence
+autoPtr turbulence
(
- compressible::RASModel::New
+ compressible::turbulenceModel::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/buoyantSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H
index 85157e8b2f..2d08a681ed 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H
@@ -34,6 +34,7 @@
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
+
while (simple.correctNonOrthogonal())
{
fvScalarMatrix p_rghEqn
@@ -64,12 +65,27 @@
p = p_rgh + rho*gh;
+ dimensionedScalar compressibility = fvc::domainIntegrate(psi);
+ bool compressible = (compressibility.value() > SMALL);
+
// For closed-volume cases adjust the pressure level
// to obey overall mass continuity
if (closedVolume)
{
- p += (initialMass - fvc::domainIntegrate(psi*p))
- /fvc::domainIntegrate(psi);
+ if(!compressible)
+ {
+ p += dimensionedScalar
+ (
+ "p",
+ p.dimensions(),
+ pRefValue - getRefCellValue(p, pRefCell)
+ );
+ }
+ else
+ {
+ p += (initialMass - fvc::domainIntegrate(psi*p))
+ /fvc::domainIntegrate(psi);
+ }
p_rgh = p - rho*gh;
}
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 ff372500dd..10e9aa08ab 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 24c6bb8428..cfc3923256 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 3da5610b3c..10dd3e0a56 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/src/TurbulenceModels/compressible/SpecificCompressibleTurbulenceModel/SpecificCompressibleTurbulenceModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H
similarity index 53%
rename from src/TurbulenceModels/compressible/SpecificCompressibleTurbulenceModel/SpecificCompressibleTurbulenceModel.H
rename to applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H
index d8cacd876b..d9eeef2609 100644
--- a/src/TurbulenceModels/compressible/SpecificCompressibleTurbulenceModel/SpecificCompressibleTurbulenceModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallDampingModels/interpolated/interpolatedWallDamping.H
@@ -22,89 +22,95 @@ License
along with OpenFOAM. If not, see .
Class
- Foam::SpecificCompressibleTurbulenceModel
+ Foam::wallDampingModels::interpolated
Description
- Templated abstract base class for specific (RAS/LES) compressible
- turbulence models
SourceFiles
- SpecificCompressibleTurbulenceModel.C
+ interpolatedWallDamping.C
\*---------------------------------------------------------------------------*/
-#ifndef SpecificCompressibleTurbulenceModel_H
-#define SpecificCompressibleTurbulenceModel_H
+#ifndef interpolatedWallDamping_H
+#define interpolatedWallDamping_H
-#include "CompressibleTurbulenceModel.H"
+#include "wallDampingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
+class phasePair;
+
+namespace wallDampingModels
+{
+
/*---------------------------------------------------------------------------*\
- Class SpecificCompressibleTurbulenceModel Declaration
+ Class interpolated Declaration
\*---------------------------------------------------------------------------*/
-template
-class SpecificCompressibleTurbulenceModel
+class interpolated
:
- public BasicCompressibleTurbulenceModel
+ public wallDampingModel
{
+protected:
+
+ // Protected member functions
+
+ //- Return the force limiter field
+ virtual tmp limiter() const = 0;
+
public:
- typedef typename BasicCompressibleTurbulenceModel::transportModel
- transportModel;
+ //- Runtime type information
+ TypeName("interpolated");
+
// Constructors
//- Construct from components
- SpecificCompressibleTurbulenceModel
+ interpolated
(
- const word& type,
- const geometricOneField& alpha,
- const volScalarField& rho,
- const volVectorField& U,
- const surfaceScalarField& alphaRhoPhi,
- const surfaceScalarField& phi,
- const transportModel& transport,
- const word& propertiesName
+ const dictionary& dict,
+ const phasePair& pair
);
//- Destructor
- virtual ~SpecificCompressibleTurbulenceModel()
- {}
+ virtual ~interpolated();
- // Selectors
+ // Member Functions
- //- Return a reference to the selected RAS model
- static autoPtr New
+ //- Return damped coefficient
+ virtual tmp damp
(
- const volScalarField& rho,
- const volVectorField& U,
- const surfaceScalarField& phi,
- const transportModel& transport,
- const word& propertiesName = turbulenceModel::propertiesName
- );
+ 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
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-#ifdef NoRepository
-# include "SpecificCompressibleTurbulenceModel.C"
-#endif
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
#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 2f0c8726fd..0b87f228ff 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
Foam::MovingPhaseModel::continuityError() const
@@ -374,7 +394,7 @@ Foam::MovingPhaseModel