Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus into feature-shared-file

Conflicts:
	applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C
	applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C
	applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.C
	applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
	applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfo.C
	applications/utilities/postProcessing/turbulence/createTurbulenceFields/createTurbulenceFields.C
	applications/utilities/postProcessing/velocityField/Co/Co.C
	applications/utilities/postProcessing/velocityField/Pe/Pe.C
	applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
	applications/utilities/preProcessing/changeDictionary/changeDictionary.C
	applications/utilities/preProcessing/setFields/setFields.C
	applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C
	applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
	applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
	applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
	src/OpenFOAM/db/IOobject/IOobject.C
	src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C
	src/OpenFOAM/db/IOobjects/IOField/IOField.C
	src/OpenFOAM/db/IOobjects/IOList/IOList.C
	src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C
	src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C
	src/OpenFOAM/db/Time/findInstance.C
	src/OpenFOAM/db/regIOobject/regIOobject.C
	src/OpenFOAM/db/regIOobject/regIOobjectI.H
	src/OpenFOAM/db/regIOobject/regIOobjectRead.C
	src/OpenFOAM/db/regIOobject/regIOobjectWrite.C
	src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.C
	src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
	src/OpenFOAM/meshes/polyMesh/zones/ZoneMesh/ZoneMesh.C
	src/dynamicMesh/fvMeshDistribute/IOmapDistributePolyMesh.C
	src/dynamicMesh/motionSolver/componentDisplacement/componentDisplacementMotionSolver.C
	src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C
	src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
	src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
	src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
	src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
	src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
	src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationMotionSolver.C
	src/fvMotionSolver/pointPatchFields/derived/uniformInterpolatedDisplacement/uniformInterpolatedDisplacementPointPatchVectorField.C
	src/lagrangian/basic/Cloud/CloudIO.C
	src/meshTools/sets/cellSources/fieldToCell/fieldToCell.C
	src/postProcessing/foamCalcFunctions/basic/addSubtract/addSubtract.C
	src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransformTemplates.C
	src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C
	src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
	src/triSurface/triSurface/surfacePatch/surfacePatchIOList.C
This commit is contained in:
mattijs
2016-01-25 16:29:04 +00:00
6907 changed files with 140540 additions and 44093 deletions

View File

@ -37,7 +37,10 @@ src/Allwmake $targetType $*
applications/Allwmake $targetType $* applications/Allwmake $targetType $*
# Optionally build OpenFOAM Doxygen documentation # Optionally build OpenFOAM Doxygen documentation
[ $genDoc -eq 1 ] && doc/Allwmake if [ $genDoc -eq 1 ]
then
doc/Allwmake
fi
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

22
README.md Normal file
View File

@ -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

View File

@ -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]]

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpDNSSolvers Direct Numerical Simulation solvers
@{
\ingroup grpSolvers
This group contains Direct Numerical Simulation (DNS) solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -24,6 +24,9 @@ License
Application Application
dnsFoam dnsFoam
Group
grpDNSSolvers
Description Description
Direct numerical simulation solver for boxes of isotropic turbulence Direct numerical simulation solver for boxes of isotropic turbulence

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpBasicSolvers Basic solvers
@{
\ingroup grpSolvers
This group contains basic solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -24,8 +24,30 @@ License
Application Application
laplacianFoam laplacianFoam
Group
grpBasicSolvers
Description 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
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/

View File

@ -1,11 +1,9 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude -I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lmeshTools \ -lmeshTools \
-lfvOptions \
-lsampling -lsampling

View File

@ -1,9 +0,0 @@
const dictionary& potentialFlow
(
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr
(
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -12,6 +12,7 @@ volVectorField U
mesh mesh
); );
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), vector::zero); U = dimensionedVector("0", U.dimensions(), vector::zero);
surfaceScalarField phi 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"); word pName("p");
// Update name of the pressure field from the command-line option // 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; Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p volScalarField p
( (
@ -64,13 +70,28 @@ volScalarField p
runTime.timeName(), runTime.timeName(),
mesh, mesh,
IOobject::READ_IF_PRESENT, IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE IOobject::NO_WRITE,
false
), ),
mesh, mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0), dimensionedScalar(pName, sqr(dimVelocity), 0),
pBCTypes 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; Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi volScalarField Phi
( (

View File

@ -24,19 +24,69 @@ License
Application Application
potentialFoam potentialFoam
Description Group
Potential flow solver which solves for the velocity potential grpBasicSolvers
from which the flux-field is obtained and velocity field by reconstructing
the flux.
This application is particularly useful to generate starting fields for Description
Navier-Stokes codes. 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 "fvCFD.H"
#include "pisoControl.H" #include "pisoControl.H"
#include "fvIOoptionList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -58,13 +108,13 @@ int main(int argc, char *argv[])
argList::addBoolOption argList::addBoolOption
( (
"writePhi", "writePhi",
"Write the velocity potential field" "Write the final velocity potential field"
); );
argList::addBoolOption argList::addBoolOption
( (
"writep", "writep",
"Calculate and write the pressure field" "Calculate and write the Euler pressure field"
); );
argList::addBoolOption argList::addBoolOption
@ -81,7 +131,6 @@ int main(int argc, char *argv[])
#include "createFields.H" #include "createFields.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -137,7 +186,7 @@ int main(int argc, char *argv[])
Phi.write(); Phi.write();
} }
// Calculate the pressure field // Calculate the pressure field from the Euler equation
if (args.optionFound("writep")) if (args.optionFound("writep"))
{ {
Info<< nl << "Calculating approximate pressure field" << endl; Info<< nl << "Calculating approximate pressure field" << endl;

View File

@ -1,6 +1,5 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude -I$(LIB_SRC)/sampling/lnInclude

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -24,13 +24,37 @@ License
Application Application
scalarTransportFoam scalarTransportFoam
Group
grpBasicSolvers
Description 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 "fvCFD.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "simpleControl.H" #include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -58,7 +82,7 @@ int main(int argc, char *argv[])
while (simple.correctNonOrthogonal()) while (simple.correctNonOrthogonal())
{ {
solve fvScalarMatrix TEqn
( (
fvm::ddt(T) fvm::ddt(T)
+ fvm::div(phi, T) + fvm::div(phi, T)
@ -66,6 +90,11 @@ int main(int argc, char *argv[])
== ==
fvOptions(T) fvOptions(T)
); );
fvOptions.constrain(TEqn);
TEqn.solve();
} }
runTime.write(); runTime.write();

View File

@ -1,7 +1,7 @@
{ {
volScalarField& hea = thermo.he(); volScalarField& hea = thermo.he();
solve fvScalarMatrix EaEqn
( (
betav*fvm::ddt(rho, hea) + mvConvection->fvmDiv(phi, hea) betav*fvm::ddt(rho, hea) + mvConvection->fvmDiv(phi, hea)
+ betav*fvc::ddt(rho, K) + fvc::div(phi, K) + betav*fvc::ddt(rho, K) + fvc::div(phi, K)
@ -16,7 +16,16 @@
: -betav*dpdt : -betav*dpdt
) )
- fvm::laplacian(Db, hea) - fvm::laplacian(Db, hea)
+ betav*fvOptions(rho, hea)
); );
EaEqn.relax();
fvOptions.constrain(EaEqn);
EaEqn.solve();
fvOptions.correct(hea);
thermo.correct(); thermo.correct();
} }

