Compare commits
1 Commits
feature-sr
...
feature-dl
| Author | SHA1 | Date | |
|---|---|---|---|
| 18dc3426ce |
31
.gitignore
vendored
31
.gitignore
vendored
@ -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
|
||||
|
||||
@ -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
|
||||
-->
|
||||
|
||||
13
.gitmodules
vendored
13
.gitmodules
vendored
@ -4,16 +4,9 @@
|
||||
[submodule "avalanche"]
|
||||
path = modules/avalanche
|
||||
url = https://develop.openfoam.com/Community/avalanche.git
|
||||
[submodule "catalyst"]
|
||||
path = modules/catalyst
|
||||
url = https://develop.openfoam.com/Community/catalyst.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
|
||||
|
||||
62
Allwmake
62
Allwmake
@ -1,43 +1,38 @@
|
||||
#!/bin/sh
|
||||
# Run from OPENFOAM top-level directory only
|
||||
cd "${0%/*}" || exit
|
||||
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
||||
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 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 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
|
||||
then . "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
||||
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
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||
echo "========================================"
|
||||
echo
|
||||
@ -48,18 +43,9 @@ echo
|
||||
# Compile ThirdParty libraries and applications
|
||||
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
||||
then
|
||||
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
||||
then
|
||||
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
||||
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
|
||||
fi
|
||||
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
|
||||
then "$WM_THIRD_PARTY_DIR"/Allwmake
|
||||
else
|
||||
echo "Skip ThirdParty (no Allwmake* files)"
|
||||
fi
|
||||
"$WM_THIRD_PARTY_DIR/Allwmake"
|
||||
else
|
||||
echo "Skip ThirdParty (no directory)"
|
||||
echo "No ThirdParty directory found - skipping"
|
||||
fi
|
||||
|
||||
echo "========================================"
|
||||
@ -73,20 +59,18 @@ echo
|
||||
applications/Allwmake $targetType $*
|
||||
|
||||
# Additional components/modules
|
||||
if [ "$FOAM_MODULE_PREFIX" = false ]
|
||||
if [ -d "$WM_PROJECT_DIR/modules" ]
|
||||
then
|
||||
echo "========================================"
|
||||
echo "OpenFOAM modules disabled (prefix=false)"
|
||||
echo "Compile OpenFOAM modules"
|
||||
echo
|
||||
elif [ -d "$WM_PROJECT_DIR/modules" ]
|
||||
then
|
||||
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
||||
fi
|
||||
|
||||
# Count files in given directory. Ignore "Test-*" binaries.
|
||||
_foamCountDirEntries()
|
||||
{
|
||||
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
||||
(cd "$1" 2>/dev/null && find -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
||||
sed -e '\@/Test-@d' | wc -l
|
||||
}
|
||||
|
||||
@ -95,13 +79,13 @@ echo
|
||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||
echo "========================================"
|
||||
echo " ${WM_PROJECT_DIR##*/}"
|
||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||
echo
|
||||
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
|
||||
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
||||
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
||||
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
||||
echo " api = $(foamEtcFile -show-api 2>/dev/null)"
|
||||
echo " patch = $(foamEtcFile -show-patch 2>/dev/null)"
|
||||
echo " bin = $(_foamCountDirEntries $FOAM_APPBIN) entries"
|
||||
echo " lib = $(_foamCountDirEntries $FOAM_LIBBIN) entries"
|
||||
echo
|
||||
echo "========================================"
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
<!----------------------------------------------------------------------------->
|
||||
5
META-INFO/.gitignore
vendored
5
META-INFO/.gitignore
vendored
@ -5,6 +5,5 @@ build-info
|
||||
time-stamp
|
||||
|
||||
# Do not track any manifest files
|
||||
*[Mm]anifest.txt
|
||||
|
||||
####
|
||||
Manifest.txt
|
||||
manifest.txt
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
api=2012
|
||||
api=1912
|
||||
patch=0
|
||||
|
||||
28
README.md
28
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/).
|
||||
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,7 +11,7 @@ individual and group contributors, integrations
|
||||
[governance guided activities](https://www.openfoam.com/governance/).
|
||||
|
||||
|
||||
## Copyright
|
||||
# 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
|
||||
@ -22,7 +22,7 @@ description of the GNU General Public License terms under which you
|
||||
may redistribute 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
|
||||
@ -35,7 +35,7 @@ any questions on the use of the OpenFOAM trademark.
|
||||
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
|
||||
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
||||
@ -44,7 +44,7 @@ For example, for the OpenFOAM-v1912 version:
|
||||
source /installation/path/OpenFOAM-v1912/etc/bashrc
|
||||
```
|
||||
|
||||
## Compiling OpenFOAM
|
||||
# Compiling OpenFOAM
|
||||
|
||||
If you are compiling OpenFOAM from source, please see the relevant
|
||||
guides:
|
||||
@ -55,7 +55,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
|
||||
@ -85,10 +85,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 +110,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
|
||||
@ -197,14 +197,14 @@ 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
|
||||
# Useful Links
|
||||
|
||||
- Download [source](https://dl.openfoam.com/source/) and [download and installation instructions](http://www.openfoam.com/download/)
|
||||
- Download [source](https://sourceforge.net/projects/openfoam/files/) and [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/)
|
||||
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/issues)
|
||||
- [Wiki](http://wiki.openfoam.com/) and [code wiki](https://develop.openfoam.com/Development/openfoam/wikis/)
|
||||
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
|
||||
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
||||
|
||||
Copyright 2016-2020 OpenCFD Ltd
|
||||
Copyright 2016-2019 OpenCFD Ltd
|
||||
|
||||
@ -1,26 +1,22 @@
|
||||
#!/bin/sh
|
||||
# Run from OPENFOAM applications/ directory only
|
||||
cd "${0%/*}" || exit
|
||||
wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
|
||||
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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
if have_fftw
|
||||
|
||||
@ -19,3 +19,4 @@
|
||||
|
||||
Kmesh K(mesh);
|
||||
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;
|
||||
@ -5,5 +5,5 @@ const dictionary& potentialFlow
|
||||
|
||||
const int nNonOrthCorr
|
||||
(
|
||||
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||
);
|
||||
|
||||
@ -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.get<word>("pName", "p");
|
||||
|
||||
// Infer the pressure BCs from the velocity
|
||||
wordList pBCTypes
|
||||
|
||||
@ -5,5 +5,5 @@ const dictionary& potentialFlow
|
||||
|
||||
const int nNonOrthCorr
|
||||
(
|
||||
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||
);
|
||||
|
||||
@ -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.get<word>("pName", "p");
|
||||
|
||||
// Infer the pressure BCs from the velocity
|
||||
wordList pBCTypes
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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_,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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)
|
||||
);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I../XiFoam/XiEngineFoam \
|
||||
-I../XiFoam \
|
||||
-I../../compressible/rhoPimpleFoam \
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
||||
runTime.printExecutionTime(Info);
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
Info<< "End" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -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++)
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
wclean libso BCs
|
||||
wclean
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # 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)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -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
|
||||
(
|
||||
|
||||
@ -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
|
||||
(
|
||||
|
||||
@ -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"))
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
scalar rDeltaTSmoothingCoeff
|
||||
(
|
||||
runTime.controlDict().getOrDefault<scalar>
|
||||
runTime.controlDict().lookupOrDefault<scalar>
|
||||
(
|
||||
"rDeltaTSmoothingCoeff",
|
||||
0.02
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -41,7 +41,8 @@ Description
|
||||
airframe noise, VKI LS 2013-03.
|
||||
\endverbatim
|
||||
|
||||
Contact: info@upstream-cfd.com
|
||||
|
||||
Contact: info@cfd-berlin.com
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
bool ddtCorr
|
||||
(
|
||||
pimple.dict().getOrDefault("ddtCorr", true)
|
||||
pimple.dict().lookupOrDefault("ddtCorr", true)
|
||||
);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
{
|
||||
volScalarField& he = thermo.he();
|
||||
|
||||
fvScalarMatrix EEqn
|
||||
(
|
||||
fvm::div(phi, he)
|
||||
+ (
|
||||
he.name() == "e"
|
||||
? fvc::div(phi, volScalarField("Ekp", 0.5*magSqr(U) + p/rho))
|
||||
: fvc::div(phi, volScalarField("K", 0.5*magSqr(U)))
|
||||
)
|
||||
- fvm::laplacian(turbulence->alphaEff(), he)
|
||||
==
|
||||
fvOptions(rho, he)
|
||||
);
|
||||
|
||||
EEqn.relax();
|
||||
|
||||
fvOptions.constrain(EEqn);
|
||||
|
||||
EEqn.solve();
|
||||
|
||||
fvOptions.correct(he);
|
||||
|
||||
thermo.correct();
|
||||
}
|
||||
@ -1,3 +0,0 @@
|
||||
SRFrhoSimpleFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/SRFrhoSimpleFoam
|
||||
@ -1,21 +0,0 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lmeshTools \
|
||||
-lsampling \
|
||||
-lcompressibleTransportModels \
|
||||
-lfluidThermophysicalModels \
|
||||
-lspecie \
|
||||
-lturbulenceModels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-latmosphericModels
|
||||
@ -1,99 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 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
|
||||
SRFSimpleFoam
|
||||
|
||||
Group
|
||||
grpIncompressibleSolvers
|
||||
|
||||
Description
|
||||
Steady-state solver for incompressible, turbulent flow of non-Newtonian
|
||||
fluids in a single rotating frame.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "fluidThermo.H"
|
||||
#include "turbulentFluidThermoModel.H"
|
||||
#include "simpleControl.H"
|
||||
#include "pressureControl.H"
|
||||
#include "fvOptions.H"
|
||||
#include "SRFModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::addNote
|
||||
(
|
||||
"Steady-state solver for compressible, turbulent flow"
|
||||
" of non-Newtonian fluids in a single rotating frame."
|
||||
);
|
||||
|
||||
#include "postProcess.H"
|
||||
|
||||
#include "addCheckCaseOptions.H"
|
||||
#include "setRootCaseLists.H"
|
||||
#include "createTime.H"
|
||||
#include "createMesh.H"
|
||||
#include "createControl.H"
|
||||
#include "createFields.H"
|
||||
#include "createFieldRefs.H"
|
||||
#include "initContinuityErrs.H"
|
||||
|
||||
turbulence->validate();
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
|
||||
while (simple.loop())
|
||||
{
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
|
||||
// --- Pressure-velocity SIMPLE corrector
|
||||
{
|
||||
#include "UrelEqn.H"
|
||||
#include "EEqn.H"
|
||||
#include "pEqn.H"
|
||||
}
|
||||
|
||||
U = Urel + SRF->U();
|
||||
|
||||
turbulence->correct();
|
||||
|
||||
runTime.write();
|
||||
|
||||
runTime.printExecutionTime(Info);
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,22 +0,0 @@
|
||||
// Relative momentum predictor
|
||||
|
||||
tmp<fvVectorMatrix> tUrelEqn
|
||||
(
|
||||
fvm::div(phi, Urel)
|
||||
+ turbulence->divDevRhoReff(Urel)
|
||||
+ rho*SRF->Su()
|
||||
==
|
||||
fvOptions(rho, Urel)
|
||||
);
|
||||
fvVectorMatrix& UrelEqn = tUrelEqn.ref();
|
||||
|
||||
UrelEqn.relax();
|
||||
|
||||
fvOptions.constrain(UrelEqn);
|
||||
|
||||
if (simple.momentumPredictor())
|
||||
{
|
||||
solve(UrelEqn == -fvc::grad(p));
|
||||
|
||||
fvOptions.correct(Urel);
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
const volScalarField& psi = thermo.psi();
|
||||
@ -1,89 +0,0 @@
|
||||
Info<< "Reading thermophysical properties\n" << endl;
|
||||
|
||||
autoPtr<fluidThermo> pThermo
|
||||
(
|
||||
fluidThermo::New(mesh)
|
||||
);
|
||||
fluidThermo& thermo = pThermo();
|
||||
thermo.validate(args.executable(), "h", "e");
|
||||
|
||||
volScalarField& p = thermo.p();
|
||||
|
||||
volScalarField rho
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rho",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
thermo.rho()
|
||||
);
|
||||
|
||||
Info<< "Reading field Urel\n" << endl;
|
||||
volVectorField Urel
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Urel",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
);
|
||||
|
||||
Info<< "Reading/calculating face flux field phi\n" << endl;
|
||||
surfaceScalarField phi
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"phi",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
linearInterpolate(rho*Urel) & mesh.Sf()
|
||||
);
|
||||
|
||||
pressureControl pressureControl(p, rho, simple.dict());
|
||||
|
||||
mesh.setFluxRequired(p.name());
|
||||
|
||||
Info<< "Creating SRF model\n" << endl;
|
||||
autoPtr<SRF::SRFModel> SRF(SRF::SRFModel::New(Urel));
|
||||
|
||||
// Construct the absolute velocity
|
||||
volVectorField U
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"U",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
Urel + SRF->U()
|
||||
);
|
||||
|
||||
|
||||
Info<< "Creating turbulence model\n" << endl;
|
||||
autoPtr<compressible::turbulenceModel> turbulence
|
||||
(
|
||||
compressible::turbulenceModel::New
|
||||
(
|
||||
rho,
|
||||
U,
|
||||
phi,
|
||||
thermo
|
||||
)
|
||||
);
|
||||
|
||||
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||
|
||||
#include "createFvOptions.H"
|
||||
@ -1,109 +0,0 @@
|
||||
volScalarField rAUrel(1.0/UrelEqn.A());
|
||||
surfaceScalarField rhorAUrelf("rhorAUf", fvc::interpolate(rho*rAUrel));
|
||||
volVectorField HbyA(constrainHbyA(rAUrel*UrelEqn.H(), Urel, p));
|
||||
tUrelEqn.clear();
|
||||
|
||||
bool closedVolume = false;
|
||||
|
||||
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(rho)*fvc::flux(HbyA));
|
||||
|
||||
// Update the pressure BCs to ensure flux consistency
|
||||
constrainPressure(p, rho, Urel, phiHbyA, rhorAUrelf);
|
||||
|
||||
if (simple.transonic())
|
||||
{
|
||||
surfaceScalarField phid
|
||||
(
|
||||
"phid",
|
||||
(fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
|
||||
);
|
||||
|
||||
phiHbyA -= fvc::interpolate(psi*p)*phiHbyA/fvc::interpolate(rho);
|
||||
|
||||
while (simple.correctNonOrthogonal())
|
||||
{
|
||||
fvScalarMatrix pEqn
|
||||
(
|
||||
fvc::div(phiHbyA)
|
||||
+ fvm::div(phid, p)
|
||||
- fvm::laplacian(rhorAUrelf, p)
|
||||
==
|
||||
fvOptions(psi, p, rho.name())
|
||||
);
|
||||
|
||||
// Relax the pressure equation to ensure diagonal-dominance
|
||||
pEqn.relax();
|
||||
|
||||
pEqn.setReference
|
||||
(
|
||||
pressureControl.refCell(),
|
||||
pressureControl.refValue()
|
||||
);
|
||||
|
||||
pEqn.solve();
|
||||
|
||||
if (simple.finalNonOrthogonalIter())
|
||||
{
|
||||
phi = phiHbyA + pEqn.flux();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
closedVolume = adjustPhi(phiHbyA, Urel, p);
|
||||
|
||||
while (simple.correctNonOrthogonal())
|
||||
{
|
||||
fvScalarMatrix pEqn
|
||||
(
|
||||
fvc::div(phiHbyA)
|
||||
- fvm::laplacian(rhorAUrelf, p)
|
||||
==
|
||||
fvOptions(psi, p, rho.name())
|
||||
);
|
||||
|
||||
pEqn.setReference
|
||||
(
|
||||
pressureControl.refCell(),
|
||||
pressureControl.refValue()
|
||||
);
|
||||
|
||||
pEqn.solve();
|
||||
|
||||
if (simple.finalNonOrthogonalIter())
|
||||
{
|
||||
phi = phiHbyA + pEqn.flux();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#include "incompressible/continuityErrs.H"
|
||||
|
||||
// Explicitly relax pressure for momentum corrector
|
||||
p.relax();
|
||||
|
||||
Urel = HbyA - rAUrel*fvc::grad(p);
|
||||
Urel.correctBoundaryConditions();
|
||||
fvOptions.correct(Urel);
|
||||
|
||||
bool pLimited = pressureControl.limit(p);
|
||||
|
||||
// For closed-volume cases adjust the pressure and density levels
|
||||
// to obey overall mass continuity
|
||||
if (closedVolume)
|
||||
{
|
||||
p += (initialMass - fvc::domainIntegrate(psi*p))
|
||||
/fvc::domainIntegrate(psi);
|
||||
}
|
||||
|
||||
if (pLimited || closedVolume)
|
||||
{
|
||||
p.correctBoundaryConditions();
|
||||
}
|
||||
|
||||
rho = thermo.rho();
|
||||
|
||||
if (!simple.transonic())
|
||||
{
|
||||
rho.relax();
|
||||
}
|
||||
@ -1,6 +1 @@
|
||||
const volScalarField& psi = thermo.psi();
|
||||
|
||||
bool adjustFringe
|
||||
(
|
||||
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
||||
);
|
||||
|
||||
@ -80,3 +80,7 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||
|
||||
#include "createInterpolatedCells.H"
|
||||
|
||||
bool adjustFringe
|
||||
(
|
||||
simple.dict().lookupOrDefault("oversetAdjustPhi", false)
|
||||
);
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I.. \
|
||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
|
||||
@ -44,7 +44,11 @@ SourceFiles
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// Forward Declarations
|
||||
// Forward declaration of classes
|
||||
class Istream;
|
||||
class Ostream;
|
||||
|
||||
// Forward declaration of friend functions and operators
|
||||
class magnet;
|
||||
Istream& operator>>(Istream&, magnet&);
|
||||
Ostream& operator<<(Ostream&, const magnet&);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -63,3 +63,4 @@ edgeScalarField phis
|
||||
),
|
||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||
);
|
||||
|
||||
|
||||
@ -57,3 +57,4 @@ edgeScalarField phis
|
||||
),
|
||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||
);
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I../buoyantBoussinesqSimpleFoam \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||
bool compressible = (compressibility.value() > SMALL);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||
bool compressible = (compressibility.value() > SMALL);
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I./fluid \
|
||||
-I./solid \
|
||||
-I./porousFluid \
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
chtMultiRegionSimpleFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
|
||||
|
||||
const int nNonOrthCorr =
|
||||
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||
simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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()))
|
||||
{
|
||||
@ -495,8 +495,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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -48,3 +48,4 @@
|
||||
}
|
||||
|
||||
Info<< "Courant Number max: " << CoNum << endl;
|
||||
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||
forAll(cumulativeContErrIO, i)
|
||||
{
|
||||
const fvMesh& mesh = fluidRegions[i];
|
||||
|
||||
#include "setRegionFluidFields.H"
|
||||
cumulativeContErrIO.set
|
||||
(
|
||||
i,
|
||||
|
||||
@ -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)
|
||||
);
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||
forAll(cumulativeContErrIO, i)
|
||||
{
|
||||
const fvMesh& mesh = fluidRegions[i];
|
||||
|
||||
#include "setRegionFluidFields.H"
|
||||
cumulativeContErrIO.set
|
||||
(
|
||||
i,
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -65,3 +65,4 @@
|
||||
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
||||
|
||||
const pressureControl& pressureControl = pressureControls[i];
|
||||
|
||||
|
||||
@ -5,4 +5,4 @@
|
||||
const dictionary& pimple = solutionDict.subDict("PIMPLE");
|
||||
|
||||
const int nOuterCorr =
|
||||
pimple.getOrDefault<int>("nOuterCorrectors", 1);
|
||||
pimple.lookupOrDefault<int>("nOuterCorrectors", 1);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
|
||||
|
||||
int nNonOrthCorr =
|
||||
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||
pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||
|
||||
@ -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);
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
solidFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/solidFoam
|
||||
@ -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
|
||||
@ -1,4 +0,0 @@
|
||||
const volScalarField& rho = trho();
|
||||
volScalarField& h = thermo.he();
|
||||
const volScalarField& betav = *betavPtr;
|
||||
|
||||
@ -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"
|
||||
@ -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();
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -75,10 +75,9 @@ int main(int argc, char *argv[])
|
||||
// Compute all sensitivities
|
||||
om.computeSensitivities();
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
|
||||
return 0;
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I.. \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
|
||||
@ -2,25 +2,25 @@
|
||||
|
||||
bool correctPhi
|
||||
(
|
||||
pimple.dict().getOrDefault("correctPhi", false)
|
||||
pimple.dict().lookupOrDefault("correctPhi", false)
|
||||
);
|
||||
|
||||
bool checkMeshCourantNo
|
||||
(
|
||||
pimple.dict().getOrDefault("checkMeshCourantNo", false)
|
||||
pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
|
||||
);
|
||||
|
||||
bool massFluxInterpolation
|
||||
(
|
||||
pimple.dict().getOrDefault("massFluxInterpolation", false)
|
||||
pimple.dict().lookupOrDefault("massFluxInterpolation", false)
|
||||
);
|
||||
|
||||
bool adjustFringe
|
||||
(
|
||||
pimple.dict().getOrDefault("oversetAdjustPhi", false)
|
||||
pimple.dict().lookupOrDefault("oversetAdjustPhi", false)
|
||||
);
|
||||
|
||||
bool ddtCorr
|
||||
(
|
||||
pimple.dict().getOrDefault("ddtCorr", true)
|
||||
pimple.dict().lookupOrDefault("ddtCorr", true)
|
||||
);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user