mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
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:
5
Allwmake
5
Allwmake
@ -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
22
README.md
Normal 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
|
||||||
30
README.org
30
README.org
@ -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]]
|
|
||||||
30
applications/solvers/DNS/DNSSolversDoc.H
Normal file
30
applications/solvers/DNS/DNSSolversDoc.H
Normal 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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
30
applications/solvers/basic/basicSolversDoc.H
Normal file
30
applications/solvers/basic/basicSolversDoc.H
Normal 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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
const dictionary& potentialFlow
|
|
||||||
(
|
|
||||||
mesh.solutionDict().subDict("potentialFlow")
|
|
||||||
);
|
|
||||||
|
|
||||||
const int nNonOrthCorr
|
|
||||||
(
|
|
||||||
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
|
||||||
);
|
|
||||||
@ -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
|
||||||
(
|
(
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
@ -168,7 +168,7 @@ public:
|
|||||||
|
|
||||||
virtual void writeFields() const
|
virtual void writeFields() const
|
||||||
{
|
{
|
||||||
notImplemented("PDRDragModel::write()");
|
NotImplemented;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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"))
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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())
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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")));
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
30
applications/solvers/combustion/combustionSolversDoc.H
Normal file
30
applications/solvers/combustion/combustionSolversDoc.H
Normal 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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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 \
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -1,23 +1,24 @@
|
|||||||
MRF.correctBoundaryVelocity(U);
|
// Solve the Momentum equation
|
||||||
|
|
||||||
fvVectorMatrix UEqn
|
MRF.correctBoundaryVelocity(U);
|
||||||
(
|
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
|
||||||
+ MRF.DDt(rho, U)
|
|
||||||
+ turbulence->divDevRhoReff(U)
|
|
||||||
==
|
|
||||||
rho*g
|
|
||||||
+ fvOptions(rho, U)
|
|
||||||
);
|
|
||||||
|
|
||||||
UEqn.relax();
|
tmp<fvVectorMatrix> 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())
|
fvOptions.constrain(UEqn());
|
||||||
{
|
|
||||||
solve(UEqn == -fvc::grad(p));
|
|
||||||
|
|
||||||
fvOptions.correct(U);
|
if (pimple.momentumPredictor())
|
||||||
K = 0.5*magSqr(U);
|
{
|
||||||
}
|
solve(UEqn() == -fvc::grad(p));
|
||||||
|
|
||||||
|
fvOptions.correct(U);
|
||||||
|
K = 0.5*magSqr(U);
|
||||||
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
125
applications/solvers/combustion/reactingFoam/pcEqn.H
Normal file
125
applications/solvers/combustion/reactingFoam/pcEqn.H
Normal 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;
|
||||||
@ -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"
|
||||||
@ -95,7 +99,14 @@ int main(int argc, char *argv[])
|
|||||||
// --- Pressure corrector loop
|
// --- Pressure corrector loop
|
||||||
while (pimple.correct())
|
while (pimple.correct())
|
||||||
{
|
{
|
||||||
#include "pEqn.H"
|
if (pimple.consistent())
|
||||||
|
{
|
||||||
|
#include "pcEqn.H"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#include "pEqn.H"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.turbCorr())
|
if (pimple.turbCorr())
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
30
applications/solvers/compressible/compressibleSolvers.H
Normal file
30
applications/solvers/compressible/compressibleSolvers.H
Normal 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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -11,6 +11,7 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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 = \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
44
applications/solvers/doc/solver.dox
Normal file
44
applications/solvers/doc/solver.dox
Normal 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
|
||||||
|
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
37
applications/solvers/doc/solversDoc.H
Normal file
37
applications/solvers/doc/solversDoc.H
Normal 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
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -24,6 +24,9 @@ License
|
|||||||
Application
|
Application
|
||||||
electrostaticFoam
|
electrostaticFoam
|
||||||
|
|
||||||
|
Group
|
||||||
|
grpElectroMagneticsSolvers
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Solver for electrostatics.
|
Solver for electrostatics.
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
30
applications/solvers/financial/financialSolversDoc.H
Normal file
30
applications/solvers/financial/financialSolversDoc.H
Normal 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.
|
||||||
|
@}
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -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 = \
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
Reference in New Issue
Block a user