View File

@ -2,7 +2,7 @@ if (ign.ignited())
{ {
volScalarField& heau = thermo.heu(); volScalarField& heau = thermo.heu();
solve fvScalarMatrix heauEqn
( (
betav*fvm::ddt(rho, heau) + mvConvection->fvmDiv(phi, heau) betav*fvm::ddt(rho, heau) + mvConvection->fvmDiv(phi, heau)
+ (betav*fvc::ddt(rho, K) + fvc::div(phi, K))*rho/thermo.rhou() + (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. // A possible solution would be to solve for ftu as well as ft.
//- fvm::div(muEff*fvc::grad(b)/(b + 0.001), heau) //- fvm::div(muEff*fvc::grad(b)/(b + 0.001), heau)
//+ fvm::Sp(fvc::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);
} }

View File

@ -16,7 +16,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude -I$(LIB_SRC)/triSurface/lnInclude \
EXE_LIBS = \ EXE_LIBS = \
-lengine \ -lengine \
@ -29,4 +29,5 @@ EXE_LIBS = \
-lspecie \ -lspecie \
-llaminarFlameSpeedModels \ -llaminarFlameSpeedModels \
-lfiniteVolume \ -lfiniteVolume \
-ldynamicFvMesh -ldynamicFvMesh \
-lfvOptions

View File

@ -24,6 +24,9 @@ License
Application Application
PDRFoam PDRFoam
Group
grpCombustionSolvers
Description Description
Solver for compressible premixed/partially-premixed combustion with Solver for compressible premixed/partially-premixed combustion with
turbulence modelling. turbulence modelling.
@ -54,16 +57,17 @@ Description
regions containing blockages which cannot be resolved by the mesh. regions containing blockages which cannot be resolved by the mesh.
The fields used by this solver are: The fields used by this solver are:
\plaintable
betav: Volume porosity betav | Volume porosity
Lobs: Average diameter of obstacle in cell (m) Lobs | Average diameter of obstacle in cell (m)
Aw: Obstacle surface area per unit volume (1/m) Aw | Obstacle surface area per unit volume (1/m)
CR: Drag tensor (1/m) CR | Drag tensor (1/m)
CT: Turbulence generation parameter (1/m) CT | Turbulence generation parameter (1/m)
Nv: Number of obstacles in cell per unit volume (m^-2) Nv | Number of obstacles in cell per unit volume (m^-2)
nsv: Tensor whose diagonal indicates the number to substract from nsv | Tensor whose diagonal indicates the number to substract from
Nv to get the number of obstacles crossing the flow in each | Nv to get the number of obstacles crossing the flow in each
direction. | direction.
\endplaintable
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -77,6 +81,7 @@ Description
#include "Switch.H" #include "Switch.H"
#include "bound.H" #include "bound.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -93,11 +98,13 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createTimeControls.H" #include "createTimeControls.H"
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
turbulence->validate();
scalar StCoNum = 0.0; scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -87,6 +87,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
turbulence->validate();
scalar StCoNum = 0.0; scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -168,7 +168,7 @@ public:
virtual void writeFields() const virtual void writeFields() const
{ {
notImplemented("PDRDragModel::write()"); NotImplemented;
} }
}; };

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -45,10 +45,8 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end()) if (cstrIter == dictionaryConstructorTablePtr_->end())
{ {
FatalErrorIn FatalErrorInFunction
( << "Unknown PDRDragModel type "
"PDRDragModel::New"
) << "Unknown PDRDragModel type "
<< modelType << nl << nl << modelType << nl << nl
<< "Valid PDRDragModels are : " << endl << "Valid PDRDragModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc() << dictionaryConstructorTablePtr_->sortedToc()

View File

@ -7,13 +7,17 @@
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
betav*rho*g betav*rho*g
+ betav*fvOptions(rho, U)
); );
fvOptions.constrain(UEqn);
volSymmTensorField invA(inv(I*UEqn.A() + drag->Dcu())); volSymmTensorField invA(inv(I*UEqn.A() + drag->Dcu()));
if (pimple.momentumPredictor()) if (pimple.momentumPredictor())
{ {
U = invA & (UEqn.H() - betav*fvc::grad(p)); U = invA & (UEqn.H() - betav*fvc::grad(p));
U.correctBoundaryConditions(); U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U); K = 0.5*magSqr(U);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -44,15 +44,8 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end()) if (cstrIter == dictionaryConstructorTablePtr_->end())
{ {
FatalErrorIn FatalErrorInFunction
( << "Unknown XiEqModel type "
"XiEqModel::New"
"("
" const psiuReactionThermo& thermo,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiEqModel type "
<< modelType << nl << nl << modelType << nl << nl
<< "Valid XiEqModels are : " << endl << "Valid XiEqModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc() << dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -44,15 +44,8 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end()) if (cstrIter == dictionaryConstructorTablePtr_->end())
{ {
FatalErrorIn FatalErrorInFunction
( << "Unknown XiGModel type "
"XiGModel::New"
"("
" const psiuReactionThermo& thermo,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiGModel type "
<< modelType << nl << nl << modelType << nl << nl
<< "Valid XiGModels are : " << endl << "Valid XiGModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc() << dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -47,10 +47,8 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end()) if (cstrIter == dictionaryConstructorTablePtr_->end())
{ {
FatalErrorIn FatalErrorInFunction
( << "Unknown XiModel type "
"XiModel::New"
) << "Unknown XiModel type "
<< modelType << nl << nl << modelType << nl << nl
<< "Valid XiModels are : " << endl << "Valid XiModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc() << dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -116,7 +116,7 @@ public:
//- Correct the flame-wrinking Xi //- Correct the flame-wrinking Xi
virtual void correct() virtual void correct()
{ {
notImplemented("transport::correct()"); NotImplemented;
} }
//- Correct the flame-wrinking Xi using the given convection scheme //- Correct the flame-wrinking Xi using the given convection scheme

View File

@ -73,6 +73,8 @@ if (ign.ignited())
+ fvm::div(phiSt, b) + fvm::div(phiSt, b)
- fvm::Sp(fvc::div(phiSt), b) - fvm::Sp(fvc::div(phiSt), b)
- fvm::laplacian(Db, b) - fvm::laplacian(Db, b)
==
betav*fvOptions(rho, b)
); );
@ -82,8 +84,14 @@ if (ign.ignited())
// Solve for b // Solve for b
// ~~~~~~~~~~~ // ~~~~~~~~~~~
bEqn.relax();
fvOptions.constrain(bEqn);
bEqn.solve(); bEqn.solve();
fvOptions.correct(b);
Info<< "min(b) = " << min(b).value() << endl; Info<< "min(b) = " << min(b).value() << endl;
if (composition.contains("ft")) if (composition.contains("ft"))

View File

@ -49,7 +49,7 @@ mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl; Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence autoPtr<compressible::RASModel> turbulence
( (
compressible::RASModel::New compressible::New<compressible::RASModel>
( (
rho, rho,
U, U,

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -172,7 +172,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
} }
else else
{ {
FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)") FatalErrorInFunction
<< "phi = " << phi << "phi = " << phi
<< " cannot be handled by SCOPE function with the " << " cannot be handled by SCOPE function with the "
"given coefficients" "given coefficients"
@ -210,7 +210,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
} }
else else
{ {
FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)") FatalErrorInFunction
<< "phi = " << phi << "phi = " << phi
<< " cannot be handled by SCOPE function with the " << " cannot be handled by SCOPE function with the "
"given coefficients" "given coefficients"

View File

@ -25,6 +25,8 @@ if (pimple.transonic())
betav*fvm::ddt(psi, p) betav*fvm::ddt(psi, p)
+ fvm::div(phid, p) + fvm::div(phid, p)
- fvm::laplacian(rho*invA, p) - fvm::laplacian(rho*invA, p)
==
betav*fvOptions(psi, p, rho.name())
); );
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@ -53,6 +55,8 @@ else
betav*fvm::ddt(psi, p) betav*fvm::ddt(psi, p)
+ fvc::div(phiHbyA) + fvc::div(phiHbyA)
- fvm::laplacian(rho*invA, p) - fvm::laplacian(rho*invA, p)
==
betav*fvOptions(psi, p, rho.name())
); );
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@ -69,6 +73,7 @@ else
U = HbyA - (invA & (betav*fvc::grad(p))); U = HbyA - (invA & (betav*fvc::grad(p)));
U.correctBoundaryConditions(); U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U); K = 0.5*magSqr(U);
if (thermo.dpdt()) if (thermo.dpdt())

View File

@ -1,8 +1,4 @@
EXE_INC = \ 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)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -10,13 +6,12 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/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 = \ EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools \
-lengine \ -lengine \
-lturbulenceModels \ -lturbulenceModels \
-lcompressibleTurbulenceModels \ -lcompressibleTurbulenceModels \
@ -24,4 +19,8 @@ EXE_LIBS = \
-lfluidThermophysicalModels \ -lfluidThermophysicalModels \
-lreactionThermophysicalModels \ -lreactionThermophysicalModels \
-lspecie \ -lspecie \
-llaminarFlameSpeedModels -llaminarFlameSpeedModels \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools

View File

@ -6,8 +6,7 @@
+ MRF.DDt(rho, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho*g fvOptions(rho, U)
+ fvOptions(rho, U)
); );
UEqn.relax(); UEqn.relax();

View File

@ -24,6 +24,9 @@ License
Application Application
XiFoam XiFoam
Group
grpCombustionSolvers grpMovingMeshSolvers
Description Description
Solver for compressible premixed/partially-premixed combustion with Solver for compressible premixed/partially-premixed combustion with
turbulence modelling. turbulence modelling.
@ -58,7 +61,7 @@ Description
#include "Switch.H" #include "Switch.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "CorrectPhi.H" #include "CorrectPhi.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -24,6 +24,9 @@ License
Application Application
XiFoam XiFoam
Group
grpCombustionSolvers
Description Description
Solver for compressible premixed/partially-premixed combustion with Solver for compressible premixed/partially-premixed combustion with
turbulence modelling. turbulence modelling.
@ -56,7 +59,7 @@ Description
#include "ignition.H" #include "ignition.H"
#include "Switch.H" #include "Switch.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -70,7 +73,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readCombustionProperties.H" #include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
@ -79,6 +81,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -1,26 +1,14 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/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)/ODE/lnInclude\
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude -I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lreactionThermophysicalModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lchemistryModel \ -lchemistryModel \
-lODE \
-lthermophysicalFunctions \
-lspecie \
-lfiniteVolume \ -lfiniteVolume \
-lmeshTools -lmeshTools

