Compare commits
1 Commits
feature-so
...
feature-dl
| Author | SHA1 | Date | |
|---|---|---|---|
| 18dc3426ce |
10
.gitmodules
vendored
10
.gitmodules
vendored
@ -4,13 +4,9 @@
|
|||||||
[submodule "avalanche"]
|
[submodule "avalanche"]
|
||||||
path = modules/avalanche
|
path = modules/avalanche
|
||||||
url = https://develop.openfoam.com/Community/avalanche.git
|
url = https://develop.openfoam.com/Community/avalanche.git
|
||||||
|
[submodule "catalyst"]
|
||||||
|
path = modules/catalyst
|
||||||
|
url = https://develop.openfoam.com/Community/catalyst.git
|
||||||
[submodule "adios"]
|
[submodule "adios"]
|
||||||
path = modules/adios
|
path = modules/adios
|
||||||
url = https://develop.openfoam.com/Community/adiosfoam.git
|
url = https://develop.openfoam.com/Community/adiosfoam.git
|
||||||
[submodule "OpenQBMM"]
|
|
||||||
path = modules/OpenQBMM
|
|
||||||
url = https://github.com/OpenQBMM/OpenQBMM.git
|
|
||||||
branch = openfoam.com
|
|
||||||
[submodule "visualization"]
|
|
||||||
path = modules/visualization
|
|
||||||
url = https://develop.openfoam.com/modules/visualization.git
|
|
||||||
|
|||||||
61
Allwmake
61
Allwmake
@ -1,43 +1,38 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Run from OPENFOAM top-level directory only
|
# Run from OPENFOAM top-level directory only
|
||||||
cd "${0%/*}" || exit
|
cd "${0%/*}" || exit
|
||||||
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
|
||||||
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
|
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
|
||||||
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
|
||||||
echo "Argument parse error";
|
|
||||||
else
|
|
||||||
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
. "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
# Preamble. Report compiler version
|
||||||
|
case "$WM_COMPILER" in
|
||||||
|
Gcc*) gcc --version 2>/dev/null | sed -ne '1p' ;;
|
||||||
|
Clang*) clang --version 2>/dev/null | sed -ne '1p' ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Preamble. Report tools or at least the mpirun location
|
# 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 . "$WM_PROJECT_DIR"/wmake/scripts/list_tools
|
then . "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
||||||
else
|
else
|
||||||
echo "mpirun=$(command -v mpirun || true)"
|
echo "mpirun=$(command -v mpirun || true)"
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
# Report compiler information
|
|
||||||
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
|
|
||||||
if [ -x "$compiler" ]
|
|
||||||
then
|
|
||||||
echo "compiler=$compiler"
|
|
||||||
"$compiler" --version 2>/dev/null | sed -ne '1p'
|
|
||||||
else
|
|
||||||
echo "compiler=unknown"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||||
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
||||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo
|
echo
|
||||||
@ -48,18 +43,9 @@ echo
|
|||||||
# Compile ThirdParty libraries and applications
|
# Compile ThirdParty libraries and applications
|
||||||
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
||||||
then
|
then
|
||||||
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
"$WM_THIRD_PARTY_DIR/Allwmake"
|
||||||
then
|
|
||||||
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
|
||||||
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
|
|
||||||
fi
|
|
||||||
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
|
|
||||||
then "$WM_THIRD_PARTY_DIR"/Allwmake
|
|
||||||
else
|
|
||||||
echo "Skip ThirdParty (no Allwmake* files)"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Skip ThirdParty (no directory)"
|
echo "No ThirdParty directory found - skipping"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
@ -77,19 +63,14 @@ if [ -d "$WM_PROJECT_DIR/modules" ]
|
|||||||
then
|
then
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo "Compile OpenFOAM modules"
|
echo "Compile OpenFOAM modules"
|
||||||
echo " ignoring possible compilation errors"
|
|
||||||
echo " make certain to check the output file"
|
|
||||||
echo
|
echo
|
||||||
set +e
|
|
||||||
export WM_CONTINUE_ON_ERROR=true
|
|
||||||
|
|
||||||
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Count files in given directory. Ignore "Test-*" binaries.
|
# Count files in given directory. Ignore "Test-*" binaries.
|
||||||
_foamCountDirEntries()
|
_foamCountDirEntries()
|
||||||
{
|
{
|
||||||
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
(cd "$1" 2>/dev/null && find -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
||||||
sed -e '\@/Test-@d' | wc -l
|
sed -e '\@/Test-@d' | wc -l
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,13 +79,13 @@ echo
|
|||||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo " ${WM_PROJECT_DIR##*/}"
|
echo " ${WM_PROJECT_DIR##*/}"
|
||||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||||
echo
|
echo
|
||||||
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
|
echo " api = $(foamEtcFile -show-api 2>/dev/null)"
|
||||||
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
echo " patch = $(foamEtcFile -show-patch 2>/dev/null)"
|
||||||
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
echo " bin = $(_foamCountDirEntries $FOAM_APPBIN) entries"
|
||||||
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
echo " lib = $(_foamCountDirEntries $FOAM_LIBBIN) entries"
|
||||||
echo
|
echo
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
|
|
||||||
|
|||||||
5
META-INFO/.gitignore
vendored
5
META-INFO/.gitignore
vendored
@ -5,6 +5,5 @@ build-info
|
|||||||
time-stamp
|
time-stamp
|
||||||
|
|
||||||
# Do not track any manifest files
|
# Do not track any manifest files
|
||||||
*[Mm]anifest.txt
|
Manifest.txt
|
||||||
|
manifest.txt
|
||||||
####
|
|
||||||
|
|||||||
@ -1,60 +1,59 @@
|
|||||||
# META-INFO
|
# META-INFO
|
||||||
|
|
||||||
Meta-information is generally for OpenFOAM internal use only.
|
Meta-information is for OpenFOAM internal use only.
|
||||||
|
|
||||||
|
Do not rely on any files or any file contents in this directory,
|
||||||
|
or even the existence of this directory.
|
||||||
|
|
||||||
The format, content and meaning may be changed at anytime without
|
The format, content and meaning may be changed at anytime without
|
||||||
notice. If any of these are changed, these are some of places that
|
notice.
|
||||||
will need to be updated accordingly:
|
|
||||||
|
|
||||||
- bin/foamEtcFile
|
The information is provided here for internal documentation purposes.
|
||||||
- bin/tools/foamConfigurePaths
|
|
||||||
- bin/tools/foamPackRelease
|
|
||||||
- etc/openfoam
|
|
||||||
- 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.
|
||||||
|
|
||||||
- File content (api) generated by `wmake -build-info` from the
|
- File content (api) generated by wmakeBuildInfo from OPENFOAM define
|
||||||
`OPENFOAM` define in `wmake/rules/General/general`
|
in `wmake/rules/General/general`
|
||||||
|
|
||||||
- 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
|
||||||
shipped source archives.
|
source archives.
|
||||||
|
|
||||||
- File content (branch, build) generated by `wmake -build-info` from
|
- File content (branch, build) generated by wmakeBuildInfo from git
|
||||||
git information and cached from previous wmake (api)
|
information and cached from previous wmake (api)
|
||||||
|
|
||||||
|
|
||||||
## Content types
|
## Content types
|
||||||
|
|
||||||
### api
|
### api
|
||||||
|
|
||||||
Format: `date +%y%m`
|
|
||||||
|
|
||||||
- 4-digit year-month (YYMM) integer corresponding to the major
|
- 4-digit year-month (YYMM) integer corresponding to the major
|
||||||
release or in unusual cases an intermediate release.
|
release or in unusual cases an intermediate release.
|
||||||
Example, `1712` for the Dec-2017 release.
|
|
||||||
|
- Format is year-month, as per `date +%y%m`.
|
||||||
|
Eg, `1712` for the Dec-2017 release.
|
||||||
|
|
||||||
|
|
||||||
### patch
|
### patch
|
||||||
|
|
||||||
Format: `date +%y%m%d`
|
|
||||||
|
|
||||||
- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level
|
- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level
|
||||||
for the given **released** API.
|
for the given **released** API.
|
||||||
- The first release can have a patch value of `0` or `1` which
|
|
||||||
indicates that it is unpatched or just released. Alternatively
|
- Format is year-month-day, as per `date +%y%m%d`.
|
||||||
it can have a patch value corresponding to the release date.
|
|
||||||
|
- The first release can have a patch value of `0` (unpatched = just
|
||||||
|
released) or a patch value corresponding to the release date.
|
||||||
|
|
||||||
The patch value is only meaningful together with the api value.
|
The patch value is only meaningful together with the api value.
|
||||||
However, for *development* branches, the patch level should not be
|
However, for *development* branches, the patch level should not be
|
||||||
ascribed too much meaning, but will often correspond to the last
|
ascribed much meaning -- it can be `0` or have a value corresponding
|
||||||
merge with a *maintenance* (*eg*, `master`) branch.
|
to the last merge with a *maintenance* (*eg*, `master`) branch.
|
||||||
|
|
||||||
|
|
||||||
## Flow of information
|
## Flow of information
|
||||||
@ -71,9 +70,9 @@ distributions to have a record of the same information.
|
|||||||
| build | git | build-info |
|
| build | git | build-info |
|
||||||
|
|
||||||
|
|
||||||
The command `wmake -build-info -check` is used to determine if
|
The command `wmakeBuildInfo -check` is used to determine if
|
||||||
the saved information needs synchronization. The command
|
the saved information needs synchronization. The command
|
||||||
`wmake -build-info -update` performs the synchronization.
|
`wmakeBuildInfo -update` preforms the synchronitzation.
|
||||||
|
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
@ -83,4 +82,4 @@ contains more permanent information, whereas the `build-info` is more
|
|||||||
transient in nature.
|
transient in nature.
|
||||||
|
|
||||||
----
|
----
|
||||||
2020-05-05
|
2019-01-23
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2004
|
api=1912
|
||||||
patch=200506
|
patch=0
|
||||||
|
|||||||
@ -85,10 +85,10 @@ As can be seen in this example, the git build information is
|
|||||||
supplemented by the date when the last change was authored, which can
|
supplemented by the date when the last change was authored, which can
|
||||||
be helpful when the repository contains local changes. If you simply
|
be helpful when the repository contains local changes. If you simply
|
||||||
wish to know the current API and patch levels directly, the
|
wish to know the current API and patch levels directly, the
|
||||||
`wmake -build-info` provides the relevant information even
|
`wmakeBuildInfo` script provides the relevant information even
|
||||||
when OpenFOAM has not yet been compiled:
|
when OpenFOAM has not yet been compiled:
|
||||||
```
|
```
|
||||||
$ wmake -build-info
|
$ wmakeBuildInfo
|
||||||
make
|
make
|
||||||
api = 1812
|
api = 1812
|
||||||
patch = 190531
|
patch = 190531
|
||||||
@ -207,4 +207,4 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
|||||||
- [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/)
|
||||||
|
|
||||||
Copyright 2016-2020 OpenCFD Ltd
|
Copyright 2016-2019 OpenCFD Ltd
|
||||||
|
|||||||
@ -1,26 +1,22 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Run from OPENFOAM applications/ directory only
|
# Run from OPENFOAM applications/ directory only
|
||||||
cd "${0%/*}" || exit
|
cd "${0%/*}" || exit
|
||||||
wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
|
wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
|
||||||
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
|
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
|
||||||
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
|
||||||
echo "Argument parse error";
|
|
||||||
else
|
|
||||||
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
echo " Check your OpenFOAM environment and installation"
|
echo " Check your OpenFOAM environment and installation"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
. "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
wmake -all $targetType solvers
|
wmake -all $targetType solvers
|
||||||
wmake -all $targetType utilities
|
wmake -all $targetType utilities
|
||||||
|
|
||||||
# Optional
|
|
||||||
## wmake -all $targetType tools
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -5,5 +5,5 @@ const dictionary& potentialFlow
|
|||||||
|
|
||||||
const int nNonOrthCorr
|
const int nNonOrthCorr
|
||||||
(
|
(
|
||||||
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
|
|||||||
// converting fixed-value BCs to zero-gradient and vice versa.
|
// converting fixed-value BCs to zero-gradient and vice versa.
|
||||||
|
|
||||||
// Allow override from command-line -pName option
|
// Allow override from command-line -pName option
|
||||||
const word pName = args.getOrDefault<word>("pName", "p");
|
const word pName = args.get<word>("pName", "p");
|
||||||
|
|
||||||
// Infer the pressure BCs from the velocity
|
// Infer the pressure BCs from the velocity
|
||||||
wordList pBCTypes
|
wordList pBCTypes
|
||||||
|
|||||||
@ -5,5 +5,5 @@ const dictionary& potentialFlow
|
|||||||
|
|
||||||
const int nNonOrthCorr
|
const int nNonOrthCorr
|
||||||
(
|
(
|
||||||
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
|
|||||||
// converting fixed-value BCs to zero-gradient and vice versa.
|
// converting fixed-value BCs to zero-gradient and vice versa.
|
||||||
|
|
||||||
// Allow override from command-line -pName option
|
// Allow override from command-line -pName option
|
||||||
const word pName = args.getOrDefault<word>("pName", "p");
|
const word pName = args.get<word>("pName", "p");
|
||||||
|
|
||||||
// Infer the pressure BCs from the velocity
|
// Infer the pressure BCs from the velocity
|
||||||
wordList pBCTypes
|
wordList pBCTypes
|
||||||
|
|||||||
@ -35,7 +35,7 @@ Description
|
|||||||
|
|
||||||
Combusting RANS code using the b-Xi two-equation model.
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
Xi may be obtained by either the solution of the Xi transport
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
equation or from an algebraic expression. Both approaches are
|
equation or from an algebraic exression. Both approaches are
|
||||||
based on Gulder's flame speed correlation which has been shown
|
based on Gulder's flame speed correlation which has been shown
|
||||||
to be appropriate by comparison with the results from the
|
to be appropriate by comparison with the results from the
|
||||||
spectral model.
|
spectral model.
|
||||||
@ -66,7 +66,7 @@ Description
|
|||||||
CR | Drag tensor (1/m)
|
CR | Drag tensor (1/m)
|
||||||
CT | Turbulence generation parameter (1/m)
|
CT | Turbulence generation parameter (1/m)
|
||||||
Nv | Number of obstacles in cell per unit volume (m^-2)
|
Nv | Number of obstacles in cell per unit volume (m^-2)
|
||||||
nsv | Tensor whose diagonal indicates the number to subtract from
|
nsv | Tensor whose diagonal indicates the number to substract from
|
||||||
| Nv to get the number of obstacles crossing the flow in each
|
| Nv to get the number of obstacles crossing the flow in each
|
||||||
| direction.
|
| direction.
|
||||||
\endplaintable
|
\endplaintable
|
||||||
|
|||||||
@ -32,7 +32,7 @@ Description
|
|||||||
|
|
||||||
Combusting RANS code using the b-Xi two-equation model.
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
Xi may be obtained by either the solution of the Xi transport
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
equation or from an algebraic expression. Both approaches are
|
equation or from an algebraic exression. Both approaches are
|
||||||
based on Gulder's flame speed correlation which has been shown
|
based on Gulder's flame speed correlation which has been shown
|
||||||
to be appropriate by comparison with the results from the
|
to be appropriate by comparison with the results from the
|
||||||
spectral model.
|
spectral model.
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -72,7 +72,7 @@ PDRkEpsilon::PDRkEpsilon
|
|||||||
|
|
||||||
C4_
|
C4_
|
||||||
(
|
(
|
||||||
dimensioned<scalar>::getOrAddToDict
|
dimensioned<scalar>::lookupOrAddToDict
|
||||||
(
|
(
|
||||||
"C4",
|
"C4",
|
||||||
coeffDict_,
|
coeffDict_,
|
||||||
|
|||||||
@ -31,7 +31,7 @@ Description
|
|||||||
corresponding to PDR basic drag model (\link basic.H \endlink)
|
corresponding to PDR basic drag model (\link basic.H \endlink)
|
||||||
|
|
||||||
The default model coefficients correspond to the following:
|
The default model coefficients correspond to the following:
|
||||||
\verbatim
|
@verbatim
|
||||||
PDRkEpsilonCoeffs
|
PDRkEpsilonCoeffs
|
||||||
{
|
{
|
||||||
Cmu 0.09;
|
Cmu 0.09;
|
||||||
@ -43,7 +43,7 @@ Description
|
|||||||
sigmaEps 1.3;
|
sigmaEps 1.3;
|
||||||
Prt 1.0; // only for compressible
|
Prt 1.0; // only for compressible
|
||||||
}
|
}
|
||||||
\endverbatim
|
@endverbatim
|
||||||
|
|
||||||
The turbulence source term \f$ G_{R} \f$ appears in the
|
The turbulence source term \f$ G_{R} \f$ appears in the
|
||||||
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to
|
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to
|
||||||
|
|||||||
@ -29,7 +29,7 @@ Class
|
|||||||
Description
|
Description
|
||||||
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
|
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
|
||||||
with a linear correction function to give a plausible profile for XiEq.
|
with a linear correction function to give a plausible profile for XiEq.
|
||||||
See \link SCOPELaminarFlameSpeed.H \endlink for details on the SCOPE
|
See @link SCOPELaminarFlameSpeed.H @endlink for details on the SCOPE
|
||||||
laminar flame speed model.
|
laminar flame speed model.
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
|
|||||||
@ -29,7 +29,7 @@ Class
|
|||||||
Description
|
Description
|
||||||
This is the equilibrium level of the flame wrinkling generated by
|
This is the equilibrium level of the flame wrinkling generated by
|
||||||
instability. It is a constant (default 2.5). It is used in
|
instability. It is a constant (default 2.5). It is used in
|
||||||
\link XiModel.H \endlink.
|
@link XiModel.H @endlink.
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
instability.C
|
instability.C
|
||||||
|
|||||||
@ -28,7 +28,7 @@ Global
|
|||||||
|
|
||||||
Description
|
Description
|
||||||
Reset the timestep to maintain a constant maximum courant Number.
|
Reset the timestep to maintain a constant maximum courant Number.
|
||||||
Reduction of time-step is immediate but increase is damped to avoid
|
Reduction of time-step is imediate but increase is damped to avoid
|
||||||
unstable oscillations.
|
unstable oscillations.
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -36,7 +36,7 @@ Description
|
|||||||
|
|
||||||
Combusting RANS code using the b-Xi two-equation model.
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
Xi may be obtained by either the solution of the Xi transport
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
equation or from an algebraic expression. Both approaches are
|
equation or from an algebraic exression. Both approaches are
|
||||||
based on Gulder's flame speed correlation which has been shown
|
based on Gulder's flame speed correlation which has been shown
|
||||||
to be appropriate by comparison with the results from the
|
to be appropriate by comparison with the results from the
|
||||||
spectral model.
|
spectral model.
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
bool correctPhi
|
bool correctPhi
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("correctPhi", true)
|
pimple.dict().lookupOrDefault("correctPhi", true)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool checkMeshCourantNo
|
bool checkMeshCourantNo
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("checkMeshCourantNo", false)
|
pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "readTimeControls.H"
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
correctPhi = pimple.dict().getOrDefault("correctPhi", true);
|
correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
|
||||||
|
|
||||||
checkMeshCourantNo =
|
checkMeshCourantNo =
|
||||||
pimple.dict().getOrDefault("checkMeshCourantNo", false);
|
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
|
||||||
|
|||||||
@ -31,7 +31,7 @@ Description
|
|||||||
|
|
||||||
Combusting RANS code using the b-Xi two-equation model.
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
Xi may be obtained by either the solution of the Xi transport
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
equation or from an algebraic expression. Both approaches are
|
equation or from an algebraic exression. Both approaches are
|
||||||
based on Gulder's flame speed correlation which has been shown
|
based on Gulder's flame speed correlation which has been shown
|
||||||
to be appropriate by comparison with the results from the
|
to be appropriate by comparison with the results from the
|
||||||
spectral model.
|
spectral model.
|
||||||
|
|||||||
@ -35,7 +35,7 @@ Description
|
|||||||
|
|
||||||
Combusting RANS code using the b-Xi two-equation model.
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
Xi may be obtained by either the solution of the Xi transport
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
equation or from an algebraic expression. Both approaches are
|
equation or from an algebraic exression. Both approaches are
|
||||||
based on Gulder's flame speed correlation which has been shown
|
based on Gulder's flame speed correlation which has been shown
|
||||||
to be appropriate by comparison with the results from the
|
to be appropriate by comparison with the results from the
|
||||||
spectral model.
|
spectral model.
|
||||||
|
|||||||
@ -37,7 +37,11 @@
|
|||||||
{
|
{
|
||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
fractions.readIfPresent(Y[i].name(), X0[i]);
|
const word& name = Y[i].name();
|
||||||
|
if (fractions.found(name))
|
||||||
|
{
|
||||||
|
X0[i] = fractions.get<scalar>(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
scalar mw = 0.0;
|
scalar mw = 0.0;
|
||||||
@ -57,7 +61,11 @@
|
|||||||
{
|
{
|
||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
fractions.readIfPresent(Y[i].name(), Y0[i]);
|
const word& name = Y[i].name();
|
||||||
|
if (fractions.found(name))
|
||||||
|
{
|
||||||
|
Y0[i] = fractions.get<scalar>(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
scalar invW = 0.0;
|
scalar invW = 0.0;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../XiFoam/XiEngineFoam \
|
-I../XiFoam/XiEngineFoam \
|
||||||
-I../XiFoam \
|
-I../XiFoam \
|
||||||
-I../../compressible/rhoPimpleFoam \
|
-I../../compressible/rhoPimpleFoam \
|
||||||
|
|||||||
@ -12,12 +12,12 @@ IOdictionary additionalControlsDict
|
|||||||
|
|
||||||
bool solvePrimaryRegion
|
bool solvePrimaryRegion
|
||||||
(
|
(
|
||||||
additionalControlsDict.getOrDefault("solvePrimaryRegion", true)
|
additionalControlsDict.lookupOrDefault("solvePrimaryRegion", true)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool solvePyrolysisRegion
|
bool solvePyrolysisRegion
|
||||||
(
|
(
|
||||||
additionalControlsDict.getOrDefault("solvePyrolysisRegion", true)
|
additionalControlsDict.lookupOrDefault("solvePyrolysisRegion", true)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar maxDi = pyrolysis.maxDiff();
|
scalar maxDi = pyrolysis.maxDiff();
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
|
if (pimple.dict().lookupOrDefault("hydrostaticInitialization", false))
|
||||||
{
|
{
|
||||||
volScalarField& ph_rgh = regIOobject::store
|
volScalarField& ph_rgh = regIOobject::store
|
||||||
(
|
(
|
||||||
@ -24,7 +24,7 @@ if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
|
|||||||
|
|
||||||
label nCorr
|
label nCorr
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault<label>("nHydrostaticCorrectors", 5)
|
pimple.dict().lookupOrDefault<label>("nHydrostaticCorrectors", 5)
|
||||||
);
|
);
|
||||||
|
|
||||||
for (label i=0; i<nCorr; i++)
|
for (label i=0; i<nCorr; i++)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/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.
|
||||||
@ -35,27 +34,27 @@ License
|
|||||||
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
||||||
|
|
||||||
// Maximum time scale
|
// Maximum time scale
|
||||||
scalar maxDeltaT(pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT));
|
scalar maxDeltaT(pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT));
|
||||||
|
|
||||||
// Smoothing parameter (0-1) when smoothing iterations > 0
|
// Smoothing parameter (0-1) when smoothing iterations > 0
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Damping coefficient (1-0)
|
// Damping coefficient (1-0)
|
||||||
scalar rDeltaTDampingCoeff
|
scalar rDeltaTDampingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Maximum change in cell temperature per iteration
|
// Maximum change in cell temperature per iteration
|
||||||
// (relative to previous value)
|
// (relative to previous value)
|
||||||
scalar alphaTemp(pimpleDict.getOrDefault<scalar>("alphaTemp", 0.05));
|
scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
|
||||||
|
|
||||||
// Maximum change in cell concentration per iteration
|
// Maximum change in cell concentration per iteration
|
||||||
// (relative to reference value)
|
// (relative to reference value)
|
||||||
scalar alphaY(pimpleDict.getOrDefault<scalar>("alphaY", 1.0));
|
scalar alphaY(pimpleDict.lookupOrDefault("alphaY", 1.0));
|
||||||
|
|
||||||
Info<< "Time scales min/max:" << endl;
|
Info<< "Time scales min/max:" << endl;
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -83,13 +82,13 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
mixedFvPatchScalarField(p, iF),
|
mixedFvPatchScalarField(p, iF),
|
||||||
UName_(dict.getOrDefault<word>("U", "U")),
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
rhoName_(dict.getOrDefault<word>("rho", "rho")),
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
psiName_(dict.getOrDefault<word>("psi", "thermo:psi")),
|
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")),
|
||||||
muName_(dict.getOrDefault<word>("mu", "thermo:mu")),
|
muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")),
|
||||||
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
|
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
|
||||||
Twall_("Twall", dict, p.size()),
|
Twall_("Twall", dict, p.size()),
|
||||||
gamma_(dict.getOrDefault<scalar>("gamma", 1.4))
|
gamma_(dict.lookupOrDefault<scalar>("gamma", 1.4))
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -83,15 +82,15 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
partialSlipFvPatchVectorField(p, iF),
|
partialSlipFvPatchVectorField(p, iF),
|
||||||
TName_(dict.getOrDefault<word>("T", "T")),
|
TName_(dict.lookupOrDefault<word>("T", "T")),
|
||||||
rhoName_(dict.getOrDefault<word>("rho", "rho")),
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
psiName_(dict.getOrDefault<word>("psi", "thermo:psi")),
|
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")),
|
||||||
muName_(dict.getOrDefault<word>("mu", "thermo:mu")),
|
muName_(dict.lookupOrDefault<word>("mu", "thermo:mu")),
|
||||||
tauMCName_(dict.getOrDefault<word>("tauMC", "tauMC")),
|
tauMCName_(dict.lookupOrDefault<word>("tauMC", "tauMC")),
|
||||||
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
|
accommodationCoeff_(dict.get<scalar>("accommodationCoeff")),
|
||||||
Uwall_("Uwall", dict, p.size()),
|
Uwall_("Uwall", dict, p.size()),
|
||||||
thermalCreep_(dict.getOrDefault("thermalCreep", true)),
|
thermalCreep_(dict.lookupOrDefault("thermalCreep", true)),
|
||||||
curvature_(dict.getOrDefault("curvature", true))
|
curvature_(dict.lookupOrDefault("curvature", true))
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -67,8 +66,8 @@ Foam::fixedRhoFvPatchScalarField::fixedRhoFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict),
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
pName_(dict.getOrDefault<word>("p", "p")),
|
pName_(dict.lookupOrDefault<word>("p", "p")),
|
||||||
psiName_(dict.getOrDefault<word>("psi", "thermo:psi"))
|
psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
runTime.controlDict().getOrDefault<scalar>
|
runTime.controlDict().lookupOrDefault<scalar>
|
||||||
(
|
(
|
||||||
"rDeltaTSmoothingCoeff",
|
"rDeltaTSmoothingCoeff",
|
||||||
0.02
|
0.02
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
const dictionary& eosDict = thermoDict.subDict("equationOfState");
|
const dictionary& eosDict = thermoDict.subDict("equationOfState");
|
||||||
|
|
||||||
bool local = eosDict.getOrDefault("local", false);
|
bool local = eosDict.lookupOrDefault("local", false);
|
||||||
|
|
||||||
// Evolve T as:
|
// Evolve T as:
|
||||||
//
|
//
|
||||||
|
|||||||
@ -41,7 +41,8 @@ Description
|
|||||||
airframe noise, VKI LS 2013-03.
|
airframe noise, VKI LS 2013-03.
|
||||||
\endverbatim
|
\endverbatim
|
||||||
|
|
||||||
Contact: info@upstream-cfd.com
|
|
||||||
|
Contact: info@cfd-berlin.com
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
bool ddtCorr
|
bool ddtCorr
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("ddtCorr", true)
|
pimple.dict().lookupOrDefault("ddtCorr", true)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
#include "readTimeControls.H"
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
correctPhi = pimple.dict().getOrDefault("correctPhi", false);
|
correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
|
||||||
|
|
||||||
checkMeshCourantNo =
|
checkMeshCourantNo =
|
||||||
pimple.dict().getOrDefault("checkMeshCourantNo", false);
|
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
|
||||||
|
|
||||||
|
|
||||||
ddtCorr = pimple.dict().getOrDefault("ddtCorr", true);
|
ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);
|
||||||
|
|||||||
@ -5,22 +5,22 @@
|
|||||||
|
|
||||||
scalar maxCo
|
scalar maxCo
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("maxCo", 0.8)
|
pimpleDict.lookupOrDefault<scalar>("maxCo", 0.8)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.02)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.02)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar rDeltaTDampingCoeff
|
scalar rDeltaTDampingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar maxDeltaT
|
scalar maxDeltaT
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT)
|
pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField rDeltaT0("rDeltaT0", rDeltaT);
|
volScalarField rDeltaT0("rDeltaT0", rDeltaT);
|
||||||
|
|||||||
@ -82,5 +82,5 @@ dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
|||||||
|
|
||||||
bool adjustFringe
|
bool adjustFringe
|
||||||
(
|
(
|
||||||
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
simple.dict().lookupOrDefault("oversetAdjustPhi", false)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
const dictionary& Bpiso = mesh.solutionDict().subDict("BPISO");
|
const dictionary& Bpiso = mesh.solutionDict().subDict("BPISO");
|
||||||
|
|
||||||
const int nBcorr = Bpiso.getOrDefault<int>("nCorrectors", 1);
|
const int nBcorr = Bpiso.lookupOrDefault<int>("nCorrectors", 1);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../buoyantBoussinesqSimpleFoam \
|
-I../buoyantBoussinesqSimpleFoam \
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
#include "readTimeControls.H"
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
correctPhi = pimple.dict().getOrDefault("correctPhi", false);
|
correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
|
||||||
|
|
||||||
checkMeshCourantNo =
|
checkMeshCourantNo =
|
||||||
pimple.dict().getOrDefault("checkMeshCourantNo", false);
|
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
|
||||||
|
|
||||||
|
|
||||||
ddtCorr = pimple.dict().getOrDefault("ddtCorr", true);
|
ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I./fluid \
|
-I./fluid \
|
||||||
-I./solid \
|
-I./solid \
|
||||||
-I./porousFluid \
|
-I./porousFluid \
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I./fluid \
|
-Ifluid \
|
||||||
-I./solid \
|
-Isolid \
|
||||||
-I../solid \
|
-I../solid \
|
||||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
const dictionary& simple = fluidRegions[i].solutionDict().subDict("SIMPLE");
|
const dictionary& simple = fluidRegions[i].solutionDict().subDict("SIMPLE");
|
||||||
|
|
||||||
const int nNonOrthCorr =
|
const int nNonOrthCorr =
|
||||||
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||||
|
|
||||||
const bool momentumPredictor =
|
const bool momentumPredictor =
|
||||||
simple.getOrDefault("momentumPredictor", true);
|
simple.lookupOrDefault("momentumPredictor", true);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
|
const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
|
||||||
|
|
||||||
const int nNonOrthCorr =
|
const int nNonOrthCorr =
|
||||||
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(FOAM_SOLVERS)/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam \
|
-I$(FOAM_SOLVERS)/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam \
|
||||||
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/lnInclude \
|
-I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/lnInclude \
|
||||||
@ -37,5 +38,4 @@ EXE_LIBS = \
|
|||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lsampling \
|
-lsampling \
|
||||||
-lreactingTwoPhaseSystem \
|
-lreactingTwoPhaseSystem \
|
||||||
-lreactingPhaseSystem
|
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2018-2020 OpenCFD Ltd
|
Copyright (C) 2018 OpenCFD Ltd
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -225,13 +225,13 @@ turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
mixedFvPatchScalarField(p, iF),
|
mixedFvPatchScalarField(p, iF),
|
||||||
regionType_(regionTypeNames_.get("region", dict)),
|
regionType_(regionTypeNames_.read(dict.lookup("region"))),
|
||||||
method_(KMethodTypeNames_.get("kappaMethod", dict)),
|
method_(KMethodTypeNames_.get("kappaMethod", dict)),
|
||||||
kappaName_(dict.getOrDefault<word>("kappa", "none")),
|
kappaName_(dict.lookupOrDefault<word>("kappa", "none")),
|
||||||
otherPhaseName_(dict.get<word>("otherPhase")),
|
otherPhaseName_(dict.lookup("otherPhase")),
|
||||||
TnbrName_(dict.getOrDefault<word>("Tnbr", "T")),
|
TnbrName_(dict.lookupOrDefault<word>("Tnbr", "T")),
|
||||||
qrNbrName_(dict.getOrDefault<word>("qrNbr", "none")),
|
qrNbrName_(dict.lookupOrDefault<word>("qrNbr", "none")),
|
||||||
qrName_(dict.getOrDefault<word>("qr", "none"))
|
qrName_(dict.lookupOrDefault<word>("qr", "none"))
|
||||||
{
|
{
|
||||||
if (!isA<mappedPatchBase>(this->patch().patch()))
|
if (!isA<mappedPatchBase>(this->patch().patch()))
|
||||||
{
|
{
|
||||||
@ -495,8 +495,11 @@ void turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField::write
|
|||||||
os.writeEntryIfDifferent<word>("qrNbr", "none", qrNbrName_);
|
os.writeEntryIfDifferent<word>("qrNbr", "none", qrNbrName_);
|
||||||
os.writeEntryIfDifferent<word>("qr", "none", qrName_);
|
os.writeEntryIfDifferent<word>("qr", "none", qrName_);
|
||||||
|
|
||||||
os.writeEntry("region", regionTypeNames_[regionType_]);
|
os.writeKeyword("region") << regionTypeNames_[regionType_]
|
||||||
os.writeEntry("otherPhase", otherPhaseName_);
|
<< token::END_STATEMENT << nl;
|
||||||
|
|
||||||
|
os.writeKeyword("otherPhase") << otherPhaseName_ << token::END_STATEMENT
|
||||||
|
<< nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -148,7 +148,7 @@ private:
|
|||||||
//- Name of field on the neighbour region
|
//- Name of field on the neighbour region
|
||||||
const word TnbrName_;
|
const word TnbrName_;
|
||||||
|
|
||||||
//- Name of the radiative heat flux in the neighbour region
|
//- Name of the radiative heat flux in the neighbour region
|
||||||
const word qrNbrName_;
|
const word qrNbrName_;
|
||||||
|
|
||||||
//- Name of the radiative heat flux in local region
|
//- Name of the radiative heat flux in local region
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
Switch faceMomentum
|
Switch faceMomentum
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<Switch>("faceMomentum", false)
|
pimpleDict.lookupOrDefault<Switch>("faceMomentum", false)
|
||||||
);
|
);
|
||||||
|
|
||||||
int nEnergyCorrectors
|
int nEnergyCorrectors
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<int>("nEnergyCorrectors", 1)
|
pimpleDict.lookupOrDefault<int>("nEnergyCorrectors", 1)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
|
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
|
||||||
|
|
||||||
const int nCorr =
|
const int nCorr =
|
||||||
pimple.getOrDefault<int>("nCorrectors", 1);
|
pimple.lookupOrDefault<int>("nCorrectors", 1);
|
||||||
|
|
||||||
const int nNonOrthCorr =
|
const int nNonOrthCorr =
|
||||||
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||||
|
|
||||||
const bool momentumPredictor =
|
const bool momentumPredictor =
|
||||||
pimple.getOrDefault("momentumPredictor", true);
|
pimple.lookupOrDefault("momentumPredictor", true);
|
||||||
|
|||||||
@ -5,4 +5,4 @@
|
|||||||
const dictionary& pimple = solutionDict.subDict("PIMPLE");
|
const dictionary& pimple = solutionDict.subDict("PIMPLE");
|
||||||
|
|
||||||
const int nOuterCorr =
|
const int nOuterCorr =
|
||||||
pimple.getOrDefault<int>("nOuterCorrectors", 1);
|
pimple.lookupOrDefault<int>("nOuterCorrectors", 1);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
|
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
|
||||||
|
|
||||||
int nNonOrthCorr =
|
int nNonOrthCorr =
|
||||||
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011 OpenFOAM Foundation
|
Copyright (C) 2011 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -32,6 +31,6 @@ Description
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
scalar maxDi = runTime.controlDict().getOrDefault<scalar>("maxDi", 10);
|
scalar maxDi = runTime.controlDict().lookupOrDefault<scalar>("maxDi", 10.0);
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
|||||||
@ -2,25 +2,25 @@
|
|||||||
|
|
||||||
bool correctPhi
|
bool correctPhi
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("correctPhi", false)
|
pimple.dict().lookupOrDefault("correctPhi", false)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool checkMeshCourantNo
|
bool checkMeshCourantNo
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("checkMeshCourantNo", false)
|
pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool massFluxInterpolation
|
bool massFluxInterpolation
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("massFluxInterpolation", false)
|
pimple.dict().lookupOrDefault("massFluxInterpolation", false)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool adjustFringe
|
bool adjustFringe
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("oversetAdjustPhi", false)
|
pimple.dict().lookupOrDefault("oversetAdjustPhi", false)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool ddtCorr
|
bool ddtCorr
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("ddtCorr", true)
|
pimple.dict().lookupOrDefault("ddtCorr", true)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
#include "readTimeControls.H"
|
#include "readTimeControls.H"
|
||||||
|
|
||||||
correctPhi = pimple.dict().getOrDefault("correctPhi", false);
|
correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
|
||||||
|
|
||||||
checkMeshCourantNo = pimple.dict().getOrDefault("checkMeshCourantNo", false);
|
checkMeshCourantNo = pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
|
||||||
|
|
||||||
massFluxInterpolation =
|
massFluxInterpolation =
|
||||||
pimple.dict().getOrDefault("massFluxInterpolation", false);
|
pimple.dict().lookupOrDefault("massFluxInterpolation", false);
|
||||||
|
|
||||||
ddtCorr = pimple.dict().getOrDefault("ddtCorr", true);
|
ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I$(FOAM_SOLVERS)/incompressible/pimpleFoam/overPimpleDyMFoam \
|
-I$(FOAM_SOLVERS)/incompressible/pimpleFoam/overPimpleDyMFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
|||||||
@ -22,9 +22,9 @@
|
|||||||
|
|
||||||
bool adjustFringe
|
bool adjustFringe
|
||||||
(
|
(
|
||||||
simple.dict().getOrDefault("oversetAdjustPhi", false)
|
simple.dict().lookupOrDefault("oversetAdjustPhi", false)
|
||||||
);
|
);
|
||||||
bool massFluxInterpolation
|
bool massFluxInterpolation
|
||||||
(
|
(
|
||||||
simple.dict().getOrDefault("massFluxInterpolation", false)
|
simple.dict().lookupOrDefault("massFluxInterpolation", false)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,7 +5,7 @@ int nUCorr = 0;
|
|||||||
if (pZones.active())
|
if (pZones.active())
|
||||||
{
|
{
|
||||||
// nUCorrectors for pressureImplicitPorosity
|
// nUCorrectors for pressureImplicitPorosity
|
||||||
nUCorr = simple.dict().getOrDefault<int>("nUCorrectors", 0);
|
nUCorr = simple.dict().lookupOrDefault<int>("nUCorrectors", 0);
|
||||||
|
|
||||||
if (nUCorr > 0)
|
if (nUCorr > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -11,7 +11,7 @@ word continuousPhaseName
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ
|
IOobject::MUST_READ
|
||||||
)
|
)
|
||||||
).get<word>("continuousPhase")
|
).lookup("continuousPhase")
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
Info<< "Reading field U\n" << endl;
|
||||||
@ -121,7 +121,7 @@ volScalarField alphac
|
|||||||
|
|
||||||
const word kinematicCloudName
|
const word kinematicCloudName
|
||||||
(
|
(
|
||||||
args.getOrDefault<word>("cloud", "kinematicCloud")
|
args.get<word>("cloud", "kinematicCloud")
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -35,23 +34,23 @@ License
|
|||||||
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
||||||
|
|
||||||
// Maximum time scale
|
// Maximum time scale
|
||||||
scalar maxDeltaT(pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT));
|
scalar maxDeltaT(pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT));
|
||||||
|
|
||||||
// Smoothing parameter (0-1) when smoothing iterations > 0
|
// Smoothing parameter (0-1) when smoothing iterations > 0
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Damping coefficient (1-0)
|
// Damping coefficient (1-0)
|
||||||
scalar rDeltaTDampingCoeff
|
scalar rDeltaTDampingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 0.2)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 0.2)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Maximum change in cell temperature per iteration
|
// Maximum change in cell temperature per iteration
|
||||||
// (relative to previous value)
|
// (relative to previous value)
|
||||||
scalar alphaTemp(pimpleDict.getOrDefault("alphaTemp", 0.05));
|
scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
|
||||||
|
|
||||||
|
|
||||||
Info<< "Time scales min/max:" << endl;
|
Info<< "Time scales min/max:" << endl;
|
||||||
|
|||||||
@ -59,7 +59,7 @@ volScalarField mu
|
|||||||
|
|
||||||
const word kinematicCloudName
|
const word kinematicCloudName
|
||||||
(
|
(
|
||||||
args.getOrDefault<word>("cloud", "kinematicCloud")
|
args.get<word>("cloud", "kinematicCloud")
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../reactingParcelFoam \
|
-I../reactingParcelFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
|
|||||||
@ -1,28 +0,0 @@
|
|||||||
#include "createMesh.H"
|
|
||||||
|
|
||||||
IOdictionary filmDict
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"surfaceFilmProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
runTime,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
const word filmRegionName = filmDict.get<word>("region");
|
|
||||||
|
|
||||||
fvMesh filmMesh
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
filmRegionName,
|
|
||||||
runTime.timeName(),
|
|
||||||
runTime,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
bool solvePrimaryRegion
|
bool solvePrimaryRegion
|
||||||
(
|
(
|
||||||
pimple.dict().getOrDefault("solvePrimaryRegion", true)
|
pimple.dict().lookupOrDefault("solvePrimaryRegion", true)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/sampling/lnInclude \
|
-I${LIB_SRC}/sampling/lnInclude \
|
||||||
|
|||||||
@ -70,7 +70,6 @@ int main(int argc, char *argv[])
|
|||||||
" and surface film modelling."
|
" and surface film modelling."
|
||||||
);
|
);
|
||||||
|
|
||||||
#define CREATE_MESH createMeshesPostProcess.H
|
|
||||||
#include "postProcess.H"
|
#include "postProcess.H"
|
||||||
|
|
||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -35,23 +34,23 @@ License
|
|||||||
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
scalar maxCo(pimpleDict.get<scalar>("maxCo"));
|
||||||
|
|
||||||
// Maximum time scale
|
// Maximum time scale
|
||||||
scalar maxDeltaT(pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT));
|
scalar maxDeltaT(pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT));
|
||||||
|
|
||||||
// Smoothing parameter (0-1) when smoothing iterations > 0
|
// Smoothing parameter (0-1) when smoothing iterations > 0
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Damping coefficient (1-0)
|
// Damping coefficient (1-0)
|
||||||
scalar rDeltaTDampingCoeff
|
scalar rDeltaTDampingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 0.2)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 0.2)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Maximum change in cell temperature per iteration
|
// Maximum change in cell temperature per iteration
|
||||||
// (relative to previous value)
|
// (relative to previous value)
|
||||||
scalar alphaTemp(pimpleDict.getOrDefault("alphaTemp", 0.05));
|
scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
|
||||||
|
|
||||||
|
|
||||||
Info<< "Time scales min/max:" << endl;
|
Info<< "Time scales min/max:" << endl;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
-I$(LIB_SRC)/sampling/lnInclude \
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../reactingParcelFoam \
|
-I../reactingParcelFoam \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I${LIB_SRC}/meshTools/lnInclude \
|
-I${LIB_SRC}/meshTools/lnInclude \
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../sprayDyMFoam \
|
-I../sprayDyMFoam \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../../reactingParcelFoam \
|
-I../../reactingParcelFoam \
|
||||||
|
|||||||
@ -51,7 +51,7 @@ autoPtr<compressible::turbulenceModel> turbulence
|
|||||||
|
|
||||||
const word kinematicCloudName
|
const word kinematicCloudName
|
||||||
(
|
(
|
||||||
args.getOrDefault<word>("cloud", "kinematicCloud")
|
args.get<word>("cloud", "kinematicCloud")
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
|
||||||
|
|||||||
@ -119,7 +119,7 @@ int main(int argc, char *argv[])
|
|||||||
alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
|
alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
|
||||||
alphac.correctBoundaryConditions();
|
alphac.correctBoundaryConditions();
|
||||||
|
|
||||||
Info<< "Continuous phase-1 volume fraction = "
|
Info<< "Continous phase-1 volume fraction = "
|
||||||
<< alphac.weightedAverage(mesh.Vsc()).value()
|
<< alphac.weightedAverage(mesh.Vsc()).value()
|
||||||
<< " Min(alphac) = " << min(alphac).value()
|
<< " Min(alphac) = " << min(alphac).value()
|
||||||
<< " Max(alphac) = " << max(alphac).value()
|
<< " Max(alphac) = " << max(alphac).value()
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
interFoamPath = $(FOAM_SOLVERS)/multiphase/interFoam
|
interFoamPath = $(FOAM_SOLVERS)/multiphase/interFoam
|
||||||
|
|
||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../VoF \
|
-I../VoF \
|
||||||
-I./IncompressibleTwoPhaseMixtureTurbulenceModels/lnInclude \
|
-I./IncompressibleTwoPhaseMixtureTurbulenceModels/lnInclude \
|
||||||
-I$(interFoamPath) \
|
-I$(interFoamPath) \
|
||||||
|
|||||||
@ -5,52 +5,52 @@
|
|||||||
|
|
||||||
scalar maxCo
|
scalar maxCo
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("maxCo", 0.9)
|
pimpleDict.lookupOrDefault<scalar>("maxCo", 0.9)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar maxAlphaCo
|
scalar maxAlphaCo
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("maxAlphaCo", 0.2)
|
pimpleDict.lookupOrDefault<scalar>("maxAlphaCo", 0.2)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1)
|
||||||
);
|
);
|
||||||
|
|
||||||
label nAlphaSpreadIter
|
label nAlphaSpreadIter
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<label>("nAlphaSpreadIter", 1)
|
pimpleDict.lookupOrDefault<label>("nAlphaSpreadIter", 1)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar alphaSpreadDiff
|
scalar alphaSpreadDiff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("alphaSpreadDiff", 0.2)
|
pimpleDict.lookupOrDefault<scalar>("alphaSpreadDiff", 0.2)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar alphaSpreadMax
|
scalar alphaSpreadMax
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("alphaSpreadMax", 0.99)
|
pimpleDict.lookupOrDefault<scalar>("alphaSpreadMax", 0.99)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar alphaSpreadMin
|
scalar alphaSpreadMin
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("alphaSpreadMin", 0.01)
|
pimpleDict.lookupOrDefault<scalar>("alphaSpreadMin", 0.01)
|
||||||
);
|
);
|
||||||
|
|
||||||
label nAlphaSweepIter
|
label nAlphaSweepIter
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<label>("nAlphaSweepIter", 5)
|
pimpleDict.lookupOrDefault<label>("nAlphaSweepIter", 5)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar rDeltaTDampingCoeff
|
scalar rDeltaTDampingCoeff
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar maxDeltaT
|
scalar maxDeltaT
|
||||||
(
|
(
|
||||||
pimpleDict.getOrDefault<scalar>("maxDeltaT", GREAT)
|
pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField rDeltaT0("rDeltaT0", rDeltaT);
|
volScalarField rDeltaT0("rDeltaT0", rDeltaT);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "readDyMControls.H"
|
#include "readDyMControls.H"
|
||||||
|
|
||||||
correctPhi = pimple.dict().getOrDefault("correctPhi", true);
|
correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
|
||||||
maxAcousticCo = runTime.controlDict().get<scalar>("maxAcousticCo");
|
maxAcousticCo = runTime.controlDict().get<scalar>("maxAcousticCo");
|
||||||
|
|||||||
@ -28,7 +28,7 @@ Global
|
|||||||
|
|
||||||
Description
|
Description
|
||||||
Reset the timestep to maintain a constant maximum courant Number.
|
Reset the timestep to maintain a constant maximum courant Number.
|
||||||
Reduction of time-step is immediate but increase is damped to avoid
|
Reduction of time-step is imediate but increase is damped to avoid
|
||||||
unstable oscillations.
|
unstable oscillations.
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../VoF \
|
-I../VoF \
|
||||||
-ItwoPhaseMixtureThermo \
|
-ItwoPhaseMixtureThermo \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2018 OpenFOAM Foundation
|
Copyright (C) 2017-2018 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -58,9 +57,9 @@ Foam::compressibleInterPhaseTransportModel::compressibleInterPhaseTransportModel
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
const word simulationType
|
word simulationType
|
||||||
(
|
(
|
||||||
turbulenceProperties.get<word>("simulationType")
|
turbulenceProperties.lookup("simulationType")
|
||||||
);
|
);
|
||||||
|
|
||||||
if (simulationType == "twoPhaseTransport")
|
if (simulationType == "twoPhaseTransport")
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../../VoF \
|
-I../../VoF \
|
||||||
-I../twoPhaseMixtureThermo \
|
-I../twoPhaseMixtureThermo \
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I../../VoF \
|
-I../../VoF \
|
||||||
-I../twoPhaseMixtureThermo \
|
-I../twoPhaseMixtureThermo \
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017 OpenFOAM Foundation
|
Copyright (C) 2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
Copyright (C) 2018 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -55,56 +55,60 @@ VoFPatchTransfer::VoFPatchTransfer
|
|||||||
transferModel(type(), film, dict),
|
transferModel(type(), film, dict),
|
||||||
deltaFactorToVoF_
|
deltaFactorToVoF_
|
||||||
(
|
(
|
||||||
coeffDict_.getOrDefault<scalar>("deltaFactorToVoF", 1.0)
|
coeffDict_.lookupOrDefault<scalar>("deltaFactorToVoF", 1.0)
|
||||||
),
|
),
|
||||||
deltaFactorToFilm_
|
deltaFactorToFilm_
|
||||||
(
|
(
|
||||||
coeffDict_.getOrDefault<scalar>("deltaFactorToFilm", 0.5)
|
coeffDict_.lookupOrDefault<scalar>("deltaFactorToFilm", 0.5)
|
||||||
),
|
),
|
||||||
alphaToVoF_
|
alphaToVoF_
|
||||||
(
|
(
|
||||||
coeffDict_.getOrDefault<scalar>("alphaToVoF", 0.5)
|
coeffDict_.lookupOrDefault<scalar>("alphaToVoF", 0.5)
|
||||||
),
|
),
|
||||||
alphaToFilm_
|
alphaToFilm_
|
||||||
(
|
(
|
||||||
coeffDict_.getOrDefault<scalar>("alphaToFilm", 0.1)
|
coeffDict_.lookupOrDefault<scalar>("alphaToFilm", 0.1)
|
||||||
),
|
),
|
||||||
transferRateCoeff_
|
transferRateCoeff_
|
||||||
(
|
(
|
||||||
coeffDict_.getOrDefault<scalar>("transferRateCoeff", 0.1)
|
coeffDict_.lookupOrDefault<scalar>("transferRateCoeff", 0.1)
|
||||||
),
|
)
|
||||||
patchIDs_(),
|
|
||||||
patchTransferredMasses_()
|
|
||||||
{
|
{
|
||||||
const polyBoundaryMesh& pbm = film.regionMesh().boundaryMesh();
|
const polyBoundaryMesh& pbm = film.regionMesh().boundaryMesh();
|
||||||
|
patchIDs_.setSize
|
||||||
const label nPatches
|
|
||||||
(
|
(
|
||||||
pbm.size() - film.regionMesh().globalData().processorPatches().size()
|
pbm.size() - film.regionMesh().globalData().processorPatches().size()
|
||||||
);
|
);
|
||||||
|
|
||||||
wordReList patchNames;
|
if (coeffDict_.found("patches"))
|
||||||
if (coeffDict_.readIfPresent("patches", patchNames))
|
|
||||||
{
|
{
|
||||||
patchIDs_ = pbm.patchSet(patchNames).sortedToc();
|
const wordReList patchNames(coeffDict_.lookup("patches"));
|
||||||
|
const labelHashSet patchSet = pbm.patchSet(patchNames);
|
||||||
|
|
||||||
Info<< " applying to " << patchIDs_.size() << " patches:" << nl;
|
Info<< " applying to patches:" << nl;
|
||||||
|
|
||||||
for (const label patchi : patchIDs_)
|
label pidi = 0;
|
||||||
|
for (const label patchi : patchSet)
|
||||||
{
|
{
|
||||||
|
patchIDs_[pidi++] = patchi;
|
||||||
Info<< " " << pbm[patchi].name() << endl;
|
Info<< " " << pbm[patchi].name() << endl;
|
||||||
}
|
}
|
||||||
|
patchIDs_.setSize(pidi);
|
||||||
|
patchTransferredMasses_.setSize(pidi, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Info<< " applying to all patches" << endl;
|
Info<< " applying to all patches" << endl;
|
||||||
|
|
||||||
patchIDs_ = identity(nPatches);
|
forAll(patchIDs_, patchi)
|
||||||
|
{
|
||||||
|
patchIDs_[patchi] = patchi;
|
||||||
|
}
|
||||||
|
|
||||||
|
patchTransferredMasses_.setSize(patchIDs_.size(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
patchTransferredMasses_.resize(patchIDs_.size(), Zero);
|
if (!patchIDs_.size())
|
||||||
|
|
||||||
if (patchIDs_.empty())
|
|
||||||
{
|
{
|
||||||
FatalErrorInFunction
|
FatalErrorInFunction
|
||||||
<< "No patches selected"
|
<< "No patches selected"
|
||||||
|
|||||||
@ -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.
|
||||||
@ -125,9 +124,9 @@ Foam::fv::VoFSolidificationMeltingSource::VoFSolidificationMeltingSource
|
|||||||
cellSetOption(sourceName, modelType, dict, mesh),
|
cellSetOption(sourceName, modelType, dict, mesh),
|
||||||
alphaSolidT_(Function1<scalar>::New("alphaSolidT", coeffs_)),
|
alphaSolidT_(Function1<scalar>::New("alphaSolidT", coeffs_)),
|
||||||
L_("L", dimEnergy/dimMass, coeffs_),
|
L_("L", dimEnergy/dimMass, coeffs_),
|
||||||
relax_(coeffs_.getOrDefault("relax", 0.9)),
|
relax_(coeffs_.lookupOrDefault("relax", 0.9)),
|
||||||
Cu_(coeffs_.getOrDefault<scalar>("Cu", 100000)),
|
Cu_(coeffs_.lookupOrDefault<scalar>("Cu", 100000)),
|
||||||
q_(coeffs_.getOrDefault<scalar>("q", 0.001)),
|
q_(coeffs_.lookupOrDefault("q", 0.001)),
|
||||||
alphaSolid_
|
alphaSolid_
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-I../VoF \
|
-I../VoF \
|
||||||
-I../interFoam \
|
-I../interFoam \
|
||||||
-ImultiphaseMixtureThermo/lnInclude \
|
-ImultiphaseMixtureThermo/lnInclude \
|
||||||
|
|||||||
@ -28,7 +28,7 @@ Class
|
|||||||
|
|
||||||
Description
|
Description
|
||||||
Contact-angle boundary condition for multi-phase interface-capturing
|
Contact-angle boundary condition for multi-phase interface-capturing
|
||||||
simulations. Used in conjunction with multiphaseMixture.
|
simulations. Used in conjuction with multiphaseMixture.
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
alphaContactAngleFvPatchScalarField.C
|
alphaContactAngleFvPatchScalarField.C
|
||||||
|
|||||||
@ -4,12 +4,12 @@ label nAlphaCorr(alphaControls.get<label>("nAlphaCorr"));
|
|||||||
|
|
||||||
label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
|
label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
|
||||||
|
|
||||||
bool MULESCorr(alphaControls.getOrDefault("MULESCorr", false));
|
bool MULESCorr(alphaControls.lookupOrDefault("MULESCorr", false));
|
||||||
|
|
||||||
// Apply the compression correction from the previous iteration
|
// Apply the compression correction from the previous iteration
|
||||||
// Improves efficiency for steady-simulations but can only be applied
|
// Improves efficiency for steady-simulations but can only be applied
|
||||||
// once the alpha field is reasonably steady, i.e. fully developed
|
// once the alpha field is reasonably steady, i.e. fully developed
|
||||||
bool alphaApplyPrevCorr
|
bool alphaApplyPrevCorr
|
||||||
(
|
(
|
||||||
alphaControls.getOrDefault("alphaApplyPrevCorr", false)
|
alphaControls.lookupOrDefault("alphaApplyPrevCorr", false)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2014-2015 OpenFOAM Foundation
|
Copyright (C) 2014-2015 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -89,9 +89,9 @@ incompressibleTwoPhaseInteractingMixture
|
|||||||
(
|
(
|
||||||
"d",
|
"d",
|
||||||
dimLength,
|
dimLength,
|
||||||
muModel_->viscosityProperties().getOrDefault("d", 0.0)
|
muModel_->viscosityProperties().lookupOrDefault("d", 0.0)
|
||||||
),
|
),
|
||||||
alphaMax_(muModel_->viscosityProperties().getOrDefault("alphaMax", 1.0)),
|
alphaMax_(muModel_->viscosityProperties().lookupOrDefault("alphaMax", 1.0)),
|
||||||
|
|
||||||
U_(U),
|
U_(U),
|
||||||
phi_(phi),
|
phi_(phi),
|
||||||
@ -132,11 +132,11 @@ bool Foam::incompressibleTwoPhaseInteractingMixture::read()
|
|||||||
(
|
(
|
||||||
"d",
|
"d",
|
||||||
dimLength,
|
dimLength,
|
||||||
muModel_->viscosityProperties().getOrDefault("d", 0)
|
muModel_->viscosityProperties().lookupOrDefault("d", 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
alphaMax_ =
|
alphaMax_ =
|
||||||
muModel_->viscosityProperties().getOrDefault
|
muModel_->viscosityProperties().lookupOrDefault
|
||||||
(
|
(
|
||||||
"alphaMax",
|
"alphaMax",
|
||||||
1.0
|
1.0
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2014-2017 OpenFOAM Foundation
|
Copyright (C) 2014-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -69,7 +68,7 @@ Foam::mixtureViscosityModels::plastic::plastic
|
|||||||
(
|
(
|
||||||
IOobject::groupName
|
IOobject::groupName
|
||||||
(
|
(
|
||||||
viscosityProperties.getOrDefault<word>("alpha", "alpha"),
|
viscosityProperties.lookupOrDefault<word>("alpha", "alpha"),
|
||||||
viscosityProperties.dictName()
|
viscosityProperties.dictName()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2014 OpenFOAM Foundation
|
Copyright (C) 2014 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -65,7 +64,7 @@ Foam::mixtureViscosityModels::slurry::slurry
|
|||||||
(
|
(
|
||||||
IOobject::groupName
|
IOobject::groupName
|
||||||
(
|
(
|
||||||
viscosityProperties.getOrDefault<word>("alpha", "alpha"),
|
viscosityProperties.lookupOrDefault<word>("alpha", "alpha"),
|
||||||
viscosityProperties.dictName()
|
viscosityProperties.dictName()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -2,7 +2,7 @@ fvVectorMatrix UEqn
|
|||||||
(
|
(
|
||||||
fvm::ddt(rho, U)
|
fvm::ddt(rho, U)
|
||||||
+ fvm::div(rhoPhi, U)
|
+ fvm::div(rhoPhi, U)
|
||||||
//- fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
|
//- fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
|
||||||
+ turbulence->divDevRhoReff(U)
|
+ turbulence->divDevRhoReff(U)
|
||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2014 OpenFOAM Foundation
|
Copyright (C) 2011-2014 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 @@ scalar maxAlphaCo
|
|||||||
|
|
||||||
scalar maxAlphaDdt
|
scalar maxAlphaDdt
|
||||||
(
|
(
|
||||||
runTime.controlDict().getOrDefault("maxAlphaDdt", GREAT)
|
runTime.controlDict().lookupOrDefault("maxAlphaDdt", GREAT)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar maxDi
|
scalar maxDi
|
||||||
(
|
(
|
||||||
runTime.controlDict().getOrDefault<scalar>("maxDi", GREAT)
|
runTime.controlDict().lookupOrDefault<scalar>("maxDi", GREAT)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalar alphaCoNum = 0.0;
|
scalar alphaCoNum = 0.0;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2020 OpenCFD Ltd.
|
Copyright (C) 2017 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -98,13 +98,13 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
fluid.correctMassSources(T);
|
|
||||||
fluid.solve();
|
fluid.solve();
|
||||||
rho = fluid.rho();
|
rho = fluid.rho();
|
||||||
|
|
||||||
// --- Pressure-velocity PIMPLE corrector loop
|
// --- Pressure-velocity PIMPLE corrector loop
|
||||||
while (pimple.loop())
|
while (pimple.loop())
|
||||||
{
|
{
|
||||||
|
solve(fvm::ddt(rho) + fvc::div(rhoPhi));
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
#include "YEqns.H"
|
#include "YEqns.H"
|
||||||
#include "TEqn.H"
|
#include "TEqn.H"
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2020 OpenCFD Ltd.
|
Copyright (C) 2017-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -175,9 +175,11 @@ void Foam::radiation::laserDTRM::initialise()
|
|||||||
const vector lPosition = focalLaserPosition_->value(t);
|
const vector lPosition = focalLaserPosition_->value(t);
|
||||||
const vector lDir = normalised(laserDirection_->value(t));
|
const vector lDir = normalised(laserDirection_->value(t));
|
||||||
|
|
||||||
DebugInfo
|
if (debug)
|
||||||
<< "Laser position : " << lPosition << nl
|
{
|
||||||
<< "Laser direction : " << lDir << endl;
|
Info << "Laser position : " << lPosition << endl;
|
||||||
|
Info << "Laser direction : " << lDir << endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Find a vector on the area plane. Normal to laser direction
|
// Find a vector on the area plane. Normal to laser direction
|
||||||
vector rArea = Zero;
|
vector rArea = Zero;
|
||||||
@ -354,7 +356,7 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
|
|||||||
focalLaserRadius_(get<scalar>("focalLaserRadius")),
|
focalLaserRadius_(get<scalar>("focalLaserRadius")),
|
||||||
qualityBeamLaser_
|
qualityBeamLaser_
|
||||||
(
|
(
|
||||||
getOrDefault<scalar>("qualityBeamLaser", 0)
|
lookupOrDefault<scalar>("qualityBeamLaser", 0.0)
|
||||||
),
|
),
|
||||||
|
|
||||||
sigma_(0),
|
sigma_(0),
|
||||||
@ -364,7 +366,7 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
|
|||||||
|
|
||||||
reflectionSwitch_(false),
|
reflectionSwitch_(false),
|
||||||
|
|
||||||
alphaCut_(getOrDefault<scalar>("alphaCut", 0.5)),
|
alphaCut_(lookupOrDefault<scalar>("alphaCut", 0.5)),
|
||||||
|
|
||||||
a_
|
a_
|
||||||
(
|
(
|
||||||
@ -451,7 +453,7 @@ Foam::radiation::laserDTRM::laserDTRM
|
|||||||
focalLaserRadius_(get<scalar>("focalLaserRadius")),
|
focalLaserRadius_(get<scalar>("focalLaserRadius")),
|
||||||
qualityBeamLaser_
|
qualityBeamLaser_
|
||||||
(
|
(
|
||||||
getOrDefault<scalar>("qualityBeamLaser", 0)
|
lookupOrDefault<scalar>("qualityBeamLaser", 0.0)
|
||||||
),
|
),
|
||||||
|
|
||||||
sigma_(0),
|
sigma_(0),
|
||||||
@ -461,7 +463,7 @@ Foam::radiation::laserDTRM::laserDTRM
|
|||||||
|
|
||||||
reflectionSwitch_(false),
|
reflectionSwitch_(false),
|
||||||
|
|
||||||
alphaCut_(getOrDefault<scalar>("alphaCut", 0.5)),
|
alphaCut_(lookupOrDefault<scalar>("alphaCut", 0.5)),
|
||||||
|
|
||||||
a_
|
a_
|
||||||
(
|
(
|
||||||
|
|||||||
@ -143,7 +143,7 @@ public:
|
|||||||
const volScalarField& Tf
|
const volScalarField& Tf
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Reference mass fraction for species based models
|
//- Reference mass fraction for specied based models
|
||||||
virtual tmp<volScalarField> Yf
|
virtual tmp<volScalarField> Yf
|
||||||
(
|
(
|
||||||
const word& speciesName,
|
const word& speciesName,
|
||||||
|
|||||||
@ -50,7 +50,6 @@ License
|
|||||||
|
|
||||||
#include "kineticGasEvaporation.H"
|
#include "kineticGasEvaporation.H"
|
||||||
#include "Lee.H"
|
#include "Lee.H"
|
||||||
#include "interfaceHeatResistance.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -329,152 +328,6 @@ namespace Foam
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// interfaceHeatResistance model definitions
|
|
||||||
|
|
||||||
// From pure phase (rho const) to phase (rho const)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// From pure phase (rho const) to phase (Boussinesq)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
BoussinesqFluidEThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// From pure phase (solidThermo) to phase (Boussinesq)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hConstSolidThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
BoussinesqFluidEThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// From pure phase (solidThermo) to phase (rho const)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hConstSolidThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// From pure phase (all-poly solidThermo) to phase (ico-rho)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hPolyTranspPolyIcoSolidThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
icoPoly8HThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// From pure phase (exp-Transp, hPower solidThermo) to phase (ico-rho)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hPowerSolidThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
icoPoly8HThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// From pure phase (const rho) to multi phase (incomp ideal gas)
|
|
||||||
makeInterfaceContSpecieMixtureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoReactionThermo,
|
|
||||||
multiComponentMixture,
|
|
||||||
constIncompressibleGasHThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// From pure phase (Boussinesq) to phase (solidThermo)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
BoussinesqFluidEThermoPhysics,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hConstSolidThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// From pure phase (rho const) to phase (solidThermo)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
constRhoHThermoPhysics,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hConstSolidThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
//From pure liquid phase (ico-rho) to pure phase (exp-Transp, hPower solidThermo)
|
|
||||||
makeInterfacePureType
|
|
||||||
(
|
|
||||||
interfaceHeatResistance,
|
|
||||||
heRhoThermo,
|
|
||||||
rhoThermo,
|
|
||||||
pureMixture,
|
|
||||||
icoPoly8HThermoPhysics,
|
|
||||||
heSolidThermo,
|
|
||||||
solidThermo,
|
|
||||||
pureMixture,
|
|
||||||
hPowerSolidThermoPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2020 OpenCFD Ltd.
|
Copyright (C) 2017 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -41,7 +41,7 @@ Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Lee
|
|||||||
InterfaceCompositionModel<Thermo, OtherThermo>(dict, pair),
|
InterfaceCompositionModel<Thermo, OtherThermo>(dict, pair),
|
||||||
C_("C", inv(dimTime), dict),
|
C_("C", inv(dimTime), dict),
|
||||||
Tactivate_("Tactivate", dimTemperature, dict),
|
Tactivate_("Tactivate", dimTemperature, dict),
|
||||||
alphaMin_(dict.getOrDefault<scalar>("alphaMin", 0))
|
alphaMin_(dict.lookupOrDefault<scalar>("alphaMin", 0))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -50,44 +50,6 @@ Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Lee
|
|||||||
template<class Thermo, class OtherThermo>
|
template<class Thermo, class OtherThermo>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Kexp
|
Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Kexp
|
||||||
(
|
|
||||||
const volScalarField& refValue
|
|
||||||
)
|
|
||||||
{
|
|
||||||
{
|
|
||||||
const volScalarField from
|
|
||||||
(
|
|
||||||
min(max(this->pair().from(), scalar(0)), scalar(1))
|
|
||||||
);
|
|
||||||
|
|
||||||
const volScalarField coeff
|
|
||||||
(
|
|
||||||
C_*from*this->pair().from().rho()*pos(from - alphaMin_)
|
|
||||||
*(refValue - Tactivate_)
|
|
||||||
/Tactivate_
|
|
||||||
);
|
|
||||||
|
|
||||||
if (sign(C_.value()) > 0)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(
|
|
||||||
coeff*pos(refValue - Tactivate_)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(
|
|
||||||
coeff*pos(Tactivate_ - refValue)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, class OtherThermo>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::KSp
|
|
||||||
(
|
(
|
||||||
label variable,
|
label variable,
|
||||||
const volScalarField& refValue
|
const volScalarField& refValue
|
||||||
@ -100,67 +62,30 @@ Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::KSp
|
|||||||
min(max(this->pair().from(), scalar(0)), scalar(1))
|
min(max(this->pair().from(), scalar(0)), scalar(1))
|
||||||
);
|
);
|
||||||
|
|
||||||
const volScalarField coeff
|
|
||||||
(
|
|
||||||
C_*from*this->pair().from().rho()*pos(from - alphaMin_)
|
|
||||||
/Tactivate_
|
|
||||||
);
|
|
||||||
|
|
||||||
if (sign(C_.value()) > 0)
|
if (sign(C_.value()) > 0)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
(
|
(
|
||||||
coeff*pos(refValue - Tactivate_)
|
C_
|
||||||
|
* from
|
||||||
|
* this->pair().from().rho()
|
||||||
|
* (refValue.oldTime() - Tactivate_)
|
||||||
|
* pos(from - alphaMin_)
|
||||||
|
* pos(refValue.oldTime() - Tactivate_)/Tactivate_
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
(
|
(
|
||||||
coeff*pos(Tactivate_ - refValue)
|
-C_
|
||||||
|
* from
|
||||||
|
* this->pair().from().rho()
|
||||||
|
* pos(from - alphaMin_)
|
||||||
|
* (Tactivate_ - refValue.oldTime())
|
||||||
|
* pos(Tactivate_ - refValue.oldTime())/Tactivate_
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return tmp<volScalarField> ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, class OtherThermo>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::KSu
|
|
||||||
(
|
|
||||||
label variable,
|
|
||||||
const volScalarField& refValue
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (this->modelVariable_ == variable)
|
|
||||||
{
|
|
||||||
volScalarField from
|
|
||||||
(
|
|
||||||
min(max(this->pair().from(), scalar(0)), scalar(1))
|
|
||||||
);
|
|
||||||
|
|
||||||
const volScalarField coeff
|
|
||||||
(
|
|
||||||
C_*from*this->pair().from().rho()*pos(from - alphaMin_)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (sign(C_.value()) > 0)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(
|
|
||||||
-coeff*pos(refValue - Tactivate_)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(
|
|
||||||
coeff*pos(Tactivate_ - refValue)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -178,12 +103,4 @@ Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Tactivate() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, class OtherThermo>
|
|
||||||
bool
|
|
||||||
Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::includeDivU()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2020 OpenCFD Ltd.
|
Copyright (C) 2017 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -27,7 +27,7 @@ Class
|
|||||||
Foam::meltingEvaporationModels::Lee
|
Foam::meltingEvaporationModels::Lee
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Mass transfer Lee model. Simple model driven by field value difference as:
|
Mass tranfer Lee model. Simple model driven by field value difference as:
|
||||||
|
|
||||||
\f[
|
\f[
|
||||||
\dot{m} = C \rho \alpha (T - T_{activate})/T_{activate}
|
\dot{m} = C \rho \alpha (T - T_{activate})/T_{activate}
|
||||||
@ -80,8 +80,6 @@ Usage
|
|||||||
Property | Description | Required | Default value
|
Property | Description | Required | Default value
|
||||||
Tactivate | Activation temperature | yes
|
Tactivate | Activation temperature | yes
|
||||||
C | Model constant | yes
|
C | Model constant | yes
|
||||||
includeVolChange | Volumen change | no | yes
|
|
||||||
species | Specie name on the other phase | no | none
|
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
@ -94,6 +92,7 @@ SourceFiles
|
|||||||
|
|
||||||
#include "InterfaceCompositionModel.H"
|
#include "InterfaceCompositionModel.H"
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
@ -102,7 +101,7 @@ namespace meltingEvaporationModels
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class Lee Declaration
|
Class Lee
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template<class Thermo, class OtherThermo>
|
template<class Thermo, class OtherThermo>
|
||||||
@ -110,7 +109,7 @@ class Lee
|
|||||||
:
|
:
|
||||||
public InterfaceCompositionModel<Thermo, OtherThermo>
|
public InterfaceCompositionModel<Thermo, OtherThermo>
|
||||||
{
|
{
|
||||||
// Private Data
|
// Private data
|
||||||
|
|
||||||
//- Condensation coefficient [1/s]
|
//- Condensation coefficient [1/s]
|
||||||
dimensionedScalar C_;
|
dimensionedScalar C_;
|
||||||
@ -144,32 +143,15 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Explicit total mass transfer coefficient
|
//- Explicit mass transfer coefficient
|
||||||
virtual tmp<volScalarField> Kexp
|
virtual tmp<volScalarField> Kexp
|
||||||
(
|
(
|
||||||
const volScalarField& field
|
label variable,
|
||||||
);
|
|
||||||
|
|
||||||
//- Implicit mass transfer coefficient
|
|
||||||
virtual tmp<volScalarField> KSp
|
|
||||||
(
|
|
||||||
label modelVariable,
|
|
||||||
const volScalarField& field
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Explicit mass transfer coefficient
|
|
||||||
virtual tmp<volScalarField> KSu
|
|
||||||
(
|
|
||||||
label modelVariable,
|
|
||||||
const volScalarField& field
|
const volScalarField& field
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return T transition between phases
|
//- Return T transition between phases
|
||||||
virtual const dimensionedScalar& Tactivate() const;
|
virtual const dimensionedScalar& Tactivate() const;
|
||||||
|
|
||||||
//- Add/subtract alpha*div(U) as a source term
|
|
||||||
//- for alpha, substituting div(U) = mDot(1/rho1 - 1/rho2)
|
|
||||||
virtual bool includeDivU();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user