Compare commits
2 Commits
develop-fe
...
feature-so
| Author | SHA1 | Date | |
|---|---|---|---|
| 29e4d6b961 | |||
| 2970275410 |
31
.gitignore
vendored
31
.gitignore
vendored
@ -12,7 +12,7 @@
|
|||||||
# File-browser settings - anywhere
|
# File-browser settings - anywhere
|
||||||
.directory
|
.directory
|
||||||
|
|
||||||
# Backup/recovery versions - anywhere
|
# CVS recovered versions - anywhere
|
||||||
.#*
|
.#*
|
||||||
|
|
||||||
# Objects and archives - anywhere
|
# Objects and archives - anywhere
|
||||||
@ -23,7 +23,7 @@
|
|||||||
# Derived files
|
# Derived files
|
||||||
lex.yy.c
|
lex.yy.c
|
||||||
|
|
||||||
# Core dumps
|
# Corefiles
|
||||||
core
|
core
|
||||||
|
|
||||||
# Dependency files - anywhere
|
# Dependency files - anywhere
|
||||||
@ -47,21 +47,22 @@ platforms/
|
|||||||
# Reinstate wmake rules that might look like build directories
|
# Reinstate wmake rules that might look like build directories
|
||||||
!/wmake/rules/*/
|
!/wmake/rules/*/
|
||||||
|
|
||||||
# Doxygen generated
|
# doxygen generated documentation
|
||||||
doc/Doxygen/html
|
doc/Doxygen/html
|
||||||
doc/Doxygen/latex
|
doc/Doxygen/latex
|
||||||
doc/Doxygen/man
|
doc/Doxygen/man
|
||||||
doc/Doxygen/DTAGS
|
doc/Doxygen/DTAGS
|
||||||
|
|
||||||
# Generated files in the main and doc directories
|
# Generated files in the main directory (e.g. ReleaseNotes-?.?.html)
|
||||||
|
# and in the doc directory
|
||||||
/*.html
|
/*.html
|
||||||
/doc/*.html
|
/doc/*.html
|
||||||
|
|
||||||
# Untracked configuration/preferences files
|
# Untracked configuration files
|
||||||
/etc/prefs.csh
|
/etc/prefs.csh
|
||||||
/etc/prefs.sh
|
/etc/prefs.sh
|
||||||
/etc/config.csh/prefs.*
|
/etc/config.csh/prefs.csh
|
||||||
/etc/config.sh/prefs.*
|
/etc/config.sh/prefs.sh
|
||||||
/wmake/rules/General/mplibUSER*
|
/wmake/rules/General/mplibUSER*
|
||||||
|
|
||||||
# Source packages - anywhere
|
# Source packages - anywhere
|
||||||
@ -72,11 +73,19 @@ doc/Doxygen/DTAGS
|
|||||||
*.tgz
|
*.tgz
|
||||||
*.gtgz
|
*.gtgz
|
||||||
|
|
||||||
# Ignore tags or project files in the main directory
|
# Ignore the persistent .build tag in the main directory
|
||||||
/.cproject
|
/.build
|
||||||
/.dir-locals.el
|
|
||||||
/.project
|
# Ignore .timeStamp in the main directory
|
||||||
|
/.timeStamp
|
||||||
|
|
||||||
|
# Ignore .tags in the main directory
|
||||||
/.tags
|
/.tags
|
||||||
|
|
||||||
|
# Ignore project files in the main directory
|
||||||
|
/.cproject
|
||||||
|
/.project
|
||||||
|
/.dir-locals.el
|
||||||
|
|
||||||
# Ignore the test directory
|
# Ignore the test directory
|
||||||
/tutorialsTest
|
/tutorialsTest
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Before opening a new issue, make sure to search for keywords in the issues
|
Before opening a new issue, make sure to search for keywords in the issues
|
||||||
filtered by the "bug" label and check to see if it has already been reported
|
filtered by the "bug" label and check to see if it has already been reported
|
||||||
|
|
||||||
You can see how your report will be rendered on the platform by using the
|
You can see how your report will be rendered on the platform by using the
|
||||||
"preview" tab above
|
"preview" tab above
|
||||||
-->
|
-->
|
||||||
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Providing details of your set-up can help us identify any issues, e.g.
|
Providing details of your set-up can help us identify any issues, e.g.
|
||||||
OpenFOAM version : v2206|v2112|v2106|v2012|v2006 etc
|
OpenFOAM version : v1806|v1812|v1906 etc
|
||||||
Operating system : ubuntu|openSUSE|centos etc
|
Operating system : ubuntu|openSUSE|centos etc
|
||||||
Hardware info : any info that may help?
|
Hardware info : any info that may help?
|
||||||
Compiler : gcc|intel|clang etc
|
Compiler : gcc|intel|clang etc
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -14,6 +14,3 @@
|
|||||||
[submodule "visualization"]
|
[submodule "visualization"]
|
||||||
path = modules/visualization
|
path = modules/visualization
|
||||||
url = https://develop.openfoam.com/modules/visualization.git
|
url = https://develop.openfoam.com/modules/visualization.git
|
||||||
[submodule "external-solver"]
|
|
||||||
path = modules/external-solver
|
|
||||||
url = https://develop.openfoam.com/Modules/external-solver.git
|
|
||||||
|
|||||||
47
Allwmake
47
Allwmake
@ -8,7 +8,7 @@ wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
|||||||
}
|
}
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
||||||
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
||||||
echo "Argument parse error"
|
echo "Argument parse error";
|
||||||
else
|
else
|
||||||
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
@ -18,28 +18,28 @@ fi
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Preamble. Report tools or at least the mpirun location
|
# Preamble. Report tools or at least the mpirun location
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
||||||
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
|
then . "$WM_PROJECT_DIR"/wmake/scripts/list_tools
|
||||||
else
|
else
|
||||||
echo "mpirun=$(command -v mpirun || true)"
|
echo "mpirun=$(command -v mpirun || true)"
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
# Report compiler information. First non-blank line from --version output
|
# Report compiler information
|
||||||
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
|
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
|
||||||
if [ -x "$compiler" ]
|
if [ -x "$compiler" ]
|
||||||
then
|
then
|
||||||
echo "compiler=$compiler"
|
echo "compiler=$compiler"
|
||||||
"$compiler" --version 2>/dev/null | sed -e '/^$/d;q'
|
"$compiler" --version 2>/dev/null | sed -ne '1p'
|
||||||
else
|
else
|
||||||
echo "compiler=unknown"
|
echo "compiler=unknown"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo ========================================
|
echo "========================================"
|
||||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||||
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
||||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler [${WM_COMPILE_CONTROL}]"
|
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||||
echo ========================================
|
echo "========================================"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# Compile tools for wmake
|
# Compile tools for wmake
|
||||||
@ -62,24 +62,29 @@ else
|
|||||||
echo "Skip ThirdParty (no directory)"
|
echo "Skip ThirdParty (no directory)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# OpenFOAM libraries
|
echo "========================================"
|
||||||
|
echo "Compile OpenFOAM libraries"
|
||||||
|
echo
|
||||||
src/Allwmake $targetType $*
|
src/Allwmake $targetType $*
|
||||||
|
|
||||||
# OpenFOAM applications
|
echo "========================================"
|
||||||
|
echo "Compile OpenFOAM applications"
|
||||||
|
echo
|
||||||
applications/Allwmake $targetType $*
|
applications/Allwmake $targetType $*
|
||||||
|
|
||||||
|
|
||||||
# Additional components/modules
|
# Additional components/modules
|
||||||
case "$FOAM_MODULE_PREFIX" in
|
if [ -d "$WM_PROJECT_DIR/modules" ]
|
||||||
(false | none)
|
then
|
||||||
echo ========================================
|
echo "========================================"
|
||||||
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
|
echo "Compile OpenFOAM modules"
|
||||||
|
echo " ignoring possible compilation errors"
|
||||||
|
echo " make certain to check the output file"
|
||||||
echo
|
echo
|
||||||
;;
|
set +e
|
||||||
(*)
|
export WM_CONTINUE_ON_ERROR=true
|
||||||
# Use wmake -all instead of Allwmake to allow for overrides
|
|
||||||
( cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all )
|
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
||||||
esac
|
fi
|
||||||
|
|
||||||
# Count files in given directory. Ignore "Test-*" binaries.
|
# Count files in given directory. Ignore "Test-*" binaries.
|
||||||
_foamCountDirEntries()
|
_foamCountDirEntries()
|
||||||
@ -91,7 +96,7 @@ _foamCountDirEntries()
|
|||||||
# Some summary information
|
# Some summary information
|
||||||
echo
|
echo
|
||||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||||
echo ========================================
|
echo "========================================"
|
||||||
echo " ${WM_PROJECT_DIR##*/}"
|
echo " ${WM_PROJECT_DIR##*/}"
|
||||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||||
@ -101,6 +106,6 @@ echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
|||||||
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
||||||
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
||||||
echo
|
echo
|
||||||
echo ========================================
|
echo "========================================"
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,60 +0,0 @@
|
|||||||
# Contributors to OpenFOAM
|
|
||||||
|
|
||||||
The following is a list of known contributors to OpenFOAM.
|
|
||||||
It is likely incomplete...
|
|
||||||
|
|
||||||
## Contributors (alphabetical by surname)
|
|
||||||
|
|
||||||
- Tetsuo Aoyagi
|
|
||||||
- Akira Azami
|
|
||||||
- William Bainbridge
|
|
||||||
- Gabriel Barajas
|
|
||||||
- Kutalmis Bercin
|
|
||||||
- Ivor Clifford
|
|
||||||
- Greg Collecutt
|
|
||||||
- Jonathan Cranford
|
|
||||||
- Sergio Ferraris
|
|
||||||
- Matej Forman
|
|
||||||
- Marian Fuchs
|
|
||||||
- Pawan Ghildiyal
|
|
||||||
- Chris Greenshields
|
|
||||||
- Bernhard Gschaider
|
|
||||||
- Andrew Heather
|
|
||||||
- David Hill
|
|
||||||
- Yoshiaki Inoue
|
|
||||||
- Mattijs Janssens
|
|
||||||
- Andrew Jackson
|
|
||||||
- Hrvoje Jasak
|
|
||||||
- Alexander Kabat vel Job
|
|
||||||
- Thilo Knacke
|
|
||||||
- Shannon Leakey
|
|
||||||
- Tommaso Lucchini
|
|
||||||
- Graham Macpherson
|
|
||||||
- Alexey Matveichev
|
|
||||||
- Karl Meredith
|
|
||||||
- Laurence McGlashan
|
|
||||||
- Timo Niemi
|
|
||||||
- Haakan Nilsson
|
|
||||||
- Niklas Nordin
|
|
||||||
- Mark Olesen
|
|
||||||
- Victor Olesen
|
|
||||||
- Evangelos Papoutsis-Kiachagias
|
|
||||||
- Juho Peltola
|
|
||||||
- Johan Roenby
|
|
||||||
- Henrik Rusche
|
|
||||||
- Bruno Santos
|
|
||||||
- Henning Scheufler
|
|
||||||
- Richard Smith
|
|
||||||
- Prashant Sonakar
|
|
||||||
- Hilary Spencer
|
|
||||||
- Gavin Tabor
|
|
||||||
- Zeljko Tukovic
|
|
||||||
- Eugene De Villiers
|
|
||||||
- Yi Wang
|
|
||||||
- Norbert Weber
|
|
||||||
- Henry Weller
|
|
||||||
- Niklas Wikstrom
|
|
||||||
- Guanyang Xue
|
|
||||||
- Thorsten Zirwes
|
|
||||||
|
|
||||||
<!----------------------------------------------------------------------------->
|
|
||||||
@ -1,11 +1,10 @@
|
|||||||
## META-INFO
|
# META-INFO
|
||||||
|
|
||||||
Meta-information is generally for OpenFOAM internal use only.
|
Meta-information is generally for OpenFOAM internal use only.
|
||||||
|
|
||||||
The format, content and meaning may be changed at anytime without
|
The format, content and meaning may be changed at anytime without
|
||||||
prior notice.
|
notice. If any of these are changed, these are some of places that
|
||||||
If any of these are changed, these are some of places that will need
|
will need to be updated accordingly:
|
||||||
to be updated accordingly:
|
|
||||||
|
|
||||||
- bin/foamEtcFile
|
- bin/foamEtcFile
|
||||||
- bin/tools/foamConfigurePaths
|
- bin/tools/foamConfigurePaths
|
||||||
@ -13,7 +12,7 @@ to be updated accordingly:
|
|||||||
- etc/openfoam
|
- etc/openfoam
|
||||||
- wmake/scripts/wmake-build-info
|
- wmake/scripts/wmake-build-info
|
||||||
|
|
||||||
### api-info
|
## api-info
|
||||||
|
|
||||||
This file and its contents are to be tracked by git.
|
This file and its contents are to be tracked by git.
|
||||||
|
|
||||||
@ -22,7 +21,7 @@ This file and its contents are to be tracked by git.
|
|||||||
- File content (patch) is manually generated content.
|
- File content (patch) is manually generated content.
|
||||||
|
|
||||||
|
|
||||||
### build-info
|
## build-info
|
||||||
|
|
||||||
This file is ***never*** to be tracked by git, but may be present in
|
This file is ***never*** to be tracked by git, but may be present in
|
||||||
shipped source archives.
|
shipped source archives.
|
||||||
@ -31,18 +30,18 @@ shipped source archives.
|
|||||||
git information and cached from previous wmake (api)
|
git information and cached from previous wmake (api)
|
||||||
|
|
||||||
|
|
||||||
### Content types
|
## Content types
|
||||||
|
|
||||||
#### api
|
### api
|
||||||
|
|
||||||
Format: `date +%y%m`
|
Format: `date +%y%m`
|
||||||
|
|
||||||
- 4-digit year-month (YYMM) integer corresponding to the major
|
- 4-digit year-month (YYMM) integer corresponding to the major
|
||||||
release or in unusual cases an intermediate release.
|
release or in unusual cases an intermediate release.
|
||||||
Example, `2106` for the June-2021 release.
|
Example, `1712` for the Dec-2017 release.
|
||||||
|
|
||||||
|
|
||||||
#### patch
|
### patch
|
||||||
|
|
||||||
Format: `date +%y%m%d`
|
Format: `date +%y%m%d`
|
||||||
|
|
||||||
@ -58,7 +57,7 @@ ascribed too much meaning, but will often correspond to the last
|
|||||||
merge with a *maintenance* (*eg*, `master`) branch.
|
merge with a *maintenance* (*eg*, `master`) branch.
|
||||||
|
|
||||||
|
|
||||||
### Flow of information
|
## Flow of information
|
||||||
|
|
||||||
Changes in the build information must be reflected in information
|
Changes in the build information must be reflected in information
|
||||||
available in the final binaries. Conversely, it is necessary for later
|
available in the final binaries. Conversely, it is necessary for later
|
||||||
@ -77,11 +76,11 @@ the saved information needs synchronization. The command
|
|||||||
`wmake -build-info -update` performs the synchronization.
|
`wmake -build-info -update` performs the synchronization.
|
||||||
|
|
||||||
|
|
||||||
### Notes
|
## Notes
|
||||||
|
|
||||||
The saved information is split into two separate files.
|
The saved information is split into two separate files. The `api-info`
|
||||||
The `api-info` file contains more permanent information,
|
contains more permanent information, whereas the `build-info` is more
|
||||||
whereas the `build-info` is more transient in nature.
|
transient in nature.
|
||||||
|
|
||||||
----
|
----
|
||||||
2021-06-09
|
2020-05-05
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2206
|
api=2004
|
||||||
patch=0
|
patch=200506
|
||||||
|
|||||||
88
README.md
88
README.md
@ -1,4 +1,4 @@
|
|||||||
## About OpenFOAM
|
# About OpenFOAM
|
||||||
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
|
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
|
||||||
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
|
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
|
||||||
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
|
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
|
||||||
@ -11,7 +11,7 @@ individual and group contributors, integrations
|
|||||||
[governance guided activities](https://www.openfoam.com/governance/).
|
[governance guided activities](https://www.openfoam.com/governance/).
|
||||||
|
|
||||||
|
|
||||||
## License
|
# Copyright
|
||||||
|
|
||||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
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
|
under the terms of the GNU General Public License as published by the
|
||||||
@ -22,30 +22,29 @@ description of the GNU General Public License terms under which you
|
|||||||
may redistribute files.
|
may redistribute files.
|
||||||
|
|
||||||
|
|
||||||
## OpenFOAM Trademark
|
# OpenFOAM Trademark
|
||||||
|
|
||||||
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
|
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
|
||||||
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
|
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
|
||||||
permitted to use the Name and agreed Domain Name. For information on
|
permitted to use the Name and agreed Domain Name. For information on
|
||||||
trademark use, please refer to the
|
trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
|
||||||
[trademark policy guidelines][link trademark].
|
|
||||||
|
|
||||||
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
|
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
|
||||||
any questions about the use of the OpenFOAM trademark.
|
any questions on the use of the OpenFOAM trademark.
|
||||||
|
|
||||||
Violations of the Trademark are monitored, and will be duly prosecuted.
|
Violations of the Trademark are monitored, and will be duly prosecuted.
|
||||||
|
|
||||||
|
|
||||||
## Using OpenFOAM
|
# Using OpenFOAM
|
||||||
|
|
||||||
If OpenFOAM has already been compiled on your system, simply source
|
If OpenFOAM has already been compiled on your system, simply source
|
||||||
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
||||||
For example, for the OpenFOAM-v2206 version:
|
For example, for the OpenFOAM-v1912 version:
|
||||||
```
|
```
|
||||||
source /installation/path/OpenFOAM-v2206/etc/bashrc
|
source /installation/path/OpenFOAM-v1912/etc/bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
## Compiling OpenFOAM
|
# Compiling OpenFOAM
|
||||||
|
|
||||||
If you are compiling OpenFOAM from source, please see the relevant
|
If you are compiling OpenFOAM from source, please see the relevant
|
||||||
guides:
|
guides:
|
||||||
@ -56,12 +55,7 @@ guides:
|
|||||||
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
|
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
|
||||||
|
|
||||||
|
|
||||||
If you need to modify the versions or locations of ThirdParty
|
# How do I know which version I am currently using?
|
||||||
software, please read how the
|
|
||||||
[OpenFOAM configuration][wiki-config] is structured.
|
|
||||||
|
|
||||||
|
|
||||||
## How do I know which version I am currently using?
|
|
||||||
|
|
||||||
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
|
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
|
||||||
not guaranteed to have any correspondence to the OpenFOAM release
|
not guaranteed to have any correspondence to the OpenFOAM release
|
||||||
@ -69,19 +63,19 @@ not guaranteed to have any correspondence to the OpenFOAM release
|
|||||||
information is embedded into each application. For example, as
|
information is embedded into each application. For example, as
|
||||||
displayed from `blockMesh -help`:
|
displayed from `blockMesh -help`:
|
||||||
```
|
```
|
||||||
Using: OpenFOAM-com (2012) - visit www.openfoam.com
|
Using: OpenFOAM-v1812.local (1812) - visit www.openfoam.com
|
||||||
Build: b830beb5ea-20210429 (patch=210414)
|
Build: 65d6551ff7-20190530 (patch=190531)
|
||||||
Arch: LSB;label=32;scalar=64
|
Arch: LSB;label=32;scalar=64
|
||||||
```
|
```
|
||||||
This output contains all of the more interesting information that we need:
|
This output contains all of the more interesting information that we need:
|
||||||
|
|
||||||
| item | value |
|
| item | value |
|
||||||
|-----------------------|---------------|
|
|-----------------------|---------------|
|
||||||
| version | com (eg, local development branch) |
|
| version | v1812.local |
|
||||||
| api | 2012 |
|
| api | 1812 |
|
||||||
| commit | b830beb5ea |
|
| commit | 65d6551ff7 |
|
||||||
| author date | 20210429 |
|
| author date | 20190530 |
|
||||||
| patch-level | (20)210414 |
|
| patch-level | (20)190531 |
|
||||||
| label/scalar size | 32/64 bits |
|
| label/scalar size | 32/64 bits |
|
||||||
|
|
||||||
The Arch information may also include the `solveScalar` size
|
The Arch information may also include the `solveScalar` size
|
||||||
@ -96,19 +90,19 @@ when OpenFOAM has not yet been compiled:
|
|||||||
```
|
```
|
||||||
$ wmake -build-info
|
$ wmake -build-info
|
||||||
make
|
make
|
||||||
api = 2012
|
api = 1812
|
||||||
patch = 210414
|
patch = 190531
|
||||||
branch = master
|
branch = master
|
||||||
build = 308af39136-20210426
|
build = 65d6551ff7-20190530
|
||||||
```
|
```
|
||||||
Similar information is available with `foamEtcFile`, using the
|
Similar information is available with `foamEtcFile`, using the
|
||||||
`-show-api` or `-show-patch` options. For example,
|
`-show-api` or `-show-patch` options. For example,
|
||||||
```
|
```
|
||||||
$ foamEtcFile -show-api
|
$ foamEtcFile -show-api
|
||||||
2012
|
1812
|
||||||
|
|
||||||
$ foamEtcFile -show-patch
|
$ foamEtcFile -show-patch
|
||||||
210414
|
190531
|
||||||
```
|
```
|
||||||
This output will generally be the easiest to parse for scripts.
|
This output will generally be the easiest to parse for scripts.
|
||||||
The `$FOAM_API` convenience environment variable may not reflect the
|
The `$FOAM_API` convenience environment variable may not reflect the
|
||||||
@ -116,7 +110,7 @@ patching changes made within the currently active environment and
|
|||||||
should be used with caution.
|
should be used with caution.
|
||||||
|
|
||||||
|
|
||||||
## ThirdParty directory
|
# ThirdParty directory
|
||||||
|
|
||||||
OpenFOAM normally ships with a directory of 3rd-party software and
|
OpenFOAM normally ships with a directory of 3rd-party software and
|
||||||
build scripts for some 3rd-party software that is either necessary or
|
build scripts for some 3rd-party software that is either necessary or
|
||||||
@ -127,8 +121,8 @@ These 3rd-party sources are normally located in a directory parallel
|
|||||||
to the OpenFOAM directory. For example,
|
to the OpenFOAM directory. For example,
|
||||||
```
|
```
|
||||||
/path/parent
|
/path/parent
|
||||||
|-- OpenFOAM-v2206
|
|-- OpenFOAM-v1912
|
||||||
\-- ThirdParty-v2206
|
\-- ThirdParty-v1912
|
||||||
```
|
```
|
||||||
There are, however, many cases where this simple convention is inadequate:
|
There are, however, many cases where this simple convention is inadequate:
|
||||||
|
|
||||||
@ -136,7 +130,7 @@ There are, however, many cases where this simple convention is inadequate:
|
|||||||
operating system or cluster installation provides it)
|
operating system or cluster installation provides it)
|
||||||
|
|
||||||
* When we have changed the OpenFOAM directory name to some arbitrary
|
* When we have changed the OpenFOAM directory name to some arbitrary
|
||||||
directory name, e.g. openfoam-sandbox2206, etc..
|
directory name, e.g. openfoam-sandbox1912, etc..
|
||||||
|
|
||||||
* When we would like any additional 3rd party software to be located
|
* When we would like any additional 3rd party software to be located
|
||||||
inside of the OpenFOAM directory to ensure that the installation is
|
inside of the OpenFOAM directory to ensure that the installation is
|
||||||
@ -156,14 +150,17 @@ when locating the ThirdParty directory with the following precedence:
|
|||||||
2. PREFIX/ThirdParty-VERSION
|
2. PREFIX/ThirdParty-VERSION
|
||||||
* this corresponds to the traditional approach
|
* this corresponds to the traditional approach
|
||||||
3. PREFIX/ThirdParty-vAPI
|
3. PREFIX/ThirdParty-vAPI
|
||||||
* allows for an updated value of VERSION, *eg*, `v2206-myCustom`,
|
* allows for an updated value of VERSION, *eg*, `v1912-myCustom`,
|
||||||
without requiring a renamed ThirdParty. The API value would still
|
without requiring a renamed ThirdParty. The API value would still
|
||||||
be `2206` and the original `ThirdParty-v2206/` would be found.
|
be `1912` and the original `ThirdParty-v1912/` would be found.
|
||||||
4. PREFIX/ThirdParty-API
|
4. PREFIX/ThirdParty-API
|
||||||
* same as the previous example, but using an unadorned API value.
|
* this is the same as the previous example, but using an unadorned
|
||||||
|
API value. This also makes sense if the chosen version name also
|
||||||
|
uses the unadorned API value in its naming, *eg*,
|
||||||
|
`1912-patch190131`, `1912.19W03`
|
||||||
5. PREFIX/ThirdParty-common
|
5. PREFIX/ThirdParty-common
|
||||||
* permits maximum reuse for various versions, for experienced
|
* permits maximum reuse for various versions, for experienced user
|
||||||
users who are aware of potential version incompatibilities
|
who are aware of potential version incompatibilities
|
||||||
|
|
||||||
If none of these directories are found to be suitable, it reverts to
|
If none of these directories are found to be suitable, it reverts to
|
||||||
using PROJECT/ThirdParty as a dummy location (even if the directory
|
using PROJECT/ThirdParty as a dummy location (even if the directory
|
||||||
@ -187,30 +184,27 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
|||||||
|
|
||||||
<!-- OpenFOAM -->
|
<!-- OpenFOAM -->
|
||||||
|
|
||||||
[link trademark]: https://www.openfoam.com/opencfd-limited-trade-mark-policy
|
|
||||||
|
|
||||||
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
|
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
|
||||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
|
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
|
||||||
|
|
||||||
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
||||||
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
|
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
|
||||||
|
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
|
||||||
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
||||||
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
||||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
||||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
||||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||||
|
|
||||||
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
|
|
||||||
|
|
||||||
|
# Useful Links
|
||||||
|
|
||||||
## Useful Links
|
- Download [source](https://sourceforge.net/projects/openfoam/files/) and [download and installation instructions](http://www.openfoam.com/download/)
|
||||||
|
|
||||||
- Download [source](https://dl.openfoam.com/source/) and [download and installation instructions](http://www.openfoam.com/download/)
|
|
||||||
- [Documentation](http://www.openfoam.com/documentation)
|
- [Documentation](http://www.openfoam.com/documentation)
|
||||||
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
|
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
|
||||||
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/-/issues)
|
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/issues)
|
||||||
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [General wiki](http://wiki.openfoam.com/)
|
- [Wiki](http://wiki.openfoam.com/) and [code wiki](https://develop.openfoam.com/Development/openfoam/wikis/)
|
||||||
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
|
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
|
||||||
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
||||||
|
|
||||||
Copyright 2016-2022 OpenCFD Ltd
|
Copyright 2016-2020 OpenCFD Ltd
|
||||||
|
|||||||
@ -8,29 +8,19 @@ wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
|
|||||||
}
|
}
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
||||||
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
||||||
echo "Argument parse error"
|
echo "Argument parse error";
|
||||||
else
|
else
|
||||||
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ========================================
|
|
||||||
echo Compile OpenFOAM applications
|
|
||||||
echo ========================================
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake -all $targetType utilities
|
|
||||||
wmake -all $targetType solvers
|
wmake -all $targetType solvers
|
||||||
|
wmake -all $targetType utilities
|
||||||
|
|
||||||
# Extra tools (optional)
|
# Optional
|
||||||
## wmake -all $targetType tools
|
## wmake -all $targetType tools
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
echo ========================================
|
|
||||||
echo Done OpenFOAM applications
|
|
||||||
echo ========================================
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
if have_fftw
|
if have_fftw
|
||||||
|
|||||||
@ -19,3 +19,4 @@
|
|||||||
|
|
||||||
Kmesh K(mesh);
|
Kmesh K(mesh);
|
||||||
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);
|
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
acousticFoam.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/acousticFoam
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
EXE_INC = \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
|
||||||
-I$(LIB_SRC)/fvOption/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionFaModels/lnInclude \
|
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lmeshTools \
|
|
||||||
-lsampling \
|
|
||||||
-lregionFaModels
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | www.openfoam.com
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
License
|
|
||||||
This file is part of OpenFOAM.
|
|
||||||
|
|
||||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Application
|
|
||||||
acousticFoam
|
|
||||||
|
|
||||||
Group
|
|
||||||
grpAcousticSolvers
|
|
||||||
|
|
||||||
Description
|
|
||||||
Acoustic solver solving the acoustic pressure wave equation.
|
|
||||||
|
|
||||||
\f[
|
|
||||||
\ddt2{pa} - c^2 \laplacian{pa} = 0
|
|
||||||
\f]
|
|
||||||
|
|
||||||
where
|
|
||||||
\vartable
|
|
||||||
c | Sound speed
|
|
||||||
pa | Acoustic pressure
|
|
||||||
\endvartable
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
acousticFoam.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "fvCFD.H"
|
|
||||||
#include "fvOptions.H"
|
|
||||||
#include "pimpleControl.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
argList::addNote
|
|
||||||
(
|
|
||||||
"Acoustic solver solving the acoustic pressure wave equation."
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "postProcess.H"
|
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
|
||||||
#include "setRootCaseLists.H"
|
|
||||||
#include "createTime.H"
|
|
||||||
#include "createMesh.H"
|
|
||||||
#include "createControl.H"
|
|
||||||
#include "createRegionControls.H"
|
|
||||||
|
|
||||||
#include "readTransportProperties.H"
|
|
||||||
#include "createFields.H"
|
|
||||||
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
|
||||||
|
|
||||||
while (runTime.run())
|
|
||||||
{
|
|
||||||
++runTime;
|
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
while (pimple.correct())
|
|
||||||
{
|
|
||||||
#include "paEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
runTime.write();
|
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
Info << "\nReading pa" << endl;
|
|
||||||
|
|
||||||
volScalarField pa
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"pa",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
fvSolution solutionDict(runTime);
|
|
||||||
|
|
||||||
const dictionary& pimpleDict = solutionDict.subDict("PIMPLE");
|
|
||||||
|
|
||||||
bool solvePrimaryRegion
|
|
||||||
(
|
|
||||||
pimpleDict.getOrDefault("solvePrimaryRegion", true)
|
|
||||||
);
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
fvScalarMatrix paEqn
|
|
||||||
(
|
|
||||||
fvm::d2dt2(pa) - sqr(c0)*fvc::laplacian(pa)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (solvePrimaryRegion)
|
|
||||||
{
|
|
||||||
paEqn.relax();
|
|
||||||
paEqn.solve();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pa.correctBoundaryConditions();
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
Info<< "\nReading transportProperties" << endl;
|
|
||||||
|
|
||||||
IOdictionary transportProperties
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"transportProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dimensionedScalar c0("c0", dimVelocity, transportProperties);
|
|
||||||
|
|
||||||
dimensionedScalar rho("rho", dimDensity, transportProperties);
|
|
||||||
|
|
||||||
scalar MaxCo =
|
|
||||||
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
|
|
||||||
*runTime.deltaT().value();
|
|
||||||
|
|
||||||
Info<< "Max acoustic Courant Number = " << MaxCo << endl;
|
|
||||||
@ -25,7 +25,6 @@ EXE_LIBS = \
|
|||||||
-lengine \
|
-lengine \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -160,7 +160,7 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n";
|
Info<< "\n end\n";
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -207,7 +207,7 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n";
|
Info<< "\n end\n";
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -43,9 +43,9 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
|
|||||||
|
|
||||||
Info<< "Selecting drag model " << modelType << endl;
|
Info<< "Selecting drag model " << modelType << endl;
|
||||||
|
|
||||||
auto* ctorPtr = dictionaryConstructorTable(modelType);
|
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||||
|
|
||||||
if (!ctorPtr)
|
if (!cstrIter.found())
|
||||||
{
|
{
|
||||||
FatalIOErrorInLookup
|
FatalIOErrorInLookup
|
||||||
(
|
(
|
||||||
@ -57,9 +57,7 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
|
|||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<PDRDragModel>
|
return autoPtr<PDRDragModel>
|
||||||
(
|
(cstrIter()(dict, turbulence, rho, U, phi));
|
||||||
ctorPtr(dict, turbulence, rho, U, phi)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -42,9 +42,9 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
|
|||||||
|
|
||||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||||
|
|
||||||
auto* ctorPtr = dictionaryConstructorTable(modelType);
|
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||||
|
|
||||||
if (!ctorPtr)
|
if (!cstrIter.found())
|
||||||
{
|
{
|
||||||
FatalIOErrorInLookup
|
FatalIOErrorInLookup
|
||||||
(
|
(
|
||||||
@ -55,7 +55,7 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
|
|||||||
) << exit(FatalIOError);
|
) << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<XiEqModel>(ctorPtr(dict, thermo, turbulence, Su));
|
return autoPtr<XiEqModel>(cstrIter()(dict, thermo, turbulence, Su));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -42,9 +42,9 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
|
|||||||
|
|
||||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||||
|
|
||||||
auto* ctorPtr = dictionaryConstructorTable(modelType);
|
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||||
|
|
||||||
if (!ctorPtr)
|
if (!cstrIter.found())
|
||||||
{
|
{
|
||||||
FatalIOErrorInLookup
|
FatalIOErrorInLookup
|
||||||
(
|
(
|
||||||
@ -55,7 +55,7 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
|
|||||||
) << exit(FatalIOError);
|
) << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<XiGModel>(ctorPtr(dict, thermo, turbulence, Su));
|
return autoPtr<XiGModel>(cstrIter()(dict, thermo, turbulence, Su));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -45,9 +45,9 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
|||||||
|
|
||||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||||
|
|
||||||
auto* ctorPtr = dictionaryConstructorTable(modelType);
|
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||||
|
|
||||||
if (!ctorPtr)
|
if (!cstrIter.found())
|
||||||
{
|
{
|
||||||
FatalIOErrorInLookup
|
FatalIOErrorInLookup
|
||||||
(
|
(
|
||||||
@ -59,9 +59,7 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
|||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<XiModel>
|
return autoPtr<XiModel>
|
||||||
(
|
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
|
||||||
ctorPtr(dict, thermo, turbulence, Su, rho, b, phi)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,6 @@ EXE_LIBS = \
|
|||||||
-lengine \
|
-lengine \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -26,7 +26,6 @@ EXE_LIBS = \
|
|||||||
-lengine \
|
-lengine \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -20,7 +20,6 @@ EXE_LIBS = \
|
|||||||
-lengine \
|
-lengine \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -145,7 +144,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
runTime.write();
|
runTime.write();
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|||||||
@ -6,13 +6,11 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude
|
||||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lchemistryModel \
|
-lchemistryModel
|
||||||
-lthermophysicalProperties
|
|
||||||
|
|||||||
@ -93,8 +93,8 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "Number of steps = " << runTime.timeIndex() << nl;
|
Info << "Number of steps = " << runTime.timeIndex() << endl;
|
||||||
Info<< "End\n" << endl;
|
Info << "End" << nl << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,6 @@ EXE_LIBS = \
|
|||||||
-lengine \
|
-lengine \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie
|
-lspecie
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteArea/lnInclude \
|
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
-I${LIB_SRC}/sampling/lnInclude \
|
-I${LIB_SRC}/sampling/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
@ -15,6 +14,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
|
||||||
-I$(LIB_SRC)/combustionModels/lnInclude \
|
-I$(LIB_SRC)/combustionModels/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
@ -23,9 +23,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/regionModels/pyrolysisModels/lnInclude \
|
-I$(LIB_SRC)/regionModels/pyrolysisModels/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
||||||
-I$(LIB_SRC)/ODE/lnInclude \
|
-I$(LIB_SRC)/ODE/lnInclude
|
||||||
-I$(LIB_SRC)/regionFaModels/lnInclude \
|
|
||||||
-I$(LIB_SRC)/faOptions/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -34,7 +32,6 @@ EXE_LIBS = \
|
|||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
@ -53,7 +50,4 @@ EXE_LIBS = \
|
|||||||
-llagrangian \
|
-llagrangian \
|
||||||
-llagrangianIntermediate \
|
-llagrangianIntermediate \
|
||||||
-llagrangianTurbulence \
|
-llagrangianTurbulence \
|
||||||
-lODE \
|
-lODE
|
||||||
-lregionFaModels \
|
|
||||||
-lfiniteArea \
|
|
||||||
-lfaOptions
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
Info<< "\nConstructing reacting cloud" << endl;
|
Info<< "\nConstructing reacting cloud" << endl;
|
||||||
reactingCloud parcels
|
basicReactingCloud parcels
|
||||||
(
|
(
|
||||||
"reactingCloud1",
|
"reactingCloud1",
|
||||||
g,
|
|
||||||
rho,
|
rho,
|
||||||
U,
|
U,
|
||||||
|
g,
|
||||||
slgThermo
|
slgThermo
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
const volScalarField& T = thermo.T();
|
const volScalarField& T = thermo.T();
|
||||||
regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
|
regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
|
||||||
const label inertIndex(composition.species().find(inertSpecie));
|
const label inertIndex(composition.species()[inertSpecie]);
|
||||||
|
|||||||
@ -37,7 +37,7 @@ Description
|
|||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "turbulentFluidThermoModel.H"
|
#include "turbulentFluidThermoModel.H"
|
||||||
#include "reactingCloud.H"
|
#include "basicReactingCloud.H"
|
||||||
#include "surfaceFilmModel.H"
|
#include "surfaceFilmModel.H"
|
||||||
#include "pyrolysisModelCollection.H"
|
#include "pyrolysisModelCollection.H"
|
||||||
#include "radiationModel.H"
|
#include "radiationModel.H"
|
||||||
@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,6 @@ EXE_LIBS = \
|
|||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
const volScalarField& T = thermo.T();
|
const volScalarField& T = thermo.T();
|
||||||
const label inertIndex(composition.species().find(inertSpecie));
|
const label inertIndex(composition.species()[inertSpecie]);
|
||||||
|
|||||||
@ -20,7 +20,6 @@ EXE_LIBS = \
|
|||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
const volScalarField& T = thermo.T();
|
const volScalarField& T = thermo.T();
|
||||||
const label inertIndex(composition.species().find(inertSpecie));
|
const label inertIndex(composition.species()[inertSpecie]);
|
||||||
|
|||||||
@ -20,7 +20,6 @@ EXE_LIBS = \
|
|||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
const volScalarField& T = thermo.T();
|
const volScalarField& T = thermo.T();
|
||||||
const label inertIndex(composition.species().find(inertSpecie));
|
const label inertIndex(composition.species()[inertSpecie]);
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso BCs
|
wclean libso BCs
|
||||||
wclean
|
wclean
|
||||||
|
wclean rhoCentralDyMFoam
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(
|
(wmake $targetType BCs && wmake $targetType && wmake $targetType rhoCentralDyMFoam)
|
||||||
wmake $targetType BCs \
|
|
||||||
&& wmake $targetType
|
|
||||||
)
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -7,7 +7,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
|
-I$(LIB_SRC)/dynamicMesh/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -18,7 +18,4 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lrhoCentralFoam \
|
-lrhoCentralFoam \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels
|
||||||
-lthermoTools \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-ltopoChangerFvMesh
|
|
||||||
|
|||||||
@ -0,0 +1,3 @@
|
|||||||
|
rhoCentralDyMFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/rhoCentralDyMFoam
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I.. \
|
||||||
|
-I../BCs/lnInclude \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||||
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
|
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||||
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
|
-lmeshTools \
|
||||||
|
-lcompressibleTransportModels \
|
||||||
|
-lfluidThermophysicalModels \
|
||||||
|
-lspecie \
|
||||||
|
-lrhoCentralFoam \
|
||||||
|
-lturbulenceModels \
|
||||||
|
-lcompressibleTurbulenceModels \
|
||||||
|
-ldynamicMesh \
|
||||||
|
-ldynamicFvMesh \
|
||||||
|
-ltopoChangerFvMesh
|
||||||
@ -0,0 +1,288 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | www.openfoam.com
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
rhoCentralDyMFoam
|
||||||
|
|
||||||
|
Group
|
||||||
|
grpCompressibleSolvers grpMovingMeshSolvers
|
||||||
|
|
||||||
|
Description
|
||||||
|
Density-based compressible flow solver based on central-upwind
|
||||||
|
schemes of Kurganov and Tadmor
|
||||||
|
with support for mesh-motion and topology changes.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "dynamicFvMesh.H"
|
||||||
|
#include "psiThermo.H"
|
||||||
|
#include "turbulentFluidThermoModel.H"
|
||||||
|
#include "fixedRhoFvPatchScalarField.H"
|
||||||
|
#include "directionInterpolate.H"
|
||||||
|
#include "localEulerDdtScheme.H"
|
||||||
|
#include "fvcSmooth.H"
|
||||||
|
#include "motionSolver.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
argList::addNote
|
||||||
|
(
|
||||||
|
"Density-based compressible flow solver based on central-upwind"
|
||||||
|
" schemes of Kurganov and Tadmor.\n"
|
||||||
|
"With support for mesh-motion and topology changes."
|
||||||
|
);
|
||||||
|
|
||||||
|
#define NO_CONTROL
|
||||||
|
#include "postProcess.H"
|
||||||
|
|
||||||
|
#include "setRootCaseLists.H"
|
||||||
|
#include "createTime.H"
|
||||||
|
#include "createDynamicFvMesh.H"
|
||||||
|
#include "createFields.H"
|
||||||
|
#include "createFieldRefs.H"
|
||||||
|
#include "createTimeControls.H"
|
||||||
|
|
||||||
|
turbulence->validate();
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#include "readFluxScheme.H"
|
||||||
|
|
||||||
|
const dimensionedScalar v_zero(dimVolume/dimTime, Zero);
|
||||||
|
|
||||||
|
// Courant numbers used to adjust the time-step
|
||||||
|
scalar CoNum = 0.0;
|
||||||
|
scalar meanCoNum = 0.0;
|
||||||
|
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
|
while (runTime.run())
|
||||||
|
{
|
||||||
|
#include "readTimeControls.H"
|
||||||
|
#include "setDeltaT.H"
|
||||||
|
|
||||||
|
++runTime;
|
||||||
|
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
// Do any mesh changes
|
||||||
|
mesh.update();
|
||||||
|
|
||||||
|
// --- Directed interpolation of primitive fields onto faces
|
||||||
|
|
||||||
|
surfaceScalarField rho_pos(interpolate(rho, pos));
|
||||||
|
surfaceScalarField rho_neg(interpolate(rho, neg));
|
||||||
|
|
||||||
|
surfaceVectorField rhoU_pos(interpolate(rhoU, pos, U.name()));
|
||||||
|
surfaceVectorField rhoU_neg(interpolate(rhoU, neg, U.name()));
|
||||||
|
|
||||||
|
volScalarField rPsi("rPsi", 1.0/psi);
|
||||||
|
surfaceScalarField rPsi_pos(interpolate(rPsi, pos, T.name()));
|
||||||
|
surfaceScalarField rPsi_neg(interpolate(rPsi, neg, T.name()));
|
||||||
|
|
||||||
|
surfaceScalarField e_pos(interpolate(e, pos, T.name()));
|
||||||
|
surfaceScalarField e_neg(interpolate(e, neg, T.name()));
|
||||||
|
|
||||||
|
surfaceVectorField U_pos("U_pos", rhoU_pos/rho_pos);
|
||||||
|
surfaceVectorField U_neg("U_neg", rhoU_neg/rho_neg);
|
||||||
|
|
||||||
|
surfaceScalarField p_pos("p_pos", rho_pos*rPsi_pos);
|
||||||
|
surfaceScalarField p_neg("p_neg", rho_neg*rPsi_neg);
|
||||||
|
|
||||||
|
surfaceScalarField phiv_pos("phiv_pos", U_pos & mesh.Sf());
|
||||||
|
surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf());
|
||||||
|
|
||||||
|
// Make fluxes relative to mesh-motion
|
||||||
|
if (mesh.moving())
|
||||||
|
{
|
||||||
|
phiv_pos -= mesh.phi();
|
||||||
|
phiv_neg -= mesh.phi();
|
||||||
|
}
|
||||||
|
// Note: extracted out the orientation so becomes unoriented
|
||||||
|
phiv_pos.setOriented(false);
|
||||||
|
phiv_neg.setOriented(false);
|
||||||
|
|
||||||
|
volScalarField c("c", sqrt(thermo.Cp()/thermo.Cv()*rPsi));
|
||||||
|
surfaceScalarField cSf_pos
|
||||||
|
(
|
||||||
|
"cSf_pos",
|
||||||
|
interpolate(c, pos, T.name())*mesh.magSf()
|
||||||
|
);
|
||||||
|
surfaceScalarField cSf_neg
|
||||||
|
(
|
||||||
|
"cSf_neg",
|
||||||
|
interpolate(c, neg, T.name())*mesh.magSf()
|
||||||
|
);
|
||||||
|
|
||||||
|
surfaceScalarField ap
|
||||||
|
(
|
||||||
|
"ap",
|
||||||
|
max(max(phiv_pos + cSf_pos, phiv_neg + cSf_neg), v_zero)
|
||||||
|
);
|
||||||
|
surfaceScalarField am
|
||||||
|
(
|
||||||
|
"am",
|
||||||
|
min(min(phiv_pos - cSf_pos, phiv_neg - cSf_neg), v_zero)
|
||||||
|
);
|
||||||
|
|
||||||
|
surfaceScalarField a_pos("a_pos", ap/(ap - am));
|
||||||
|
|
||||||
|
surfaceScalarField amaxSf("amaxSf", max(mag(am), mag(ap)));
|
||||||
|
|
||||||
|
surfaceScalarField aSf("aSf", am*a_pos);
|
||||||
|
|
||||||
|
if (fluxScheme == "Tadmor")
|
||||||
|
{
|
||||||
|
aSf = -0.5*amaxSf;
|
||||||
|
a_pos = 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
surfaceScalarField a_neg("a_neg", 1.0 - a_pos);
|
||||||
|
|
||||||
|
phiv_pos *= a_pos;
|
||||||
|
phiv_neg *= a_neg;
|
||||||
|
|
||||||
|
surfaceScalarField aphiv_pos("aphiv_pos", phiv_pos - aSf);
|
||||||
|
surfaceScalarField aphiv_neg("aphiv_neg", phiv_neg + aSf);
|
||||||
|
|
||||||
|
// Reuse amaxSf for the maximum positive and negative fluxes
|
||||||
|
// estimated by the central scheme
|
||||||
|
amaxSf = max(mag(aphiv_pos), mag(aphiv_neg));
|
||||||
|
|
||||||
|
#include "centralCourantNo.H"
|
||||||
|
|
||||||
|
phi = aphiv_pos*rho_pos + aphiv_neg*rho_neg;
|
||||||
|
|
||||||
|
surfaceVectorField phiU(aphiv_pos*rhoU_pos + aphiv_neg*rhoU_neg);
|
||||||
|
// Note: reassembled orientation from the pos and neg parts so becomes
|
||||||
|
// oriented
|
||||||
|
phiU.setOriented(true);
|
||||||
|
|
||||||
|
surfaceVectorField phiUp(phiU + (a_pos*p_pos + a_neg*p_neg)*mesh.Sf());
|
||||||
|
|
||||||
|
surfaceScalarField phiEp
|
||||||
|
(
|
||||||
|
"phiEp",
|
||||||
|
aphiv_pos*(rho_pos*(e_pos + 0.5*magSqr(U_pos)) + p_pos)
|
||||||
|
+ aphiv_neg*(rho_neg*(e_neg + 0.5*magSqr(U_neg)) + p_neg)
|
||||||
|
+ aSf*p_pos - aSf*p_neg
|
||||||
|
);
|
||||||
|
|
||||||
|
// Make flux for pressure-work absolute
|
||||||
|
if (mesh.moving())
|
||||||
|
{
|
||||||
|
surfaceScalarField phia(a_pos*p_pos + a_neg*p_neg);
|
||||||
|
phia.setOriented(true);
|
||||||
|
|
||||||
|
phiEp += mesh.phi()*phia;
|
||||||
|
}
|
||||||
|
|
||||||
|
volScalarField muEff("muEff", turbulence->muEff());
|
||||||
|
volTensorField tauMC("tauMC", muEff*dev2(Foam::T(fvc::grad(U))));
|
||||||
|
|
||||||
|
// --- Solve density
|
||||||
|
solve(fvm::ddt(rho) + fvc::div(phi));
|
||||||
|
|
||||||
|
// --- Solve momentum
|
||||||
|
solve(fvm::ddt(rhoU) + fvc::div(phiUp));
|
||||||
|
|
||||||
|
U.ref() =
|
||||||
|
rhoU()
|
||||||
|
/rho();
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
rhoU.boundaryFieldRef() == rho.boundaryField()*U.boundaryField();
|
||||||
|
|
||||||
|
if (!inviscid)
|
||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(rho, U) - fvc::ddt(rho, U)
|
||||||
|
- fvm::laplacian(muEff, U)
|
||||||
|
- fvc::div(tauMC)
|
||||||
|
);
|
||||||
|
rhoU = rho*U;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Solve energy
|
||||||
|
surfaceScalarField sigmaDotU
|
||||||
|
(
|
||||||
|
"sigmaDotU",
|
||||||
|
(
|
||||||
|
fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
|
||||||
|
+ fvc::dotInterpolate(mesh.Sf(), tauMC)
|
||||||
|
)
|
||||||
|
& (a_pos*U_pos + a_neg*U_neg)
|
||||||
|
);
|
||||||
|
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(rhoE)
|
||||||
|
+ fvc::div(phiEp)
|
||||||
|
- fvc::div(sigmaDotU)
|
||||||
|
);
|
||||||
|
|
||||||
|
e = rhoE/rho - 0.5*magSqr(U);
|
||||||
|
e.correctBoundaryConditions();
|
||||||
|
thermo.correct();
|
||||||
|
rhoE.boundaryFieldRef() ==
|
||||||
|
rho.boundaryField()*
|
||||||
|
(
|
||||||
|
e.boundaryField() + 0.5*magSqr(U.boundaryField())
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!inviscid)
|
||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(rho, e) - fvc::ddt(rho, e)
|
||||||
|
- fvm::laplacian(turbulence->alphaEff(), e)
|
||||||
|
);
|
||||||
|
thermo.correct();
|
||||||
|
rhoE = rho*(e + 0.5*magSqr(U));
|
||||||
|
}
|
||||||
|
|
||||||
|
p.ref() =
|
||||||
|
rho()
|
||||||
|
/psi();
|
||||||
|
p.correctBoundaryConditions();
|
||||||
|
rho.boundaryFieldRef() == psi.boundaryField()*p.boundaryField();
|
||||||
|
|
||||||
|
turbulence->correct();
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
runTime.printExecutionTime(Info);
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2021 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -31,14 +30,12 @@ Group
|
|||||||
grpCompressibleSolvers
|
grpCompressibleSolvers
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Density-based compressible flow solver based on
|
Density-based compressible flow solver based on central-upwind
|
||||||
central-upwind schemes of Kurganov and Tadmor with
|
schemes of Kurganov and Tadmor.
|
||||||
support for mesh-motion and topology changes.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "dynamicFvMesh.H"
|
|
||||||
#include "psiThermo.H"
|
#include "psiThermo.H"
|
||||||
#include "turbulentFluidThermoModel.H"
|
#include "turbulentFluidThermoModel.H"
|
||||||
#include "fixedRhoFvPatchScalarField.H"
|
#include "fixedRhoFvPatchScalarField.H"
|
||||||
@ -52,9 +49,8 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
argList::addNote
|
argList::addNote
|
||||||
(
|
(
|
||||||
"Density-based compressible flow solver based on"
|
"Density-based compressible flow solver based on central-upwind"
|
||||||
" central-upwind schemes of Kurganov and Tadmor with"
|
" schemes of Kurganov and Tadmor."
|
||||||
" support for mesh-motion and topology changes."
|
|
||||||
);
|
);
|
||||||
|
|
||||||
#define NO_CONTROL
|
#define NO_CONTROL
|
||||||
@ -63,7 +59,7 @@ int main(int argc, char *argv[])
|
|||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createDynamicFvMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createFieldRefs.H"
|
#include "createFieldRefs.H"
|
||||||
#include "createTimeControls.H"
|
#include "createTimeControls.H"
|
||||||
@ -84,18 +80,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
#include "readTimeControls.H"
|
|
||||||
|
|
||||||
if (!LTS)
|
|
||||||
{
|
|
||||||
#include "setDeltaT.H"
|
|
||||||
|
|
||||||
++runTime;
|
|
||||||
|
|
||||||
// Do any mesh changes
|
|
||||||
mesh.update();
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- Directed interpolation of primitive fields onto faces
|
// --- Directed interpolation of primitive fields onto faces
|
||||||
|
|
||||||
surfaceScalarField rho_pos(interpolate(rho, pos));
|
surfaceScalarField rho_pos(interpolate(rho, pos));
|
||||||
@ -123,15 +107,6 @@ int main(int argc, char *argv[])
|
|||||||
surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf());
|
surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf());
|
||||||
phiv_neg.setOriented(false);
|
phiv_neg.setOriented(false);
|
||||||
|
|
||||||
// Make fluxes relative to mesh-motion
|
|
||||||
if (mesh.moving())
|
|
||||||
{
|
|
||||||
surfaceScalarField meshPhi(mesh.phi());
|
|
||||||
meshPhi.setOriented(false);
|
|
||||||
phiv_pos -= meshPhi;
|
|
||||||
phiv_neg -= meshPhi;
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField c("c", sqrt(thermo.Cp()/thermo.Cv()*rPsi));
|
volScalarField c("c", sqrt(thermo.Cp()/thermo.Cv()*rPsi));
|
||||||
surfaceScalarField cSf_pos
|
surfaceScalarField cSf_pos
|
||||||
(
|
(
|
||||||
@ -182,13 +157,18 @@ int main(int argc, char *argv[])
|
|||||||
amaxSf = max(mag(aphiv_pos), mag(aphiv_neg));
|
amaxSf = max(mag(aphiv_pos), mag(aphiv_neg));
|
||||||
|
|
||||||
#include "centralCourantNo.H"
|
#include "centralCourantNo.H"
|
||||||
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
if (LTS)
|
if (LTS)
|
||||||
{
|
{
|
||||||
#include "setRDeltaT.H"
|
#include "setRDeltaT.H"
|
||||||
|
|
||||||
++runTime;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#include "setDeltaT.H"
|
||||||
|
}
|
||||||
|
|
||||||
|
++runTime;
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
@ -209,14 +189,6 @@ int main(int argc, char *argv[])
|
|||||||
+ aSf*p_pos - aSf*p_neg
|
+ aSf*p_pos - aSf*p_neg
|
||||||
);
|
);
|
||||||
|
|
||||||
// Make flux for pressure-work absolute
|
|
||||||
if (mesh.moving())
|
|
||||||
{
|
|
||||||
surfaceScalarField meshPhi(mesh.phi());
|
|
||||||
meshPhi.setOriented(false);
|
|
||||||
phiEp += meshPhi*(a_pos*p_pos + a_neg*p_neg);
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField muEff("muEff", turbulence->muEff());
|
volScalarField muEff("muEff", turbulence->muEff());
|
||||||
volTensorField tauMC("tauMC", muEff*dev2(Foam::T(fvc::grad(U))));
|
volTensorField tauMC("tauMC", muEff*dev2(Foam::T(fvc::grad(U))));
|
||||||
|
|
||||||
|
|||||||
@ -47,3 +47,4 @@
|
|||||||
|
|
||||||
rho.writeMinMax(Info);
|
rho.writeMinMax(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -17,5 +17,4 @@ EXE_LIBS = \
|
|||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels
|
||||||
-lthermoTools
|
|
||||||
|
|||||||
@ -8,8 +8,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
|
||||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -20,10 +19,8 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-ldynamicMesh \
|
-ldynamicMesh \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-ltopoChangerFvMesh \
|
-ltopoChangerFvMesh \
|
||||||
-lsampling \
|
-lsampling \
|
||||||
-latmosphericModels \
|
-latmosphericModels
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -21,7 +21,6 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-ltopoChangerFvMesh \
|
-ltopoChangerFvMesh \
|
||||||
-loverset
|
-loverset
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the boundary values of the reciprocal time-step
|
// Update tho boundary values of the reciprocal time-step
|
||||||
rDeltaT.correctBoundaryConditions();
|
rDeltaT.correctBoundaryConditions();
|
||||||
|
|
||||||
Info<< "Flow time scale min/max = "
|
Info<< "Flow time scale min/max = "
|
||||||
|
|||||||
@ -7,7 +7,6 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -19,6 +18,4 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
-latmosphericModels
|
||||||
-latmosphericModels \
|
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -21,7 +21,6 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-ltopoChangerFvMesh \
|
-ltopoChangerFvMesh \
|
||||||
-lsampling \
|
-lsampling \
|
||||||
|
|||||||
@ -1,6 +1 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
|
|
||||||
bool adjustFringe
|
|
||||||
(
|
|
||||||
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
|
||||||
);
|
|
||||||
|
|||||||
@ -80,3 +80,7 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
|||||||
|
|
||||||
#include "createInterpolatedCells.H"
|
#include "createInterpolatedCells.H"
|
||||||
|
|
||||||
|
bool adjustFringe
|
||||||
|
(
|
||||||
|
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
||||||
|
);
|
||||||
|
|||||||
@ -1,52 +1,22 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
Info<< "Create dynamic mesh for time = "
|
||||||
========= |
|
<< runTime.timeName() << nl << endl;
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | www.openfoam.com
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
Copyright (C) 2017 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
License
|
|
||||||
This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
|
||||||
|
|
||||||
Description
|
autoPtr<dynamicFvMesh> meshPtr
|
||||||
Create a dynamicFvMesh, with init()
|
|
||||||
|
|
||||||
Required Variables
|
|
||||||
- runTime [Time]
|
|
||||||
|
|
||||||
Provided Variables
|
|
||||||
- mesh [dynamicFvMesh], meshPtr
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
Foam::autoPtr<Foam::dynamicFvMesh> meshPtr;
|
|
||||||
|
|
||||||
{
|
|
||||||
Foam::Info << "Create dynamic mesh for time = "
|
|
||||||
<< runTime.timeName() << Foam::nl;
|
|
||||||
|
|
||||||
meshPtr = dynamicFvMesh::New
|
|
||||||
(
|
(
|
||||||
IOobject
|
dynamicFvMesh::New
|
||||||
(
|
(
|
||||||
polyMesh::defaultRegion,
|
IOobject
|
||||||
runTime.timeName(),
|
(
|
||||||
runTime,
|
dynamicFvMesh::defaultRegion,
|
||||||
IOobject::MUST_READ
|
runTime.timeName(),
|
||||||
|
runTime,
|
||||||
|
IOobject::MUST_READ
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
|
dynamicFvMesh& mesh = meshPtr();
|
||||||
|
|
||||||
dynamicFvMesh& mesh = meshPtr();
|
// Calculate initial mesh-to-mesh mapping. Note that this should be
|
||||||
|
// done under the hood, e.g. as a MeshObject
|
||||||
// Calculate initial mesh-to-mesh mapping. Note that this should be
|
mesh.update();
|
||||||
// done under the hood, e.g. as a MeshObject
|
|
||||||
mesh.update();
|
|
||||||
|
|
||||||
Foam::Info << Foam::endl;
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
|
|||||||
@ -18,5 +18,4 @@ EXE_LIBS = \
|
|||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels
|
||||||
-lthermoTools
|
|
||||||
|
|||||||
@ -16,5 +16,4 @@ EXE_LIBS = \
|
|||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels
|
||||||
-lthermoTools
|
|
||||||
|
|||||||
@ -21,7 +21,6 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-ldynamicMesh \
|
-ldynamicMesh \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-ltopoChangerFvMesh \
|
-ltopoChangerFvMesh \
|
||||||
|
|||||||
@ -44,7 +44,11 @@ SourceFiles
|
|||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
// Forward Declarations
|
// Forward declaration of classes
|
||||||
|
class Istream;
|
||||||
|
class Ostream;
|
||||||
|
|
||||||
|
// Forward declaration of friend functions and operators
|
||||||
class magnet;
|
class magnet;
|
||||||
Istream& operator>>(Istream&, magnet&);
|
Istream& operator>>(Istream&, magnet&);
|
||||||
Ostream& operator<<(Ostream&, const magnet&);
|
Ostream& operator<<(Ostream&, const magnet&);
|
||||||
|
|||||||
@ -63,3 +63,4 @@ edgeScalarField phis
|
|||||||
),
|
),
|
||||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -57,3 +57,4 @@ edgeScalarField phis
|
|||||||
),
|
),
|
||||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I../buoyantBoussinesqSimpleFoam \
|
-I../buoyantBoussinesqSimpleFoam \
|
||||||
-I../../incompressible/pimpleFoam \
|
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/transportModels \
|
-I$(LIB_SRC)/transportModels \
|
||||||
@ -16,8 +13,6 @@ EXE_LIBS = \
|
|||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lfvOptions \
|
-lfvOptions \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-ldynamicMesh \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lincompressibleTurbulenceModels \
|
-lincompressibleTurbulenceModels \
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2021 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -31,8 +30,7 @@ Group
|
|||||||
grpHeatTransferSolvers
|
grpHeatTransferSolvers
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Transient solver for buoyant, turbulent flow of incompressible fluids,
|
Transient solver for buoyant, turbulent flow of incompressible fluids.
|
||||||
with optional mesh motion and mesh topology changes.
|
|
||||||
|
|
||||||
Uses the Boussinesq approximation:
|
Uses the Boussinesq approximation:
|
||||||
\f[
|
\f[
|
||||||
@ -53,11 +51,9 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "dynamicFvMesh.H"
|
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "turbulentTransportModel.H"
|
#include "turbulentTransportModel.H"
|
||||||
#include "radiationModel.H"
|
#include "radiationModel.H"
|
||||||
#include "CorrectPhi.H"
|
|
||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
|
|
||||||
@ -68,8 +64,7 @@ int main(int argc, char *argv[])
|
|||||||
argList::addNote
|
argList::addNote
|
||||||
(
|
(
|
||||||
"Transient solver for buoyant, turbulent flow"
|
"Transient solver for buoyant, turbulent flow"
|
||||||
" of incompressible fluids, with optional mesh"
|
" of incompressible fluids.\n"
|
||||||
" motion and mesh topology changes.\n"
|
|
||||||
"Uses the Boussinesq approximation."
|
"Uses the Boussinesq approximation."
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -78,10 +73,10 @@ int main(int argc, char *argv[])
|
|||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createDynamicFvMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createDyMControls.H"
|
#include "createControl.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createUfIfPresent.H"
|
#include "createTimeControls.H"
|
||||||
#include "CourantNo.H"
|
#include "CourantNo.H"
|
||||||
#include "setInitialDeltaT.H"
|
#include "setInitialDeltaT.H"
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
@ -94,7 +89,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
#include "readDyMControls.H"
|
#include "readTimeControls.H"
|
||||||
#include "CourantNo.H"
|
#include "CourantNo.H"
|
||||||
#include "setDeltaT.H"
|
#include "setDeltaT.H"
|
||||||
|
|
||||||
@ -105,34 +100,6 @@ int main(int argc, char *argv[])
|
|||||||
// --- Pressure-velocity PIMPLE corrector loop
|
// --- Pressure-velocity PIMPLE corrector loop
|
||||||
while (pimple.loop())
|
while (pimple.loop())
|
||||||
{
|
{
|
||||||
if (pimple.firstIter() || moveMeshOuterCorrectors)
|
|
||||||
{
|
|
||||||
// Do any mesh changes
|
|
||||||
mesh.controlledUpdate();
|
|
||||||
|
|
||||||
if (mesh.changing())
|
|
||||||
{
|
|
||||||
MRF.update();
|
|
||||||
|
|
||||||
if (correctPhi)
|
|
||||||
{
|
|
||||||
// Calculate absolute flux
|
|
||||||
// from the mapped surface velocity
|
|
||||||
phi = mesh.Sf() & Uf();
|
|
||||||
|
|
||||||
#include "correctPhi.H"
|
|
||||||
|
|
||||||
// Make the flux relative to the mesh motion
|
|
||||||
fvc::makeRelative(phi, U);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (checkMeshCourantNo)
|
|
||||||
{
|
|
||||||
#include "meshCourantNo.H"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
#include "TEqn.H"
|
#include "TEqn.H"
|
||||||
|
|
||||||
|
|||||||
@ -42,12 +42,6 @@
|
|||||||
U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
|
U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|
||||||
// Correct Uf if the mesh is moving
|
|
||||||
fvc::correctUf(Uf, U, phi);
|
|
||||||
|
|
||||||
// Make the fluxes relative to the mesh motion
|
|
||||||
fvc::makeRelative(phi, U);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I../../compressible/rhoPimpleFoam \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
@ -7,10 +6,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -23,9 +19,4 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
-latmosphericModels
|
||||||
-latmosphericModels \
|
|
||||||
-ldynamicMesh \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-ltopoChangerFvMesh \
|
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2021 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -31,9 +30,8 @@ Group
|
|||||||
grpHeatTransferSolvers
|
grpHeatTransferSolvers
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Transient solver for buoyant, turbulent flow of compressible fluids
|
Transient solver for buoyant, turbulent flow of compressible fluids for
|
||||||
for ventilation and heat-transfer, with optional mesh motion
|
ventilation and heat-transfer.
|
||||||
and mesh topology changes.
|
|
||||||
|
|
||||||
Turbulence is modelled using a run-time selectable compressible RAS or
|
Turbulence is modelled using a run-time selectable compressible RAS or
|
||||||
LES model.
|
LES model.
|
||||||
@ -41,16 +39,12 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "dynamicFvMesh.H"
|
|
||||||
#include "rhoThermo.H"
|
#include "rhoThermo.H"
|
||||||
#include "turbulentFluidThermoModel.H"
|
#include "turbulentFluidThermoModel.H"
|
||||||
#include "radiationModel.H"
|
#include "radiationModel.H"
|
||||||
#include "CorrectPhi.H"
|
|
||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
#include "pressureControl.H"
|
#include "pressureControl.H"
|
||||||
#include "localEulerDdtScheme.H"
|
|
||||||
#include "fvcSmooth.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -59,8 +53,7 @@ int main(int argc, char *argv[])
|
|||||||
argList::addNote
|
argList::addNote
|
||||||
(
|
(
|
||||||
"Transient solver for buoyant, turbulent fluid flow"
|
"Transient solver for buoyant, turbulent fluid flow"
|
||||||
" of compressible fluids, including radiation,"
|
" of compressible fluids, including radiation."
|
||||||
" with optional mesh motion and mesh topology changes."
|
|
||||||
);
|
);
|
||||||
|
|
||||||
#include "postProcess.H"
|
#include "postProcess.H"
|
||||||
@ -68,105 +61,36 @@ int main(int argc, char *argv[])
|
|||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createDynamicFvMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createDyMControls.H"
|
#include "createControl.H"
|
||||||
#include "initContinuityErrs.H"
|
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createFieldRefs.H"
|
#include "createFieldRefs.H"
|
||||||
#include "createRhoUfIfPresent.H"
|
#include "initContinuityErrs.H"
|
||||||
|
#include "createTimeControls.H"
|
||||||
|
#include "compressibleCourantNo.H"
|
||||||
|
#include "setInitialDeltaT.H"
|
||||||
|
|
||||||
turbulence->validate();
|
turbulence->validate();
|
||||||
|
|
||||||
if (!LTS)
|
|
||||||
{
|
|
||||||
#include "compressibleCourantNo.H"
|
|
||||||
#include "setInitialDeltaT.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
#include "readDyMControls.H"
|
#include "readTimeControls.H"
|
||||||
|
#include "compressibleCourantNo.H"
|
||||||
// Store divrhoU from the previous mesh
|
#include "setDeltaT.H"
|
||||||
// so that it can be mapped and used in correctPhi
|
|
||||||
// to ensure the corrected phi has the same divergence
|
|
||||||
autoPtr<volScalarField> divrhoU;
|
|
||||||
if (correctPhi)
|
|
||||||
{
|
|
||||||
divrhoU.reset
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
"divrhoU",
|
|
||||||
fvc::div(fvc::absolute(phi, rho, U))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LTS)
|
|
||||||
{
|
|
||||||
#include "setRDeltaT.H"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#include "compressibleCourantNo.H"
|
|
||||||
#include "setDeltaT.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
++runTime;
|
++runTime;
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
#include "rhoEqn.H"
|
||||||
|
|
||||||
// --- Pressure-velocity PIMPLE corrector loop
|
// --- Pressure-velocity PIMPLE corrector loop
|
||||||
while (pimple.loop())
|
while (pimple.loop())
|
||||||
{
|
{
|
||||||
if (pimple.firstIter() || moveMeshOuterCorrectors)
|
|
||||||
{
|
|
||||||
// Store momentum to set rhoUf for introduced faces.
|
|
||||||
autoPtr<volVectorField> rhoU;
|
|
||||||
if (rhoUf.valid())
|
|
||||||
{
|
|
||||||
rhoU.reset(new volVectorField("rhoU", rho*U));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do any mesh changes
|
|
||||||
mesh.update();
|
|
||||||
|
|
||||||
if (mesh.changing())
|
|
||||||
{
|
|
||||||
gh = (g & mesh.C()) - ghRef;
|
|
||||||
ghf = (g & mesh.Cf()) - ghRef;
|
|
||||||
|
|
||||||
MRF.update();
|
|
||||||
|
|
||||||
if (correctPhi)
|
|
||||||
{
|
|
||||||
// Calculate absolute flux
|
|
||||||
// from the mapped surface velocity
|
|
||||||
phi = mesh.Sf() & rhoUf();
|
|
||||||
|
|
||||||
#include "correctPhi.H"
|
|
||||||
|
|
||||||
// Make the fluxes relative to the mesh-motion
|
|
||||||
fvc::makeRelative(phi, rho, U);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (checkMeshCourantNo)
|
|
||||||
{
|
|
||||||
#include "meshCourantNo.H"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pimple.firstIter() && !pimple.SIMPLErho())
|
|
||||||
{
|
|
||||||
#include "rhoEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
#include "EEqn.H"
|
#include "EEqn.H"
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
#include "createRDeltaT.H"
|
|
||||||
|
|
||||||
Info<< "Reading thermophysical properties\n" << endl;
|
Info<< "Reading thermophysical properties\n" << endl;
|
||||||
|
|
||||||
autoPtr<rhoThermo> pThermo(rhoThermo::New(mesh));
|
autoPtr<rhoThermo> pThermo(rhoThermo::New(mesh));
|
||||||
|
|||||||
@ -24,7 +24,6 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-latmosphericModels \
|
-latmosphericModels \
|
||||||
-loverset \
|
-loverset \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||||
bool compressible = (compressibility.value() > SMALL);
|
bool compressible = (compressibility.value() > SMALL);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||||
bool compressible = (compressibility.value() > SMALL);
|
bool compressible = (compressibility.value() > SMALL);
|
||||||
|
|
||||||
@ -28,8 +29,6 @@ MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
|
|||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
||||||
|
|
||||||
fvc::makeRelative(phiHbyA, rho, U);
|
|
||||||
|
|
||||||
fvScalarMatrix p_rghDDtEqn
|
fvScalarMatrix p_rghDDtEqn
|
||||||
(
|
(
|
||||||
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
|
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
|
||||||
@ -106,15 +105,7 @@ else
|
|||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
// Correct rhoUf if the mesh is moving
|
|
||||||
fvc::correctRhoUf(rhoUf, rho, U, phi);
|
|
||||||
|
|
||||||
if (thermo.dpdt())
|
if (thermo.dpdt())
|
||||||
{
|
{
|
||||||
dpdt = fvc::ddt(p);
|
dpdt = fvc::ddt(p);
|
||||||
|
|
||||||
if (mesh.moving())
|
|
||||||
{
|
|
||||||
dpdt -= fvc::div(fvc::meshPhi(rho, U), p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,8 +6,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
|
||||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -20,6 +19,4 @@ EXE_LIBS = \
|
|||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
-latmosphericModels
|
||||||
-latmosphericModels \
|
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -18,9 +18,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
||||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
|
||||||
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -37,7 +35,5 @@ EXE_LIBS = \
|
|||||||
-lcombustionModels \
|
-lcombustionModels \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lregionModels \
|
-lregionModels
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2017-2019,2022 OpenCFD Ltd.
|
Copyright (C) 2017 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -54,7 +54,6 @@ Description
|
|||||||
#include "loopControl.H"
|
#include "loopControl.H"
|
||||||
#include "pressureControl.H"
|
#include "pressureControl.H"
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
@ -70,7 +69,6 @@ int main(int argc, char *argv[])
|
|||||||
#define CREATE_MESH createMeshesPostProcess.H
|
#define CREATE_MESH createMeshesPostProcess.H
|
||||||
#include "postProcess.H"
|
#include "postProcess.H"
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMeshes.H"
|
#include "createMeshes.H"
|
||||||
@ -82,8 +80,6 @@ int main(int argc, char *argv[])
|
|||||||
#include "solidRegionDiffusionNo.H"
|
#include "solidRegionDiffusionNo.H"
|
||||||
#include "setInitialMultiRegionDeltaT.H"
|
#include "setInitialMultiRegionDeltaT.H"
|
||||||
|
|
||||||
#include "createCoupledRegions.H"
|
|
||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
#include "readTimeControls.H"
|
#include "readTimeControls.H"
|
||||||
@ -113,6 +109,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
forAll(fluidRegions, i)
|
forAll(fluidRegions, i)
|
||||||
{
|
{
|
||||||
|
Info<< "\nSolving for fluid region "
|
||||||
|
<< fluidRegions[i].name() << endl;
|
||||||
#include "setRegionFluidFields.H"
|
#include "setRegionFluidFields.H"
|
||||||
#include "readFluidMultiRegionPIMPLEControls.H"
|
#include "readFluidMultiRegionPIMPLEControls.H"
|
||||||
#include "solveFluid.H"
|
#include "solveFluid.H"
|
||||||
@ -120,41 +118,13 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
forAll(solidRegions, i)
|
forAll(solidRegions, i)
|
||||||
{
|
{
|
||||||
|
Info<< "\nSolving for solid region "
|
||||||
|
<< solidRegions[i].name() << endl;
|
||||||
#include "setRegionSolidFields.H"
|
#include "setRegionSolidFields.H"
|
||||||
#include "readSolidMultiRegionPIMPLEControls.H"
|
#include "readSolidMultiRegionPIMPLEControls.H"
|
||||||
#include "solveSolid.H"
|
#include "solveSolid.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (coupled)
|
|
||||||
{
|
|
||||||
Info<< "\nSolving energy coupled regions " << endl;
|
|
||||||
fvMatrixAssemblyPtr->solve();
|
|
||||||
#include "correctThermos.H"
|
|
||||||
|
|
||||||
forAll(fluidRegions, i)
|
|
||||||
{
|
|
||||||
#include "setRegionFluidFields.H"
|
|
||||||
#include "readFluidMultiRegionPIMPLEControls.H"
|
|
||||||
if (!frozenFlow)
|
|
||||||
{
|
|
||||||
Info<< "\nSolving for fluid region "
|
|
||||||
<< fluidRegions[i].name() << endl;
|
|
||||||
// --- PISO loop
|
|
||||||
for (int corr=0; corr<nCorr; corr++)
|
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
|
||||||
}
|
|
||||||
turbulence.correct();
|
|
||||||
}
|
|
||||||
|
|
||||||
rho = thermo.rho();
|
|
||||||
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
|
||||||
<< max(thermo.T()).value() << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
fvMatrixAssemblyPtr->clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Additional loops for energy solution only
|
// Additional loops for energy solution only
|
||||||
if (!oCorr && nOuterCorr > 1)
|
if (!oCorr && nOuterCorr > 1)
|
||||||
{
|
{
|
||||||
@ -182,21 +152,6 @@ int main(int argc, char *argv[])
|
|||||||
#include "readSolidMultiRegionPIMPLEControls.H"
|
#include "readSolidMultiRegionPIMPLEControls.H"
|
||||||
#include "solveSolid.H"
|
#include "solveSolid.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (coupled)
|
|
||||||
{
|
|
||||||
Info<< "\nSolving energy coupled regions " << endl;
|
|
||||||
fvMatrixAssemblyPtr->solve();
|
|
||||||
#include "correctThermos.H"
|
|
||||||
|
|
||||||
forAll(fluidRegions, i)
|
|
||||||
{
|
|
||||||
#include "setRegionFluidFields.H"
|
|
||||||
rho = thermo.rho();
|
|
||||||
}
|
|
||||||
|
|
||||||
fvMatrixAssemblyPtr->clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
chtMultiRegionSimpleFoam.C
|
chtMultiRegionSimpleFoam.C
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
|
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,6 @@ EXE_INC = \
|
|||||||
-I./fluid \
|
-I./fluid \
|
||||||
-I./solid \
|
-I./solid \
|
||||||
-I../solid \
|
-I../solid \
|
||||||
-I./../include \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
@ -15,9 +14,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -30,11 +27,5 @@ EXE_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lthermoTools \
|
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lfvOptions \
|
-lregionModels
|
||||||
-lfaOptions \
|
|
||||||
-lregionModels \
|
|
||||||
-lsampling \
|
|
||||||
-lregionFaModels
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2017-2019,2022 OpenCFD Ltd.
|
Copyright (C) 2017 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -62,12 +62,10 @@ int main(int argc, char *argv[])
|
|||||||
#define CREATE_MESH createMeshesPostProcess.H
|
#define CREATE_MESH createMeshesPostProcess.H
|
||||||
#include "postProcess.H"
|
#include "postProcess.H"
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMeshes.H"
|
#include "createMeshes.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createCoupledRegions.H"
|
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
|
|
||||||
while (runTime.loop())
|
while (runTime.loop())
|
||||||
@ -85,32 +83,13 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
forAll(solidRegions, i)
|
forAll(solidRegions, i)
|
||||||
{
|
{
|
||||||
|
Info<< "\nSolving for solid region "
|
||||||
|
<< solidRegions[i].name() << endl;
|
||||||
#include "setRegionSolidFields.H"
|
#include "setRegionSolidFields.H"
|
||||||
#include "readSolidMultiRegionSIMPLEControls.H"
|
#include "readSolidMultiRegionSIMPLEControls.H"
|
||||||
#include "solveSolid.H"
|
#include "solveSolid.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (coupled)
|
|
||||||
{
|
|
||||||
Info<< "\nSolving energy coupled regions" << endl;
|
|
||||||
fvMatrixAssemblyPtr->solve();
|
|
||||||
#include "correctThermos.H"
|
|
||||||
|
|
||||||
forAll(fluidRegions, i)
|
|
||||||
{
|
|
||||||
#include "setRegionFluidFields.H"
|
|
||||||
#include "readSolidMultiRegionSIMPLEControls.H"
|
|
||||||
if (!frozenFlow)
|
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
|
||||||
turb.correct();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fvMatrixAssemblyPtr->clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Additional loops for energy solution only
|
// Additional loops for energy solution only
|
||||||
{
|
{
|
||||||
loopControl looping(runTime, "SIMPLE", "energyCoupling");
|
loopControl looping(runTime, "SIMPLE", "energyCoupling");
|
||||||
@ -137,15 +116,6 @@ int main(int argc, char *argv[])
|
|||||||
#include "readSolidMultiRegionSIMPLEControls.H"
|
#include "readSolidMultiRegionSIMPLEControls.H"
|
||||||
#include "solveSolid.H"
|
#include "solveSolid.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (coupled)
|
|
||||||
{
|
|
||||||
Info<< "\nSolving energy coupled regions.. " << endl;
|
|
||||||
fvMatrixAssemblyPtr->solve();
|
|
||||||
#include "correctThermos.H"
|
|
||||||
|
|
||||||
fvMatrixAssemblyPtr->clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,20 +20,13 @@
|
|||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|
||||||
if (coupled)
|
EEqn.solve();
|
||||||
{
|
|
||||||
fvMatrixAssemblyPtr->addFvMatrix(EEqn);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EEqn.solve();
|
|
||||||
|
|
||||||
fvOptions.correct(he);
|
fvOptions.correct(he);
|
||||||
|
|
||||||
thermo.correct();
|
thermo.correct();
|
||||||
rad.correct();
|
rad.correct();
|
||||||
|
|
||||||
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
||||||
<< max(thermo.T()).value() << endl;
|
<< max(thermo.T()).value() << endl;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
UEqn =
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,6 +10,7 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
|
||||||
|
|||||||
@ -21,8 +21,6 @@ PtrList<dimensionedScalar> rhoMin(fluidRegions.size());
|
|||||||
PtrList<IOMRFZoneList> MRFfluid(fluidRegions.size());
|
PtrList<IOMRFZoneList> MRFfluid(fluidRegions.size());
|
||||||
PtrList<fv::options> fluidFvOptions(fluidRegions.size());
|
PtrList<fv::options> fluidFvOptions(fluidRegions.size());
|
||||||
|
|
||||||
PtrList<fvVectorMatrix> UEqFluid(fluidRegions.size());
|
|
||||||
|
|
||||||
const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
|
const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
|
||||||
|
|
||||||
// Populate fluid field pointer lists
|
// Populate fluid field pointer lists
|
||||||
@ -224,11 +222,5 @@ forAll(fluidRegions, i)
|
|||||||
new fv::options(fluidRegions[i])
|
new fv::options(fluidRegions[i])
|
||||||
);
|
);
|
||||||
|
|
||||||
UEqFluid.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new fvVectorMatrix(UFluid[i], dimForce)
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulence[i].validate();
|
turbulence[i].validate();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,61 +4,21 @@
|
|||||||
|
|
||||||
forAll(fluidNames, i)
|
forAll(fluidNames, i)
|
||||||
{
|
{
|
||||||
if (args.dryRun() || args.found("dry-run-write"))
|
Info<< "Create fluid mesh for region " << fluidNames[i]
|
||||||
{
|
<< " for time = " << runTime.timeName() << nl << endl;
|
||||||
Info
|
|
||||||
<< "Operating in 'dry-run' mode:"
|
|
||||||
<< " case will run for 1 time step. "
|
|
||||||
<< "All checks assumed OK on a clean exit" << endl;
|
|
||||||
|
|
||||||
FieldBase::allowConstructFromLargerSize = true;
|
fluidRegions.set
|
||||||
|
(
|
||||||
// Create a simplified 1D mesh and attempt to re-create boundary
|
i,
|
||||||
// conditions
|
new fvMesh
|
||||||
fluidRegions.set
|
|
||||||
(
|
(
|
||||||
i,
|
IOobject
|
||||||
new simplifiedMeshes::columnFvMesh(runTime, fluidNames[i])
|
|
||||||
);
|
|
||||||
|
|
||||||
// Stop after 1 iteration of the simplified mesh
|
|
||||||
|
|
||||||
if (args.found("dry-run-write"))
|
|
||||||
{
|
|
||||||
// Using saWriteNow triggers function objects execute(), write()
|
|
||||||
runTime.stopAt(Time::saWriteNow);
|
|
||||||
|
|
||||||
// Make sure mesh gets output to the current time (since
|
|
||||||
// instance no longer constant)
|
|
||||||
fluidRegions[i].setInstance(runTime.timeName());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Using saNoWriteNow triggers function objects execute(),
|
|
||||||
// but not write()
|
|
||||||
runTime.stopAt(Time::saNoWriteNow);
|
|
||||||
}
|
|
||||||
|
|
||||||
functionObject::outputPrefix = "postProcessing-dry-run";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Info<< "Create fluid mesh for region " << fluidNames[i]
|
|
||||||
<< " for time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
fluidRegions.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new fvMesh
|
|
||||||
(
|
(
|
||||||
IOobject
|
fluidNames[i],
|
||||||
(
|
runTime.timeName(),
|
||||||
fluidNames[i],
|
runTime,
|
||||||
runTime.timeName(),
|
IOobject::MUST_READ
|
||||||
runTime,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
)
|
||||||
}
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
volScalarField rAU("rAU", 1.0/UEqn.A());
|
volScalarField rAU("rAU", 1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
||||||
//tUEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||||
|
|
||||||
|
|||||||
@ -22,8 +22,6 @@
|
|||||||
IOMRFZoneList& MRF = MRFfluid[i];
|
IOMRFZoneList& MRF = MRFfluid[i];
|
||||||
fv::options& fvOptions = fluidFvOptions[i];
|
fv::options& fvOptions = fluidFvOptions[i];
|
||||||
|
|
||||||
fvVectorMatrix& UEqn = UEqFluid[i];
|
|
||||||
|
|
||||||
const dimensionedScalar initialMass
|
const dimensionedScalar initialMass
|
||||||
(
|
(
|
||||||
"initialMass",
|
"initialMass",
|
||||||
|
|||||||
@ -12,10 +12,8 @@
|
|||||||
|
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
#include "EEqn.H"
|
#include "EEqn.H"
|
||||||
if (!coupled)
|
#include "pEqn.H"
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
turb.correct();
|
||||||
turb.correct();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,21 +16,13 @@
|
|||||||
|
|
||||||
fvOptions.constrain(hEqn);
|
fvOptions.constrain(hEqn);
|
||||||
|
|
||||||
if (coupled)
|
hEqn.solve();
|
||||||
{
|
|
||||||
fvMatrixAssemblyPtr->addFvMatrix(hEqn);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Info<< "\nSolving for solid region "
|
|
||||||
<< solidRegions[i].name() << endl;
|
|
||||||
|
|
||||||
hEqn.solve();
|
fvOptions.correct(h);
|
||||||
fvOptions.correct(h);
|
|
||||||
thermo.correct();
|
|
||||||
|
|
||||||
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
|
||||||
<< max(thermo.T()).value() << endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
thermo.correct();
|
||||||
|
|
||||||
|
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
||||||
|
<< max(thermo.T()).value() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
phaseSystem = $(LIB_SRC)/phaseSystemModels/reactingEuler
|
|
||||||
|
|
||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(FOAM_SOLVERS)/multiphase/reactingTwoPhaseEulerFoam \
|
-I$(FOAM_SOLVERS)/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam \
|
||||||
-I${phaseSystem}/twoPhaseSystem/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/lnInclude \
|
||||||
-I${phaseSystem}/twoPhaseCompressibleTurbulenceModels/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/lnInclude \
|
||||||
-I${phaseSystem}/multiphaseSystem/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/phaseSystems/lnInclude \
|
||||||
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/interfacialModels/lnInclude \
|
||||||
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/interfacialCompositionModels/lnInclude \
|
||||||
-I./fluid \
|
-I./fluid \
|
||||||
-I./solid \
|
|
||||||
-I../solid \
|
-I../solid \
|
||||||
-I../fluid \
|
-I../fluid \
|
||||||
-I../include \
|
-I../include \
|
||||||
@ -24,17 +23,19 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
||||||
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lmeshTools \
|
|
||||||
-lsampling \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lsolidThermo \
|
-lsolidThermo \
|
||||||
|
-ltwoPhaseReactingTurbulenceModels \
|
||||||
|
-lmeshTools \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lreactingMultiphaseSystem \
|
-lsampling \
|
||||||
-lreactingTwoPhaseSystem \
|
-lreactingTwoPhaseSystem \
|
||||||
-ltwoPhaseReactingTurbulenceModels
|
-lreactingPhaseSystem
|
||||||
|
|
||||||
|
|||||||
@ -67,7 +67,6 @@ int main(int argc, char *argv[])
|
|||||||
#define CREATE_MESH createMeshesPostProcess.H
|
#define CREATE_MESH createMeshesPostProcess.H
|
||||||
#include "postProcess.H"
|
#include "postProcess.H"
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMeshes.H"
|
#include "createMeshes.H"
|
||||||
|
|||||||
@ -48,3 +48,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Info<< "Courant Number max: " << CoNum << endl;
|
Info<< "Courant Number max: " << CoNum << endl;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||||
forAll(cumulativeContErrIO, i)
|
forAll(cumulativeContErrIO, i)
|
||||||
{
|
{
|
||||||
const fvMesh& mesh = fluidRegions[i];
|
#include "setRegionFluidFields.H"
|
||||||
|
|
||||||
cumulativeContErrIO.set
|
cumulativeContErrIO.set
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
|
|||||||
@ -1,39 +0,0 @@
|
|||||||
if (finalIter)
|
|
||||||
{
|
|
||||||
mesh.data::add("finalIteration", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; ++nonOrth)
|
|
||||||
{
|
|
||||||
fvScalarMatrix hEqn
|
|
||||||
(
|
|
||||||
fvm::ddt(betav*rho, h)
|
|
||||||
- (
|
|
||||||
thermo.isotropic()
|
|
||||||
? fvm::laplacian(betav*thermo.alpha(), h, "laplacian(alpha,h)")
|
|
||||||
: fvm::laplacian(betav*taniAlpha(), h, "laplacian(alpha,h)")
|
|
||||||
)
|
|
||||||
==
|
|
||||||
fvOptions(rho, h)
|
|
||||||
);
|
|
||||||
|
|
||||||
hEqn.relax();
|
|
||||||
|
|
||||||
fvOptions.constrain(hEqn);
|
|
||||||
|
|
||||||
hEqn.solve(mesh.solver(h.select(finalIter)));
|
|
||||||
|
|
||||||
fvOptions.correct(h);
|
|
||||||
}
|
|
||||||
|
|
||||||
thermo.correct();
|
|
||||||
|
|
||||||
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
|
||||||
<< max(thermo.T()).value() << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (finalIter)
|
|
||||||
{
|
|
||||||
mesh.data::remove("finalIteration");
|
|
||||||
}
|
|
||||||
@ -27,19 +27,13 @@
|
|||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|
||||||
if (coupled)
|
EEqn.solve(mesh.solver(he.select(finalIter)));
|
||||||
{
|
|
||||||
fvMatrixAssemblyPtr->addFvMatrix(EEqn);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EEqn.solve(mesh.solver(he.select(finalIter)));
|
|
||||||
fvOptions.correct(he);
|
|
||||||
|
|
||||||
thermo.correct();
|
fvOptions.correct(he);
|
||||||
rad.correct();
|
|
||||||
|
|
||||||
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
thermo.correct();
|
||||||
<< max(thermo.T()).value() << endl;
|
rad.correct();
|
||||||
}
|
|
||||||
|
Info<< "Min/max T:" << min(thermo.T()).value() << ' '
|
||||||
|
<< max(thermo.T()).value() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
UEqn =
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,6 +10,7 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
|
||||||
|
|||||||
@ -16,8 +16,6 @@ PtrList<multivariateSurfaceInterpolationScheme<scalar>::fieldTable>
|
|||||||
fieldsFluid(fluidRegions.size());
|
fieldsFluid(fluidRegions.size());
|
||||||
PtrList<volScalarField> QdotFluid(fluidRegions.size());
|
PtrList<volScalarField> QdotFluid(fluidRegions.size());
|
||||||
|
|
||||||
PtrList<fvVectorMatrix> UEqFluid(fluidRegions.size());
|
|
||||||
|
|
||||||
List<scalar> initialMassFluid(fluidRegions.size());
|
List<scalar> initialMassFluid(fluidRegions.size());
|
||||||
List<bool> frozenFlowFluid(fluidRegions.size(), false);
|
List<bool> frozenFlowFluid(fluidRegions.size(), false);
|
||||||
|
|
||||||
@ -295,12 +293,6 @@ forAll(fluidRegions, i)
|
|||||||
new fv::options(fluidRegions[i])
|
new fv::options(fluidRegions[i])
|
||||||
);
|
);
|
||||||
|
|
||||||
UEqFluid.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new fvVectorMatrix(UFluid[i], dimForce)
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulenceFluid[i].validate();
|
turbulenceFluid[i].validate();
|
||||||
|
|
||||||
pRefCellFluid[i] = -1;
|
pRefCellFluid[i] = -1;
|
||||||
|
|||||||
@ -4,61 +4,21 @@
|
|||||||
|
|
||||||
forAll(fluidNames, i)
|
forAll(fluidNames, i)
|
||||||
{
|
{
|
||||||
if (args.dryRun() || args.found("dry-run-write"))
|
Info<< "Create fluid mesh for region " << fluidNames[i]
|
||||||
{
|
<< " for time = " << runTime.timeName() << nl << endl;
|
||||||
Info
|
|
||||||
<< "Operating in 'dry-run' mode:"
|
|
||||||
<< " case will run for 1 time step. "
|
|
||||||
<< "All checks assumed OK on a clean exit" << endl;
|
|
||||||
|
|
||||||
FieldBase::allowConstructFromLargerSize = true;
|
fluidRegions.set
|
||||||
|
(
|
||||||
// Create a simplified 1D mesh and attempt to re-create boundary
|
i,
|
||||||
// conditions
|
new fvMesh
|
||||||
fluidRegions.set
|
|
||||||
(
|
(
|
||||||
i,
|
IOobject
|
||||||
new simplifiedMeshes::columnFvMesh(runTime, fluidNames[i])
|
|
||||||
);
|
|
||||||
|
|
||||||
// Stop after 1 iteration of the simplified mesh
|
|
||||||
|
|
||||||
if (args.found("dry-run-write"))
|
|
||||||
{
|
|
||||||
// Using saWriteNow triggers function objects execute(), write()
|
|
||||||
runTime.stopAt(Time::saWriteNow);
|
|
||||||
|
|
||||||
// Make sure mesh gets output to the current time (since
|
|
||||||
// instance no longer constant)
|
|
||||||
fluidRegions[i].setInstance(runTime.timeName());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Using saNoWriteNow triggers function objects execute(),
|
|
||||||
// but not write()
|
|
||||||
runTime.stopAt(Time::saNoWriteNow);
|
|
||||||
}
|
|
||||||
|
|
||||||
functionObject::outputPrefix = "postProcessing-dry-run";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Info<< "Create fluid mesh for region " << fluidNames[i]
|
|
||||||
<< " for time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
fluidRegions.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new fvMesh
|
|
||||||
(
|
(
|
||||||
IOobject
|
fluidNames[i],
|
||||||
(
|
runTime.timeName(),
|
||||||
fluidNames[i],
|
runTime,
|
||||||
runTime.timeName(),
|
IOobject::MUST_READ
|
||||||
runTime,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
)
|
||||||
}
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||||
forAll(cumulativeContErrIO, i)
|
forAll(cumulativeContErrIO, i)
|
||||||
{
|
{
|
||||||
const fvMesh& mesh = fluidRegions[i];
|
#include "setRegionFluidFields.H"
|
||||||
|
|
||||||
cumulativeContErrIO.set
|
cumulativeContErrIO.set
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
|
|||||||
@ -12,15 +12,15 @@
|
|||||||
if (Y.size())
|
if (Y.size())
|
||||||
{
|
{
|
||||||
const word inertSpecie(thermo.get<word>("inertSpecie"));
|
const word inertSpecie(thermo.get<word>("inertSpecie"));
|
||||||
inertIndex = composition.species().find(inertSpecie);
|
if (!composition.species().found(inertSpecie))
|
||||||
if (inertIndex < 0)
|
|
||||||
{
|
{
|
||||||
FatalIOErrorIn(args.executable().c_str(), thermo)
|
FatalIOErrorIn(args.executable().c_str(), thermo)
|
||||||
<< "Inert specie " << inertSpecie
|
<< "Inert specie " << inertSpecie
|
||||||
<< " not found in available species "
|
<< " not found in available species "
|
||||||
<< flatOutput(composition.species())
|
<< composition.species()
|
||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
inertIndex = composition.species()[inertSpecie];
|
||||||
}
|
}
|
||||||
|
|
||||||
volScalarField& rho = rhoFluid[i];
|
volScalarField& rho = rhoFluid[i];
|
||||||
@ -49,8 +49,6 @@
|
|||||||
IOMRFZoneList& MRF = MRFfluid[i];
|
IOMRFZoneList& MRF = MRFfluid[i];
|
||||||
fv::options& fvOptions = fluidFvOptions[i];
|
fv::options& fvOptions = fluidFvOptions[i];
|
||||||
|
|
||||||
fvVectorMatrix& UEqn = UEqFluid[i];
|
|
||||||
|
|
||||||
const dimensionedScalar initialMass
|
const dimensionedScalar initialMass
|
||||||
(
|
(
|
||||||
"initialMass",
|
"initialMass",
|
||||||
@ -67,3 +65,4 @@
|
|||||||
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
||||||
|
|
||||||
const pressureControl& pressureControl = pressureControls[i];
|
const pressureControl& pressureControl = pressureControls[i];
|
||||||
|
|
||||||
|
|||||||
@ -18,20 +18,15 @@ else
|
|||||||
#include "YEqn.H"
|
#include "YEqn.H"
|
||||||
#include "EEqn.H"
|
#include "EEqn.H"
|
||||||
|
|
||||||
if (!coupled)
|
// --- PISO loop
|
||||||
|
for (int corr=0; corr<nCorr; corr++)
|
||||||
{
|
{
|
||||||
Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl;
|
#include "pEqn.H"
|
||||||
|
|
||||||
// --- PISO loop
|
|
||||||
for (int corr=0; corr<nCorr; corr++)
|
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
turbulence.correct();
|
|
||||||
|
|
||||||
rho = thermo.rho();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
turbulence.correct();
|
||||||
|
|
||||||
|
rho = thermo.rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user