View File

@ -24,10 +24,14 @@ License
Application Application
chemFoam chemFoam
Group
grpCombustionSolvers
Description Description
Solver for chemistry problems Solver for chemistry problems designed for use on single cell cases to
- designed for use on single cell cases to provide comparison against provide comparison against other chemistry solvers
other chemistry solvers
Note:
- single cell mesh created on-the-fly - single cell mesh created on-the-fly
- fields created on the fly from the initial conditions - fields created on the fly from the initial conditions
@ -35,7 +39,6 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "psiReactionThermo.H" #include "psiReactionThermo.H"
#include "turbulentFluidThermoModel.H"
#include "psiChemistryModel.H" #include "psiChemistryModel.H"
#include "chemistrySolver.H" #include "chemistrySolver.H"
#include "OFstream.H" #include "OFstream.H"

View File

@ -1,8 +1,2 @@
if (runTime.controlDict().lookupOrDefault("suppressSolverInfo", false))
{
lduMatrix::debug = 0;
}
Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep")); Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT"))); scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));

View File

@ -1,6 +1,6 @@
if (mesh.nCells() != 1) if (mesh.nCells() != 1)
{ {
FatalErrorIn(args.executable()) FatalErrorInFunction
<< "Solver only applicable to single cell cases" << "Solver only applicable to single cell cases"
<< exit(FatalError); << exit(FatalError);
} }
@ -86,20 +86,6 @@
#include "createPhi.H" #include "createPhi.H"
Info << "Creating turbulence model.\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo
)
);
OFstream post(args.path()/"chemFoam.out"); OFstream post(args.path()/"chemFoam.out");
post<< "# Time" << token::TAB << "Temperature [K]" << token::TAB post<< "# Time" << token::TAB << "Temperature [K]" << token::TAB
<< "Pressure [Pa]" << endl; << "Pressure [Pa]" << endl;

