Compare commits
2 Commits
OpenFOAM-v
...
feature-so
| Author | SHA1 | Date | |
|---|---|---|---|
| 29e4d6b961 | |||
| 2970275410 |
31
.gitignore
vendored
31
.gitignore
vendored
@ -12,7 +12,7 @@
|
|||||||
# File-browser settings - anywhere
|
# File-browser settings - anywhere
|
||||||
.directory
|
.directory
|
||||||
|
|
||||||
# Backup/recovery versions - anywhere
|
# CVS recovered versions - anywhere
|
||||||
.#*
|
.#*
|
||||||
|
|
||||||
# Objects and archives - anywhere
|
# Objects and archives - anywhere
|
||||||
@ -23,7 +23,7 @@
|
|||||||
# Derived files
|
# Derived files
|
||||||
lex.yy.c
|
lex.yy.c
|
||||||
|
|
||||||
# Core dumps
|
# Corefiles
|
||||||
core
|
core
|
||||||
|
|
||||||
# Dependency files - anywhere
|
# Dependency files - anywhere
|
||||||
@ -47,21 +47,22 @@ platforms/
|
|||||||
# Reinstate wmake rules that might look like build directories
|
# Reinstate wmake rules that might look like build directories
|
||||||
!/wmake/rules/*/
|
!/wmake/rules/*/
|
||||||
|
|
||||||
# Doxygen generated
|
# doxygen generated documentation
|
||||||
doc/Doxygen/html
|
doc/Doxygen/html
|
||||||
doc/Doxygen/latex
|
doc/Doxygen/latex
|
||||||
doc/Doxygen/man
|
doc/Doxygen/man
|
||||||
doc/Doxygen/DTAGS
|
doc/Doxygen/DTAGS
|
||||||
|
|
||||||
# Generated files in the main and doc directories
|
# Generated files in the main directory (e.g. ReleaseNotes-?.?.html)
|
||||||
|
# and in the doc directory
|
||||||
/*.html
|
/*.html
|
||||||
/doc/*.html
|
/doc/*.html
|
||||||
|
|
||||||
# Untracked configuration/preferences files
|
# Untracked configuration files
|
||||||
/etc/prefs.csh
|
/etc/prefs.csh
|
||||||
/etc/prefs.sh
|
/etc/prefs.sh
|
||||||
/etc/config.csh/prefs.*
|
/etc/config.csh/prefs.csh
|
||||||
/etc/config.sh/prefs.*
|
/etc/config.sh/prefs.sh
|
||||||
/wmake/rules/General/mplibUSER*
|
/wmake/rules/General/mplibUSER*
|
||||||
|
|
||||||
# Source packages - anywhere
|
# Source packages - anywhere
|
||||||
@ -72,11 +73,19 @@ doc/Doxygen/DTAGS
|
|||||||
*.tgz
|
*.tgz
|
||||||
*.gtgz
|
*.gtgz
|
||||||
|
|
||||||
# Ignore tags or project files in the main directory
|
# Ignore the persistent .build tag in the main directory
|
||||||
/.cproject
|
/.build
|
||||||
/.dir-locals.el
|
|
||||||
/.project
|
# Ignore .timeStamp in the main directory
|
||||||
|
/.timeStamp
|
||||||
|
|
||||||
|
# Ignore .tags in the main directory
|
||||||
/.tags
|
/.tags
|
||||||
|
|
||||||
|
# Ignore project files in the main directory
|
||||||
|
/.cproject
|
||||||
|
/.project
|
||||||
|
/.dir-locals.el
|
||||||
|
|
||||||
# Ignore the test directory
|
# Ignore the test directory
|
||||||
/tutorialsTest
|
/tutorialsTest
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Before opening a new issue, make sure to search for keywords in the issues
|
Before opening a new issue, make sure to search for keywords in the issues
|
||||||
filtered by the "bug" label and check to see if it has already been reported
|
filtered by the "bug" label and check to see if it has already been reported
|
||||||
|
|
||||||
You can see how your report will be rendered on the platform by using the
|
You can see how your report will be rendered on the platform by using the
|
||||||
"preview" tab above
|
"preview" tab above
|
||||||
-->
|
-->
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -14,6 +14,3 @@
|
|||||||
[submodule "visualization"]
|
[submodule "visualization"]
|
||||||
path = modules/visualization
|
path = modules/visualization
|
||||||
url = https://develop.openfoam.com/modules/visualization.git
|
url = https://develop.openfoam.com/modules/visualization.git
|
||||||
[submodule "external-solver"]
|
|
||||||
path = modules/external-solver
|
|
||||||
url = https://develop.openfoam.com/Modules/external-solver.git
|
|
||||||
|
|||||||
13
Allwmake
13
Allwmake
@ -18,7 +18,7 @@ fi
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Preamble. Report tools or at least the mpirun location
|
# Preamble. Report tools or at least the mpirun location
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
||||||
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
|
then . "$WM_PROJECT_DIR"/wmake/scripts/list_tools
|
||||||
else
|
else
|
||||||
echo "mpirun=$(command -v mpirun || true)"
|
echo "mpirun=$(command -v mpirun || true)"
|
||||||
fi
|
fi
|
||||||
@ -73,13 +73,16 @@ echo
|
|||||||
applications/Allwmake $targetType $*
|
applications/Allwmake $targetType $*
|
||||||
|
|
||||||
# Additional components/modules
|
# Additional components/modules
|
||||||
if [ "$FOAM_MODULE_PREFIX" = false ]
|
if [ -d "$WM_PROJECT_DIR/modules" ]
|
||||||
then
|
then
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo "OpenFOAM modules disabled (prefix=false)"
|
echo "Compile OpenFOAM modules"
|
||||||
|
echo " ignoring possible compilation errors"
|
||||||
|
echo " make certain to check the output file"
|
||||||
echo
|
echo
|
||||||
elif [ -d "$WM_PROJECT_DIR/modules" ]
|
set +e
|
||||||
then
|
export WM_CONTINUE_ON_ERROR=true
|
||||||
|
|
||||||
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -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
|
|
||||||
|
|
||||||
|
|
||||||
<!----------------------------------------------------------------------------->
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
## META-INFO
|
# META-INFO
|
||||||
|
|
||||||
Meta-information is generally for OpenFOAM internal use only.
|
Meta-information is generally for OpenFOAM internal use only.
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ will need to be updated accordingly:
|
|||||||
- etc/openfoam
|
- etc/openfoam
|
||||||
- wmake/scripts/wmake-build-info
|
- wmake/scripts/wmake-build-info
|
||||||
|
|
||||||
### api-info
|
## api-info
|
||||||
|
|
||||||
This file and its contents are to be tracked by git.
|
This file and its contents are to be tracked by git.
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ This file and its contents are to be tracked by git.
|
|||||||
- File content (patch) is manually generated content.
|
- File content (patch) is manually generated content.
|
||||||
|
|
||||||
|
|
||||||
### build-info
|
## build-info
|
||||||
|
|
||||||
This file is ***never*** to be tracked by git, but may be present in
|
This file is ***never*** to be tracked by git, but may be present in
|
||||||
shipped source archives.
|
shipped source archives.
|
||||||
@ -30,9 +30,9 @@ shipped source archives.
|
|||||||
git information and cached from previous wmake (api)
|
git information and cached from previous wmake (api)
|
||||||
|
|
||||||
|
|
||||||
### Content types
|
## Content types
|
||||||
|
|
||||||
#### api
|
### api
|
||||||
|
|
||||||
Format: `date +%y%m`
|
Format: `date +%y%m`
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ Format: `date +%y%m`
|
|||||||
Example, `1712` for the Dec-2017 release.
|
Example, `1712` for the Dec-2017 release.
|
||||||
|
|
||||||
|
|
||||||
#### patch
|
### patch
|
||||||
|
|
||||||
Format: `date +%y%m%d`
|
Format: `date +%y%m%d`
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ ascribed too much meaning, but will often correspond to the last
|
|||||||
merge with a *maintenance* (*eg*, `master`) branch.
|
merge with a *maintenance* (*eg*, `master`) branch.
|
||||||
|
|
||||||
|
|
||||||
### Flow of information
|
## Flow of information
|
||||||
|
|
||||||
Changes in the build information must be reflected in information
|
Changes in the build information must be reflected in information
|
||||||
available in the final binaries. Conversely, it is necessary for later
|
available in the final binaries. Conversely, it is necessary for later
|
||||||
@ -76,11 +76,11 @@ the saved information needs synchronization. The command
|
|||||||
`wmake -build-info -update` performs the synchronization.
|
`wmake -build-info -update` performs the synchronization.
|
||||||
|
|
||||||
|
|
||||||
### Notes
|
## Notes
|
||||||
|
|
||||||
The saved information is split into two separate files. The `api-info`
|
The saved information is split into two separate files. The `api-info`
|
||||||
contains more permanent information, whereas the `build-info` is more
|
contains more permanent information, whereas the `build-info` is more
|
||||||
transient in nature.
|
transient in nature.
|
||||||
|
|
||||||
----
|
----
|
||||||
2020-06-23
|
2020-05-05
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2012
|
api=2004
|
||||||
patch=0
|
patch=200506
|
||||||
|
|||||||
22
README.md
22
README.md
@ -1,4 +1,4 @@
|
|||||||
## About OpenFOAM
|
# About OpenFOAM
|
||||||
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
|
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
|
||||||
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
|
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
|
||||||
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
|
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
|
||||||
@ -11,7 +11,7 @@ individual and group contributors, integrations
|
|||||||
[governance guided activities](https://www.openfoam.com/governance/).
|
[governance guided activities](https://www.openfoam.com/governance/).
|
||||||
|
|
||||||
|
|
||||||
## Copyright
|
# Copyright
|
||||||
|
|
||||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the
|
under the terms of the GNU General Public License as published by the
|
||||||
@ -22,7 +22,7 @@ description of the GNU General Public License terms under which you
|
|||||||
may redistribute files.
|
may redistribute files.
|
||||||
|
|
||||||
|
|
||||||
## OpenFOAM Trademark
|
# OpenFOAM Trademark
|
||||||
|
|
||||||
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
|
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
|
||||||
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
|
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
|
||||||
@ -35,7 +35,7 @@ any questions on the use of the OpenFOAM trademark.
|
|||||||
Violations of the Trademark are monitored, and will be duly prosecuted.
|
Violations of the Trademark are monitored, and will be duly prosecuted.
|
||||||
|
|
||||||
|
|
||||||
## Using OpenFOAM
|
# Using OpenFOAM
|
||||||
|
|
||||||
If OpenFOAM has already been compiled on your system, simply source
|
If OpenFOAM has already been compiled on your system, simply source
|
||||||
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
||||||
@ -44,7 +44,7 @@ For example, for the OpenFOAM-v1912 version:
|
|||||||
source /installation/path/OpenFOAM-v1912/etc/bashrc
|
source /installation/path/OpenFOAM-v1912/etc/bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
## Compiling OpenFOAM
|
# Compiling OpenFOAM
|
||||||
|
|
||||||
If you are compiling OpenFOAM from source, please see the relevant
|
If you are compiling OpenFOAM from source, please see the relevant
|
||||||
guides:
|
guides:
|
||||||
@ -55,7 +55,7 @@ guides:
|
|||||||
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
|
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
|
||||||
|
|
||||||
|
|
||||||
## 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
|
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
|
||||||
not guaranteed to have any correspondence to the OpenFOAM release
|
not guaranteed to have any correspondence to the OpenFOAM release
|
||||||
@ -110,7 +110,7 @@ patching changes made within the currently active environment and
|
|||||||
should be used with caution.
|
should be used with caution.
|
||||||
|
|
||||||
|
|
||||||
## ThirdParty directory
|
# ThirdParty directory
|
||||||
|
|
||||||
OpenFOAM normally ships with a directory of 3rd-party software and
|
OpenFOAM normally ships with a directory of 3rd-party software and
|
||||||
build scripts for some 3rd-party software that is either necessary or
|
build scripts for some 3rd-party software that is either necessary or
|
||||||
@ -197,13 +197,13 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
|||||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||||
|
|
||||||
|
|
||||||
## 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)
|
- [Documentation](http://www.openfoam.com/documentation)
|
||||||
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
|
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
|
||||||
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/-/issues)
|
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/issues)
|
||||||
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [general wiki](http://wiki.openfoam.com/)
|
- [Wiki](http://wiki.openfoam.com/) and [code wiki](https://develop.openfoam.com/Development/openfoam/wikis/)
|
||||||
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
|
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
|
||||||
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
if have_fftw
|
if have_fftw
|
||||||
|
|||||||
@ -19,3 +19,4 @@
|
|||||||
|
|
||||||
Kmesh K(mesh);
|
Kmesh K(mesh);
|
||||||
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);
|
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
acousticFoam.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/acousticFoam
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
EXE_INC = \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
|
||||||
-I$(LIB_SRC)/fvOption/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionFaModels/lnInclude \
|
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lmeshTools \
|
|
||||||
-lsampling \
|
|
||||||
-lregionFaModels
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | www.openfoam.com
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
License
|
|
||||||
This file is part of OpenFOAM.
|
|
||||||
|
|
||||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Application
|
|
||||||
acousticFoam
|
|
||||||
|
|
||||||
Group
|
|
||||||
grpAcousticSolvers
|
|
||||||
|
|
||||||
Description
|
|
||||||
Acoustic solver solving the acoustic pressure wave equation.
|
|
||||||
|
|
||||||
\f[
|
|
||||||
\ddt2{pa} - c^2 \laplacian{pa} = 0
|
|
||||||
\f]
|
|
||||||
|
|
||||||
where
|
|
||||||
\vartable
|
|
||||||
c | Sound speed
|
|
||||||
pa | Acoustic pressure
|
|
||||||
\endvartable
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
acousticFoam.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "fvCFD.H"
|
|
||||||
#include "fvOptions.H"
|
|
||||||
#include "pimpleControl.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
argList::addNote
|
|
||||||
(
|
|
||||||
"Acoustic solver solving the acoustic pressure wave equation."
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "postProcess.H"
|
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
|
||||||
#include "setRootCaseLists.H"
|
|
||||||
#include "createTime.H"
|
|
||||||
#include "createMesh.H"
|
|
||||||
#include "createControl.H"
|
|
||||||
#include "createRegionControls.H"
|
|
||||||
|
|
||||||
#include "readTransportProperties.H"
|
|
||||||
#include "createFields.H"
|
|
||||||
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
|
||||||
|
|
||||||
while (runTime.run())
|
|
||||||
{
|
|
||||||
++runTime;
|
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
while (pimple.correct())
|
|
||||||
{
|
|
||||||
#include "paEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
runTime.write();
|
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
Info << "\nReading pa" << endl;
|
|
||||||
|
|
||||||
volScalarField pa
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"pa",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
fvSolution solutionDict(runTime);
|
|
||||||
|
|
||||||
const dictionary& pimpleDict = solutionDict.subDict("PIMPLE");
|
|
||||||
|
|
||||||
bool solvePrimaryRegion
|
|
||||||
(
|
|
||||||
pimpleDict.getOrDefault("solvePrimaryRegion", true)
|
|
||||||
);
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
fvScalarMatrix paEqn
|
|
||||||
(
|
|
||||||
fvm::d2dt2(pa) - sqr(c0)*fvc::laplacian(pa)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (solvePrimaryRegion)
|
|
||||||
{
|
|
||||||
paEqn.relax();
|
|
||||||
paEqn.solve();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pa.correctBoundaryConditions();
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
Info<< "\nReading transportProperties" << endl;
|
|
||||||
|
|
||||||
IOdictionary transportProperties
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"transportProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dimensionedScalar c0("c0", dimVelocity, transportProperties);
|
|
||||||
|
|
||||||
dimensionedScalar rho("rho", dimDensity, transportProperties);
|
|
||||||
|
|
||||||
scalar MaxCo =
|
|
||||||
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
|
|
||||||
*runTime.deltaT().value();
|
|
||||||
|
|
||||||
Info<< "Max acoustic Courant Number = " << MaxCo << endl;
|
|
||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -145,7 +144,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
runTime.write();
|
runTime.write();
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|||||||
@ -93,8 +93,8 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "Number of steps = " << runTime.timeIndex() << nl;
|
Info << "Number of steps = " << runTime.timeIndex() << endl;
|
||||||
Info<< "End\n" << endl;
|
Info << "End" << nl << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso BCs
|
wclean libso BCs
|
||||||
wclean
|
wclean
|
||||||
|
|||||||
@ -1,12 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(
|
(wmake $targetType BCs && wmake $targetType && wmake $targetType rhoCentralDyMFoam)
|
||||||
wmake $targetType BCs \
|
|
||||||
&& wmake $targetType \
|
|
||||||
&& wmake $targetType rhoCentralDyMFoam \
|
|
||||||
)
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -47,3 +47,4 @@
|
|||||||
|
|
||||||
rho.writeMinMax(Info);
|
rho.writeMinMax(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1 @@
|
|||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
|
|
||||||
bool adjustFringe
|
|
||||||
(
|
|
||||||
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
|
||||||
);
|
|
||||||
|
|||||||
@ -80,3 +80,7 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
|||||||
|
|
||||||
#include "createInterpolatedCells.H"
|
#include "createInterpolatedCells.H"
|
||||||
|
|
||||||
|
bool adjustFringe
|
||||||
|
(
|
||||||
|
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
||||||
|
);
|
||||||
|
|||||||
@ -63,3 +63,4 @@ edgeScalarField phis
|
|||||||
),
|
),
|
||||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -57,3 +57,4 @@ edgeScalarField phis
|
|||||||
),
|
),
|
||||||
linearEdgeInterpolate(Us) & aMesh.Le()
|
linearEdgeInterpolate(Us) & aMesh.Le()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||||
bool compressible = (compressibility.value() > SMALL);
|
bool compressible = (compressibility.value() > SMALL);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
|
||||||
bool compressible = (compressibility.value() > SMALL);
|
bool compressible = (compressibility.value() > SMALL);
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
chtMultiRegionSimpleFoam.C
|
chtMultiRegionSimpleFoam.C
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
|
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
|
||||||
|
|
||||||
|
|||||||
@ -14,9 +14,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
@ -30,8 +28,4 @@ EXE_LIBS = \
|
|||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lfvOptions \
|
-lregionModels
|
||||||
-lfaOptions \
|
|
||||||
-lregionModels \
|
|
||||||
-lsampling \
|
|
||||||
-lregionFaModels
|
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
phaseSystem = $(LIB_SRC)/phaseSystemModels/reactingEuler
|
|
||||||
|
|
||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(FOAM_SOLVERS)/multiphase/reactingTwoPhaseEulerFoam \
|
-I$(FOAM_SOLVERS)/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam \
|
||||||
-I${phaseSystem}/twoPhaseSystem/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/lnInclude \
|
||||||
-I${phaseSystem}/twoPhaseCompressibleTurbulenceModels/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/lnInclude \
|
||||||
-I${phaseSystem}/multiphaseSystem/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/phaseSystems/lnInclude \
|
||||||
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/interfacialModels/lnInclude \
|
||||||
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/interfacialCompositionModels/lnInclude \
|
||||||
-I./fluid \
|
-I./fluid \
|
||||||
-I../solid \
|
-I../solid \
|
||||||
-I../fluid \
|
-I../fluid \
|
||||||
@ -23,17 +23,19 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
||||||
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lmeshTools \
|
|
||||||
-lsampling \
|
|
||||||
-lcompressibleTransportModels \
|
-lcompressibleTransportModels \
|
||||||
-lfluidThermophysicalModels \
|
-lfluidThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lsolidThermo \
|
-lsolidThermo \
|
||||||
|
-ltwoPhaseReactingTurbulenceModels \
|
||||||
|
-lmeshTools \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lreactingMultiphaseSystem \
|
-lsampling \
|
||||||
-lreactingTwoPhaseSystem \
|
-lreactingTwoPhaseSystem \
|
||||||
-ltwoPhaseReactingTurbulenceModels
|
-lreactingPhaseSystem
|
||||||
|
|
||||||
|
|||||||
@ -48,3 +48,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Info<< "Courant Number max: " << CoNum << endl;
|
Info<< "Courant Number max: " << CoNum << endl;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||||
forAll(cumulativeContErrIO, i)
|
forAll(cumulativeContErrIO, i)
|
||||||
{
|
{
|
||||||
const fvMesh& mesh = fluidRegions[i];
|
#include "setRegionFluidFields.H"
|
||||||
|
|
||||||
cumulativeContErrIO.set
|
cumulativeContErrIO.set
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
PtrList<uniformDimensionedScalarField> cumulativeContErrIO(fluidRegions.size());
|
||||||
forAll(cumulativeContErrIO, i)
|
forAll(cumulativeContErrIO, i)
|
||||||
{
|
{
|
||||||
const fvMesh& mesh = fluidRegions[i];
|
#include "setRegionFluidFields.H"
|
||||||
|
|
||||||
cumulativeContErrIO.set
|
cumulativeContErrIO.set
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
|
|||||||
@ -65,3 +65,4 @@
|
|||||||
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
||||||
|
|
||||||
const pressureControl& pressureControl = pressureControls[i];
|
const pressureControl& pressureControl = pressureControls[i];
|
||||||
|
|
||||||
|
|||||||
@ -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
|
// Compute all sensitivities
|
||||||
om.computeSensitivities();
|
om.computeSensitivities();
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -77,3 +77,4 @@ surfaceScalarField phiHbyA
|
|||||||
),
|
),
|
||||||
fvc::flux(U)
|
fvc::flux(U)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +1,11 @@
|
|||||||
volScalarField rAU(1.0/UEqn.A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(HbyA));
|
surfaceScalarField phiHbyA
|
||||||
|
(
|
||||||
if (pimple.ddtCorr())
|
"phiHbyA",
|
||||||
{
|
fvc::flux(HbyA)
|
||||||
phiHbyA += MRF.zeroFilter(fvc::interpolate(rAU)*fvc::ddtCorr(U, phi, Uf));
|
+ MRF.zeroFilter(fvc::interpolate(rAU)*fvc::ddtCorr(U, phi, Uf))
|
||||||
}
|
);
|
||||||
else
|
|
||||||
{
|
|
||||||
phiHbyA += MRF.zeroFilter(fvc::interpolate(rAU));
|
|
||||||
}
|
|
||||||
|
|
||||||
MRF.makeRelative(phiHbyA);
|
MRF.makeRelative(phiHbyA);
|
||||||
|
|
||||||
|
|||||||
@ -43,3 +43,4 @@ autoPtr<incompressible::turbulenceModel> turbulence
|
|||||||
);
|
);
|
||||||
|
|
||||||
#include "createMRF.H"
|
#include "createMRF.H"
|
||||||
|
|
||||||
|
|||||||
@ -1 +1,2 @@
|
|||||||
IOporosityModelList pZones(mesh);
|
IOporosityModelList pZones(mesh);
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso DPMTurbulenceModels
|
wclean libso DPMTurbulenceModels
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake $targetType DPMTurbulenceModels
|
wmake $targetType DPMTurbulenceModels
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017 OpenFOAM Foundation
|
Copyright (C) 2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -37,13 +36,13 @@ Description
|
|||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "dynamicFvMesh.H"
|
#include "dynamicFvMesh.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "DPMIncompressibleTurbulenceModel.H"
|
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
#include "CorrectPhi.H"
|
#include "CorrectPhi.H"
|
||||||
|
|
||||||
#ifdef MPPIC
|
#ifdef MPPIC
|
||||||
#include "basicKinematicCloud.H"
|
#include "basicKinematicMPPICCloud.H"
|
||||||
#define basicKinematicTypeCloud basicKinematicCloud
|
#define basicKinematicTypeCloud basicKinematicMPPICCloud
|
||||||
#else
|
#else
|
||||||
#include "basicKinematicCollidingCloud.H"
|
#include "basicKinematicCollidingCloud.H"
|
||||||
#define basicKinematicTypeCloud basicKinematicCollidingCloud
|
#define basicKinematicTypeCloud basicKinematicCollidingCloud
|
||||||
@ -111,6 +110,7 @@ int main(int argc, char *argv[])
|
|||||||
continuousPhaseTransport.correct();
|
continuousPhaseTransport.correct();
|
||||||
muc = rhoc*continuousPhaseTransport.nu();
|
muc = rhoc*continuousPhaseTransport.nu();
|
||||||
|
|
||||||
|
Info<< "Evolving " << kinematicCloud.name() << endl;
|
||||||
kinematicCloud.evolve();
|
kinematicCloud.evolve();
|
||||||
|
|
||||||
// Update continuous phase volume fraction field
|
// Update continuous phase volume fraction field
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../.. \
|
-I../.. \
|
||||||
-I../../DPMTurbulenceModels \
|
-I../DPMTurbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../DPMTurbulenceModels \
|
-I../DPMTurbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2013-2016 OpenFOAM Foundation
|
Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -39,12 +38,12 @@ Description
|
|||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "DPMIncompressibleTurbulenceModel.H"
|
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
|
|
||||||
#ifdef MPPIC
|
#ifdef MPPIC
|
||||||
#include "basicKinematicCloud.H"
|
#include "basicKinematicMPPICCloud.H"
|
||||||
#define basicKinematicTypeCloud basicKinematicCloud
|
#define basicKinematicTypeCloud basicKinematicMPPICCloud
|
||||||
#else
|
#else
|
||||||
#include "basicKinematicCollidingCloud.H"
|
#include "basicKinematicCollidingCloud.H"
|
||||||
#define basicKinematicTypeCloud basicKinematicCollidingCloud
|
#define basicKinematicTypeCloud basicKinematicCollidingCloud
|
||||||
@ -118,12 +117,6 @@ int main(int argc, char *argv[])
|
|||||||
cloudVolSUSu.correctBoundaryConditions();
|
cloudVolSUSu.correctBoundaryConditions();
|
||||||
cloudSU.source() = Zero;
|
cloudSU.source() = Zero;
|
||||||
|
|
||||||
// cloudVolSUSu.primitiveFieldRef() =
|
|
||||||
// (cloudSU.diag()*Uc() - cloudSU.source())/mesh.V();
|
|
||||||
// cloudVolSUSu.correctBoundaryConditions();
|
|
||||||
// cloudSU.source() = cloudSU.diag()*Uc();
|
|
||||||
|
|
||||||
|
|
||||||
// --- Pressure-velocity PIMPLE corrector loop
|
// --- Pressure-velocity PIMPLE corrector loop
|
||||||
while (pimple.loop())
|
while (pimple.loop())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,186 +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/>.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "DPMIncompressibleTurbulenceModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::
|
|
||||||
DPMIncompressibleTurbulenceModel
|
|
||||||
(
|
|
||||||
const word& type,
|
|
||||||
const volScalarField& alpha,
|
|
||||||
const geometricOneField& rho,
|
|
||||||
const volVectorField& U,
|
|
||||||
const surfaceScalarField& alphaRhoPhi,
|
|
||||||
const surfaceScalarField& phi,
|
|
||||||
const TransportModel& transportModel,
|
|
||||||
const word& propertiesName
|
|
||||||
)
|
|
||||||
:
|
|
||||||
TurbulenceModel
|
|
||||||
<
|
|
||||||
volScalarField,
|
|
||||||
geometricOneField,
|
|
||||||
incompressibleTurbulenceModel,
|
|
||||||
TransportModel
|
|
||||||
>
|
|
||||||
(
|
|
||||||
alpha,
|
|
||||||
rho,
|
|
||||||
U,
|
|
||||||
alphaRhoPhi,
|
|
||||||
phi,
|
|
||||||
transportModel,
|
|
||||||
propertiesName
|
|
||||||
)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::autoPtr<Foam::DPMIncompressibleTurbulenceModel<TransportModel>>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::New
|
|
||||||
(
|
|
||||||
const volScalarField& alpha,
|
|
||||||
const volVectorField& U,
|
|
||||||
const surfaceScalarField& alphaRhoPhi,
|
|
||||||
const surfaceScalarField& phi,
|
|
||||||
const TransportModel& transportModel,
|
|
||||||
const word& propertiesName
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return autoPtr<DPMIncompressibleTurbulenceModel>
|
|
||||||
(
|
|
||||||
static_cast<DPMIncompressibleTurbulenceModel*>(
|
|
||||||
TurbulenceModel
|
|
||||||
<
|
|
||||||
volScalarField,
|
|
||||||
geometricOneField,
|
|
||||||
incompressibleTurbulenceModel,
|
|
||||||
TransportModel
|
|
||||||
>::New
|
|
||||||
(
|
|
||||||
alpha,
|
|
||||||
geometricOneField(),
|
|
||||||
U,
|
|
||||||
alphaRhoPhi,
|
|
||||||
phi,
|
|
||||||
transportModel,
|
|
||||||
propertiesName
|
|
||||||
).ptr())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::pPrime() const
|
|
||||||
{
|
|
||||||
return tmp<volScalarField>::New
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
IOobject::groupName("pPrime", this->alphaRhoPhi_.group()),
|
|
||||||
this->runTime_.timeName(),
|
|
||||||
this->mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
this->mesh_,
|
|
||||||
dimensionedScalar(dimPressure, Zero)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::surfaceScalarField>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::pPrimef() const
|
|
||||||
{
|
|
||||||
return tmp<surfaceScalarField>::New
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
IOobject::groupName("pPrimef", this->alphaRhoPhi_.group()),
|
|
||||||
this->runTime_.timeName(),
|
|
||||||
this->mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
this->mesh_,
|
|
||||||
dimensionedScalar(dimPressure, Zero)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::volSymmTensorField>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devReff() const
|
|
||||||
{
|
|
||||||
return devRhoReff();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::fvVectorMatrix>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevReff
|
|
||||||
(
|
|
||||||
volVectorField& U
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return divDevRhoReff(U);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::volSymmTensorField>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devRhoReff() const
|
|
||||||
{
|
|
||||||
NotImplemented;
|
|
||||||
|
|
||||||
return devReff();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
Foam::tmp<Foam::fvVectorMatrix>
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevRhoReff
|
|
||||||
(
|
|
||||||
volVectorField& U
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
NotImplemented;
|
|
||||||
|
|
||||||
return divDevReff(U);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,144 +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/>.
|
|
||||||
|
|
||||||
Class
|
|
||||||
Foam::DPMIncompressibleTurbulenceModel
|
|
||||||
|
|
||||||
Description
|
|
||||||
Templated abstract base class for volumen occupancy incompressible
|
|
||||||
turbulence models.
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
DPMIncompressibleTurbulenceModel.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef DPMIncompressibleTurbulenceModel_H
|
|
||||||
#define DPMIncompressibleTurbulenceModel_H
|
|
||||||
|
|
||||||
#include "TurbulenceModel.H"
|
|
||||||
#include "incompressibleTurbulenceModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
Class DPMIncompressibleTurbulenceModel Declaration
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
template<class TransportModel>
|
|
||||||
class DPMIncompressibleTurbulenceModel
|
|
||||||
:
|
|
||||||
public TurbulenceModel
|
|
||||||
<
|
|
||||||
volScalarField,
|
|
||||||
geometricOneField,
|
|
||||||
incompressibleTurbulenceModel,
|
|
||||||
TransportModel
|
|
||||||
>
|
|
||||||
{
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef volScalarField alphaField;
|
|
||||||
typedef geometricOneField rhoField;
|
|
||||||
typedef TransportModel transportModel;
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
|
||||||
|
|
||||||
//- Construct
|
|
||||||
DPMIncompressibleTurbulenceModel
|
|
||||||
(
|
|
||||||
const word& type,
|
|
||||||
const alphaField& alpha,
|
|
||||||
const geometricOneField& rho,
|
|
||||||
const volVectorField& U,
|
|
||||||
const surfaceScalarField& alphaRhoPhi,
|
|
||||||
const surfaceScalarField& phi,
|
|
||||||
const TransportModel& transportModel,
|
|
||||||
const word& propertiesName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// Selectors
|
|
||||||
|
|
||||||
//- Return a reference to the selected turbulence model
|
|
||||||
static autoPtr<DPMIncompressibleTurbulenceModel> New
|
|
||||||
(
|
|
||||||
const alphaField& alpha,
|
|
||||||
const volVectorField& U,
|
|
||||||
const surfaceScalarField& alphaRhoPhi,
|
|
||||||
const surfaceScalarField& phi,
|
|
||||||
const TransportModel& transportModel,
|
|
||||||
const word& propertiesName = turbulenceModel::propertiesName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
//- Destructor
|
|
||||||
virtual ~DPMIncompressibleTurbulenceModel() = default;
|
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
|
||||||
|
|
||||||
//- Return the phase-pressure'
|
|
||||||
// (derivative of phase-pressure w.r.t. phase-fraction)
|
|
||||||
virtual tmp<volScalarField> pPrime() const;
|
|
||||||
|
|
||||||
//- Return the face-phase-pressure'
|
|
||||||
// (derivative of phase-pressure w.r.t. phase-fraction)
|
|
||||||
virtual tmp<surfaceScalarField> pPrimef() const;
|
|
||||||
|
|
||||||
//- Return the effective stress tensor
|
|
||||||
virtual tmp<volSymmTensorField> devReff() const;
|
|
||||||
|
|
||||||
//- Return the source term for the momentum equation
|
|
||||||
virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
|
|
||||||
|
|
||||||
//- Return the effective stress tensor
|
|
||||||
virtual tmp<volSymmTensorField> devRhoReff() const;
|
|
||||||
|
|
||||||
//- Return the source term for the momentum equation
|
|
||||||
virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#ifdef NoRepository
|
|
||||||
#include "DPMIncompressibleTurbulenceModel.C"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -25,7 +25,7 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "DPMIncompressibleTurbulenceModel.H"
|
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
#include "makeTurbulenceModel.H"
|
#include "makeTurbulenceModel.H"
|
||||||
@ -36,12 +36,12 @@ License
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
defineTurbulenceModelTypes
|
makeTurbulenceModelTypes
|
||||||
(
|
(
|
||||||
volScalarField,
|
volScalarField,
|
||||||
geometricOneField,
|
geometricOneField,
|
||||||
incompressibleTurbulenceModel,
|
incompressibleTurbulenceModel,
|
||||||
DPMIncompressibleTurbulenceModel,
|
PhaseIncompressibleTurbulenceModel,
|
||||||
singlePhaseTransportModel
|
singlePhaseTransportModel
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -50,21 +50,21 @@ makeBaseTurbulenceModel
|
|||||||
volScalarField,
|
volScalarField,
|
||||||
geometricOneField,
|
geometricOneField,
|
||||||
incompressibleTurbulenceModel,
|
incompressibleTurbulenceModel,
|
||||||
DPMIncompressibleTurbulenceModel,
|
PhaseIncompressibleTurbulenceModel,
|
||||||
singlePhaseTransportModel
|
singlePhaseTransportModel
|
||||||
);
|
);
|
||||||
|
|
||||||
#define makeLaminarModel(Type) \
|
#define makeLaminarModel(Type) \
|
||||||
makeTemplatedTurbulenceModel \
|
makeTemplatedTurbulenceModel \
|
||||||
(singlePhaseTransportModelDPMIncompressibleTurbulenceModel, laminar, Type)
|
(singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, laminar, Type)
|
||||||
|
|
||||||
#define makeRASModel(Type) \
|
#define makeRASModel(Type) \
|
||||||
makeTemplatedTurbulenceModel \
|
makeTemplatedTurbulenceModel \
|
||||||
(singlePhaseTransportModelDPMIncompressibleTurbulenceModel, RAS, Type)
|
(singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, RAS, Type)
|
||||||
|
|
||||||
#define makeLESModel(Type) \
|
#define makeLESModel(Type) \
|
||||||
makeTemplatedTurbulenceModel \
|
makeTemplatedTurbulenceModel \
|
||||||
(singlePhaseTransportModelDPMIncompressibleTurbulenceModel, LES, Type)
|
(singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, LES, Type)
|
||||||
|
|
||||||
#include "Stokes.H"
|
#include "Stokes.H"
|
||||||
makeLaminarModel(Stokes);
|
makeLaminarModel(Stokes);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../DPMTurbulenceModels \
|
-I../DPMTurbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I./DPMTurbulenceModels \
|
-I./DPMTurbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
@ -13,6 +13,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||||
|
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude
|
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude
|
||||||
|
|
||||||
|
|||||||
@ -160,11 +160,10 @@ surfaceScalarField alphaPhic
|
|||||||
alphacf*phic
|
alphacf*phic
|
||||||
);
|
);
|
||||||
|
|
||||||
|
autoPtr<PhaseIncompressibleTurbulenceModel<singlePhaseTransportModel>>
|
||||||
autoPtr<DPMIncompressibleTurbulenceModel<singlePhaseTransportModel>>
|
|
||||||
continuousPhaseTurbulence
|
continuousPhaseTurbulence
|
||||||
(
|
(
|
||||||
DPMIncompressibleTurbulenceModel<singlePhaseTransportModel>::New
|
PhaseIncompressibleTurbulenceModel<singlePhaseTransportModel>::New
|
||||||
(
|
(
|
||||||
alphac,
|
alphac,
|
||||||
Uc,
|
Uc,
|
||||||
|
|||||||
@ -1,4 +1 @@
|
|||||||
const volScalarField& T = thermo.T();
|
|
||||||
const volScalarField& psi = thermo.psi();
|
|
||||||
|
|
||||||
const label inertIndex(composition.species()[inertSpecie]);
|
const label inertIndex(composition.species()[inertSpecie]);
|
||||||
|
|||||||
@ -22,6 +22,8 @@ if (!composition.species().found(inertSpecie))
|
|||||||
}
|
}
|
||||||
|
|
||||||
volScalarField& p = thermo.p();
|
volScalarField& p = thermo.p();
|
||||||
|
const volScalarField& T = thermo.T();
|
||||||
|
const volScalarField& psi = thermo.psi();
|
||||||
|
|
||||||
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
|
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,6 @@ EXE_INC = \
|
|||||||
-I../reactingParcelFoam \
|
-I../reactingParcelFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
|
||||||
-I${LIB_SRC}/sampling/lnInclude \
|
-I${LIB_SRC}/sampling/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
@ -29,8 +27,6 @@ EXE_LIBS = \
|
|||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lfvOptions \
|
-lfvOptions \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-ldynamicMesh \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-lsampling \
|
-lsampling \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
|
|||||||
@ -25,3 +25,4 @@ fvMesh filmMesh
|
|||||||
IOobject::MUST_READ
|
IOobject::MUST_READ
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -2,3 +2,4 @@ bool solvePrimaryRegion
|
|||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("solvePrimaryRegion", true)
|
pimple.dict().getOrDefault("solvePrimaryRegion", true)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -81,15 +81,7 @@ else if (pimple.SIMPLErho())
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Correct rhoUf if the mesh is moving
|
|
||||||
fvc::correctRhoUf(rhoUf, rho, U, phi);
|
|
||||||
|
|
||||||
if (thermo.dpdt())
|
if (thermo.dpdt())
|
||||||
{
|
{
|
||||||
dpdt = fvc::ddt(p);
|
dpdt = fvc::ddt(p);
|
||||||
|
|
||||||
if (mesh.moving())
|
|
||||||
{
|
|
||||||
dpdt -= fvc::div(fvc::meshPhi(rho, U), p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,6 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/sampling/lnInclude \
|
-I${LIB_SRC}/sampling/lnInclude \
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
|
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
|
||||||
@ -30,8 +28,6 @@ EXE_LIBS = \
|
|||||||
-lfvOptions \
|
-lfvOptions \
|
||||||
-lsampling \
|
-lsampling \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-ldynamicMesh \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lcompressibleTurbulenceModels \
|
-lcompressibleTurbulenceModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2020 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
Copyright (C) 2018-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -37,8 +37,8 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "dynamicFvMesh.H"
|
|
||||||
#include "turbulentFluidThermoModel.H"
|
#include "turbulentFluidThermoModel.H"
|
||||||
|
|
||||||
#include "surfaceFilmModel.H"
|
#include "surfaceFilmModel.H"
|
||||||
#include "rhoReactionThermo.H"
|
#include "rhoReactionThermo.H"
|
||||||
#include "CombustionModel.H"
|
#include "CombustionModel.H"
|
||||||
@ -47,7 +47,6 @@ Description
|
|||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
#include "pressureControl.H"
|
#include "pressureControl.H"
|
||||||
#include "CorrectPhi.H"
|
|
||||||
#include "localEulerDdtScheme.H"
|
#include "localEulerDdtScheme.H"
|
||||||
#include "fvcSmooth.H"
|
#include "fvcSmooth.H"
|
||||||
#include "cloudMacros.H"
|
#include "cloudMacros.H"
|
||||||
@ -77,13 +76,13 @@ int main(int argc, char *argv[])
|
|||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createDynamicFvMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createDyMControls.H"
|
#include "createControl.H"
|
||||||
|
#include "createTimeControls.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createFieldRefs.H"
|
#include "createFieldRefs.H"
|
||||||
#include "createRegionControls.H"
|
#include "createRegionControls.H"
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
#include "createRhoUfIfPresent.H"
|
|
||||||
|
|
||||||
turbulence->validate();
|
turbulence->validate();
|
||||||
|
|
||||||
@ -99,23 +98,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
#include "readDyMControls.H"
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
// Store divrhoU from the previous mesh
|
|
||||||
// so that it can be mapped and used in correctPhi
|
|
||||||
// to ensure the corrected phi has the same divergence
|
|
||||||
autoPtr<volScalarField> divrhoU;
|
|
||||||
if (solvePrimaryRegion && correctPhi)
|
|
||||||
{
|
|
||||||
divrhoU.reset
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
"divrhoU",
|
|
||||||
fvc::div(fvc::absolute(phi, rho, U))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LTS)
|
if (LTS)
|
||||||
{
|
{
|
||||||
@ -131,44 +114,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
// Store momentum to set rhoUf for introduced faces.
|
|
||||||
autoPtr<volVectorField> rhoU;
|
|
||||||
if (solvePrimaryRegion && rhoUf.valid())
|
|
||||||
{
|
|
||||||
rhoU.reset(new volVectorField("rhoU", rho*U));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store the particle positions
|
|
||||||
parcels.storeGlobalPositions();
|
|
||||||
|
|
||||||
// Do any mesh changes
|
|
||||||
mesh.update();
|
|
||||||
|
|
||||||
if (solvePrimaryRegion && mesh.changing())
|
|
||||||
{
|
|
||||||
gh = (g & mesh.C()) - ghRef;
|
|
||||||
ghf = (g & mesh.Cf()) - ghRef;
|
|
||||||
|
|
||||||
MRF.update();
|
|
||||||
|
|
||||||
if (correctPhi)
|
|
||||||
{
|
|
||||||
// Calculate absolute flux
|
|
||||||
// from the mapped surface velocity
|
|
||||||
phi = mesh.Sf() & rhoUf();
|
|
||||||
|
|
||||||
#include "../../compressible/rhoPimpleFoam/correctPhi.H"
|
|
||||||
|
|
||||||
// Make the fluxes relative to the mesh-motion
|
|
||||||
fvc::makeRelative(phi, rho, U);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (checkMeshCourantNo)
|
|
||||||
{
|
|
||||||
#include "meshCourantNo.H"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
parcels.evolve();
|
parcels.evolve();
|
||||||
surfaceFilm.evolve();
|
surfaceFilm.evolve();
|
||||||
|
|
||||||
@ -206,7 +151,7 @@ int main(int argc, char *argv[])
|
|||||||
runTime.printExecutionTime(Info);
|
runTime.printExecutionTime(Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,7 +103,7 @@ License
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the boundary values of the reciprocal time-step
|
// Update tho boundary values of the reciprocal time-step
|
||||||
rDeltaT.correctBoundaryConditions();
|
rDeltaT.correctBoundaryConditions();
|
||||||
|
|
||||||
// Spatially smooth the time scale field
|
// Spatially smooth the time scale field
|
||||||
|
|||||||
@ -98,7 +98,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -122,7 +121,9 @@ int main(int argc, char *argv[])
|
|||||||
combustion->Qdot()().write();
|
combustion->Qdot()().write();
|
||||||
}
|
}
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso compressibleTwoPhaseMixtureTurbulenceModels
|
wclean libso CompressibleTwoPhaseMixtureTurbulenceModels
|
||||||
wclean
|
wclean
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake $targetType compressibleTwoPhaseMixtureTurbulenceModels
|
wmake $targetType CompressibleTwoPhaseMixtureTurbulenceModels
|
||||||
wmake $targetType
|
wmake $targetType
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -33,9 +33,7 @@ License
|
|||||||
#include "turbulentTransportModel.H"
|
#include "turbulentTransportModel.H"
|
||||||
#include "LESModel.H"
|
#include "LESModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
makeTurbulenceModelTypes
|
||||||
|
|
||||||
defineTurbulenceModelTypes
|
|
||||||
(
|
(
|
||||||
volScalarField,
|
volScalarField,
|
||||||
geometricOneField,
|
geometricOneField,
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
CompressibleTwoPhaseMixtureTurbulenceModels.C
|
||||||
|
|
||||||
|
LIB = $(FOAM_LIBBIN)/libCompressibleTwoPhaseMixtureTurbulenceModels
|
||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -52,7 +52,7 @@ Description
|
|||||||
#include "CorrectPhi.H"
|
#include "CorrectPhi.H"
|
||||||
#include "fvcSmooth.H"
|
#include "fvcSmooth.H"
|
||||||
|
|
||||||
#include "basicKinematicCloud.H"
|
#include "basicKinematicMPPICCloud.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
|
interFoamPath = $(FOAM_SOLVERS)/multiphase/interFoam
|
||||||
|
|
||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I../VoF \
|
-I../VoF \
|
||||||
-I$(FOAM_SOLVERS)/multiphase/interFoam \
|
-I./IncompressibleTwoPhaseMixtureTurbulenceModels/lnInclude \
|
||||||
|
-I$(interFoamPath) \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
@ -37,4 +40,4 @@ EXE_LIBS = \
|
|||||||
-lsampling \
|
-lsampling \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lsurfaceFilmModels \
|
-lsurfaceFilmModels \
|
||||||
-lcompressibleTwoPhaseMixtureTurbulenceModels
|
-lCompressibleTwoPhaseMixtureTurbulenceModels
|
||||||
|
|||||||
@ -40,3 +40,4 @@ else
|
|||||||
|
|
||||||
rho == alpha1*rho1 + alpha2*rho2;
|
rho == alpha1*rho1 + alpha2*rho2;
|
||||||
mu = mixture.mu();
|
mu = mixture.mu();
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
compressibleTwoPhaseMixtureTurbulenceModels.C
|
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libcompressibleTwoPhaseMixtureTurbulenceModels
|
|
||||||
@ -147,7 +147,7 @@ volScalarField alphacRho(alphac*rho);
|
|||||||
alphacRho.oldTime();
|
alphacRho.oldTime();
|
||||||
|
|
||||||
Info<< "Constructing kinematicCloud " << endl;
|
Info<< "Constructing kinematicCloud " << endl;
|
||||||
basicKinematicCloud kinematicCloud
|
basicKinematicMPPICCloud kinematicCloud
|
||||||
(
|
(
|
||||||
"kinematicCloud",
|
"kinematicCloud",
|
||||||
rho,
|
rho,
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso twoPhaseMixtureThermo
|
wclean libso twoPhaseMixtureThermo
|
||||||
wclean libso surfaceTensionModels
|
wclean libso surfaceTensionModels
|
||||||
@ -9,6 +8,5 @@ wclean libso VoFphaseCompressibleTurbulenceModels
|
|||||||
wclean
|
wclean
|
||||||
wclean compressibleInterDyMFoam
|
wclean compressibleInterDyMFoam
|
||||||
wclean compressibleInterFilmFoam
|
wclean compressibleInterFilmFoam
|
||||||
wclean compressibleInterIsoFoam
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake $targetType twoPhaseMixtureThermo
|
wmake $targetType twoPhaseMixtureThermo
|
||||||
@ -10,6 +11,5 @@ wmake $targetType VoFphaseCompressibleTurbulenceModels
|
|||||||
wmake $targetType
|
wmake $targetType
|
||||||
wmake $targetType compressibleInterDyMFoam
|
wmake $targetType compressibleInterDyMFoam
|
||||||
wmake $targetType compressibleInterFilmFoam
|
wmake $targetType compressibleInterFilmFoam
|
||||||
wmake $targetType compressibleInterIsoFoam
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
fvm::ddt(rho, T) + fvm::div(rhoPhi, T) - fvm::Sp(contErr, T)
|
fvm::ddt(rho, T) + fvm::div(rhoPhi, T) - fvm::Sp(contErr, T)
|
||||||
- fvm::laplacian(turbulence.alphaEff(), T)
|
- fvm::laplacian(turbulence.alphaEff(), T)
|
||||||
+ (
|
+ (
|
||||||
divUp()// - contErr/rho*p
|
divUp - contErr/rho*p
|
||||||
+ (fvc::ddt(rho, K) + fvc::div(rhoPhi, K))() - contErr*K
|
+ (fvc::ddt(rho, K) + fvc::div(rhoPhi, K))() - contErr*K
|
||||||
)
|
)
|
||||||
*(
|
*(
|
||||||
|
|||||||
@ -39,7 +39,7 @@ License
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
defineTurbulenceModelTypes
|
makeTurbulenceModelTypes
|
||||||
(
|
(
|
||||||
volScalarField,
|
volScalarField,
|
||||||
volScalarField,
|
volScalarField,
|
||||||
@ -71,38 +71,22 @@ makeBaseTurbulenceModel
|
|||||||
makeTemplatedTurbulenceModel \
|
makeTemplatedTurbulenceModel \
|
||||||
(fluidThermoPhaseCompressibleTurbulenceModel, LES, Type)
|
(fluidThermoPhaseCompressibleTurbulenceModel, LES, Type)
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
// Laminar models
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
|
|
||||||
#include "Stokes.H"
|
#include "Stokes.H"
|
||||||
makeLaminarModel(Stokes);
|
makeLaminarModel(Stokes);
|
||||||
|
|
||||||
#include "Maxwell.H"
|
#include "Maxwell.H"
|
||||||
makeLaminarModel(Maxwell);
|
makeLaminarModel(Maxwell);
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
// RAS models
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
|
|
||||||
#include "kEpsilon.H"
|
#include "kEpsilon.H"
|
||||||
makeRASModel(kEpsilon);
|
makeRASModel(kEpsilon);
|
||||||
|
|
||||||
#include "kOmegaSST.H"
|
#include "kOmegaSST.H"
|
||||||
makeRASModel(kOmegaSST);
|
makeRASModel(kOmegaSST);
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
// LES models
|
|
||||||
// -------------------------------------------------------------------------- //
|
|
||||||
|
|
||||||
#include "Smagorinsky.H"
|
#include "Smagorinsky.H"
|
||||||
makeLESModel(Smagorinsky);
|
makeLESModel(Smagorinsky);
|
||||||
|
|
||||||
#include "kEqn.H"
|
#include "kEqn.H"
|
||||||
makeLESModel(kEqn);
|
makeLESModel(kEqn);
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
compressibleInterIsoFoam.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/compressibleInterIsoFoam
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
EXE_INC = \
|
|
||||||
-I.. \
|
|
||||||
-I../../VoF \
|
|
||||||
-I../twoPhaseMixtureThermo \
|
|
||||||
-I../VoFphaseCompressibleTurbulenceModels \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
|
||||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
|
||||||
-I$(LIB_SRC)/surfMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/geometricVoF/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lsurfMesh \
|
|
||||||
-lmeshTools \
|
|
||||||
-ldynamicMesh \
|
|
||||||
-ldynamicFvMesh \
|
|
||||||
-ltwoPhaseMixtureThermo \
|
|
||||||
-ltwoPhaseSurfaceTension \
|
|
||||||
-lcompressibleTransportModels \
|
|
||||||
-lfluidThermophysicalModels \
|
|
||||||
-lspecie \
|
|
||||||
-ltwoPhaseMixture \
|
|
||||||
-ltwoPhaseProperties \
|
|
||||||
-linterfaceProperties \
|
|
||||||
-lturbulenceModels \
|
|
||||||
-lcompressibleTurbulenceModels \
|
|
||||||
-lVoFphaseCompressibleTurbulenceModels \
|
|
||||||
-lgeometricVoF
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
const dictionary& alphaControls = mesh.solverDict(alpha1.name());
|
|
||||||
|
|
||||||
label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
// Update alpha1
|
|
||||||
#include "alphaSuSp.H"
|
|
||||||
advector.advect(Sp,(Su + divU*min(alpha1(), scalar(1)))());
|
|
||||||
|
|
||||||
// Update rhoPhi
|
|
||||||
rhoPhi = advector.getRhoPhi(rho1, rho2);
|
|
||||||
alphaPhi10 = advector.alphaPhi();
|
|
||||||
|
|
||||||
alpha2 = 1.0 - alpha1;
|
|
||||||
|
|
||||||
Info<< "Phase-1 volume fraction = "
|
|
||||||
<< alpha1.weightedAverage(mesh.Vsc()).value()
|
|
||||||
<< " Min(" << alpha1.name() << ") = " << min(alpha1).value()
|
|
||||||
<< " Max(" << alpha1.name() << ") - 1 = " << max(alpha1).value() - 1
|
|
||||||
<< endl;
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
volScalarField::Internal Sp
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"Sp",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(dgdt.dimensions(), Zero)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField::Internal Su
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"Su",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(dgdt.dimensions(), Zero)
|
|
||||||
);
|
|
||||||
|
|
||||||
forAll(dgdt, celli)
|
|
||||||
{
|
|
||||||
if (dgdt[celli] > 0.0)
|
|
||||||
{
|
|
||||||
Sp[celli] -= dgdt[celli]/max(1.0 - alpha1[celli], 1e-4);
|
|
||||||
Su[celli] += dgdt[celli]/max(1.0 - alpha1[celli], 1e-4);
|
|
||||||
}
|
|
||||||
else if (dgdt[celli] < 0.0)
|
|
||||||
{
|
|
||||||
Sp[celli] += dgdt[celli]/max(alpha1[celli], 1e-4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField::Internal divU
|
|
||||||
(
|
|
||||||
mesh.moving()
|
|
||||||
? fvc::div(phi + mesh.phi())
|
|
||||||
: fvc::div(phi)
|
|
||||||
);
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
if (pimple.nCorrPIMPLE() > 1)
|
|
||||||
{
|
|
||||||
if (!pimple.firstIter())
|
|
||||||
{
|
|
||||||
// Resetting alpha1 to value before advection in first PIMPLE
|
|
||||||
// iteration.
|
|
||||||
alpha1 = alpha1.oldTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tmp<surfaceScalarField> talphaPhi1(alphaPhi10);
|
|
||||||
|
|
||||||
if (nAlphaSubCycles > 1)
|
|
||||||
{
|
|
||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
|
||||||
|
|
||||||
talphaPhi1 = new surfaceScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"alphaPhi1",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
|
||||||
);
|
|
||||||
|
|
||||||
surfaceScalarField rhoPhiSum
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
|
||||||
);
|
|
||||||
|
|
||||||
for
|
|
||||||
(
|
|
||||||
subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
|
|
||||||
!(++alphaSubCycle).end();
|
|
||||||
)
|
|
||||||
{
|
|
||||||
#include "alphaEqn.H"
|
|
||||||
talphaPhi1.ref() += (runTime.deltaT()/totalDeltaT)*alphaPhi10;
|
|
||||||
rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
|
|
||||||
}
|
|
||||||
|
|
||||||
rhoPhi = rhoPhiSum;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#include "alphaEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
rho == alpha1*rho1 + alpha2*rho2;
|
|
||||||
|
|
||||||
const surfaceScalarField& alphaPhi1 = talphaPhi1();
|
|
||||||
surfaceScalarField alphaPhi2("alphaPhi2", phi - alphaPhi1);
|
|
||||||
|
|
||||||
volScalarField::Internal contErr
|
|
||||||
(
|
|
||||||
(
|
|
||||||
fvc::ddt(rho) + fvc::div(rhoPhi)
|
|
||||||
- (fvOptions(alpha1, mixture.thermo1().rho())&rho1)
|
|
||||||
- (fvOptions(alpha2, mixture.thermo2().rho())&rho2)
|
|
||||||
)()
|
|
||||||
);
|
|
||||||
@ -1,203 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | www.openfoam.com
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
Copyright (C) 2020 Johan Roenby
|
|
||||||
Copyright (C) 2020 DLR
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
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
|
|
||||||
compressibleInterFlow
|
|
||||||
|
|
||||||
Description
|
|
||||||
Solver derived from interFoam for two compressible, immiscible
|
|
||||||
fluids using the isoAdvector phase-fraction based interface capturing
|
|
||||||
approach, with optional mesh motion and mesh topology changes including
|
|
||||||
adaptive re-meshing.
|
|
||||||
|
|
||||||
Reference:
|
|
||||||
\verbatim
|
|
||||||
Roenby, J., Bredmose, H. and Jasak, H. (2016).
|
|
||||||
A computational method for sharp interface advection
|
|
||||||
Royal Society Open Science, 3
|
|
||||||
doi 10.1098/rsos.160405
|
|
||||||
\endverbatim
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "fvCFD.H"
|
|
||||||
#include "dynamicFvMesh.H"
|
|
||||||
#include "CMULES.H"
|
|
||||||
#include "EulerDdtScheme.H"
|
|
||||||
#include "localEulerDdtScheme.H"
|
|
||||||
#include "CrankNicolsonDdtScheme.H"
|
|
||||||
#include "subCycle.H"
|
|
||||||
#include "compressibleInterPhaseTransportModel.H"
|
|
||||||
#include "pimpleControl.H"
|
|
||||||
#include "fvOptions.H"
|
|
||||||
#include "CorrectPhi.H"
|
|
||||||
#include "fvcSmooth.H"
|
|
||||||
#include "dynamicRefineFvMesh.H"
|
|
||||||
#include "isoAdvection.H"
|
|
||||||
#include "twoPhaseMixtureThermo.H"
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
argList::addNote
|
|
||||||
(
|
|
||||||
"Solver for two compressible, non-isothermal immiscible fluids"
|
|
||||||
" using VOF phase-fraction based interface capturing.\n"
|
|
||||||
"With optional mesh motion and mesh topology changes including"
|
|
||||||
" adaptive re-meshing."
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "postProcess.H"
|
|
||||||
|
|
||||||
#include "setRootCaseLists.H"
|
|
||||||
#include "createTime.H"
|
|
||||||
#include "createDynamicFvMesh.H"
|
|
||||||
#include "initContinuityErrs.H"
|
|
||||||
#include "createDyMControls.H"
|
|
||||||
#include "createFields.H"
|
|
||||||
#include "createUf.H"
|
|
||||||
#include "CourantNo.H"
|
|
||||||
#include "setInitialDeltaT.H"
|
|
||||||
|
|
||||||
volScalarField& p = mixture.p();
|
|
||||||
volScalarField& T = mixture.T();
|
|
||||||
const volScalarField& psi1 = mixture.thermo1().psi();
|
|
||||||
const volScalarField& psi2 = mixture.thermo2().psi();
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
|
||||||
|
|
||||||
while (runTime.run())
|
|
||||||
{
|
|
||||||
#include "readDyMControls.H"
|
|
||||||
|
|
||||||
// Store divU and divUp from the previous mesh so that it can be mapped
|
|
||||||
// and used in correctPhi to ensure the corrected phi has the
|
|
||||||
// same divergence
|
|
||||||
volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U)));
|
|
||||||
|
|
||||||
#include "CourantNo.H"
|
|
||||||
#include "alphaCourantNo.H"
|
|
||||||
#include "setDeltaT.H"
|
|
||||||
|
|
||||||
|
|
||||||
++runTime;
|
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
// --- Pressure-velocity PIMPLE corrector loop
|
|
||||||
while (pimple.loop())
|
|
||||||
{
|
|
||||||
if (pimple.firstIter() || moveMeshOuterCorrectors)
|
|
||||||
{
|
|
||||||
scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime();
|
|
||||||
|
|
||||||
if (isA<dynamicRefineFvMesh>(mesh))
|
|
||||||
{
|
|
||||||
advector.surf().reconstruct();
|
|
||||||
}
|
|
||||||
|
|
||||||
mesh.update();
|
|
||||||
|
|
||||||
if (mesh.changing())
|
|
||||||
{
|
|
||||||
gh = (g & mesh.C()) - ghRef;
|
|
||||||
ghf = (g & mesh.Cf()) - ghRef;
|
|
||||||
|
|
||||||
if (isA<dynamicRefineFvMesh>(mesh))
|
|
||||||
{
|
|
||||||
advector.surf().mapAlphaField();
|
|
||||||
alpha2 = 1.0 - alpha1;
|
|
||||||
alpha2.correctBoundaryConditions();
|
|
||||||
rho == alpha1*rho1 + alpha2*rho2;
|
|
||||||
rho.correctBoundaryConditions();
|
|
||||||
rho.oldTime() = rho;
|
|
||||||
alpha2.oldTime() = alpha2;
|
|
||||||
}
|
|
||||||
|
|
||||||
MRF.update();
|
|
||||||
|
|
||||||
Info<< "Execution time for mesh.update() = "
|
|
||||||
<< runTime.elapsedCpuTime() - timeBeforeMeshUpdate
|
|
||||||
<< " s" << endl;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((mesh.changing() && correctPhi))
|
|
||||||
{
|
|
||||||
// Calculate absolute flux from the mapped surface velocity
|
|
||||||
phi = mesh.Sf() & Uf;
|
|
||||||
|
|
||||||
#include "correctPhi.H"
|
|
||||||
|
|
||||||
// Make the fluxes relative to the mesh motion
|
|
||||||
fvc::makeRelative(phi, U);
|
|
||||||
|
|
||||||
mixture.correct();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mesh.changing() && checkMeshCourantNo)
|
|
||||||
{
|
|
||||||
#include "meshCourantNo.H"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "alphaControls.H"
|
|
||||||
#include "compressibleAlphaEqnSubCycle.H"
|
|
||||||
|
|
||||||
turbulence.correctPhasePhi();
|
|
||||||
|
|
||||||
#include "UEqn.H"
|
|
||||||
volScalarField divUp("divUp", fvc::div(fvc::absolute(phi, U), p));
|
|
||||||
#include "TEqn.H"
|
|
||||||
|
|
||||||
// --- Pressure corrector loop
|
|
||||||
while (pimple.correct())
|
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pimple.turbCorr())
|
|
||||||
{
|
|
||||||
turbulence.correct();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
runTime.write();
|
|
||||||
|
|
||||||
runTime.printExecutionTime(Info);
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
CorrectPhi
|
|
||||||
(
|
|
||||||
U,
|
|
||||||
phi,
|
|
||||||
p,
|
|
||||||
dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1),
|
|
||||||
divU,
|
|
||||||
pimple
|
|
||||||
);
|
|
||||||
|
|
||||||
//***HGW phi.oldTime() = phi;
|
|
||||||
|
|
||||||
#include "continuityErrs.H"
|
|
||||||
@ -1,110 +0,0 @@
|
|||||||
#include "createRDeltaT.H"
|
|
||||||
|
|
||||||
Info<< "Reading field p_rgh\n" << endl;
|
|
||||||
volScalarField p_rgh
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"p_rgh",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
|
||||||
volVectorField U
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"U",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "createPhi.H"
|
|
||||||
|
|
||||||
Info<< "Constructing twoPhaseMixtureThermo\n" << endl;
|
|
||||||
twoPhaseMixtureThermo mixture(U, phi);
|
|
||||||
|
|
||||||
|
|
||||||
volScalarField& alpha1(mixture.alpha1());
|
|
||||||
volScalarField& alpha2(mixture.alpha2());
|
|
||||||
|
|
||||||
Info<< "Reading thermophysical properties\n" << endl;
|
|
||||||
|
|
||||||
const volScalarField& rho1 = mixture.thermo1().rho();
|
|
||||||
const volScalarField& rho2 = mixture.thermo2().rho();
|
|
||||||
|
|
||||||
volScalarField rho
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"rho",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::READ_IF_PRESENT,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
alpha1*rho1 + alpha2*rho2
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
dimensionedScalar pMin
|
|
||||||
(
|
|
||||||
"pMin",
|
|
||||||
dimPressure,
|
|
||||||
mixture
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh.setFluxRequired(p_rgh.name());
|
|
||||||
mesh.setFluxRequired(alpha1.name());
|
|
||||||
|
|
||||||
|
|
||||||
#include "readGravitationalAcceleration.H"
|
|
||||||
#include "readhRef.H"
|
|
||||||
#include "gh.H"
|
|
||||||
|
|
||||||
|
|
||||||
// Mass flux
|
|
||||||
// Initialisation does not matter because rhoPhi is reset after the
|
|
||||||
// alpha1 solution before it is used in the U equation.
|
|
||||||
surfaceScalarField rhoPhi
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"rhoPhi",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
fvc::interpolate(rho)*phi
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField dgdt(alpha1*fvc::div(phi));
|
|
||||||
|
|
||||||
#include "createAlphaFluxes.H"
|
|
||||||
|
|
||||||
Foam::isoAdvection advector(alpha1,phi,U);
|
|
||||||
// Construct compressible turbulence model
|
|
||||||
compressibleInterPhaseTransportModel turbulence
|
|
||||||
(
|
|
||||||
rho,
|
|
||||||
U,
|
|
||||||
phi,
|
|
||||||
rhoPhi,
|
|
||||||
alphaPhi10,
|
|
||||||
mixture
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "createK.H"
|
|
||||||
|
|
||||||
#include "createMRF.H"
|
|
||||||
#include "createFvOptions.H"
|
|
||||||
@ -1,169 +0,0 @@
|
|||||||
{
|
|
||||||
volScalarField rAU("rAU", 1.0/UEqn.A());
|
|
||||||
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
|
||||||
surfaceScalarField phiHbyA
|
|
||||||
(
|
|
||||||
"phiHbyA",
|
|
||||||
fvc::flux(HbyA)
|
|
||||||
+ MRF.zeroFilter(fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, Uf))
|
|
||||||
);
|
|
||||||
MRF.makeRelative(phiHbyA);
|
|
||||||
|
|
||||||
surfaceScalarField phig
|
|
||||||
(
|
|
||||||
(
|
|
||||||
mixture.surfaceTensionForce()
|
|
||||||
- ghf*fvc::snGrad(rho)
|
|
||||||
)*rAUf*mesh.magSf()
|
|
||||||
);
|
|
||||||
|
|
||||||
phiHbyA += phig;
|
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
|
||||||
constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
|
|
||||||
|
|
||||||
// Make the fluxes relative to the mesh motion
|
|
||||||
fvc::makeRelative(phiHbyA, U);
|
|
||||||
|
|
||||||
tmp<fvScalarMatrix> p_rghEqnComp1;
|
|
||||||
tmp<fvScalarMatrix> p_rghEqnComp2;
|
|
||||||
|
|
||||||
if (pimple.transonic())
|
|
||||||
{
|
|
||||||
#include "rhofs.H"
|
|
||||||
|
|
||||||
surfaceScalarField phid1("phid1", fvc::interpolate(psi1)*phi);
|
|
||||||
surfaceScalarField phid2("phid2", fvc::interpolate(psi2)*phi);
|
|
||||||
|
|
||||||
p_rghEqnComp1 =
|
|
||||||
(
|
|
||||||
(
|
|
||||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaPhi1*rho1f)
|
|
||||||
- (fvOptions(alpha1, mixture.thermo1().rho())&rho1)
|
|
||||||
)/rho1
|
|
||||||
- fvc::ddt(alpha1) - fvc::div(alphaPhi1)
|
|
||||||
+ (alpha1/rho1)
|
|
||||||
*correction
|
|
||||||
(
|
|
||||||
psi1*fvm::ddt(p_rgh)
|
|
||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
p_rghEqnComp1.ref().relax();
|
|
||||||
|
|
||||||
p_rghEqnComp2 =
|
|
||||||
(
|
|
||||||
(
|
|
||||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaPhi2*rho2f)
|
|
||||||
- (fvOptions(alpha2, mixture.thermo2().rho())&rho2)
|
|
||||||
)/rho2
|
|
||||||
- fvc::ddt(alpha2) - fvc::div(alphaPhi2)
|
|
||||||
+ (alpha2/rho2)
|
|
||||||
*correction
|
|
||||||
(
|
|
||||||
psi2*fvm::ddt(p_rgh)
|
|
||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
p_rghEqnComp2.ref().relax();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#include "rhofs.H"
|
|
||||||
|
|
||||||
p_rghEqnComp1 =
|
|
||||||
pos(alpha1)
|
|
||||||
*(
|
|
||||||
(
|
|
||||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaPhi1*rho1f)
|
|
||||||
- (fvOptions(alpha1, mixture.thermo1().rho())&rho1)
|
|
||||||
)/rho1
|
|
||||||
- fvc::ddt(alpha1) - fvc::div(alphaPhi1)
|
|
||||||
+ (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh))
|
|
||||||
);
|
|
||||||
|
|
||||||
p_rghEqnComp2 =
|
|
||||||
pos(alpha2)
|
|
||||||
*(
|
|
||||||
(
|
|
||||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaPhi2*rho2f)
|
|
||||||
- (fvOptions(alpha2, mixture.thermo2().rho())&rho2)
|
|
||||||
)/rho2
|
|
||||||
- fvc::ddt(alpha2) - fvc::div(alphaPhi2)
|
|
||||||
+ (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mesh.moving())
|
|
||||||
{
|
|
||||||
p_rghEqnComp1.ref() += fvc::div(mesh.phi())*alpha1;
|
|
||||||
p_rghEqnComp2.ref() += fvc::div(mesh.phi())*alpha2;
|
|
||||||
}
|
|
||||||
|
|
||||||
p_rghEqnComp1.ref() *= pos(alpha1);
|
|
||||||
p_rghEqnComp2.ref() *= pos(alpha2);
|
|
||||||
|
|
||||||
if (pimple.transonic())
|
|
||||||
{
|
|
||||||
p_rghEqnComp1.ref().relax();
|
|
||||||
p_rghEqnComp2.ref().relax();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cache p_rgh prior to solve for density update
|
|
||||||
volScalarField p_rgh_0(p_rgh);
|
|
||||||
|
|
||||||
while (pimple.correctNonOrthogonal())
|
|
||||||
{
|
|
||||||
fvScalarMatrix p_rghEqnIncomp
|
|
||||||
(
|
|
||||||
fvc::div(phiHbyA)
|
|
||||||
- fvm::laplacian(rAUf, p_rgh)
|
|
||||||
);
|
|
||||||
|
|
||||||
solve
|
|
||||||
(
|
|
||||||
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
|
||||||
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
|
||||||
);
|
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
|
||||||
{
|
|
||||||
p = max(p_rgh + (alpha1*rho1 + alpha2*rho2)*gh, pMin);
|
|
||||||
p_rgh = p - (alpha1*rho1 + alpha2*rho2)*gh;
|
|
||||||
|
|
||||||
dgdt =
|
|
||||||
(
|
|
||||||
alpha1*(p_rghEqnComp2 & p_rgh)
|
|
||||||
- alpha2*(p_rghEqnComp1 & p_rgh)
|
|
||||||
);
|
|
||||||
|
|
||||||
phi = phiHbyA + p_rghEqnIncomp.flux();
|
|
||||||
|
|
||||||
U = HbyA
|
|
||||||
+ rAU*fvc::reconstruct((phig + p_rghEqnIncomp.flux())/rAUf);
|
|
||||||
U.correctBoundaryConditions();
|
|
||||||
fvOptions.correct(U);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Correct Uf if the mesh is moving
|
|
||||||
{
|
|
||||||
Uf = fvc::interpolate(U);
|
|
||||||
surfaceVectorField n(mesh.Sf()/mesh.magSf());
|
|
||||||
Uf += n*(fvc::absolute(phi, U)/mesh.magSf() - (n & Uf));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Update densities from change in p_rgh
|
|
||||||
mixture.thermo1().correctRho(psi1*(p_rgh - p_rgh_0));
|
|
||||||
mixture.thermo2().correctRho(psi2*(p_rgh - p_rgh_0));
|
|
||||||
|
|
||||||
rho = alpha1*rho1 + alpha2*rho2;
|
|
||||||
|
|
||||||
// Correct p_rgh for consistency with p and the updated densities
|
|
||||||
p_rgh = p - rho*gh;
|
|
||||||
p_rgh.correctBoundaryConditions();
|
|
||||||
|
|
||||||
K = 0.5*magSqr(U);
|
|
||||||
}
|
|
||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso multiphaseMixtureThermo
|
wclean libso multiphaseMixtureThermo
|
||||||
wclean
|
wclean
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake $targetType multiphaseMixtureThermo
|
wmake $targetType multiphaseMixtureThermo
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -46,6 +45,9 @@ namespace Foam
|
|||||||
defineTypeNameAndDebug(multiphaseMixtureThermo, 0);
|
defineTypeNameAndDebug(multiphaseMixtureThermo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Foam::scalar Foam::multiphaseMixtureThermo::convertToRad =
|
||||||
|
Foam::constant::mathematical::pi/180.0;
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -139,6 +139,10 @@ private:
|
|||||||
//- Stabilisation for normalisation of the interface normal
|
//- Stabilisation for normalisation of the interface normal
|
||||||
const dimensionedScalar deltaN_;
|
const dimensionedScalar deltaN_;
|
||||||
|
|
||||||
|
//- Conversion factor for degrees into radians
|
||||||
|
static const scalar convertToRad;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wclean libso mixtureViscosityModels
|
wclean libso mixtureViscosityModels
|
||||||
wclean libso relativeVelocityModels
|
wclean libso relativeVelocityModels
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake $targetType mixtureViscosityModels
|
wmake $targetType mixtureViscosityModels
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user