Compare commits

..

30 Commits

Author SHA1 Message Date
50a84600b0 BUG: noise did not set num of output fields (VTK legacy) [fixes #2133] 2021-06-25 09:39:11 +02:00
dab93d316e BUG: liquidProperties - corrected read scalar (was label). See #2142 2021-06-25 09:34:51 +02:00
e1a746cc96 BUG: incorrect returned size from surfaceWriter 2021-01-13 18:55:16 +01:00
24c335e1a2 BUG: meshToMesh - corrected mapping of internal field for tgt->src mapping. Fixes #1935 2020-11-25 12:55:48 +01:00
456c77ce8c BUG: typo in solidProperties prevents re-reading of "Hf" (fixes #1927) 2020-11-18 19:41:46 +01:00
00d503498f BUG: extraneous brackets after Fluent cell types (fixes #1872)
ENH: limit output to 25 cell types per line for readability

- makes it easier to trace potential format errors etc

STYLE: downgrade warning about polyhedrals to a simple info message

- can assume that polyhedral support is widespread enough to not
  warrant a warning.
2020-10-29 11:26:47 +01:00
810e4a11e1 BUG: parallel foamToEnsight fails depending on lagrangian order (fixes #1873)
- the problem arises when output fields are missing on some
  processors.

  When the information is combined, the resulting HashTables can have
  different insertion orders. This poses an issue when there are hash
  key collisions and thus different chaining.

- Use sorted order.
2020-10-08 19:02:06 +02:00
7d04ef7031 BUG: gradingDescriptor stream input ignores negative expansion (Fix #1841)
- mostly only tripped when using fractional edge grading, since this
  is where the list reading is used. Overseen in commit 7da0b5bee1.
2020-09-16 09:36:03 +02:00
f18bd2720b BUG: directory information spoils "wmake -show-cxx" (fixes #1799)
- the various information queries MUST be executed with
  the '--no-print-directory' or risk polluting values
  in the information queries.

  This is mostly seen with the 'canCompile' test for tutorials running
  in parallel.

ENH: add wmake '-show-path-c', '-show-path-cxx' as per 1912 and later
2020-08-06 18:05:44 +02:00
bea1ef8b50 CONFIG: increment patch level 2020-07-27 11:31:00 +02:00
803225fa69 BUG: potential memory leaks in HashPtrTable::set (#1787)
- backported fix from develop
2020-07-27 11:30:22 +02:00
6a54971fef CONFIG: increment patch level 2020-06-04 21:58:55 +02:00
6c5cec5584 BUG: missing compilation for some vtk conversion components (fixes #1720) 2020-06-04 21:55:20 +02:00
df01ada37c COMP: erroneous return from void method (fixes #1716) 2020-05-26 10:41:16 +02:00
07424942fb BUG: incorrect startLineNumber for primitiveEntry (fixes #1706) 2020-05-14 17:27:00 +02:00
859b4d6286 BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:24:30 +02:00
00a9eeeb11 COMP: adjust for CGAL-4.14 changes 2020-05-11 16:26:29 +02:00
e000a3cdc5 CONFIG: additional packaging helpers, tutorial test helper
- bin/tools/create-mpi-config to query/write values for system openmpi.
  In some cases this can be used to avoid an mpicc requirement at runtime.

- adjust openfoam session to latest version,
  including -test-tutorial forwarding.

- adjust foamConfigurePaths to latest version

- removal of gperftools default config, as per develop
2020-04-20 20:21:15 +02:00
3c596fe9bd BUG: bad internal coeff for finiteArea zeroGradient BC (closes #1637)
- inadvertently set to zero instead of one (in commit 1d85fecf4d)
2020-04-16 10:09:55 +02:00
169e482066 BUG: missing output for foamDictionary -includes (closes #1635)
- log to stdout when explicitly enabled
2020-03-16 17:35:58 +01:00
0c68f1be4b CONFIG: bump patch level 2020-03-12 11:39:28 +01:00
ff16d27f63 BUG: incorrect EnSight lagrangian fields in parallel (fixes #1629) 2020-03-12 11:12:34 +01:00
54f23b9577 ENH: add gradientEnergy write() method, including bugfix #1617 2020-03-10 19:19:31 +01:00
4dd1433133 CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in
  what it changes. This was particularly evident when using it to
  change gcc/clang versions.

  Restructured the corresponding compiler settings to define default
  versions (eg, "default_gcc_version") that limits the scope of
  changes performed by foamConfigurePaths and makes it easier to
  understand if changing manually.
2020-02-03 11:08:54 +01:00
c1cbfe5780 CONFIG: bump patch level 2020-01-31 12:10:51 +01:00
be420e7a71 COMP: avoid -Wstringop-truncation warning
- the gcc c++/9 includes now inline strncpy, which obliterates
  the previous method of suppressing the warning.
  Now simply allocate additional space for the nul character.

COMP: silence some icc warnings
2020-01-31 12:08:31 +01:00
c278b93d7a COMP: backport of updates for gcc-92 compilation
STYLE: add typedefs for interpolation tables
2020-01-28 12:46:27 +01:00
fce7948915 BUG: incorrect Nastran surface output and segmentation faults #1571
- indexing error in the output of values resulted in uniform output in
  most cases.

- allocation error for on-the-fly triangulation

ENH: changed decomposed storage from DynamicList to plain faceList for
clearer allocation control and better overhead
2020-01-28 15:43:53 +01:00
e91dbcf834 COMP: silence gcc 8.2 memcpy warnings
- we know they have already protected by an is_contiguous check,
  so the class-memaccess warning/error can be suppressed.
2020-01-28 15:43:52 +01:00
00552eff17 CONFIG: adjust known gcc/clang compiler versions 2020-01-28 15:22:01 +01:00
16826 changed files with 525992 additions and 588014 deletions

31
.gitignore vendored
View File

@ -12,7 +12,7 @@
# File-browser settings - anywhere
.directory
# Backup/recovery versions - anywhere
# CVS recovered versions - anywhere
.#*
# Objects and archives - anywhere
@ -23,7 +23,7 @@
# Derived files
lex.yy.c
# Core dumps
# Corefiles
core
# Dependency files - anywhere
@ -47,21 +47,22 @@ platforms/
# Reinstate wmake rules that might look like build directories
!/wmake/rules/*/
# Doxygen generated
# doxygen generated documentation
doc/Doxygen/html
doc/Doxygen/latex
doc/Doxygen/man
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
/doc/*.html
# Untracked configuration/preferences files
# Untracked configuration files
/etc/prefs.csh
/etc/prefs.sh
/etc/config.csh/prefs.*
/etc/config.sh/prefs.*
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
/wmake/rules/General/mplibUSER*
# Source packages - anywhere
@ -72,11 +73,19 @@ doc/Doxygen/DTAGS
*.tgz
*.gtgz
# Ignore tags or project files in the main directory
/.cproject
/.dir-locals.el
/.project
# Ignore the persistent .build tag in the main directory
/.build
# Ignore .timeStamp in the main directory
/.timeStamp
# Ignore .tags in the main directory
/.tags
# Ignore project files in the main directory
/.cproject
/.project
/.dir-locals.el
# Ignore the test directory
/tutorialsTest

View File

@ -3,7 +3,7 @@
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
You can see how your report will be rendered on the platform by using the
"preview" tab above
-->

16
.gitmodules vendored
View File

@ -4,16 +4,6 @@
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "adios"]
path = modules/adios
url = https://develop.openfoam.com/Community/adiosfoam.git
[submodule "OpenQBMM"]
path = modules/OpenQBMM
url = https://github.com/OpenQBMM/OpenQBMM.git
branch = openfoam.com
[submodule "visualization"]
path = modules/visualization
url = https://develop.openfoam.com/modules/visualization.git
[submodule "external-solver"]
path = modules/external-solver
url = https://develop.openfoam.com/Modules/external-solver.git
[submodule "catalyst"]
path = modules/catalyst
url = https://develop.openfoam.com/Community/catalyst.git

View File

@ -1,39 +1,27 @@
#!/bin/sh
# Run from OPENFOAM top-level directory only
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error";
else
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
fi
}
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------
# Preamble. Report tools or at least the mpirun location
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
else
echo "mpirun=$(command -v mpirun || true)"
fi
echo
# Report compiler information
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
if [ -x "$compiler" ]
then
echo "compiler=$compiler"
"$compiler" --version 2>/dev/null | sed -ne '1p'
else
echo "compiler=unknown"
fi
# Preamble. Report compiler version
case "$WM_COMPILER" in
Gcc*) gcc --version 2>/dev/null | sed -ne '1p' ;;
Clang*) clang --version 2>/dev/null | sed -ne '1p' ;;
esac
# Preamble. Report mpirun location
command -v mpirun 2>/dev/null || true
echo
echo "========================================"
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
@ -73,13 +61,11 @@ echo
applications/Allwmake $targetType $*
# Additional components/modules
if [ "$FOAM_MODULE_PREFIX" = false ] || [ "$FOAM_MODULE_PREFIX" = none ]
if [ -d "$WM_PROJECT_DIR/modules" ]
then
echo "========================================"
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
echo "Compile OpenFOAM modules"
echo
elif [ -d "$WM_PROJECT_DIR/modules" ]
then
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
fi

View File

@ -1,56 +0,0 @@
# Contributors to OpenFOAM
The following is an list of known contributors to OpenFOAM.
It is likely incomplete...
## Contributors (alphabetical by surname)
- 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
- Mattijs Janssens
- Andrew Jackson
- Hrvoje Jasak
- Alexander Kabat vel Job
- Thilo Knacke
- 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
- Thorsten Zirwes
<!----------------------------------------------------------------------------->

View File

@ -5,6 +5,5 @@ build-info
time-stamp
# Do not track any manifest files
*[Mm]anifest.txt
####
Manifest.txt
manifest.txt

View File

@ -1,63 +1,62 @@
## META-INFO
# META-INFO
Meta-information is generally for OpenFOAM internal use only.
Meta-information is for OpenFOAM internal use only.
Do not rely on any files or any file contents in this directory,
or even the existence of this directory.
The format, content and meaning may be changed at anytime without
notice. If any of these are changed, these are some of places that
will need to be updated accordingly:
notice.
- bin/foamEtcFile
- bin/tools/foamConfigurePaths
- bin/tools/foamPackRelease
- etc/openfoam
- wmake/scripts/wmake-build-info
The information is provided here for internal documentation purposes.
### api-info
## api-info
This file and its contents are to be tracked by git.
- File content (api) generated by `wmake -build-info` from the
`OPENFOAM` define in `wmake/rules/General/general`
- File content (api) generated by wmakeBuildInfo from OPENFOAM define
in `wmake/rules/General/general`
- 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
shipped source archives.
This file is *never* to be tracked by git, but may be present in shipped
source archives.
- File content (branch, build) generated by `wmake -build-info` from
git information and cached from previous wmake (api)
- File content (branch, build) generated by wmakeBuildInfo from git
information and cached from previous wmake (api)
### Content types
## Content types
#### api
Format: `date +%y%m`
### api
- 4-digit year-month (YYMM) integer corresponding to the major
release or in unusual cases an intermediate release.
Example, `1712` for the Dec-2017 release.
- Format is year-month, as per `date +%y%m`.
Eg, `1712` for the Dec-2017 release.
#### patch
Format: `date +%y%m%d`
### patch
- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level
for the given **released** API.
- The first release can have a patch value of `0` or `1` which
indicates that it is unpatched or just released. Alternatively
it can have a patch value corresponding to the release date.
- Format is year-month-day, as per `date +%y%m%d`.
- The first release can have a patch value of `0` (unpatched = just
released) or a patch value corresponding to the release date.
The patch value is only meaningful together with the api value.
However, for *development* branches, the patch level should not be
ascribed too much meaning, but will often correspond to the last
merge with a *maintenance* (*eg*, `master`) branch.
ascribed much meaning -- it can be `0` or have a value corresponding
to the last merge with a *maintenance* (*eg*, `master`) branch.
### Flow of information
## Flow of information
Changes in the build information must be reflected in information
available in the final binaries. Conversely, it is necessary for later
@ -71,16 +70,16 @@ distributions to have a record of the same information.
| build | git | build-info |
The command `wmake -build-info -check` is used to determine if
The command `wmakeBuildInfo -check` is used to determine if
the saved information needs synchronization. The command
`wmake -build-info -update` performs the synchronization.
`wmakeBuildInfo -update` preforms the synchronitzation.
### Notes
## Notes
The saved information is split into two separate files. The `api-info`
contains more permanent information, whereas the `build-info` is more
transient in nature.
----
2020-06-23
2019-01-23

View File

@ -1,2 +1,2 @@
api=2012
patch=220610
api=1906
patch=200727

View File

@ -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/).
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.
@ -11,40 +11,28 @@ individual and group contributors, integrations
[governance guided activities](https://www.openfoam.com/governance/).
## Copyright
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version. See the file COPYING in this directory or
[http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a
description of the GNU General Public License terms under which you
may redistribute files.
# Copyright
OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the file COPYING in this directory or [http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a description of the GNU General Public License terms under which you can copy the files.
## OpenFOAM Trademark
# OpenFOAM Trademark
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a licence basis. ESI Group and OpenFOAM Foundation Ltd are currently permitted to use the Name and agreed Domain Name. For information on trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
permitted to use the Name and agreed Domain Name. For information on
trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the OpenFOAM trademark.
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
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 continuously monitored, and will be duly prosecuted.
## Using OpenFOAM
# Using OpenFOAM
If OpenFOAM has already been compiled on your system, simply source
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
For example, for the OpenFOAM-v1912 version:
For example, for the OpenFOAM-v1906 version:
```
source /installation/path/OpenFOAM-v1912/etc/bashrc
source /installation/path/OpenFOAM-v1906/etc/bashrc
```
## Compiling OpenFOAM
# Compiling OpenFOAM
If you are compiling OpenFOAM from source, please see the relevant
guides:
@ -55,7 +43,7 @@ guides:
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
## How do I know which version I am currently using?
# How do I know which version I am currently using?
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
not guaranteed to have any correspondence to the OpenFOAM release
@ -63,7 +51,7 @@ not guaranteed to have any correspondence to the OpenFOAM release
information is embedded into each application. For example, as
displayed from `blockMesh -help`:
```
Using: OpenFOAM-v1812.local (1812) - visit www.openfoam.com
Using: OpenFOAM-v1812.local (1812) (see www.OpenFOAM.com)
Build: 65d6551ff7-20190530 (patch=190531)
Arch: LSB;label=32;scalar=64
```
@ -85,10 +73,10 @@ As can be seen in this example, the git build information is
supplemented by the date when the last change was authored, which can
be helpful when the repository contains local changes. If you simply
wish to know the current API and patch levels directly, the
`wmake -build-info` provides the relevant information even
`wmakeBuildInfo` script provides the relevant information even
when OpenFOAM has not yet been compiled:
```
$ wmake -build-info
$ wmakeBuildInfo
make
api = 1812
patch = 190531
@ -110,7 +98,7 @@ patching changes made within the currently active environment and
should be used with caution.
## ThirdParty directory
# ThirdParty directory
OpenFOAM normally ships with a directory of 3rd-party software and
build scripts for some 3rd-party software that is either necessary or
@ -121,8 +109,8 @@ These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v1912
\-- ThirdParty-v1912
|-- OpenFOAM-v1906
\-- ThirdParty-v1906
```
There are, however, many cases where this simple convention is inadequate:
@ -130,7 +118,7 @@ There are, however, many cases where this simple convention is inadequate:
operating system or cluster installation provides it)
* When we have changed the OpenFOAM directory name to some arbitrary
directory name, e.g. openfoam-sandbox1912, etc..
directory name, e.g. openfoam-sandbox1906, etc..
* When we would like any additional 3rd party software to be located
inside of the OpenFOAM directory to ensure that the installation is
@ -142,38 +130,35 @@ There are, however, many cases where this simple convention is inadequate:
developing various different features but wish to use or reuse the
same 3rd party software for them all.
The solution for these problems is a newer, more intelligent discovery
when locating the ThirdParty directory with the following precedence:
The solution for these problems is a newer, more intelligent discovery when locating the ThirdParty directory with the following precedence:
1. PROJECT/ThirdParty
* for single-directory installations
2. PREFIX/ThirdParty-VERSION
* this corresponds to the traditional approach
3. PREFIX/ThirdParty-vAPI
* allows for an updated value of VERSION, *eg*, `v1912-myCustom`,
* allows for an updated value of VERSION, *eg*, `v1906-myCustom`,
without requiring a renamed ThirdParty. The API value would still
be `1912` and the original `ThirdParty-v1912/` would be found.
be `1906` and the original `ThirdParty-v1906/` would be found.
4. PREFIX/ThirdParty-API
* 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`
`1906-patch190131`, `1906.19W03`
5. PREFIX/ThirdParty-common
* permits maximum reuse for various versions, for experienced user
who are aware of potential version incompatibilities
* permits maximum reuse for various versions, but only for
experienced user who are aware of potential version
incompatibilities
If none of these directories are found to be suitable, it reverts to
using PROJECT/ThirdParty as a dummy location (even if the directory
does not exist). This is a safe fallback value since it is within the
OpenFOAM directory structure and can be trusted to have no negative
side-effects. In the above, the following notation has been used:
If none of these directories are found to be suitable, it reverts to using PROJECT/ThirdParty as a dummy location (even if the directory does not exist). This is a safe fallback value since it is within the OpenFOAM directory structure and can be trusted to have no negative side-effects.
In the above, the following notation has been used:
| name | value | meaning |
|---------------|---------------|---------------|
| PROJECT | `$WM_PROJECT_DIR` | The OpenFOAM directory |
| PREFIX | `dirname $WM_PROJECT_DIR` | The OpenFOAM parent directory |
| API | `foamEtcFiles -show-api` | The api or release version |
| VERSION | `$WM_PROJECT_VERSION` | The version we have chosen |
| VERSION | `$WM_PROJECT_VERSION` | The version we've chosen |
To reduce the potential of false positive matches (perhaps some other
software also uses ThirdParty-xxx for its naming), the directory test
@ -197,14 +182,11 @@ ThirdParty directory will contain either an `Allwmake` file or a
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
## Useful Links
- Download [source](https://dl.openfoam.com/source/) and [download and installation instructions](http://www.openfoam.com/download/)
# Useful Links
- [Download and installation instructions](http://www.openfoam.com/download/)
- [Documentation](http://www.openfoam.com/documentation)
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
- [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/)
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
- [OpenFOAM Community](http://www.openfoam.com/community/)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016-2020 OpenCFD Ltd
Copyright 2016-2019 OpenCFD Ltd

View File

@ -1,26 +1,21 @@
#!/bin/sh
# Run from OPENFOAM applications/ directory only
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
echo " Check your OpenFOAM environment and installation"
exit 1
}
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error";
else
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
fi
}
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------
wmake -all $targetType solvers
wmake -all $targetType utilities
# Optional
## wmake -all $targetType tools
#------------------------------------------------------------------------------

View File

@ -1,7 +1,8 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. $WM_PROJECT_DIR/wmake/scripts/have_fftw
#------------------------------------------------------------------------------
if have_fftw

View File

@ -19,3 +19,4 @@
Kmesh K(mesh);
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);

View File

@ -1,3 +0,0 @@
acousticFoam.C
EXE = $(FOAM_APPBIN)/acousticFoam

View File

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

View File

@ -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;
}
// ************************************************************************* //

View File

@ -1,15 +0,0 @@
Info << "\nReading pa" << endl;
volScalarField pa
(
IOobject
(
"pa",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);

View File

@ -1,8 +0,0 @@
fvSolution solutionDict(runTime);
const dictionary& pimpleDict = solutionDict.subDict("PIMPLE");
bool solvePrimaryRegion
(
pimpleDict.getOrDefault("solvePrimaryRegion", true)
);

View File

@ -1,15 +0,0 @@
fvScalarMatrix paEqn
(
fvm::d2dt2(pa) - sqr(c0)*fvc::laplacian(pa)
);
if (solvePrimaryRegion)
{
paEqn.relax();
paEqn.solve();
}
else
{
pa.correctBoundaryConditions();
}

View File

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

View File

@ -14,36 +14,23 @@ volScalarField T
);
Info<< "Reading diffusivity DT\n" << endl;
Info<< "Reading transportProperties\n" << endl;
volScalarField DT
IOdictionary transportProperties
(
IOobject
(
"DT",
runTime.timeName(),
"transportProperties",
runTime.constant(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar(dimViscosity, Zero)
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
if (!DT.headerOk())
{
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
DT = dimensionedScalar("DT", dimViscosity, transportProperties);
}
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT("DT", dimViscosity, transportProperties);
#include "createFvOptions.H"

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,8 +66,6 @@ int main(int argc, char *argv[])
"Laplace equation solver for a scalar quantity."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"

View File

@ -41,18 +41,6 @@
gradT.component(vector::Z)
);
volVectorField DTgradT
(
IOobject
(
"flux",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
DT*gradT
);
runTime.write();
}

View File

@ -5,5 +5,5 @@ const dictionary& potentialFlow
const int nNonOrthCorr
(
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
// converting fixed-value BCs to zero-gradient and vice versa.
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
const word pName = args.opt<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes

View File

@ -5,5 +5,5 @@ const dictionary& potentialFlow
const int nNonOrthCorr
(
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
// converting fixed-value BCs to zero-gradient and vice versa.
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
const word pName = args.opt<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes

View File

@ -84,7 +84,6 @@ Description
\heading Options
\plaintable
-writep | write the Euler pressure
-writephi | Write the final volumetric flux
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
@ -116,12 +115,6 @@ int main(int argc, char *argv[])
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writephi",
"Write the final volumetric flux field"
);
argList::addBoolOption
(
"writePhi",
@ -193,16 +186,11 @@ int main(int argc, char *argv[])
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
// Write U
// Write U and phi
U.write();
phi.write();
// Optionally write the volumetric flux, phi
if (args.found("writephi"))
{
phi.write();
}
// Optionally write velocity potential, Phi
// Optionally write Phi
if (args.found("writePhi"))
{
Phi.write();

View File

@ -35,7 +35,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic expression. Both approaches are
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -66,7 +66,7 @@ Description
CR | Drag tensor (1/m)
CT | Turbulence generation parameter (1/m)
Nv | Number of obstacles in cell per unit volume (m^-2)
nsv | Tensor whose diagonal indicates the number to subtract from
nsv | Tensor whose diagonal indicates the number to substract from
| Nv to get the number of obstacles crossing the flow in each
| direction.
\endplaintable

View File

@ -32,7 +32,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic expression. Both approaches are
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,14 +31,14 @@ License
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
(
const dictionary& dict,
const dictionary& PDRProperties,
const compressible::RASModel& turbulence,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi
)
{
const word modelType(dict.get<word>("PDRDragModel"));
const word modelType(PDRProperties.get<word>("PDRDragModel"));
Info<< "Selecting drag model " << modelType << endl;
@ -47,17 +46,16 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
if (!cstrIter.found())
{
FatalIOErrorInLookup
(
dict,
"PDRDragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
FatalErrorInFunction
<< "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}
return autoPtr<PDRDragModel>
(cstrIter()(dict, turbulence, rho, U, phi));
(cstrIter()(PDRProperties, turbulence, rho, U, phi));
}

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019-2020 OpenCFD Ltd.
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -72,7 +72,7 @@ PDRkEpsilon::PDRkEpsilon
C4_
(
dimensioned<scalar>::getOrAddToDict
dimensioned<scalar>::lookupOrAddToDict
(
"C4",
coeffDict_,

View File

@ -31,7 +31,7 @@ Description
corresponding to PDR basic drag model (\link basic.H \endlink)
The default model coefficients correspond to the following:
\verbatim
@verbatim
PDRkEpsilonCoeffs
{
Cmu 0.09;
@ -43,7 +43,7 @@ Description
sigmaEps 1.3;
Prt 1.0; // only for compressible
}
\endverbatim
@endverbatim
The turbulence source term \f$ G_{R} \f$ appears in the
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to

View File

@ -29,7 +29,7 @@ Class
Description
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
with a linear correction function to give a plausible profile for XiEq.
See \link SCOPELaminarFlameSpeed.H \endlink for details on the SCOPE
See @link SCOPELaminarFlameSpeed.H @endlink for details on the SCOPE
laminar flame speed model.
SourceFiles

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,13 +31,13 @@ License
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
(
const dictionary& dict,
const dictionary& propDict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(dict.get<word>("XiEqModel"));
const word modelType(propDict.get<word>("XiEqModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -46,16 +45,15 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
if (!cstrIter.found())
{
FatalIOErrorInLookup
(
dict,
"XiEqModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
FatalErrorInFunction
<< "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}
return autoPtr<XiEqModel>(cstrIter()(dict, thermo, turbulence, Su));
return autoPtr<XiEqModel>(cstrIter()(propDict, thermo, turbulence, Su));
}

View File

@ -29,7 +29,7 @@ Class
Description
This is the equilibrium level of the flame wrinkling generated by
instability. It is a constant (default 2.5). It is used in
\link XiModel.H \endlink.
@link XiModel.H @endlink.
SourceFiles
instability.C

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,13 +31,13 @@ License
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
(
const dictionary& dict,
const dictionary& propDict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(dict.get<word>("XiGModel"));
const word modelType(propDict.get<word>("XiGModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -46,16 +45,15 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
if (!cstrIter.found())
{
FatalIOErrorInLookup
(
dict,
"XiGModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
FatalErrorInFunction
<< "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}
return autoPtr<XiGModel>(cstrIter()(dict, thermo, turbulence, Su));
return autoPtr<XiGModel>(cstrIter()(propDict, thermo, turbulence, Su));
}

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,7 +31,7 @@ License
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
(
const dictionary& dict,
const dictionary& propDict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su,
@ -41,7 +40,7 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
const surfaceScalarField& phi
)
{
const word modelType(dict.get<word>("XiModel"));
const word modelType(propDict.get<word>("XiModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -49,17 +48,16 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
if (!cstrIter.found())
{
FatalIOErrorInLookup
(
dict,
"XiModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
FatalErrorInFunction
<< "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}
return autoPtr<XiModel>
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
}

View File

@ -28,7 +28,7 @@ Global
Description
Reset the timestep to maintain a constant maximum courant Number.
Reduction of time-step is immediate but increase is damped to avoid
Reduction of time-step is imediate but increase is damped to avoid
unstable oscillations.
\*---------------------------------------------------------------------------*/

View File

@ -36,7 +36,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic expression. Both approaches are
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.

View File

@ -2,10 +2,10 @@
bool correctPhi
(
pimple.dict().getOrDefault("correctPhi", true)
pimple.dict().lookupOrDefault("correctPhi", true)
);
bool checkMeshCourantNo
(
pimple.dict().getOrDefault("checkMeshCourantNo", false)
pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
);

View File

@ -1,6 +1,6 @@
#include "readTimeControls.H"
correctPhi = pimple.dict().getOrDefault("correctPhi", true);
correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
checkMeshCourantNo =
pimple.dict().getOrDefault("checkMeshCourantNo", false);
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,7 +31,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic expression. Both approaches are
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -145,7 +144,9 @@ int main(int argc, char *argv[])
runTime.write();
runTime.printExecutionTime(Info);
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;

View File

@ -35,7 +35,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic expression. Both approaches are
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.

View File

@ -93,8 +93,8 @@ int main(int argc, char *argv[])
runTime.printExecutionTime(Info);
}
Info<< "Number of steps = " << runTime.timeIndex() << nl;
Info<< "End\n" << endl;
Info << "Number of steps = " << runTime.timeIndex() << endl;
Info << "End" << nl << endl;
return 0;
}

View File

@ -37,7 +37,11 @@
{
forAll(Y, i)
{
fractions.readIfPresent(Y[i].name(), X0[i]);
const word& name = Y[i].name();
if (fractions.found(name))
{
X0[i] = fractions.get<scalar>(name);
}
}
scalar mw = 0.0;
@ -57,7 +61,11 @@
{
forAll(Y, i)
{
fractions.readIfPresent(Y[i].name(), Y0[i]);
const word& name = Y[i].name();
if (fractions.found(name))
{
Y0[i] = fractions.get<scalar>(name);
}
}
scalar invW = 0.0;

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I../XiFoam/XiEngineFoam \
-I../XiFoam \
-I../../compressible/rhoPimpleFoam \

View File

@ -12,12 +12,12 @@ IOdictionary additionalControlsDict
bool solvePrimaryRegion
(
additionalControlsDict.getOrDefault("solvePrimaryRegion", true)
additionalControlsDict.lookupOrDefault("solvePrimaryRegion", true)
);
bool solvePyrolysisRegion
(
additionalControlsDict.getOrDefault("solvePyrolysisRegion", true)
additionalControlsDict.lookupOrDefault("solvePyrolysisRegion", true)
);
scalar maxDi = pyrolysis.maxDiff();

View File

@ -130,7 +130,7 @@ int main(int argc, char *argv[])
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
Info<< "End" << endl;
return 0;
}

View File

@ -1,4 +1,4 @@
if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
if (pimple.dict().lookupOrDefault("hydrostaticInitialization", false))
{
volScalarField& ph_rgh = regIOobject::store
(
@ -24,7 +24,7 @@ if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
label nCorr
(
pimple.dict().getOrDefault<label>("nHydrostaticCorrectors", 5)
pimple.dict().lookupOrDefault<label>("nHydrostaticCorrectors", 5)
);
for (label i=0; i<nCorr; i++)

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2013-2016 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -35,27 +34,27 @@ License
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
// Maximum time scale
scalar maxDeltaT(pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT));
scalar maxDeltaT(pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT));
// Smoothing parameter (0-1) when smoothing iterations > 0
scalar rDeltaTSmoothingCoeff
(
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
);
// Damping coefficient (1-0)
scalar rDeltaTDampingCoeff
(
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
);
// Maximum change in cell temperature per iteration
// (relative to previous value)
scalar alphaTemp(pimpleDict.getOrDefault<scalar>("alphaTemp", 0.05));
scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
// Maximum change in cell concentration per iteration
// (relative to reference value)
scalar alphaY(pimpleDict.getOrDefault<scalar>("alphaY", 1.0));
scalar alphaY(pimpleDict.lookupOrDefault("alphaY", 1.0));
Info<< "Time scales min/max:" << endl;

View File

@ -1,6 +1,5 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
#------------------------------------------------------------------------------
cd ${0%/*} || exit 1 # Run from this directory
wclean libso BCs
wclean

View File

@ -1,12 +1,7 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
(
wmake $targetType BCs \
&& wmake $targetType \
&& wmake $targetType rhoCentralDyMFoam \
)
(wmake $targetType BCs && wmake $targetType && wmake $targetType rhoCentralDyMFoam)
#------------------------------------------------------------------------------

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -83,13 +82,13 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
)
:
mixedFvPatchScalarField(p, iF),
UName_(dict.getOrDefault<word>("U", "U")),
rhoName_(dict.getOrDefault<word>("rho", "rho")),
psiName_(dict.getOrDefault<word>("psi", "thermo:psi")),
muName_(dict.getOrDefault<word>("mu", "thermo:mu")),
UName_(dict.lookupOrDefault<word>("U", "U")),
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")),
muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")),
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
Twall_("Twall", dict, p.size()),
gamma_(dict.getOrDefault<scalar>("gamma", 1.4))
gamma_(dict.lookupOrDefault<scalar>("gamma", 1.4))
{
if
(

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -83,15 +82,15 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
)
:
partialSlipFvPatchVectorField(p, iF),
TName_(dict.getOrDefault<word>("T", "T")),
rhoName_(dict.getOrDefault<word>("rho", "rho")),
psiName_(dict.getOrDefault<word>("psi", "thermo:psi")),
muName_(dict.getOrDefault<word>("mu", "thermo:mu")),
tauMCName_(dict.getOrDefault<word>("tauMC", "tauMC")),
TName_(dict.lookupOrDefault<word>("T", "T")),
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")),
muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")),
tauMCName_(dict.lookupOrDefault<word>("tauMC", "tauMC")),
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
Uwall_("Uwall", dict, p.size()),
thermalCreep_(dict.getOrDefault("thermalCreep", true)),
curvature_(dict.getOrDefault("curvature", true))
thermalCreep_(dict.lookupOrDefault("thermalCreep", true)),
curvature_(dict.lookupOrDefault("curvature", true))
{
if
(

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,8 +66,8 @@ Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField
)
:
fixedValueFvPatchScalarField(p, iF, dict),
pName_(dict.getOrDefault<word>("p", "p")),
psiName_(dict.getOrDefault<word>("psi", "thermo:psi"))
pName_(dict.lookupOrDefault<word>("p", "p")),
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi"))
{}

View File

@ -3,7 +3,7 @@
scalar rDeltaTSmoothingCoeff
(
runTime.controlDict().getOrDefault<scalar>
runTime.controlDict().lookupOrDefault<scalar>
(
"rDeltaTSmoothingCoeff",
0.02

View File

@ -17,7 +17,7 @@
const dictionary& eosDict = thermoDict.subDict("equationOfState");
bool local = eosDict.getOrDefault("local", false);
bool local = eosDict.lookupOrDefault("local", false);
// Evolve T as:
//
@ -47,3 +47,4 @@
rho.writeMinMax(Info);
}

View File

@ -41,7 +41,8 @@ Description
airframe noise, VKI LS 2013-03.
\endverbatim
Contact: info@upstream-cfd.com
Contact: info@cfd-berlin.com
\*---------------------------------------------------------------------------*/

View File

@ -1,4 +1,4 @@
bool ddtCorr
(
pimple.dict().getOrDefault("ddtCorr", true)
pimple.dict().lookupOrDefault("ddtCorr", true)
);

View File

@ -1,9 +1,9 @@
#include "readTimeControls.H"
correctPhi = pimple.dict().getOrDefault("correctPhi", false);
correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
checkMeshCourantNo =
pimple.dict().getOrDefault("checkMeshCourantNo", false);
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
ddtCorr = pimple.dict().getOrDefault("ddtCorr", true);
ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,10 +36,6 @@ Description
Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
pseudo-transient simulations.
Note
The motion frequency of this solver can be influenced by the presence
of "updateControl" and "updateInterval" in the dynamicMeshDict.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
@ -136,7 +131,7 @@ int main(int argc, char *argv[])
}
// Do any mesh changes
mesh.controlledUpdate();
mesh.update();
if (mesh.changing())
{

View File

@ -5,22 +5,22 @@
scalar maxCo
(
pimpleDict.getOrDefault<scalar>("maxCo", 0.8)
pimpleDict.lookupOrDefault<scalar>("maxCo", 0.8)
);
scalar rDeltaTSmoothingCoeff
(
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.02)
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.02)
);
scalar rDeltaTDampingCoeff
(
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
);
scalar maxDeltaT
(
pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT)
pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT)
);
volScalarField rDeltaT0("rDeltaT0", rDeltaT);

View File

@ -1,6 +1 @@
const volScalarField& psi = thermo.psi();
bool adjustFringe
(
simple.dict().getOrDefault("oversetAdjustPhi", false)
);

View File

@ -80,3 +80,7 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho);
#include "createInterpolatedCells.H"
bool adjustFringe
(
simple.dict().lookupOrDefault("oversetAdjustPhi", false)
);

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I.. \
-I$(LIB_SRC)/finiteVolume/cfdTools \
-I$(LIB_SRC)/finiteVolume/lnInclude \

View File

@ -1,3 +1,3 @@
const dictionary& Bpiso = mesh.solutionDict().subDict("BPISO");
const int nBcorr = Bpiso.getOrDefault<int>("nCorrectors", 1);
const int nBcorr = Bpiso.lookupOrDefault<int>("nCorrectors", 1);

View File

@ -63,3 +63,4 @@ edgeScalarField phis
),
linearEdgeInterpolate(Us) & aMesh.Le()
);

View File

@ -57,3 +57,4 @@ edgeScalarField phis
),
linearEdgeInterpolate(Us) & aMesh.Le()
);

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I../buoyantBoussinesqSimpleFoam \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \

View File

@ -1,3 +1,4 @@
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
bool compressible = (compressibility.value() > SMALL);

View File

@ -1,9 +1,9 @@
#include "readTimeControls.H"
correctPhi = pimple.dict().getOrDefault("correctPhi", false);
correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
checkMeshCourantNo =
pimple.dict().getOrDefault("checkMeshCourantNo", false);
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
ddtCorr = pimple.dict().getOrDefault("ddtCorr", true);
ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);

View File

@ -1,3 +1,4 @@
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
bool compressible = (compressibility.value() > SMALL);

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I./fluid \
-I./solid \
-I./porousFluid \

View File

@ -1,3 +1,4 @@
chtMultiRegionSimpleFoam.C
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam

View File

@ -1,7 +1,8 @@
EXE_INC = \
-I. \
-I.. \
-I./fluid \
-I./solid \
-Ifluid \
-Isolid \
-I../solid \
-I$(LIB_SRC)/finiteVolume/cfdTools \
-I$(LIB_SRC)/finiteVolume/lnInclude \
@ -14,9 +15,7 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
-lfiniteVolume \
@ -30,8 +29,4 @@ EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lradiationModels \
-lfvOptions \
-lfaOptions \
-lregionModels \
-lsampling \
-lregionFaModels
-lregionModels

View File

@ -1,7 +1,7 @@
const dictionary& simple = fluidRegions[i].solutionDict().subDict("SIMPLE");
const int nNonOrthCorr =
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
const bool momentumPredictor =
simple.getOrDefault("momentumPredictor", true);
simple.lookupOrDefault("momentumPredictor", true);

View File

@ -1,4 +1,4 @@
const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
const int nNonOrthCorr =
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);

View File

@ -1,11 +1,12 @@
phaseSystem = $(LIB_SRC)/phaseSystemModels/reactingEuler
EXE_INC = \
-I. \
-I.. \
-I$(FOAM_SOLVERS)/multiphase/reactingTwoPhaseEulerFoam \
-I${phaseSystem}/twoPhaseSystem/lnInclude \
-I${phaseSystem}/twoPhaseCompressibleTurbulenceModels/lnInclude \
-I${phaseSystem}/multiphaseSystem/lnInclude \
-I$(FOAM_SOLVERS)/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam \
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/lnInclude \
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/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../solid \
-I../fluid \
@ -23,17 +24,18 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
-lsolidThermo \
-ltwoPhaseReactingTurbulenceModels \
-lmeshTools \
-lfiniteVolume \
-lfvOptions \
-lradiationModels \
-lregionModels \
-lreactingMultiphaseSystem \
-lsampling \
-lreactingTwoPhaseSystem \
-ltwoPhaseReactingTurbulenceModels

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2018-2020 OpenCFD Ltd
Copyright (C) 2018 OpenCFD Ltd
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -225,13 +225,13 @@ turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
)
:
mixedFvPatchScalarField(p, iF),
regionType_(regionTypeNames_.get("region", dict)),
regionType_(regionTypeNames_.read(dict.lookup("region"))),
method_(KMethodTypeNames_.get("kappaMethod", dict)),
kappaName_(dict.getOrDefault<word>("kappa", "none")),
otherPhaseName_(dict.get<word>("otherPhase")),
TnbrName_(dict.getOrDefault<word>("Tnbr", "T")),
qrNbrName_(dict.getOrDefault<word>("qrNbr", "none")),
qrName_(dict.getOrDefault<word>("qr", "none"))
kappaName_(dict.lookupOrDefault<word>("kappa", "none")),
otherPhaseName_(dict.lookup("otherPhase")),
TnbrName_(dict.lookupOrDefault<word>("Tnbr", "T")),
qrNbrName_(dict.lookupOrDefault<word>("qrNbr", "none")),
qrName_(dict.lookupOrDefault<word>("qr", "none"))
{
if (!isA<mappedPatchBase>(this->patch().patch()))
{
@ -380,11 +380,8 @@ updateCoeffs()
// TvNbr: vapour Tp
scalarField c(TcNbr*KDeltaLiqNbr + TvNbr*KDeltaVapNbr);
//valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
//refValue() = c/KDeltaNbr;
scalarField KDeltaLiqVapNbr(KDeltaLiqNbr + KDeltaVapNbr);
valueFraction() = KDeltaLiqVapNbr/(KDeltaLiqVapNbr + KDelta);
refValue() = c/KDeltaLiqVapNbr;
valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
refValue() = c/KDeltaNbr;
refGrad() = (qr + qrNbr)/kappa(Tp);
if (debug)
@ -398,7 +395,7 @@ updateCoeffs()
<< " walltemperature "
<< " min:" << gMin(Tp)
<< " max:" << gMax(Tp)
<< " avg:" << gAverage(Tp) << nl
<< " avg:" << gAverage(Tp)
<< endl;
}
}
@ -495,8 +492,11 @@ void turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField::write
os.writeEntryIfDifferent<word>("qrNbr", "none", qrNbrName_);
os.writeEntryIfDifferent<word>("qr", "none", qrName_);
os.writeEntry("region", regionTypeNames_[regionType_]);
os.writeEntry("otherPhase", otherPhaseName_);
os.writeKeyword("region") << regionTypeNames_[regionType_]
<< token::END_STATEMENT << nl;
os.writeKeyword("otherPhase") << otherPhaseName_ << token::END_STATEMENT
<< nl;
}