View File

@ -12,7 +12,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lengine \ -lengine \

View File

@ -22,7 +22,10 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application Application
engineFoam coldEngineFoam
Group
grpCombustionSolvers grpMovingMeshSolvers
Description Description
Solver for cold-flow in internal combustion engines. Solver for cold-flow in internal combustion engines.
@ -35,7 +38,7 @@ Description
#include "psiThermo.H" #include "psiThermo.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "OFstream.H" #include "OFstream.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "pimpleControl.H" #include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
#include "startSummary.H" #include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpCombustionSolvers Combustion solvers
@{
\ingroup grpSolvers
This group contains combustion solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -1,7 +1,6 @@
EXE_INC = \ EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/XiFoam \ -I$(FOAM_SOLVERS)/combustion/XiFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \ -I$(LIB_SRC)/engine/lnInclude \

View File

@ -24,6 +24,9 @@ License
Application Application
engineFoam engineFoam
Group
grpCombustionSolvers
Description Description
Solver for internal combustion engines. Solver for internal combustion engines.
@ -59,7 +62,7 @@ Description
#include "OFstream.H" #include "OFstream.H"
#include "mathematicalConstants.H" #include "mathematicalConstants.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -83,6 +86,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
#include "startSummary.H" #include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -1,6 +1,5 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \ -I${LIB_SRC}/meshTools/lnInclude \
-I${LIB_SRC}/sampling/lnInclude \ -I${LIB_SRC}/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -24,8 +24,11 @@ License
Application Application
fireFoam fireFoam
Group
grpCombustionSolvers
Description 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. reacting Lagrangian parcels, surface film and pyrolysis modelling.
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -40,7 +43,7 @@ Description
#include "solidChemistryModel.H" #include "solidChemistryModel.H"
#include "psiCombustionModel.H" #include "psiCombustionModel.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H" #include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -67,6 +70,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
#include "readPyrolysisTimeControls.H" #include "readPyrolysisTimeControls.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -17,8 +17,7 @@
) )
- fvm::laplacian(turbulence->alphaEff(), he) - fvm::laplacian(turbulence->alphaEff(), he)
== ==
rho*(U&g) reaction->Sh()
+ reaction->Sh()
+ fvOptions(rho, he) + fvOptions(rho, he)
); );

