mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge remote branch 'bundle/olesenm' into home
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -35,6 +35,7 @@ core
|
|||||||
lnInclude
|
lnInclude
|
||||||
|
|
||||||
# build folders - anywhere
|
# build folders - anywhere
|
||||||
|
linux*Clang*/
|
||||||
linux*Gcc*/
|
linux*Gcc*/
|
||||||
linux*Icc*/
|
linux*Icc*/
|
||||||
linuxming*/
|
linuxming*/
|
||||||
|
|||||||
7
Allwmake
7
Allwmake
@ -12,7 +12,12 @@ wmakeCheckPwd "$WM_PROJECT_DIR" || {
|
|||||||
( cd wmake/src && make )
|
( cd wmake/src && make )
|
||||||
|
|
||||||
# build ThirdParty sources
|
# build ThirdParty sources
|
||||||
$WM_THIRD_PARTY_DIR/Allwmake
|
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
||||||
|
then
|
||||||
|
$WM_THIRD_PARTY_DIR/Allwmake
|
||||||
|
else
|
||||||
|
echo "no ThirdParty sources found - skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
# build OpenFOAM libraries and applications
|
# build OpenFOAM libraries and applications
|
||||||
src/Allwmake
|
src/Allwmake
|
||||||
|
|||||||
209
README
209
README
@ -1,209 +0,0 @@
|
|||||||
# -*- mode: org; -*-
|
|
||||||
#
|
|
||||||
#+TITLE: OpenFOAM README for version 1.6
|
|
||||||
#+AUTHOR: OpenCFD Ltd.
|
|
||||||
#+DATE: April 2010
|
|
||||||
#+LINK: http://www.opencfd.co.uk
|
|
||||||
#+OPTIONS: author:nil ^:{}
|
|
||||||
|
|
||||||
* 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, for a description of the
|
|
||||||
GNU General Public License terms under which you can copy the files.
|
|
||||||
|
|
||||||
* System requirements
|
|
||||||
OpenFOAM is developed and tested on Linux, but should work with other POSIX
|
|
||||||
systems. To check your system setup, execute the foamSystemCheck script in
|
|
||||||
the bin/ directory of the OpenFOAM installation. If no problems are reported,
|
|
||||||
proceed to "3. Installation"; otherwise contact your system administrator.
|
|
||||||
|
|
||||||
If the user wishes to run OpenFOAM in 32/64-bit mode they should consult the
|
|
||||||
section "Running OpenFOAM in 32-bit mode".
|
|
||||||
|
|
||||||
*** Qt (from http://trolltech.com/products/qt)
|
|
||||||
The ParaView 3.7.0 visualisation package requires Qt to be installed on the
|
|
||||||
system. ParaView's producers state that ParaView is only officially
|
|
||||||
supported on Qt version 4.6.x. However, we have found in limited tests that
|
|
||||||
ParaView works satisfactorily with Qt than 4.5.x. To
|
|
||||||
check whether Qt4 is installed, and the version, type:
|
|
||||||
+ qmake --version
|
|
||||||
|
|
||||||
Both 32-bit and 64-bit version of ParaView were compiled with Qt-4.4.3 (with
|
|
||||||
openSUSE-11.1). If the user finds that a ParaView binary fails to run, then
|
|
||||||
it is almost certainly due to a conflict in compiled and installed Qt
|
|
||||||
versions and they will need to consult the section below on "Compiling
|
|
||||||
ParaView and the PV3FoamReader module."
|
|
||||||
|
|
||||||
The default versions of Qt used by some GNU/Linux releases are as follows.
|
|
||||||
+ ubuntu-7.10: Version 4.3.2
|
|
||||||
+ ubuntu-8.04: Version 4.3.4
|
|
||||||
+ ubuntu-9.04: Version 4.5.0
|
|
||||||
+ openSUSE-10.2: Version 4.2.1 - too old
|
|
||||||
+ openSUSE-10.3: Version 4.3.1
|
|
||||||
+ openSUSE-11.0: Version 4.4.0
|
|
||||||
+ openSUSE-11.1: Version 4.4.3
|
|
||||||
+ openSUSE-11.2: Version 4.5.3
|
|
||||||
|
|
||||||
Compilation and running of ParaView has been successful using the libraries
|
|
||||||
downloaded in the "libqt4-dev" package on ubuntu.
|
|
||||||
|
|
||||||
If you don't have an appropriate version of Qt installed you can download
|
|
||||||
the sources e.g.:
|
|
||||||
http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz
|
|
||||||
and compile and install in /usr/local or some other location that does not
|
|
||||||
conflict with the pre-installed version.
|
|
||||||
|
|
||||||
* Installation
|
|
||||||
Download and unpack the files in the $HOME/OpenFOAM directory as described in:
|
|
||||||
http://www.OpenFOAM.org/download.html
|
|
||||||
|
|
||||||
The environment variable settings are contained in files in an etc/ directory
|
|
||||||
in the OpenFOAM release. e.g. in
|
|
||||||
|
|
||||||
+ $HOME/OpenFOAM/OpenFOAM-1.6/etc/
|
|
||||||
|
|
||||||
1) EITHER, if running bash or ksh (if in doubt type 'echo $SHELL'), source the
|
|
||||||
etc/bashrc file by adding the following line to the end of your
|
|
||||||
$HOME/.bashrc file:
|
|
||||||
|
|
||||||
+ . $HOME/OpenFOAM/OpenFOAM-1.6/etc/bashrc
|
|
||||||
|
|
||||||
Then update the environment variables by sourcing the $HOME/.bashrc file by
|
|
||||||
typing in the terminal:
|
|
||||||
|
|
||||||
+ . $HOME/.bashrc
|
|
||||||
|
|
||||||
2) OR, if running tcsh or csh, source the etc/cshrc file by adding the
|
|
||||||
following line to the end of your $HOME/.cshrc file:
|
|
||||||
|
|
||||||
+ source $HOME/OpenFOAM/OpenFOAM-1.6/etc/cshrc
|
|
||||||
|
|
||||||
Then update the environment variables by sourcing the $HOME/.cshrc file by
|
|
||||||
typing in the terminal:
|
|
||||||
|
|
||||||
+ source $HOME/.cshrc
|
|
||||||
|
|
||||||
*** Installation in alternative locations
|
|
||||||
OpenFOAM may also be installed in alternative locations. However, the
|
|
||||||
installation directory should be network available (e.g., NFS) if parallel
|
|
||||||
calculations are planned.
|
|
||||||
|
|
||||||
The environment variable 'FOAM_INST_DIR' can be used to find and source the
|
|
||||||
appropriate resource file. Here is a bash/ksh/sh example:
|
|
||||||
|
|
||||||
+ export FOAM_INST_DIR=/data/app/OpenFOAM
|
|
||||||
+ foamDotFile=$FOAM_INST_DIR/OpenFOAM-1.6/etc/bashrc
|
|
||||||
+ [ -f $foamDotFile ] && . $foamDotFile
|
|
||||||
|
|
||||||
and a csh/tcsh example:
|
|
||||||
|
|
||||||
+ setenv FOAM_INST_DIR /data/app/OpenFOAM
|
|
||||||
+ foamDotFile=$FOAM_INST_DIR/OpenFOAM-1.6/etc/cshrc
|
|
||||||
+ if ( -f $foamDotFile ) source $foamDotFile
|
|
||||||
|
|
||||||
The value set in '$FOAM_INST_DIR' will be used to locate the remaining parts
|
|
||||||
of the OpenFOAM installation.
|
|
||||||
|
|
||||||
* Building from Sources (Optional)
|
|
||||||
If you cannot find an appropriate binary pack for your platform, you can build
|
|
||||||
the complete OpenFOAM from the source-pack. You will first need to compile or
|
|
||||||
obtain a recent version of gcc (we recommend gcc-4.4.?) for your platform,
|
|
||||||
which may be obtained from http://gcc.gnu.org/.
|
|
||||||
|
|
||||||
Install the compiler in
|
|
||||||
$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/gcc-<GCC_VERSION>
|
|
||||||
and change the gcc version number in $WM_PROJECT_DIR/etc/settings.sh and
|
|
||||||
$WM_PROJECT_DIR/etc/settings.csh appropriately and finally update the
|
|
||||||
environment variables as in section 3.
|
|
||||||
|
|
||||||
Now go to the top-level source directory $WM_PROJECT_DIR and execute the
|
|
||||||
top-level build script './Allwmake'. In principle this will build everything,
|
|
||||||
but if problems occur with the build order it may be necessary to update the
|
|
||||||
environment variables and re-execute './Allwmake'.
|
|
||||||
|
|
||||||
If you experience difficulties with building the source-pack, or your platform
|
|
||||||
is not currently supported, please contact <enquiries@OpenCFD.co.uk> to
|
|
||||||
negotiate a support contract and we will do the port and maintain it for
|
|
||||||
future releases.
|
|
||||||
|
|
||||||
* Testing the installation
|
|
||||||
To check your installation setup, execute the 'foamInstallationTest' script
|
|
||||||
(in the bin/ directory of the OpenFOAM installation). If no problems are
|
|
||||||
reported, proceed to getting started with OpenFOAM; otherwise, go back and
|
|
||||||
check you have installed the software correctly and/or contact your system
|
|
||||||
administrator.
|
|
||||||
|
|
||||||
* Getting Started
|
|
||||||
Create a project directory within the $HOME/OpenFOAM directory named
|
|
||||||
<USER>-1.6 (e.g. 'chris-1.6' for user chris and OpenFOAM version 1.6)
|
|
||||||
and create a directory named 'run' within it, e.g. by typing:
|
|
||||||
|
|
||||||
+ mkdir -p $FOAM_RUN/run
|
|
||||||
|
|
||||||
Copy the 'tutorial' examples directory in the OpenFOAM distribution to the
|
|
||||||
'run' directory. If the OpenFOAM environment variables are set correctly,
|
|
||||||
then the following command will be correct:
|
|
||||||
|
|
||||||
+ cp -r $WM_PROJECT_DIR/tutorials $FOAM_RUN
|
|
||||||
|
|
||||||
Run the first example case of incompressible laminar flow in a cavity:
|
|
||||||
|
|
||||||
+ cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
|
|
||||||
+ blockMesh
|
|
||||||
+ icoFoam
|
|
||||||
+ paraFoam
|
|
||||||
|
|
||||||
Refer to the OpenFOAM User Guide at http://www.OpenFOAM.org/doc/user.html for
|
|
||||||
more information.
|
|
||||||
|
|
||||||
* Compiling Paraview 3.7.0 and the PV3FoamReader module
|
|
||||||
If there are problems encountered with ParaView, then it may be necessary to
|
|
||||||
compile ParaView from sources. The compilation
|
|
||||||
is a fairly simple process using the makeParaView script
|
|
||||||
(found in ThirdParty directory), which has worked in our tests with other
|
|
||||||
packages supplied in the ThirdParty directory, namely cmake-2.8.0 and
|
|
||||||
gcc-4.4.3. Execute the following:
|
|
||||||
+ cd $WM_THIRD_PARTY_DIR
|
|
||||||
+ rm -rf paraview-3.7.0/platforms
|
|
||||||
+ rm -rf platforms/*/paraview-3.7.0
|
|
||||||
+ ./makeParaView
|
|
||||||
|
|
||||||
The PV3blockMeshReader and the PV3FoamReader ParaView plugins are compiled
|
|
||||||
as usual for OpenFOAM utilities:
|
|
||||||
+ cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers/
|
|
||||||
+ ./Allwclean
|
|
||||||
+ ./Allwmake
|
|
||||||
|
|
||||||
*** Compiling Paraview with a local version of Qt
|
|
||||||
If the user still encounters problems with ParaView, it may relate to the
|
|
||||||
version of Qt, in which case, it is recommended that the user first
|
|
||||||
downloads a supported version of Qt /e.g./ 4.5.3 as described in the section
|
|
||||||
on "Qt". The user should unpack the source pack in the $WM_THIRD_PARTY_DIR.
|
|
||||||
Then the user can build Qt by executing from within $WM_THIRD_PARTY_DIR:
|
|
||||||
+ ./makeQt
|
|
||||||
|
|
||||||
The user should then compile ParaView using the local version of Qt by
|
|
||||||
executing makeParaView with the -qmake option, giving the full path of the
|
|
||||||
newly built qmake as an argument:
|
|
||||||
+ ./makeParaView -qmake <path_to_qmake>
|
|
||||||
|
|
||||||
The user must then recompile the PV3blockMeshReader and the
|
|
||||||
PV3FoamReader plugins as usual (see above).
|
|
||||||
|
|
||||||
* Documentation
|
|
||||||
http://www.OpenFOAM.org/doc
|
|
||||||
|
|
||||||
* Help
|
|
||||||
http://www.OpenFOAM.org http://www.OpenFOAM.org/discussion.html
|
|
||||||
|
|
||||||
* Reporting Bugs in OpenFOAM
|
|
||||||
http://www.OpenFOAM.org/bugs.html
|
|
||||||
|
|
||||||
* Running OpenFOAM in 32-bit mode on 64-bit machines
|
|
||||||
Linux users with a 64-bit machine may install either the OpenFOAM 32-bit
|
|
||||||
version (linux) or the OpenFOAM 64-bit version (linux64), or both. The 64-bit
|
|
||||||
is the default mode on a 64-bit machine. To use an installed 32-bit version,
|
|
||||||
the user must set the environment variable WM_ARCH_OPTION to 32 before
|
|
||||||
sourcing the etc/bashrc (or etc/cshrc) file.
|
|
||||||
374
ReleaseNotes-1.6
374
ReleaseNotes-1.6
@ -1,374 +0,0 @@
|
|||||||
# -*- mode: org; -*-
|
|
||||||
#
|
|
||||||
#+TITLE: OpenFOAM release notes for version 1.6
|
|
||||||
#+AUTHOR: OpenCFD Ltd.
|
|
||||||
#+DATE: July 2009
|
|
||||||
#+LINK: http://www.opencfd.co.uk
|
|
||||||
#+OPTIONS: author:nil ^:{}
|
|
||||||
|
|
||||||
* Overview
|
|
||||||
OpenFOAM-1.6 is a significant upgrade to version 1.5 in ways that are
|
|
||||||
outlined below. This release passes all our standard tests and the
|
|
||||||
tutorials have been broadly checked. If there are any bugs, please report
|
|
||||||
them using the instructions set out here:
|
|
||||||
http://www.OpenFOAM.org/bugs.html.
|
|
||||||
|
|
||||||
* GNU/Linux version
|
|
||||||
The 32bit and 64bit binary packs of the OpenFOAM release were compiled on
|
|
||||||
a machine running openSUSE GNU/Linux version 11.1 and also tested on
|
|
||||||
Ubuntu 9. We recommend that users run OpenFOAM on one of these, or on a
|
|
||||||
similarly recent version of GNU/Linux. This release has also been
|
|
||||||
successfully compiled and tested on older GNU/Linux releases, but this
|
|
||||||
requires the installation of Qt 4.3.? (the sources for which are supplied
|
|
||||||
with OpenFOAM-1.6, see README) for ParaView-3 to run.
|
|
||||||
|
|
||||||
* C++ Compiler version
|
|
||||||
+ Release compiled with GCC 4.3.3.
|
|
||||||
+ Built-in support for the Intel C++ 10.? compiler (untested).
|
|
||||||
+ The choice of the compiler is controlled by the setting of the
|
|
||||||
~$WM_COMPILER~ and ~$WM_COMPILER_ARCH~ environment variables in the
|
|
||||||
/OpenFOAM-1.6/etc/bashrc/ (or /cshrc/) file.
|
|
||||||
+ The location of the compiler installation is controlled by the
|
|
||||||
~$compilerInstall~ environment variable in the
|
|
||||||
/OpenFOAM-1.6/etc/settings.sh/ (or /settings.csh/) file.
|
|
||||||
|
|
||||||
* Library developments
|
|
||||||
|
|
||||||
*** Core library
|
|
||||||
|
|
||||||
***** Dictionary improvements/changes
|
|
||||||
+ Dictionaries can use words (unquoted) or regular expressions (quoted)
|
|
||||||
for their keywords. When searching, an exact match has priority over a
|
|
||||||
regular expression match. Multiple regular expressions are matched in
|
|
||||||
reverse order.
|
|
||||||
+ The *new* =#includeIfPresent= directive is similar to the =#include=
|
|
||||||
directive, but does not generate an error if the file does not exist.
|
|
||||||
+ The default =#inputMode= is now '=merge=', which corresponds to the most
|
|
||||||
general usage. The =#inputMode warn= corresponds to the previous default
|
|
||||||
behaviour.
|
|
||||||
+ The *new* =#inputMode protect= can be used to conditionally merge
|
|
||||||
default values into existing dictionaries.
|
|
||||||
+ *New* =digest()= method to calculate and return the SHA1 message digest.
|
|
||||||
|
|
||||||
***** Regular Expressions
|
|
||||||
The addition of regular expressions marks a major improvement in
|
|
||||||
usability.
|
|
||||||
+ *New* =regExp= class provides support for accessing POSIX extended
|
|
||||||
regular expresssions from within OpenFOAM.
|
|
||||||
+ *New* =wordRe= class can contain a =word= or a =regExp= .
|
|
||||||
+ *New* =stringListOps= to search string lists based on regular
|
|
||||||
expressions, =wordRe= or =wordReList=.
|
|
||||||
+ =Istream= and =Ostream= now retain backslashes when reading/writing
|
|
||||||
strings.
|
|
||||||
|
|
||||||
***** Convenience changes
|
|
||||||
+ =IOobject= has a *new* constructor for creating an =IOobject= from a
|
|
||||||
single-path specification (eg, see =blockMesh -dict= option).
|
|
||||||
+ =argList= has *new* convenience methods for accessing options more
|
|
||||||
directly: =option()=, =optionFound()=, =optionLookup()=, =optionRead()=,
|
|
||||||
=optionReadIfPresent()=.
|
|
||||||
+ The *new* =readList(Istream&)= can read a bracket-delimited list or
|
|
||||||
handle a single value as a list of size 1. This can be a useful
|
|
||||||
convenience when processing command-line options.
|
|
||||||
+ Export *new* environment variable =FOAM_CASENAME= that contains the
|
|
||||||
name part of the =FOAM_CASE= environment variable.
|
|
||||||
|
|
||||||
*** Turbulence modelling
|
|
||||||
+ Major development of turbulence model libraries to give extra flexibility
|
|
||||||
at the solver level. For solvers that can support either RAS/LES
|
|
||||||
computations, the selection is made in the
|
|
||||||
/constant/turbulenceProperties/, by setting the =simulationType= keyword
|
|
||||||
to:
|
|
||||||
- =laminar=,
|
|
||||||
- =RASModel=,
|
|
||||||
- =LESModel=.
|
|
||||||
+ Depending on the selection, the model is the instantiated from /constant//
|
|
||||||
- /RASProperties/,
|
|
||||||
- /LESProperties/.
|
|
||||||
|
|
||||||
***** RAS wall functions
|
|
||||||
Wall functions are now run-time selectable per patch for RAS.
|
|
||||||
+ Velocity:
|
|
||||||
- Apply to turbulent viscosities =nut= or =mut=,
|
|
||||||
- Apply to =k=, =Q=, =R=,
|
|
||||||
- Apply to =epsilon=, =omega=.
|
|
||||||
+ Temperature:
|
|
||||||
- Apply to turbulent thermal diffusivity, =alphat= (compressible only).
|
|
||||||
+ To apply wall functions:
|
|
||||||
- To recapture the functionality of previous OpenFOAM versions (v1.5 and
|
|
||||||
earlier) assign:
|
|
||||||
- for velocity:
|
|
||||||
- =nut=: =nutWallFunction=,
|
|
||||||
- =mut=: =muWallFunction=,
|
|
||||||
- =epsilon=: =epsilonWallFunction=,
|
|
||||||
- =omega=: =omegaWallFunction=,
|
|
||||||
- =k=, =q=, =R=: =kqRWallFunction=.
|
|
||||||
- for temperature:
|
|
||||||
- =alphat=: =alphatWallFunction=.
|
|
||||||
- New =alphaSgsJayatillekeWallFunction= thermal wall function for
|
|
||||||
compressible LES.
|
|
||||||
|
|
||||||
***** *New* LES turbulence models
|
|
||||||
+ Spalart-Allmaras DDES.
|
|
||||||
+ Spalart-Allmaras IDDES.
|
|
||||||
|
|
||||||
***** Upgrading:
|
|
||||||
+ *New* utility - =applyWallFunctionBoundaryConditions=.
|
|
||||||
+ Solvers will automatically update existing cases.
|
|
||||||
- New fields created based on the presence of the =nut/mut= field.
|
|
||||||
- Boundary conditions include scoping, i.e compressibility:: for
|
|
||||||
compressible solvers.
|
|
||||||
- Modified fields will be backed-up to /<field>.old/.
|
|
||||||
+ NOTE:
|
|
||||||
- Fields are only updated for those fields associated with the current
|
|
||||||
turbulence model selection, i.e. if fields exist for use with other
|
|
||||||
models, they will not be updated.
|
|
||||||
- The new specification is not backwards compatible.
|
|
||||||
|
|
||||||
*** Thermo-physical Models
|
|
||||||
+ Old compressibility-based thermo package renamed
|
|
||||||
=basicThermo= \rightarrow =basicPsiThermo=.
|
|
||||||
+ *New* =basicRhoThermo= thermo package.
|
|
||||||
- Additional density field stored.
|
|
||||||
- General form - can be used for other types of media, e.g. liquids.
|
|
||||||
- Additional polynomial-based thermodynamics:
|
|
||||||
- Equation of state: =icoPolynomial=,
|
|
||||||
- Transport: =polynomialTransport=,
|
|
||||||
- Thermo: =hPolynomialThermo=.
|
|
||||||
+ Removed earlier hard-coding of gas thermophysics for chemistry modelling:
|
|
||||||
- =reactingMixture= now templated on thermo package,
|
|
||||||
- =chemistryModel= now templated on thermo package,
|
|
||||||
- =chemistrySolver= now templated on thermo package.
|
|
||||||
+ *New* =fvDOM= radition model
|
|
||||||
- finite volume, discrete ordinates method.
|
|
||||||
+ *New* (reinstated) =eThermo= thermodynamics package
|
|
||||||
- internal energy-based thermodynamics.
|
|
||||||
|
|
||||||
*** Lagrangian
|
|
||||||
|
|
||||||
***** Intermediate
|
|
||||||
+ Overhaul of the underlying framework.
|
|
||||||
+ Reacting now split into reacting and reacting multiphase.
|
|
||||||
+ New structure for variable composition.
|
|
||||||
+ Many new sub-models, including:
|
|
||||||
- Injection
|
|
||||||
- =PatchInjection= - injection local to patch face cells,
|
|
||||||
- =FieldActivatedInjection= - injection based on satisfying external
|
|
||||||
criterion,
|
|
||||||
- LookupTableInjection - explicity define injection locations and all
|
|
||||||
parcel properties.
|
|
||||||
- Post-processing
|
|
||||||
- patch post-processing - collect data for parcels impacting user,
|
|
||||||
defined patches.
|
|
||||||
- Patch interaction
|
|
||||||
- generalised behaviour for parcel interaction with patch.
|
|
||||||
- Phase change
|
|
||||||
- liquid evaporation.
|
|
||||||
|
|
||||||
***** Coal combustion
|
|
||||||
+ *New* library - extension of reacting-multiphase functionality.
|
|
||||||
- Surface reaction/combustion models.
|
|
||||||
|
|
||||||
*** Discrete methods
|
|
||||||
+ *New* library offering DSMC simulation functionality - see =dsmcFoam=
|
|
||||||
below.
|
|
||||||
+ Significant development of the libraries offering molecular dynamics
|
|
||||||
simulation functionality - see =mdFoam= and =mdEquilibrationFoam= below.
|
|
||||||
|
|
||||||
*** Numerics
|
|
||||||
+ *new* polynomial-fit higher-order interpolation schemes:
|
|
||||||
- =biLinearFit=
|
|
||||||
- =linearFit=
|
|
||||||
- =quadraticLinearFit=
|
|
||||||
- =quadraticFit=
|
|
||||||
- =linearPureUpwindFit=
|
|
||||||
- =quadraticLinearPureUpwindFit=
|
|
||||||
- =quadraticLinearUpwindFit=
|
|
||||||
- =quadraticUpwindFit=
|
|
||||||
- =cubicUpwindFit=
|
|
||||||
+ *new* polynomial-fit higher-order Sn-Grad: =quadraticFitSnGrad=.
|
|
||||||
|
|
||||||
*** *New* surfMesh library
|
|
||||||
Provides a more efficient storage mechanism than possible with =triSurface=
|
|
||||||
without restrictions on the shape of the face (templated parameter).
|
|
||||||
+ =MeshedSurface= class - with zero or more contiguous =surfZones= .
|
|
||||||
+ =UnsortedMeshedSurface= class - unordered surface zones (as per
|
|
||||||
=triSurface=).
|
|
||||||
+ =surfMesh= class - for reading/writing in native OpenFOAM format.
|
|
||||||
|
|
||||||
* Solvers
|
|
||||||
*** Solver restructuring
|
|
||||||
The upgrade to the turbulence models means that the simulation type, i.e.
|
|
||||||
laminar, RAS or LES can be selected at run time. This has allowed a reduction
|
|
||||||
in the number of solvers, simplifying the overall code structure
|
|
||||||
+ Solvers which support laminar, RAS and LES:
|
|
||||||
- =turbFoam=, =oodles= \rightarrow =pisoFoam=.
|
|
||||||
- =turbDyMFoam= \rightarrow =pimpleDyMFoam=.
|
|
||||||
- =rhoTurbFoam=, =coodles= \rightarrow =rhoPisoFoam=.
|
|
||||||
- =xoodles= \rightarrow absorbed into =XiFoam=.
|
|
||||||
- =buoyantFoam=, =lesBuoyantFoam= \rightarrow =buoyantPisoFoam=.
|
|
||||||
- =interFoam=, =rasInterFoam=, =lesInterFoam= \rightarrow =interFoam=.
|
|
||||||
- =lesCavitatingFoam=, =rasCavitatingFoam= \rightarrow =cavitatingFoam=.
|
|
||||||
+ Solvers which support LES only:
|
|
||||||
- =channelOodles= \rightarrow =channelFoam= (LES).
|
|
||||||
+ =pd= replaced by static pressure =p=. All solvers in which buoyancy affects
|
|
||||||
might be strong have been converted from using =pd= to =p= with improved
|
|
||||||
numerics to give equally good accuracy and stability. This change is
|
|
||||||
prompted by the need to remove the confusion surrounding the meaning and
|
|
||||||
purpose of =pd=.
|
|
||||||
+ =g= (acceleration due to gravity) is now a *new*
|
|
||||||
=uniformDimensionedVectorField= which has the behaviour of a field, is
|
|
||||||
registered to an =objectRegistry=, but stores only a single value. Thus
|
|
||||||
=g= and other =UniformDimensionedFields= can be created and looked-up
|
|
||||||
elsewhere in the code, /e.g./ in =fvPatchFields=.
|
|
||||||
|
|
||||||
*** Solver control improvements
|
|
||||||
Now uses consistent dictionary entries for the solver controls.
|
|
||||||
+ This Allows dictionary substitutions and regular expressions in
|
|
||||||
/system/fvSolution/.
|
|
||||||
+ The old solver control syntax is still supported (warning emitted), but
|
|
||||||
the *new* =foamUpgradeFvSolution= utility can be used to convert
|
|
||||||
/system/fvSolution/ to the new format.
|
|
||||||
|
|
||||||
*** *New* Solvers
|
|
||||||
+ =buoyantBoussinesqSimpleFoam= Steady state heat transfer solver using a
|
|
||||||
Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence
|
|
||||||
modelling.
|
|
||||||
+ =buoyantBoussinesqPisoFoam= Transient heat transfer solver using a
|
|
||||||
Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence
|
|
||||||
modelling.
|
|
||||||
+ =coalChemistryFoam= Transient, reacting lagrangian solver, employing a coal
|
|
||||||
cloud and a thermo cloud, with chemistry, and laminar, RAS or LES turbulence
|
|
||||||
modelling.
|
|
||||||
+ =porousExplicitSourceReactingParcelFoam= Transient, reacting lagrangian
|
|
||||||
solver, employing a single phase reacting cloud, with porous media, explicit
|
|
||||||
mass sources, and laminar, RAS or LES turbulence modelling.
|
|
||||||
+ =rhoReactingFoam= Density-based thermodynamics variant of the reactingFoam
|
|
||||||
solver, i.e. now applicable to liquid systems.
|
|
||||||
+ =dsmcFoam= DSMC (Direct Simulation Monte-Carlo) solver for rarefied gas
|
|
||||||
dynamics simulations, able to simulate mixtures of an arbitrary number of
|
|
||||||
gas species. The variable hard sphere collision model with Larsen-Borgnakke
|
|
||||||
internal energy redistribution (see "Molecular Gas Dynamics and the Direct
|
|
||||||
Simulation of Gas Flows" G.A. Bird, 1994) is available; other run-time
|
|
||||||
selectable collision models can be easily added.
|
|
||||||
|
|
||||||
*** Updated solvers
|
|
||||||
+ =mdFoam= Molecular Dynamics (MD) solver able to simulate a mixture of an
|
|
||||||
arbitrary number of mono-atomic and small, rigid polyatomic (i.e. H2O, N2)
|
|
||||||
molecular species, with 6 degree of freedom motion, in complex geometries. A
|
|
||||||
molecule of any species can be built by specifying its sites of mass and
|
|
||||||
charge. All molecules interact with short-range dispersion forces and
|
|
||||||
pairwise electrostatic interactions using methods described in: Fennell and
|
|
||||||
Gezelter, J. Chem. Phys. 124, 234104 (2006).
|
|
||||||
+ =mdEquilibrationFoam= Similar to mdFoam, but employs velocity scaling to
|
|
||||||
adjust the simulation temperature to a target value. Useful to equilibrate a
|
|
||||||
case before simulation.
|
|
||||||
+ =chtMultiRegionFoam= New boundary condition allows independent decomposition
|
|
||||||
of coupled regions without any constraint on the decomposition.
|
|
||||||
|
|
||||||
* Boundary conditions
|
|
||||||
+ Improved set of direct mapped boundary conditions.
|
|
||||||
+ =buoyantPressureFvPatchScalarField=, the *new* buoyancy pressure boundary
|
|
||||||
condition now supports =p= and =pd= for backward compatibility.
|
|
||||||
+ =uniformDensityHydrostaticPressure= is an additional pressure boundary
|
|
||||||
condition to aid the transition from =pd= to =p= as it behaves similarly to
|
|
||||||
specifying a uniform =pd= at an outlet for example.
|
|
||||||
+ =activeBaffleVelocity= dynamically combines cyclic and wall patches so that
|
|
||||||
the flow through the patch can be controlled /e.g./ by pressure drop.
|
|
||||||
+ =rotatingWallVelocity= specifies a rotating velocity, given the rotational
|
|
||||||
speed, origin and axis.
|
|
||||||
|
|
||||||
* Utilities
|
|
||||||
|
|
||||||
*** Improvements
|
|
||||||
+ =blockMesh= has a *new* =-dict= option for specifying an alternative
|
|
||||||
dictionary for the block mesh description. The '=convertToMeters=' entry
|
|
||||||
is now optional, and the alternative '=scale=' entry can be used for
|
|
||||||
less typing.
|
|
||||||
+ =foamToEnsight= has a *new* =-noPatches= option to suppress generation
|
|
||||||
of patches.
|
|
||||||
+ =foamToEnsightParts= has *new* =-noMesh= and =-index= options that can
|
|
||||||
be useful when post-processing results incrementally.
|
|
||||||
+ =snappyHexMesh= has lower memory footprint. New distributed triangulated
|
|
||||||
surface type for meshing surfaces with extremely large triangle count.
|
|
||||||
Now supports multi-region meshing of arbitrarily complex regions.
|
|
||||||
|
|
||||||
*** *New* utilities
|
|
||||||
+ =particleTracks= - generate particle tracks for lagrangian calculations.
|
|
||||||
+ =dsmcInitialise= - preprocessing utility to create initial configurations
|
|
||||||
of DSMC particles in a geometry.
|
|
||||||
+ =surfaceRedistributePar= - preprocessing utility to create distributed
|
|
||||||
triangulated surface.
|
|
||||||
|
|
||||||
*** *New* foamCalc functions
|
|
||||||
+ =interpolate= performs fvc::interpolate(<field>).
|
|
||||||
+ =randomise= randomises a <field> by a given perturbation.
|
|
||||||
+ =addSubtract= provides simple add/subtract field functionality.
|
|
||||||
|
|
||||||
*** Usage
|
|
||||||
+ =timeSelector= can now combine =-time ranges= and =-latestTime= options.
|
|
||||||
For example, -time '0.01:0.09' -latestTime vs. -time '0.01:'.
|
|
||||||
More reliable behaviour for cases missing /constant// or /0// directories.
|
|
||||||
When the =-noZero= option is enabled, =-latestTime= will not select the
|
|
||||||
=0/= directory unless the =-zeroTime= option is given.
|
|
||||||
This helps avoid ill effects caused by accidentally using the
|
|
||||||
/0// directory in certain utilities (eg, =reconstructPar=).
|
|
||||||
+ =-region= option added to more utilities.
|
|
||||||
|
|
||||||
*** Improvements to Paraview reader module
|
|
||||||
+ =PV3FoamReader= added mesh region handling. The region name is parsed
|
|
||||||
from the filename. Eg, /case{region}.OpenFOAM/.
|
|
||||||
+ =paraFoam= with a *new* =-region= option for specifying an alternative
|
|
||||||
region. A *new* =-touch= option to generate the /.OpenFOAM/ file only.
|
|
||||||
Only creates (and removes) /.OpenFOAM/ files if they didn't already
|
|
||||||
exist, which is useful in connection with the =-touch= option.
|
|
||||||
|
|
||||||
* Post-processing
|
|
||||||
+ Sampling on iso-surfaces, interpolated or non-interpolated.
|
|
||||||
+ Sampling on surface defined by distance to surface (=distanceSurface=).
|
|
||||||
+ Cutting planes for arbitrary meshes.
|
|
||||||
+ Output to any surface geometry format supported by the =surfMesh= library.
|
|
||||||
|
|
||||||
*** Function objects
|
|
||||||
|
|
||||||
***** Improvements for function objects and time-looping
|
|
||||||
+ The =functionObjectList= retains the order of the =functionObject=
|
|
||||||
order, which allows a chaining of operations. It is thus internally more
|
|
||||||
efficient when /system/controlDict/ uses =functions {..}= instead of
|
|
||||||
=functions (..)=, but both forms are supported.
|
|
||||||
+ The =functionObject= now has an additional =end()= method that is called
|
|
||||||
when =Time::loop()= or =Time::run()= determine that the time-loop exits.
|
|
||||||
Accordingly, one of these two idioms should be used in solver code:
|
|
||||||
1. =while (runTime.loop() { ... }=,
|
|
||||||
2. =while (runTime.run()) { runTime++; ... }=.
|
|
||||||
+ *New* =functionObjectList= now tracks the SHA1 message digest of the
|
|
||||||
sub-directories. This avoids reloading a =functionObject= when
|
|
||||||
something unrelated in /system/controlDict/ changed.
|
|
||||||
|
|
||||||
***** *New* function objects:
|
|
||||||
+ =systemCall= - executes a list of system instructions.
|
|
||||||
+ =fieldMinMax= - computes the min/max of a <field>.
|
|
||||||
+ =staticPressure= - converts kinematic pressure to static pressure.
|
|
||||||
+ =dsmcFields= - calculates intensive fields (velocity and temperature)
|
|
||||||
from averaged extensive fields (i.e. momentum and energy).
|
|
||||||
|
|
||||||
***** Usage
|
|
||||||
+ Improved output control: =timeStep= or =outputTime=.
|
|
||||||
|
|
||||||
* Tutorial restructuring
|
|
||||||
to reflect solver application structure.
|
|
||||||
|
|
||||||
* Third-party Software
|
|
||||||
+ =gcc= upgraded to version 4.3.3.
|
|
||||||
+ =OpenMPI= upgraded to version 1.3.3.
|
|
||||||
+ =ParaView= upgraded to version 3.6.1.
|
|
||||||
+ =Scotch= *new* decomposition method: \\
|
|
||||||
Scotch (http://gforge.inria.fr/projects/scotch/) is a general multi-level
|
|
||||||
decomposition method originating from the ScAlApplix project (Inria). It is
|
|
||||||
a framework for general recursive partitioning methods and a such comparable
|
|
||||||
to Metis but with a permissive licence.
|
|
||||||
|
|
||||||
The corresponding decomposition method (in =decomposeParDict=) is
|
|
||||||
=scotch=. An optional =strategy= string can be supplied to change the
|
|
||||||
decomposition methods; initial testing shows the default strategy producing
|
|
||||||
decompositions comparable in quality to Metis.
|
|
||||||
184
ReleaseNotes-dev
Normal file
184
ReleaseNotes-dev
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
# -*- mode: org; -*-
|
||||||
|
#
|
||||||
|
#+TITLE: OpenFOAM release notes for version dev
|
||||||
|
#+AUTHOR: OpenCFD Ltd.
|
||||||
|
#+DATE: TBA
|
||||||
|
#+LINK: http://www.openfoam.com
|
||||||
|
#+OPTIONS: author:nil ^:{}
|
||||||
|
# Copyright (c) 2010 OpenCFD Ltd.
|
||||||
|
|
||||||
|
* Overview
|
||||||
|
OpenFOAM-dev is the latest major release of OpenFOAM including many new
|
||||||
|
developments a number of bug-fixes. This release passes our standard tests
|
||||||
|
and the tutorials have been broadly checked. Please report any bugs by
|
||||||
|
following the link: http://www.openfoam.com/bugs.
|
||||||
|
|
||||||
|
* GNU/Linux version
|
||||||
|
This release of OpenFOAM is distributed primarily in 2 ways: (1) as a Debian
|
||||||
|
pack containing binaries and source; (2) from the SourceForge source code
|
||||||
|
repository (see [[./README.org][README]]).
|
||||||
|
|
||||||
|
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.04
|
||||||
|
LTS operating system using the system compiler and libraries that will be
|
||||||
|
installed automatically from standard Debian packs.
|
||||||
|
|
||||||
|
To use the source version from the SourceForge repository, we provide a source
|
||||||
|
pack of third-party packages that can be compiled on the user's system. This
|
||||||
|
does not include =gcc=, since the system installed version is typically
|
||||||
|
sufficient, but includes =paraview-3.8.0=, =openmpi-1.4.1=, =scotch_5.1=,
|
||||||
|
=metis-5.0pre2=, =ParMetis-3.1= and =ParMGridGen-1.0=.
|
||||||
|
|
||||||
|
* Library developments
|
||||||
|
|
||||||
|
There have been a number of developments to the libraries to support the
|
||||||
|
extension of functionality in solver and utility applications.
|
||||||
|
*** Core library
|
||||||
|
+ Large number of code refinements and consistency improvements to support
|
||||||
|
other developments.
|
||||||
|
*** Turbulence modelling
|
||||||
|
*** *Updated* thermophysical libraries
|
||||||
|
+ Now use the more descriptive dictionary input format, e.g. for a single
|
||||||
|
component mixture:
|
||||||
|
|
||||||
|
thermoType hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
||||||
|
|
||||||
|
mixture
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 28.9;
|
||||||
|
Cp 1007;
|
||||||
|
Hf 0;
|
||||||
|
As 1.4792e-06;
|
||||||
|
Ts 116;
|
||||||
|
}
|
||||||
|
*** Lagrangian intermediate library
|
||||||
|
Extensively updated
|
||||||
|
*Updated* input format
|
||||||
|
Extended to include steady cloud tracking
|
||||||
|
*New* collision modelling
|
||||||
|
*Coupled* to new surface film modelling library
|
||||||
|
*New* sub-models
|
||||||
|
+ NonSphereDrag: drag model to account for non-spherical particles
|
||||||
|
+ ParticleTracks: post-processing model to generate track data, typically
|
||||||
|
during steady calculations
|
||||||
|
*Updated* sub-models
|
||||||
|
+ Devolatilisation models: now act on a per-specie basis
|
||||||
|
|
||||||
|
*** DSMC
|
||||||
|
*** Dynamic Mesh
|
||||||
|
*** Numerics
|
||||||
|
*** *Updated* command line help, e.g. `snappyHexMesh -help' now gives:
|
||||||
|
|
||||||
|
Usage: snappyHexMesh [OPTIONS]
|
||||||
|
options:
|
||||||
|
-case <dir> specify alternate case directory, default is the cwd
|
||||||
|
-overwrite overwrite existing mesh/results files
|
||||||
|
-parallel run in parallel
|
||||||
|
-srcDoc display source code in browser
|
||||||
|
-doc display application documentation in browser
|
||||||
|
-help print the usage
|
||||||
|
|
||||||
|
*** *New* basicSolidThermo solids thermophysical library
|
||||||
|
+ Used in all conjugate heat transfer solvers
|
||||||
|
+ constant properties
|
||||||
|
+ temperature dependent properties
|
||||||
|
+ temperature and direction (in local coordinate system) dependent properties
|
||||||
|
*** *New* Surface film library
|
||||||
|
+ Creation of films by particle addition, or initial film distribution
|
||||||
|
+ Coupled with the lagrangian/intermediate cloud hierarchy library
|
||||||
|
+ Hierarchical design, consisting of
|
||||||
|
+ kinematic film: mass, momentum
|
||||||
|
+ constant thermodynamic properties
|
||||||
|
+ thermodynamic film: mass, momentum and enthalpy
|
||||||
|
+ constant, or temperature dependant thermodynamic properties
|
||||||
|
+ Sub-models:
|
||||||
|
+ detachment/dripping whereby particles (re)enter the originating cloud
|
||||||
|
+ particle sizes set according to PDF
|
||||||
|
+ other properties set to ensure mass, momentum and energy conservation
|
||||||
|
+ heat transfer to/from walls and film surface
|
||||||
|
+ film evaporation and boiling
|
||||||
|
+ Additional wall functions for primary region momentum and temperature
|
||||||
|
taking film into account
|
||||||
|
+ Parallel aware
|
||||||
|
*** *New* ptscotch decomposition method
|
||||||
|
*** *Updated* particle tracking algorithm
|
||||||
|
*** *Updated* split cyclics into two separate patches. See doc/changed/splitCyclics.txt
|
||||||
|
* *Updated* interpolation (volPointInterpolation) now works without the
|
||||||
|
globalPointPatch. Moving mesh cases can now be run non-parallel and
|
||||||
|
continued in parallel and reconstructed without any limitation.
|
||||||
|
*** *New* compact binary I/O for faces and cells. This speeds up reading/writing meshes in binary.
|
||||||
|
*** *Updated* runTimeModifiable
|
||||||
|
+ on linux uses inotify instead of time stamps - more efficient for large
|
||||||
|
numbers of monitored files. No more fileModificationSkew needed.
|
||||||
|
+ single integer reduction instead of one reduction per monitored file.
|
||||||
|
* Solvers
|
||||||
|
A number of new solvers have been developed for a range of engineering
|
||||||
|
applications. There has been a set of improvements to certain classes of
|
||||||
|
solver that are introduced in this release.
|
||||||
|
*** *New* Solvers
|
||||||
|
+ =reactingParcelFilmFoam=: Lagrangian cloud and film transport in a
|
||||||
|
reacting gas phase system
|
||||||
|
+ =steadyReactingParcelFoam=: Steady solution of cloud and reacting systems
|
||||||
|
using local time stepping methods
|
||||||
|
*** Modifications to multiphase and buoyant solvers
|
||||||
|
+ ...
|
||||||
|
*** Modifications to solvers for sensible enthalpy
|
||||||
|
+ ...
|
||||||
|
*** Modifications to steady-state compressible solvers
|
||||||
|
+ ...
|
||||||
|
*** Other modifications
|
||||||
|
+ ...
|
||||||
|
|
||||||
|
* Boundary conditions
|
||||||
|
New boundary conditions have been introduced to support new applications in
|
||||||
|
OpenFOAM.
|
||||||
|
+ *New* wall functions:
|
||||||
|
+ kappatJayatillekeWallFunction: incompressible RAS thermal wall function
|
||||||
|
|
||||||
|
* Utilities
|
||||||
|
There have been some utilities added and updated in this release.
|
||||||
|
*** *New* utilities
|
||||||
|
+ =extrudeToRegionMesh=: Extrude faceZones into separate mesh (as a
|
||||||
|
different region)
|
||||||
|
+ used to e.g. extrude baffles (extrude internal faces) or create
|
||||||
|
liquid film regions
|
||||||
|
+ if extruding internal faces:
|
||||||
|
+ create baffles in original mesh with directMappedWall patches
|
||||||
|
+ if extruding boundary faces:
|
||||||
|
+ convert boundary faces to directMappedWall patches
|
||||||
|
+ extrude edges of faceZone as a <zone>_sidePatch
|
||||||
|
+ extrude edges inbetween different faceZones as a
|
||||||
|
(nonuniformTransform)cyclic <zoneA>_<zoneB>
|
||||||
|
+ extrudes into master direction (i.e. away from the owner cell
|
||||||
|
if flipMap is false)
|
||||||
|
+ =topoSet=: replacement of cellSet,faceSet,pointSet utilities.
|
||||||
|
Comparable to a dictionary driven =setSet= utility.
|
||||||
|
*** Updated utilities
|
||||||
|
+ =setFields=: optionally use faceSets to set patch values (see e.g. hotRoom tutorial).
|
||||||
|
+ =blockMesh=: specify patches via dictionary instead of type only. This
|
||||||
|
makes rereading the boundary superfluous. see
|
||||||
|
e.g. pitzDailyDirectMapped tutorial.
|
||||||
|
* Post-processing
|
||||||
|
+ =foamToEnsight=: parallel continuous data. new =-nodeValues= option to generate and output nodal
|
||||||
|
field data.
|
||||||
|
+ =singleCellMesh=: new utility to convert mesh and fields to a single cell
|
||||||
|
mesh. Great for postprocessing.
|
||||||
|
+ =steadyParticleTracks=: Generates VTK tracks from the output of the cloud
|
||||||
|
=ParticleTracks= post-processing sub-model
|
||||||
|
+ Function objects:
|
||||||
|
+ =residualControl=: new function object to allow users to terminate steady
|
||||||
|
state calculations when the defined residual levels are achieved
|
||||||
|
+ =abortCalculation=: watches for presence of the named file in the
|
||||||
|
$FOAM_CASE directory and aborts the calculation if it is present
|
||||||
|
+ =timeActivatedFileUpdate=: performs a file copy/replacement once a
|
||||||
|
specified time has been reached, e.g. to automagically change fvSchemes and
|
||||||
|
fvSolution during a calculation
|
||||||
|
+ =streamLine=: generate streamlines; ouputs both trajectory and field data
|
||||||
|
|
||||||
|
* New tutorials
|
||||||
|
There is a large number of new tutorials for existing and new solvers in the
|
||||||
|
release.
|
||||||
|
+ =reactingParcelFilmFoam= tutorials:
|
||||||
|
+ multipleBoxes, hotBoxes, panel, evaporationTest
|
||||||
|
+ =interDyMFoam= tutorials:
|
||||||
|
+ testTubeMixer: showcases =solidBodyMotionFunction=
|
||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -85,15 +85,15 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
for (int corr=1; corr<=1; corr++)
|
for (int corr=1; corr<=1; corr++)
|
||||||
{
|
{
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
|
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
phi = (fvc::interpolate(U) & mesh.Sf())
|
phi = (fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, U, phi);
|
+ fvc::ddtPhiCorr(rAU, U, phi);
|
||||||
|
|
||||||
fvScalarMatrix pEqn
|
fvScalarMatrix pEqn
|
||||||
(
|
(
|
||||||
fvm::laplacian(rUA, p) == fvc::div(phi)
|
fvm::laplacian(rAU, p) == fvc::div(phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -102,7 +102,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#include "continuityErrs.H"
|
#include "continuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"transportProperties",
|
"transportProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"turbulenceProperties",
|
"turbulenceProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
"transportProperties",
|
"transportProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
"transportProperties",
|
"transportProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -20,6 +20,7 @@ EXE_INC = \
|
|||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -50,199 +50,17 @@ PDRkEpsilon::PDRkEpsilon
|
|||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
const surfaceScalarField& phi,
|
const surfaceScalarField& phi,
|
||||||
const basicThermo& thermophysicalModel
|
const basicThermo& thermophysicalModel,
|
||||||
|
const word& turbulenceModelName,
|
||||||
|
const word& modelName
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
RASModel(typeName, rho, U, phi, thermophysicalModel),
|
kEpsilon(rho, U, phi, thermophysicalModel, turbulenceModelName, modelName)
|
||||||
|
{}
|
||||||
Cmu_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"Cmu",
|
|
||||||
coeffDict_,
|
|
||||||
0.09
|
|
||||||
)
|
|
||||||
),
|
|
||||||
C1_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"C1",
|
|
||||||
coeffDict_,
|
|
||||||
1.44
|
|
||||||
)
|
|
||||||
),
|
|
||||||
C2_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"C2",
|
|
||||||
coeffDict_,
|
|
||||||
1.92
|
|
||||||
)
|
|
||||||
),
|
|
||||||
sigmak_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"sigmak",
|
|
||||||
coeffDict_,
|
|
||||||
1.0
|
|
||||||
)
|
|
||||||
),
|
|
||||||
sigmaEps_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"sigmaEps",
|
|
||||||
coeffDict_,
|
|
||||||
1.3
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Prt_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"Prt",
|
|
||||||
coeffDict_,
|
|
||||||
1.0
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
k_
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"k",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
autoCreateK("k", mesh_)
|
|
||||||
),
|
|
||||||
epsilon_
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"epsilon",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
autoCreateEpsilon("epsilon", mesh_)
|
|
||||||
),
|
|
||||||
mut_
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"mut",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
autoCreateMut("mut", mesh_)
|
|
||||||
),
|
|
||||||
alphat_
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"alphat",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
autoCreateAlphat("alphat", mesh_)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
bound(epsilon_, epsilonMin_);
|
|
||||||
|
|
||||||
mut_ = Cmu_*rho_*sqr(k_)/epsilon_;
|
|
||||||
mut_.correctBoundaryConditions();
|
|
||||||
|
|
||||||
alphat_ = mut_/Prt_;
|
|
||||||
alphat_.correctBoundaryConditions();
|
|
||||||
|
|
||||||
printCoeffs();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
tmp<volSymmTensorField> PDRkEpsilon::R() const
|
|
||||||
{
|
|
||||||
return tmp<volSymmTensorField>
|
|
||||||
(
|
|
||||||
new volSymmTensorField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"R",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))),
|
|
||||||
k_.boundaryField().types()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<volSymmTensorField> PDRkEpsilon::devRhoReff() const
|
|
||||||
{
|
|
||||||
return tmp<volSymmTensorField>
|
|
||||||
(
|
|
||||||
new volSymmTensorField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"devRhoReff",
|
|
||||||
runTime_.timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
-muEff()*dev(twoSymm(fvc::grad(U_)))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<fvVectorMatrix> PDRkEpsilon::divDevRhoReff(volVectorField& U) const
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(
|
|
||||||
- fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T()))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PDRkEpsilon::read()
|
|
||||||
{
|
|
||||||
if (RASModel::read())
|
|
||||||
{
|
|
||||||
Cmu_.readIfPresent(coeffDict_);
|
|
||||||
C1_.readIfPresent(coeffDict_);
|
|
||||||
C2_.readIfPresent(coeffDict_);
|
|
||||||
sigmak_.readIfPresent(coeffDict());
|
|
||||||
sigmaEps_.readIfPresent(coeffDict());
|
|
||||||
Prt_.readIfPresent(coeffDict());
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PDRkEpsilon::correct()
|
void PDRkEpsilon::correct()
|
||||||
{
|
{
|
||||||
if (!turbulence_)
|
if (!turbulence_)
|
||||||
@ -271,7 +89,7 @@ void PDRkEpsilon::correct()
|
|||||||
volScalarField G("RASModel::G", mut_*(tgradU() && dev(twoSymm(tgradU()))));
|
volScalarField G("RASModel::G", mut_*(tgradU() && dev(twoSymm(tgradU()))));
|
||||||
tgradU.clear();
|
tgradU.clear();
|
||||||
|
|
||||||
// Update espsilon and G at the wall
|
// Update epsilon and G at the wall
|
||||||
epsilon_.boundaryField().updateCoeffs();
|
epsilon_.boundaryField().updateCoeffs();
|
||||||
|
|
||||||
// Add the blockage generation term so that it is included consistently
|
// Add the blockage generation term so that it is included consistently
|
||||||
@ -320,6 +138,7 @@ void PDRkEpsilon::correct()
|
|||||||
solve(kEqn);
|
solve(kEqn);
|
||||||
bound(k_, kMin_);
|
bound(k_, kMin_);
|
||||||
|
|
||||||
|
|
||||||
// Re-calculate viscosity
|
// Re-calculate viscosity
|
||||||
mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
|
mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
|
||||||
mut_.correctBoundaryConditions();
|
mut_.correctBoundaryConditions();
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -25,12 +25,13 @@ Class
|
|||||||
Foam::compressible::RASModels::PDRkEpsilon
|
Foam::compressible::RASModels::PDRkEpsilon
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Standard k-epsilon turbulence model with additional source terms
|
Standard k-epsilon turbulence model for compressible flow
|
||||||
|
with additional source terms
|
||||||
corresponding to PDR basic drag model (\link basic.H \endlink)
|
corresponding to PDR basic drag model (\link basic.H \endlink)
|
||||||
|
|
||||||
The default model coefficients correspond to the following:
|
The default model coefficients correspond to the following:
|
||||||
@verbatim
|
@verbatim
|
||||||
kEpsilonCoeffs
|
PDRkEpsilonCoeffs
|
||||||
{
|
{
|
||||||
Cmu 0.09;
|
Cmu 0.09;
|
||||||
C1 1.44;
|
C1 1.44;
|
||||||
@ -53,7 +54,6 @@ Description
|
|||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
PDRkEpsilon.C
|
PDRkEpsilon.C
|
||||||
PDRkEpsilonCorrect.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@ -61,6 +61,7 @@ SourceFiles
|
|||||||
#define compressiblePDRkEpsilon_H
|
#define compressiblePDRkEpsilon_H
|
||||||
|
|
||||||
#include "RASModel.H"
|
#include "RASModel.H"
|
||||||
|
#include "kEpsilon.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -77,26 +78,8 @@ namespace RASModels
|
|||||||
|
|
||||||
class PDRkEpsilon
|
class PDRkEpsilon
|
||||||
:
|
:
|
||||||
public RASModel
|
public kEpsilon
|
||||||
{
|
{
|
||||||
// Private data
|
|
||||||
|
|
||||||
// Model coefficients
|
|
||||||
|
|
||||||
dimensionedScalar Cmu_;
|
|
||||||
dimensionedScalar C1_;
|
|
||||||
dimensionedScalar C2_;
|
|
||||||
dimensionedScalar sigmak_;
|
|
||||||
dimensionedScalar sigmaEps_;
|
|
||||||
dimensionedScalar Prt_;
|
|
||||||
|
|
||||||
// Fields
|
|
||||||
|
|
||||||
volScalarField k_;
|
|
||||||
volScalarField epsilon_;
|
|
||||||
volScalarField mut_;
|
|
||||||
volScalarField alphat_;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -112,7 +95,9 @@ public:
|
|||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
const surfaceScalarField& phi,
|
const surfaceScalarField& phi,
|
||||||
const basicThermo& thermophysicalModel
|
const basicThermo& thermophysicalModel,
|
||||||
|
const word& turbulenceModelName = turbulenceModel::typeName,
|
||||||
|
const word& modelName = typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -123,62 +108,9 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Return the effective diffusivity for k
|
|
||||||
tmp<volScalarField> DkEff() const
|
|
||||||
{
|
|
||||||
return tmp<volScalarField>
|
|
||||||
(
|
|
||||||
new volScalarField("DkEff", mut_/sigmak_ + mu())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the effective diffusivity for epsilon
|
|
||||||
tmp<volScalarField> DepsilonEff() const
|
|
||||||
{
|
|
||||||
return tmp<volScalarField>
|
|
||||||
(
|
|
||||||
new volScalarField("DepsilonEff", mut_/sigmaEps_ + mu())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the turbulence viscosity
|
|
||||||
virtual tmp<volScalarField> mut() const
|
|
||||||
{
|
|
||||||
return mut_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the turbulence thermal diffusivity
|
|
||||||
virtual tmp<volScalarField> alphat() const
|
|
||||||
{
|
|
||||||
return alphat_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the turbulence kinetic energy
|
|
||||||
virtual tmp<volScalarField> k() const
|
|
||||||
{
|
|
||||||
return k_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the turbulence kinetic energy dissipation rate
|
|
||||||
virtual tmp<volScalarField> epsilon() const
|
|
||||||
{
|
|
||||||
return epsilon_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the Reynolds stress tensor
|
|
||||||
virtual tmp<volSymmTensorField> R() const;
|
|
||||||
|
|
||||||
//- Return the effective stress tensor including the laminar stress
|
|
||||||
virtual tmp<volSymmTensorField> devRhoReff() const;
|
|
||||||
|
|
||||||
//- Return the source term for the momentum equation
|
|
||||||
virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
|
|
||||||
|
|
||||||
//- Solve the turbulence equations and correct the turbulence viscosity
|
//- Solve the turbulence equations and correct the turbulence viscosity
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|
||||||
//- Read turbulenceProperties dictionary
|
|
||||||
virtual bool read();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -34,17 +34,14 @@ Description
|
|||||||
|
|
||||||
if (mesh.nInternalFaces())
|
if (mesh.nInternalFaces())
|
||||||
{
|
{
|
||||||
surfaceScalarField SfUfbyDelta =
|
scalarField sumPhi =
|
||||||
mesh.surfaceInterpolation::deltaCoeffs()
|
fvc::surfaceSum(mag(phiSt))().internalField()
|
||||||
*mag(phiSt/fvc::interpolate(rho));
|
/rho.internalField();
|
||||||
|
|
||||||
StCoNum =
|
StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
|
||||||
max(SfUfbyDelta/mesh.magSf()).value()
|
|
||||||
*runTime.deltaTValue();
|
|
||||||
|
|
||||||
meanStCoNum =
|
meanStCoNum =
|
||||||
(sum(SfUfbyDelta)/sum(mesh.magSf())).value()
|
0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
|
||||||
*runTime.deltaTValue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "St courant Number mean: " << meanStCoNum
|
Info<< "St courant Number mean: " << meanStCoNum
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -62,7 +62,7 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
|
|||||||
"combustionProperties",
|
"combustionProperties",
|
||||||
Su.mesh().time().constant(),
|
Su.mesh().time().constant(),
|
||||||
Su.mesh(),
|
Su.mesh(),
|
||||||
IOobject::MUST_READ
|
IOobject::MUST_READ_IF_MODIFIED
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
thermo
|
thermo
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -110,7 +110,7 @@
|
|||||||
"PDRProperties",
|
"PDRProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = invA & UEqn.H();
|
U = invA & UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
@ -11,7 +11,7 @@ if (transonic)
|
|||||||
fvc::interpolate(psi)
|
fvc::interpolate(psi)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ else
|
|||||||
fvc::interpolate(rho)*
|
fvc::interpolate(rho)*
|
||||||
(
|
(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"combustionProperties",
|
"combustionProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -10,6 +10,7 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@ if (transonic)
|
|||||||
fvc::interpolate(psi)
|
fvc::interpolate(psi)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ if (transonic)
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvm::div(phid, p)
|
+ fvm::div(phid, p)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -38,7 +38,7 @@ else
|
|||||||
fvc::interpolate(rho)
|
fvc::interpolate(rho)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
@ -47,7 +47,7 @@ else
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -62,7 +62,7 @@ else
|
|||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"combustionProperties",
|
"combustionProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean u':" << (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean u':"
|
||||||
|
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
|
||||||
|
<< endl;
|
||||||
|
|
||||||
logSummaryFile
|
logSummaryFile
|
||||||
<< runTime.theta() << tab
|
<< runTime.theta() << tab
|
||||||
|
|||||||
@ -2,6 +2,7 @@ EXE_INC = \
|
|||||||
-I../engineFoam \
|
-I../engineFoam \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
|
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/liquidMixture/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/liquidMixture/lnInclude \
|
||||||
@ -18,11 +19,13 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llagrangian \
|
-llagrangian \
|
||||||
|
-lmeshTools \
|
||||||
-ldieselSpray \
|
-ldieselSpray \
|
||||||
-lliquids \
|
-lliquids \
|
||||||
-lliquidMixture \
|
-lliquidMixture \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean u':" << (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean u':"
|
||||||
|
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
|
||||||
|
<< endl;
|
||||||
|
|
||||||
logSummaryFile
|
logSummaryFile
|
||||||
<< runTime.theta() << tab
|
<< runTime.theta() << tab
|
||||||
|
|||||||
@ -7,7 +7,7 @@ IOdictionary combustionProperties
|
|||||||
"combustionProperties",
|
"combustionProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -3,6 +3,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
|
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/liquidMixture/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/liquidMixture/lnInclude \
|
||||||
@ -16,10 +17,12 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/ODE/lnInclude
|
-I$(LIB_SRC)/ODE/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-llagrangian \
|
-llagrangian \
|
||||||
|
-lmeshTools \
|
||||||
-ldieselSpray \
|
-ldieselSpray \
|
||||||
-lliquids \
|
-lliquids \
|
||||||
-lliquidMixture \
|
-lliquidMixture \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@ if (transonic)
|
|||||||
fvc::interpolate(psi)
|
fvc::interpolate(psi)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ if (transonic)
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvm::div(phid, p)
|
+ fvm::div(phid, p)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
==
|
==
|
||||||
Sevap
|
Sevap
|
||||||
);
|
);
|
||||||
@ -40,7 +40,7 @@ else
|
|||||||
fvc::interpolate(rho)
|
fvc::interpolate(rho)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
@ -49,7 +49,7 @@ else
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
==
|
==
|
||||||
Sevap
|
Sevap
|
||||||
);
|
);
|
||||||
@ -66,7 +66,7 @@ else
|
|||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ EXE_INC = \
|
|||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
|
||||||
Info<< "Mean u':" << (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value() << endl;
|
Info<< "Mean u':"
|
||||||
|
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
|
||||||
|
<< endl;
|
||||||
|
|
||||||
logSummaryFile
|
logSummaryFile
|
||||||
<< runTime.theta() << tab
|
<< runTime.theta() << tab
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
{
|
{
|
||||||
@ -18,7 +18,7 @@ if (transonic)
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvm::div(phid, p, "div(phid,p)")
|
+ fvm::div(phid, p, "div(phid,p)")
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -40,7 +40,7 @@ else
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -55,7 +55,7 @@ else
|
|||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ EXE_LIBS = \
|
|||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lradiation
|
-lradiation
|
||||||
|
|||||||
@ -7,30 +7,15 @@ fvVectorMatrix UEqn
|
|||||||
|
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
|
||||||
if (oCorr == nOuterCorr - 1)
|
solve
|
||||||
{
|
(
|
||||||
solve
|
|
||||||
(
|
|
||||||
UEqn
|
UEqn
|
||||||
==
|
==
|
||||||
fvc::reconstruct
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
fvc::interpolate(rho)*(g & mesh.Sf())
|
|
||||||
- fvc::snGrad(p)*mesh.magSf()
|
|
||||||
),
|
|
||||||
mesh.solver("UFinal")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
solve
|
|
||||||
(
|
(
|
||||||
UEqn
|
- ghf*fvc::snGrad(rho)
|
||||||
==
|
- fvc::snGrad(p_rgh)
|
||||||
fvc::reconstruct
|
)*mesh.magSf()
|
||||||
(
|
|
||||||
fvc::interpolate(rho)*(g & mesh.Sf())
|
|
||||||
- fvc::snGrad(p)*mesh.magSf()
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
combustionModel/combustionModel.C
|
combustionModel/combustionModel.C
|
||||||
combustionModel/combustionModelNew.C
|
combustionModel/newCombustionModel.C
|
||||||
|
|
||||||
infinitelyFastChemistry/infinitelyFastChemistry.C
|
infinitelyFastChemistry/infinitelyFastChemistry.C
|
||||||
|
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -29,19 +29,22 @@ License
|
|||||||
|
|
||||||
Foam::autoPtr<Foam::combustionModel> Foam::combustionModel::New
|
Foam::autoPtr<Foam::combustionModel> Foam::combustionModel::New
|
||||||
(
|
(
|
||||||
const dictionary& propDict,
|
const dictionary& combustionProperties,
|
||||||
const hsCombustionThermo& thermo,
|
const hsCombustionThermo& thermo,
|
||||||
const compressible::turbulenceModel& turbulence,
|
const compressible::turbulenceModel& turbulence,
|
||||||
const surfaceScalarField& phi,
|
const surfaceScalarField& phi,
|
||||||
const volScalarField& rho
|
const volScalarField& rho
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const word modelType(propDict.lookup("combustionModel"));
|
word combustionModelTypeName = combustionProperties.lookup
|
||||||
|
(
|
||||||
|
"combustionModel"
|
||||||
|
);
|
||||||
|
|
||||||
Info<< "Selecting combustion model " << modelType << endl;
|
Info<< "Selecting combustion model " << combustionModelTypeName << endl;
|
||||||
|
|
||||||
dictionaryConstructorTable::iterator cstrIter =
|
dictionaryConstructorTable::iterator cstrIter =
|
||||||
dictionaryConstructorTablePtr_->find(modelType);
|
dictionaryConstructorTablePtr_->find(combustionModelTypeName);
|
||||||
|
|
||||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||||
{
|
{
|
||||||
@ -49,14 +52,14 @@ Foam::autoPtr<Foam::combustionModel> Foam::combustionModel::New
|
|||||||
(
|
(
|
||||||
"combustionModel::New"
|
"combustionModel::New"
|
||||||
) << "Unknown combustionModel type "
|
) << "Unknown combustionModel type "
|
||||||
<< modelType << nl << nl
|
<< combustionModelTypeName << endl << endl
|
||||||
<< "Valid combustionModels are : " << endl
|
<< "Valid combustionModels are : " << endl
|
||||||
<< dictionaryConstructorTablePtr_->toc()
|
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<combustionModel>
|
return autoPtr<combustionModel>
|
||||||
(cstrIter()(propDict, thermo, turbulence, phi, rho));
|
(cstrIter()(combustionProperties, thermo, turbulence, phi, rho));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -88,7 +88,8 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
//- Destructor
|
// Destructor
|
||||||
|
|
||||||
virtual ~infinitelyFastChemistry();
|
virtual ~infinitelyFastChemistry();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -83,7 +83,8 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
//- Destructor
|
// Destructor
|
||||||
|
|
||||||
virtual ~noCombustion();
|
virtual ~noCombustion();
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|||||||
@ -35,6 +35,7 @@ const volScalarField& psi = thermo.psi();
|
|||||||
volScalarField& ft = composition.Y("ft");
|
volScalarField& ft = composition.Y("ft");
|
||||||
volScalarField& fu = composition.Y("fu");
|
volScalarField& fu = composition.Y("fu");
|
||||||
|
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
Info<< "Reading field U\n" << endl;
|
||||||
|
|
||||||
volVectorField U
|
volVectorField U
|
||||||
@ -65,7 +66,7 @@ IOdictionary combustionProperties
|
|||||||
"combustionProperties",
|
"combustionProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -73,7 +74,7 @@ IOdictionary combustionProperties
|
|||||||
Info<< "Creating combustion model\n" << endl;
|
Info<< "Creating combustion model\n" << endl;
|
||||||
autoPtr<combustionModel> combustion
|
autoPtr<combustionModel> combustion
|
||||||
(
|
(
|
||||||
combustionModel::New
|
combustionModel::combustionModel::New
|
||||||
(
|
(
|
||||||
combustionProperties,
|
combustionProperties,
|
||||||
thermo,
|
thermo,
|
||||||
@ -83,6 +84,29 @@ autoPtr<combustionModel> combustion
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Calculating field g.h\n" << endl;
|
||||||
|
volScalarField gh("gh", g & mesh.C());
|
||||||
|
surfaceScalarField ghf("gh", g & mesh.Cf());
|
||||||
|
|
||||||
|
Info<< "Reading field p_rgh\n" << endl;
|
||||||
|
volScalarField p_rgh
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"p_rgh",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
// Force p_rgh to be consistent with p
|
||||||
|
p_rgh = p - rho*gh;
|
||||||
|
|
||||||
|
|
||||||
volScalarField dQ
|
volScalarField dQ
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
@ -103,15 +127,6 @@ volScalarField DpDt =
|
|||||||
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|
||||||
|
|
||||||
Info<< "Calculating field g.h\n" << endl;
|
|
||||||
volScalarField gh("gh", g & mesh.C());
|
|
||||||
|
|
||||||
surfaceScalarField ghf("gh", g & mesh.Cf());
|
|
||||||
|
|
||||||
p += rho*gh;
|
|
||||||
|
|
||||||
thermo.correct();
|
|
||||||
|
|
||||||
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -70,6 +70,12 @@ int main(int argc, char *argv[])
|
|||||||
// --- Pressure-velocity PIMPLE corrector loop
|
// --- Pressure-velocity PIMPLE corrector loop
|
||||||
for (int oCorr=0; oCorr<nOuterCorr; oCorr++)
|
for (int oCorr=0; oCorr<nOuterCorr; oCorr++)
|
||||||
{
|
{
|
||||||
|
bool finalIter = oCorr == nOuterCorr-1;
|
||||||
|
if (finalIter)
|
||||||
|
{
|
||||||
|
mesh.data::add("finalIteration", true);
|
||||||
|
}
|
||||||
|
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
|
|
||||||
#include "ftEqn.H"
|
#include "ftEqn.H"
|
||||||
@ -80,6 +86,11 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
#include "pEqn.H"
|
#include "pEqn.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (finalIter)
|
||||||
|
{
|
||||||
|
mesh.data::remove("finalIteration");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
turbulence->correct();
|
turbulence->correct();
|
||||||
|
|||||||
@ -1,64 +1,58 @@
|
|||||||
bool closedVolume = false;
|
|
||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
surfaceScalarField rhorUAf("(rho*(1|A(U)))", fvc::interpolate(rho*rUA));
|
surfaceScalarField rhorAUf("(rho*(1|A(U)))", fvc::interpolate(rho*rAU));
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
surfaceScalarField phiU
|
surfaceScalarField phiU
|
||||||
(
|
(
|
||||||
fvc::interpolate(rho)
|
fvc::interpolate(rho)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
phi = phiU + rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf());
|
phi = phiU - rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf();
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
{
|
{
|
||||||
surfaceScalarField rhorUAf = fvc::interpolate(rho*rUA);
|
surfaceScalarField rhorAUf = fvc::interpolate(rho*rAU);
|
||||||
|
|
||||||
fvScalarMatrix pEqn
|
fvScalarMatrix p_rghEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(psi,p)
|
fvm::ddt(psi, p_rgh) + fvc::ddt(psi, rho)*gh
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rhorUAf, p)
|
- fvm::laplacian(rhorAUf, p_rgh)
|
||||||
);
|
);
|
||||||
|
|
||||||
closedVolume = p.needReference();
|
p_rghEqn.solve
|
||||||
|
(
|
||||||
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
mesh.solver
|
||||||
{
|
(
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
p_rgh.select
|
||||||
}
|
(
|
||||||
else
|
(
|
||||||
{
|
finalIter
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
&& corr == nCorr-1
|
||||||
}
|
&& nonOrth == nNonOrthCorr
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
phi += pEqn.flux();
|
phi += p_rghEqn.flux();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
p = p_rgh + rho*gh;
|
||||||
|
|
||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U += rUA*fvc::reconstruct((phi - phiU)/rhorUAf);
|
U += rAU*fvc::reconstruct((phi - phiU)/rhorAUf);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
// For closed-volume cases adjust the pressure and density levels
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
// to obey overall mass continuity
|
|
||||||
if (closedVolume)
|
|
||||||
{
|
|
||||||
p +=
|
|
||||||
(initialMass - fvc::domainIntegrate(thermo.psi()*p))
|
|
||||||
/fvc::domainIntegrate(thermo.psi());
|
|
||||||
rho = thermo.rho();
|
|
||||||
}
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@ if (transonic)
|
|||||||
fvc::interpolate(psi)
|
fvc::interpolate(psi)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ if (transonic)
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvm::div(phid, p)
|
+ fvm::div(phid, p)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -38,7 +38,7 @@ else
|
|||||||
fvc::interpolate(rho)
|
fvc::interpolate(rho)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
@ -47,7 +47,7 @@ else
|
|||||||
(
|
(
|
||||||
fvm::ddt(psi, p)
|
fvm::ddt(psi, p)
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve();
|
pEqn.solve();
|
||||||
@ -62,7 +62,7 @@ else
|
|||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|||||||
@ -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) 1991-2009 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|||||||
@ -7,7 +7,7 @@ IOdictionary chemistryProperties
|
|||||||
"chemistryProperties",
|
"chemistryProperties",
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|||||||
@ -8,6 +8,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
// 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 rUA = 1.0/UEqn.A();
|
volScalarField rAU = 1.0/UEqn.A();
|
||||||
U = rUA*UEqn.H();
|
U = rAU*UEqn.H();
|
||||||
|
|
||||||
if (transonic)
|
if (transonic)
|
||||||
{
|
{
|
||||||
surfaceScalarField phiv =
|
surfaceScalarField phiv =
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi);
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi);
|
||||||
|
|
||||||
phi = fvc::interpolate(rho)*phiv;
|
phi = fvc::interpolate(rho)*phiv;
|
||||||
|
|
||||||
@ -28,17 +28,23 @@
|
|||||||
(
|
(
|
||||||
fvc::ddt(rho) + fvc::div(phi)
|
fvc::ddt(rho) + fvc::div(phi)
|
||||||
+ correction(fvm::ddt(psi, p) + fvm::div(phid, p))
|
+ correction(fvm::ddt(psi, p) + fvm::div(phid, p))
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (ocorr == nOuterCorr && corr == nCorr && nonOrth == nNonOrthCorr)
|
pEqn.solve
|
||||||
{
|
(
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
mesh.solver
|
||||||
}
|
(
|
||||||
else
|
p.select
|
||||||
{
|
(
|
||||||
pEqn.solve();
|
(
|
||||||
}
|
finalIter
|
||||||
|
&& corr == nCorr-1
|
||||||
|
&& nonOrth == nNonOrthCorr
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
@ -52,7 +58,7 @@
|
|||||||
fvc::interpolate(rho)
|
fvc::interpolate(rho)
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(U) & mesh.Sf())
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
+ fvc::ddtPhiCorr(rAU, rho, U, phi)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
@ -61,17 +67,23 @@
|
|||||||
(
|
(
|
||||||
fvc::ddt(rho) + psi*correction(fvm::ddt(p))
|
fvc::ddt(rho) + psi*correction(fvm::ddt(p))
|
||||||
+ fvc::div(phi)
|
+ fvc::div(phi)
|
||||||
- fvm::laplacian(rho*rUA, p)
|
- fvm::laplacian(rho*rAU, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (ocorr == nOuterCorr && corr == nCorr && nonOrth == nNonOrthCorr)
|
pEqn.solve
|
||||||
{
|
(
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
mesh.solver
|
||||||
}
|
(
|
||||||
else
|
p.select
|
||||||
{
|
(
|
||||||
pEqn.solve();
|
(
|
||||||
}
|
finalIter
|
||||||
|
&& corr == nCorr-1
|
||||||
|
&& nonOrth == nNonOrthCorr
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
@ -86,7 +98,7 @@
|
|||||||
#include "rhoEqn.H"
|
#include "rhoEqn.H"
|
||||||
#include "compressibleContinuityErrs.H"
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rAU*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user