View File

@ -148,7 +148,7 @@ private:
//- Name of field on the neighbour region
const word TnbrName_;
//- Name of the radiative heat flux in the neighbour region
//- Name of the radiative heat flux in the neighbour region
const word qrNbrName_;
//- Name of the radiative heat flux in local region

View File

@ -21,178 +21,7 @@ const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
PtrList<pimpleControl> pimpleFluid(fluidRegions.size());
//Debug Fields
/*
PtrList<volScalarField> faceRegimesFluid(fluidRegions.size());
PtrList<volScalarField> qcFluid(fluidRegions.size());
PtrList<volScalarField> qFilmFluid(fluidRegions.size());
PtrList<volScalarField> htcFilmBoilingFluid(fluidRegions.size());
PtrList<volScalarField> qtbFluid(fluidRegions.size());
PtrList<volScalarField> qSubCoolFluid(fluidRegions.size());
PtrList<volScalarField> CHFtotalFluid(fluidRegions.size());
PtrList<volScalarField> TdnbFluid(fluidRegions.size());
PtrList<volScalarField> phiFluid(fluidRegions.size());
forAll(fluidRegions, i)
{
faceRegimesFluid.set
(
i,
new volScalarField
(
IOobject
(
"faceRegimes",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qcFluid.set
(
i,
new volScalarField
(
IOobject
(
"qc",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qFilmFluid.set
(
i,
new volScalarField
(
IOobject
(
"qFilm",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
htcFilmBoilingFluid.set
(
i,
new volScalarField
(
IOobject
(
"htcFilmBoiling",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qtbFluid.set
(
i,
new volScalarField
(
IOobject
(
"qtb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qSubCoolFluid.set
(
i,
new volScalarField
(
IOobject
(
"qSubCool",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
CHFtotalFluid.set
(
i,
new volScalarField
(
IOobject
(
"CHFtotal",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
TdnbFluid.set
(
i,
new volScalarField
(
IOobject
(
"Tdnb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
phiFluid.set
(
i,
new volScalarField
(
IOobject
(
"phiTb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
}
*/
// Populate fluid field pointer lists
forAll(fluidRegions, i)
{
Info<< "*** Reading fluid mesh thermophysical properties for region "

View File

@ -1,8 +1,7 @@
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
forAll(cumulativeContErrIO, i)
{
const fvMesh& mesh = fluidRegions[i];
#include "setRegionFluidFields.H"
cumulativeContErrIO.set
(
i,

View File

@ -2,10 +2,10 @@
Switch faceMomentum
(
pimpleDict.getOrDefault<Switch>("faceMomentum", false)
pimpleDict.lookupOrDefault<Switch>("faceMomentum", false)
);
int nEnergyCorrectors
(
pimpleDict.getOrDefault<int>("nEnergyCorrectors", 1)
pimpleDict.lookupOrDefault<int>("nEnergyCorrectors", 1)
);

View File

@ -56,16 +56,3 @@
pimpleControl& pimple = pimpleFluid[i];
const dimensionedScalar& pMin = pMinFluid[i];
// Debug fields
/*
volScalarField& faceRegimes = faceRegimesFluid[i];
volScalarField& qc = qcFluid[i];
volScalarField& qFilm = qFilmFluid[i];
volScalarField& htcFilmBoiling = htcFilmBoilingFluid[i];
volScalarField& qtb = qtbFluid[i];
volScalarField& qSubCool = qSubCoolFluid[i];
volScalarField& CHFtotal = CHFtotalFluid[i];
volScalarField& Tdnb = TdnbFluid[i];
volScalarField& phiTb = phiFluid[i];
*/

View File

@ -1,8 +1,7 @@
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
forAll(cumulativeContErrIO, i)
{
const fvMesh& mesh = fluidRegions[i];
#include "setRegionFluidFields.H"
cumulativeContErrIO.set
(
i,

View File

@ -1,10 +1,10 @@
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
const int nCorr =
pimple.getOrDefault<int>("nCorrectors", 1);
pimple.lookupOrDefault<int>("nCorrectors", 1);
const int nNonOrthCorr =
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
const bool momentumPredictor =
pimple.getOrDefault("momentumPredictor", true);
pimple.lookupOrDefault("momentumPredictor", true);

View File

@ -65,3 +65,4 @@
const dimensionedScalar rhoMin = rhoMinFluid[i];
const pressureControl& pressureControl = pressureControls[i];

View File

@ -5,4 +5,4 @@
const dictionary& pimple = solutionDict.subDict("PIMPLE");
const int nOuterCorr =
pimple.getOrDefault<int>("nOuterCorrectors", 1);
pimple.lookupOrDefault<int>("nOuterCorrectors", 1);

View File

@ -1,4 +1,4 @@
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
int nNonOrthCorr =
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +31,6 @@ Description
\*---------------------------------------------------------------------------*/
scalar maxDi = runTime.controlDict().getOrDefault<scalar>("maxDi", 10);
scalar maxDi = runTime.controlDict().lookupOrDefault<scalar>("maxDi", 10.0);
// ************************************************************************* //

View File

@ -1,3 +0,0 @@
solidFoam.C
EXE = $(FOAM_APPBIN)/solidFoam

View File

@ -1,24 +0,0 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-ldynamicMesh \
-ldynamicFvMesh \
-ltopoChangerFvMesh \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lsolidThermo \
-lradiationModels \
-lspecie

View File

@ -1,4 +0,0 @@
const volScalarField& rho = trho();
volScalarField& h = thermo.he();
const volScalarField& betav = *betavPtr;

View File

@ -1,94 +0,0 @@
Info<< "Reading thermophysical properties\n" << endl;
autoPtr<solidThermo> pThermo(solidThermo::New(mesh));
solidThermo& thermo = pThermo();
tmp<volScalarField> trho = thermo.rho();
autoPtr<coordinateSystem> coordinatesPtr;
autoPtr<volSymmTensorField> taniAlpha;
if (!thermo.isotropic())
{
Info<< "Adding coordinateSystem\n" << endl;
coordinatesPtr = coordinateSystem::New
(
mesh,
thermo,
coordinateSystem::typeName_()
);
tmp<volVectorField> tkappaByCp = thermo.Kappa()/thermo.Cp();
taniAlpha.reset
(
new volSymmTensorField
(
IOobject
(
"Anialpha",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(tkappaByCp().dimensions(), Zero),
zeroGradientFvPatchSymmTensorField::typeName
)
);
volSymmTensorField& aniAlpha = *taniAlpha;
aniAlpha.primitiveFieldRef() =
coordinatesPtr->transformPrincipal
(
mesh.cellCentres(),
tkappaByCp()
);
aniAlpha.correctBoundaryConditions();
}
IOobject betavSolidIO
(
"betavSolid",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
);
autoPtr<volScalarField> betavPtr;
if (betavSolidIO.typeHeaderOk<volScalarField>(true))
{
betavPtr.reset
(
new volScalarField
(
betavSolidIO,
mesh
)
);
}
else
{
betavPtr.reset
(
new volScalarField
(
IOobject
(
"betavSolid",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("1", dimless, scalar(1))
)
);
}
#include "createRadiationModel.H"
#include "createFvOptions.H"

View File

@ -1,38 +0,0 @@
{
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)
);
if (mesh.changing())
{
surfaceScalarField phihMesh
(
fvc::interpolate(betav*rho*h)*mesh.phi()
);
hEqn -= fvc::div(phihMesh);
}
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;
radiation->correct();
}

View File

@ -1,121 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 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
solidFoam
Group
grpHeatTransferSolvers
Description
Solver for energy transport and thermodynamics on a solid.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "dynamicFvMesh.H"
#include "solidThermo.H"
#include "radiationModel.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "pimpleControl.H"
#include "coordinateSystem.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Solver for energy transport and thermodynamics on a solid"
);
#define NO_CONTROL
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "createFields.H"
#include "createFieldRefs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nEvolving thermodynamics\n" << endl;
if (mesh.solutionDict().found("SIMPLE"))
{
simpleControl simple(mesh);
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
while (simple.correctNonOrthogonal())
{
#include "hEqn.H"
}
runTime.write();
runTime.printExecutionTime(Info);
}
}
else
{
pimpleControl pimple(mesh);
while (runTime.run())
{
++runTime;
Info<< "Time = " << runTime.timeName() << nl << endl;
while (pimple.loop())
{
if (pimple.firstIter())
{
mesh.update();
}
while (pimple.correct())
{
#include "hEqn.H"
}
}
runTime.write();
runTime.printExecutionTime(Info);
}
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -55,6 +55,10 @@ int main(int argc, char *argv[])
for (om++; !om.end(); om++)
{
Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
Info<< "Time = " << runTime.timeName() << endl;
Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
if (om.update())
{
// Update design variables and solve all primal equations
@ -75,10 +79,9 @@ int main(int argc, char *argv[])
// Compute all sensitivities
om.computeSensitivities();
}
Info<< "End\n" << endl;
return 0;
return(0);
}

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