View File

@ -1,6 +1,5 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -1,22 +1,23 @@
// Solve the Momentum equation
MRF.correctBoundaryVelocity(U); MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::ddt(rho, U) + fvm::div(phi, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho*g fvOptions(rho, U)
+ fvOptions(rho, U)
); );
UEqn.relax(); UEqn().relax();
fvOptions.constrain(UEqn); fvOptions.constrain(UEqn());
if (pimple.momentumPredictor()) if (pimple.momentumPredictor())
{ {
solve(UEqn == -fvc::grad(p)); solve(UEqn() == -fvc::grad(p));
fvOptions.correct(U); fvOptions.correct(U);
K = 0.5*magSqr(U); K = 0.5*magSqr(U);

View File

@ -45,6 +45,28 @@ const volScalarField& T = thermo.T();
#include "compressibleCreatePhi.H" #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()); mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl; Info << "Creating turbulence model.\n" << nl;

View File

@ -1,10 +1,18 @@
rho = thermo.rho(); 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)); surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U); volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H(); HbyA = rAU*UEqn().H();
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
}
if (pimple.transonic()) if (pimple.transonic())
{ {
@ -26,7 +34,7 @@ if (pimple.transonic())
( (
fvm::ddt(psi, p) fvm::ddt(psi, p)
+ fvm::div(phid, p) + fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p) - fvm::laplacian(rhorAUf, p)
== ==
fvOptions(psi, p, rho.name()) fvOptions(psi, p, rho.name())
); );
@ -58,7 +66,7 @@ else
( (
fvm::ddt(psi, p) fvm::ddt(psi, p)
+ fvc::div(phiHbyA) + fvc::div(phiHbyA)
- fvm::laplacian(rho*rAU, p) - fvm::laplacian(rhorAUf, p)
== ==
fvOptions(psi, p, rho.name()) fvOptions(psi, p, rho.name())
); );
@ -75,6 +83,17 @@ else
#include "rhoEqn.H" #include "rhoEqn.H"
#include "compressibleContinuityErrs.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 = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions(); U.correctBoundaryConditions();
fvOptions.correct(U); fvOptions.correct(U);

View File

@ -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;

View File

@ -24,6 +24,9 @@ License
Application Application
reactingFoam reactingFoam
Group
grpCombustionSolvers
Description Description
Solver for combustion with chemical reactions. Solver for combustion with chemical reactions.
@ -34,7 +37,7 @@ Description
#include "psiCombustionModel.H" #include "psiCombustionModel.H"
#include "multivariateScheme.H" #include "multivariateScheme.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -51,11 +54,12 @@ int main(int argc, char *argv[])
#include "createTimeControls.H" #include "createTimeControls.H"
#include "createRDeltaT.H" #include "createRDeltaT.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
turbulence->validate();
if (!LTS) if (!LTS)
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
@ -94,9 +98,16 @@ int main(int argc, char *argv[])
// --- Pressure corrector loop // --- Pressure corrector loop
while (pimple.correct()) while (pimple.correct())
{
if (pimple.consistent())
{
#include "pcEqn.H"
}
else
{ {
#include "pEqn.H" #include "pEqn.H"
} }
}
if (pimple.turbCorr()) if (pimple.turbCorr())
{ {

View File

@ -1,7 +1,6 @@
EXE_INC = \ EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \ -I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -24,6 +24,9 @@ License
Application Application
rhoReactingBuoyantFoam rhoReactingBuoyantFoam
Group
grpCombustionSolvers
Description Description
Solver for combustion with chemical reactions using density based Solver for combustion with chemical reactions using density based
thermodynamics package, using enahanced buoyancy treatment. thermodynamics package, using enahanced buoyancy treatment.
@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H" #include "multivariateScheme.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H" #include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -57,6 +60,8 @@ int main(int argc, char *argv[])
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
turbulence->validate();
if (!LTS) if (!LTS)
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"

View File

@ -1,7 +1,6 @@
EXE_INC = \ EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \ -I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -5,11 +5,11 @@
// pressure solution - done in 2 parts. Part 1: // pressure solution - done in 2 parts. Part 1:
thermo.rho() -= psi*p; thermo.rho() -= psi*p;
volScalarField rAU(1.0/UEqn.A()); volScalarField rAU(1.0/UEqn().A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU)); surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U); volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H(); HbyA = rAU*UEqn().H();
if (pimple.transonic()) if (pimple.transonic())
{ {

View File

@ -24,6 +24,9 @@ License
Application Application
rhoReactingFoam rhoReactingFoam
Group
grpCombustionSolvers
Description Description
Solver for combustion with chemical reactions using density based Solver for combustion with chemical reactions using density based
thermodynamics package. thermodynamics package.
@ -35,7 +38,7 @@ Description
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H" #include "multivariateScheme.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -52,11 +55,12 @@ int main(int argc, char *argv[])
#include "createTimeControls.H" #include "createTimeControls.H"
#include "createRDeltaT.H" #include "createRDeltaT.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
turbulence->validate();
if (!LTS) if (!LTS)
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"

View File

@ -116,6 +116,9 @@ License
); );
} }
// Update tho boundary values of the reciprocal time-step
rDeltaT.correctBoundaryConditions();
Info<< " Overall = " Info<< " Overall = "
<< gMin(1/rDeltaT.internalField()) << gMin(1/rDeltaT.internalField())
<< ", " << gMax(1/rDeltaT.internalField()) << endl; << ", " << gMax(1/rDeltaT.internalField()) << endl;

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpCompressibleSolvers Compressible flow solvers
@{
\ingroup grpSolvers
This group contains compressible flow solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -94,15 +94,8 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
|| mag(accommodationCoeff_) > 2.0 || mag(accommodationCoeff_) > 2.0
) )
{ {
FatalIOErrorIn FatalIOErrorInFunction
( (
"smoluchowskiJumpTFvPatchScalarField::"
"smoluchowskiJumpTFvPatchScalarField"
"("
" const fvPatch&,"
" const DimensionedField<scalar, volMesh>&,"
" const dictionary&"
")",
dict dict
) << "unphysical accommodationCoeff specified" ) << "unphysical accommodationCoeff specified"
<< "(0 < accommodationCoeff <= 1)" << endl << "(0 < accommodationCoeff <= 1)" << endl

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -96,14 +96,8 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
|| mag(accommodationCoeff_) > 2.0 || mag(accommodationCoeff_) > 2.0
) )
{ {
FatalIOErrorIn FatalIOErrorInFunction
( (
"maxwellSlipUFvPatchScalarField::maxwellSlipUFvPatchScalarField"
"("
"const fvPatch&, "
"const DimensionedField<vector, volMesh>&, "
"const dictionary&"
")",
dict dict
) << "unphysical accommodationCoeff_ specified" ) << "unphysical accommodationCoeff_ specified"
<< "(0 < accommodationCoeff_ <= 1)" << endl << "(0 < accommodationCoeff_ <= 1)" << endl

View File

@ -11,6 +11,7 @@ EXE_INC = \
EXE_LIBS = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lfvOptions \
-lcompressibleTransportModels \ -lcompressibleTransportModels \
-lfluidThermophysicalModels \ -lfluidThermophysicalModels \
-lspecie \ -lspecie \

View File

@ -7,10 +7,8 @@ if (mesh.schemesDict().readIfPresent("fluxScheme", fluxScheme))
} }
else else
{ {
FatalErrorIn FatalErrorInFunction
( << "fluxScheme: " << fluxScheme
"rhoCentralFoam::readFluxScheme"
) << "fluxScheme: " << fluxScheme
<< " is not a valid choice. " << " is not a valid choice. "
<< "Options are: Tadmor, Kurganov" << "Options are: Tadmor, Kurganov"
<< abort(FatalError); << abort(FatalError);

View File

@ -13,6 +13,7 @@ EXE_INC = \
EXE_LIBS = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lfvOptions \
-lcompressibleTransportModels \ -lcompressibleTransportModels \
-lfluidThermophysicalModels \ -lfluidThermophysicalModels \
-lspecie \ -lspecie \

View File

@ -24,6 +24,9 @@ License
Application Application
rhoCentralDyMFoam rhoCentralDyMFoam
Group
grpCompressibleSolvers grpMovingMeshSolvers
Description Description
Density-based compressible flow solver based on central-upwind schemes of Density-based compressible flow solver based on central-upwind schemes of
Kurganov and Tadmor with support for mesh-motion and topology changes 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 "createFields.H"
#include "createTimeControls.H" #include "createTimeControls.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "readFluxScheme.H" #include "readFluxScheme.H"

View File

@ -24,6 +24,9 @@ License
Application Application
rhoCentralFoam rhoCentralFoam
Group
grpCompressibleSolvers
Description Description
Density-based compressible flow solver based on central-upwind schemes of Density-based compressible flow solver based on central-upwind schemes of
Kurganov and Tadmor Kurganov and Tadmor
@ -51,6 +54,8 @@ int main(int argc, char *argv[])
#include "createTimeControls.H" #include "createTimeControls.H"
#include "createRDeltaT.H" #include "createRDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "readFluxScheme.H" #include "readFluxScheme.H"

View File

@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lcompressibleTransportModels \ -lcompressibleTransportModels \

View File

@ -8,7 +8,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \

View File

@ -43,7 +43,7 @@ Description
#include "bound.H" #include "bound.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "CorrectPhi.H" #include "CorrectPhi.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -65,6 +65,8 @@ int main(int argc, char *argv[])
#include "createRhoUf.H" #include "createRhoUf.H"
#include "createControls.H" #include "createControls.H"
turbulence->validate();
if (!LTS) if (!LTS)
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"

View File

@ -24,6 +24,9 @@ License
Application Application
rhoPimpleFoam rhoPimpleFoam
Group
grpCompressibleSolvers
Description Description
Transient solver for laminar or turbulent flow of compressible fluids Transient solver for laminar or turbulent flow of compressible fluids
for HVAC and similar applications. for HVAC and similar applications.
@ -38,7 +41,7 @@ Description
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "bound.H" #include "bound.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -59,6 +62,8 @@ int main(int argc, char *argv[])
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
turbulence->validate();
if (!LTS) if (!LTS)
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"

View File

@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lcompressibleTransportModels \ -lcompressibleTransportModels \

View File

@ -71,7 +71,7 @@ dimensionedScalar rhoMin
Info<< "Creating turbulence model\n" << endl; Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence autoPtr<compressible::RASModel> turbulence
( (
compressible::RASModel::New compressible::New<compressible::RASModel>
( (
rho, rho,
U, U,

View File

@ -8,7 +8,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lcompressibleTransportModels \ -lcompressibleTransportModels \

View File

@ -70,7 +70,7 @@ dimensionedScalar rhoMin
Info<< "Creating turbulence model\n" << endl; Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence autoPtr<compressible::RASModel> turbulence
( (
compressible::RASModel::New compressible::New<compressible::RASModel>
( (
rho, rho,
U, U,

View File

@ -24,6 +24,9 @@ License
Application Application
rhoPorousSimpleFoam rhoPorousSimpleFoam
Group
grpCompressibleSolvers
Description Description
Steady-state solver for turbulent flow of compressible fluids with Steady-state solver for turbulent flow of compressible fluids with
RANS turbulence modelling, implicit or explicit porosity treatment RANS turbulence modelling, implicit or explicit porosity treatment
@ -34,7 +37,7 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "rhoThermo.H" #include "rhoThermo.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "IOporosityModelList.H" #include "IOporosityModelList.H"
#include "simpleControl.H" #include "simpleControl.H"
@ -54,6 +57,8 @@ int main(int argc, char *argv[])
#include "createZones.H" #include "createZones.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -24,6 +24,9 @@ License
Application Application
rhoSimpleFoam rhoSimpleFoam
Group
grpCompressibleSolvers
Description Description
Steady-state SIMPLE solver for laminar or turbulent RANS flow of Steady-state SIMPLE solver for laminar or turbulent RANS flow of
compressible fluids. compressible fluids.
@ -34,7 +37,7 @@ Description
#include "psiThermo.H" #include "psiThermo.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "simpleControl.H" #include "simpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -51,6 +54,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -6,7 +6,6 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude -I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \ EXE_LIBS = \

View File

@ -9,7 +9,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/cfdTools \ -I$(LIB_SRC)/finiteVolume/cfdTools \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \

View File

@ -39,7 +39,7 @@ Description
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "CorrectPhi.H" #include "CorrectPhi.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -60,6 +60,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -37,7 +37,7 @@ Description
#include "psiThermo.H" #include "psiThermo.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -54,6 +54,8 @@ int main(int argc, char *argv[])
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -21,6 +21,9 @@ License
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Group
grpCompressibleSolvers
Application Application
sonicLiquidFoam sonicLiquidFoam

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpDiscreteMethodsSolvers Discrete method solvers
@{
\ingroup grpSolvers
This group contains discrete method solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -24,6 +24,9 @@ License
Application Application
dsmcFoam dsmcFoam
Group
grpDiscreteMethodsSolvers
Description Description
Direct simulation Monte Carlo (DSMC) solver for 3D, transient, multi- Direct simulation Monte Carlo (DSMC) solver for 3D, transient, multi-
species flows species flows

View File

@ -24,6 +24,9 @@ License
Application Application
mdEquilibrationFoam mdEquilibrationFoam
Group
grpDiscreteMethodsSolvers
Description Description
Equilibrates and/or preconditions molecular dynamics systems Equilibrates and/or preconditions molecular dynamics systems

View File

@ -24,6 +24,9 @@ License
Application Application
mdFoam mdFoam
Group
grpDiscreteMethodsSolvers
Description Description
Molecular dynamics solver for fluid dynamics Molecular dynamics solver for fluid dynamics

View File

@ -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 <http://www.gnu.org/licenses/>.
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
\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
\*---------------------------------------------------------------------------*/

View File

@ -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 <http://www.gnu.org/licenses/>.
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
\defgroup grpSolvers Solvers
@{
This group contains solvers
@}
\defgroup grpMovingMeshSolvers Moving mesh solvers
@{
\ingroup grpSolvers
This group contains moving mesh solvers solvers
@}
\*---------------------------------------------------------------------------*/

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpElectroMagneticsSolvers Electro-magnetics solvers
@{
\ingroup grpSolvers
This group contains electro-magnetics solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -24,6 +24,9 @@ License
Application Application
electrostaticFoam electrostaticFoam
Group
grpElectroMagneticsSolvers
Description Description
Solver for electrostatics. Solver for electrostatics.

View File

@ -58,7 +58,7 @@
if (magnetZonei == -1) if (magnetZonei == -1)
{ {
FatalIOErrorIn(args.executable().c_str(), transportProperties) FatalIOErrorInFunction(transportProperties)
<< "Cannot find faceZone for magnet " << magnets[i].name() << "Cannot find faceZone for magnet " << magnets[i].name()
<< exit(FatalIOError); << exit(FatalIOError);
} }

View File

@ -24,6 +24,9 @@ License
Application Application
magneticFoam magneticFoam
Group
grpElectroMagneticsSolvers
Description Description
Solver for the magnetic field generated by permanent magnets. Solver for the magnetic field generated by permanent magnets.

View File

@ -24,6 +24,9 @@ License
Application Application
mhdFoam mhdFoam
Group
grpElectroMagneticsSolvers
Description Description
Solver for magnetohydrodynamics (MHD): incompressible, laminar flow of a Solver for magnetohydrodynamics (MHD): incompressible, laminar flow of a
conducting fluid under the influence of a magnetic field. conducting fluid under the influence of a magnetic field.

View File

@ -24,6 +24,9 @@ License
Application Application
financialFoam financialFoam
Group
grpFinancialSolvers
Description Description
Solves the Black-Scholes equation to price commodities. Solves the Black-Scholes equation to price commodities.

View File

@ -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 <http://www.gnu.org/licenses/>.
\defgroup grpFinancialSolvers Financial solvers
@{
\ingroup grpSolvers
This group contains financial solvers.
@}
\*---------------------------------------------------------------------------*/

View File

@ -7,7 +7,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude -I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \ EXE_LIBS = \

View File

@ -24,6 +24,9 @@ License
Application Application
buoyantBoussinesqPimpleFoam buoyantBoussinesqPimpleFoam
Group
grpHeatTransferSolvers
Description Description
Transient solver for buoyant, turbulent flow of incompressible fluids Transient solver for buoyant, turbulent flow of incompressible fluids
@ -49,7 +52,7 @@ Description
#include "singlePhaseTransportModel.H" #include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H" #include "turbulentTransportModel.H"
#include "radiationModel.H" #include "radiationModel.H"
#include "fvIOoptionList.H" #include "fvOptions.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H" #include "fixedFluxPressureFvPatchScalarField.H"
@ -72,6 +75,8 @@ int main(int argc, char *argv[])
#include "CourantNo.H" #include "CourantNo.H"
#include "setInitialDeltaT.H" #include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -49,7 +49,7 @@ volVectorField U
Info<< "Creating turbulence model\n" << endl; Info<< "Creating turbulence model\n" << endl;
autoPtr<incompressible::RASModel> turbulence autoPtr<incompressible::RASModel> turbulence
( (
incompressible::RASModel::New(U, phi, laminarTransport) incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
); );
// Kinematic density for buoyancy force // Kinematic density for buoyancy force

View File

@ -3,15 +3,16 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \ -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lturbulenceModels \ -lturbulenceModels \
-lincompressibleTurbulenceModels \ -lincompressibleTurbulenceModels \
-lincompressibleTransportModels \ -lincompressibleTransportModels \
-lradiationModels \
-lfiniteVolume \ -lfiniteVolume \
-lsampling \ -lsampling \
-lmeshTools \ -lmeshTools \

View File

@ -9,7 +9,8 @@
fvm::div(phi, T) fvm::div(phi, T)
- fvm::laplacian(alphaEff, T) - fvm::laplacian(alphaEff, T)
== ==
fvOptions(T) radiation->ST(rhoCpRef, T)
+ fvOptions(T)
); );
TEqn.relax(); TEqn.relax();
@ -18,6 +19,8 @@
TEqn.solve(); TEqn.solve();
radiation->correct();
fvOptions.correct(T); fvOptions.correct(T);
rhok = 1.0 - beta*(T - TRef); rhok = 1.0 - beta*(T - TRef);

View File

@ -24,6 +24,9 @@ License
Application Application
buoyantBoussinesqSimpleFoam buoyantBoussinesqSimpleFoam
Group
grpHeatTransferSolvers
Description Description
Steady-state solver for buoyant, turbulent flow of incompressible fluids Steady-state solver for buoyant, turbulent flow of incompressible fluids
@ -48,7 +51,8 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "singlePhaseTransportModel.H" #include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H" #include "turbulentTransportModel.H"
#include "fvIOoptionList.H" #include "radiationModel.H"
#include "fvOptions.H"
#include "simpleControl.H" #include "simpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H" #include "fixedFluxPressureFvPatchScalarField.H"
@ -63,10 +67,13 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createIncompressibleRadiationModel.H"
#include "createMRF.H" #include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;

View File

@ -49,7 +49,7 @@ volVectorField U
Info<< "Creating turbulence model\n" << endl; Info<< "Creating turbulence model\n" << endl;
autoPtr<incompressible::RASModel> turbulence autoPtr<incompressible::RASModel> turbulence
( (
incompressible::RASModel::New(U, phi, laminarTransport) incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
); );
// Kinematic density for buoyancy force // Kinematic density for buoyancy force

Some files were not shown because too many files have changed in this diff Show More