Compare commits
384 Commits
feature-po
...
feature-su
| Author | SHA1 | Date | |
|---|---|---|---|
| 99a3f10729 | |||
| 0fa124af45 | |||
| b7ce6bf69d | |||
| 0a53013499 | |||
| 47f2ff618d | |||
| 47575aabf2 | |||
| 97c8e62fe4 | |||
| 297fee00f1 | |||
| c987ac228c | |||
| 4fe3f55e4d | |||
| cb1aa273fd | |||
| 5aa40389c2 | |||
| 7904a2734f | |||
| 45e7c4a005 | |||
| 71d3f2344a | |||
| d3949086ce | |||
| 03b470bec0 | |||
| 131bbaf476 | |||
| f6f6ffe055 | |||
| 639e87b52f | |||
| 18f73c211d | |||
| 6eae520af7 | |||
| 25de821e93 | |||
| 0733d1cded | |||
| 4fdeae66d5 | |||
| 8bf1108677 | |||
| cddfe0e324 | |||
| dffb5774d5 | |||
| c926f146d4 | |||
| 82e471e045 | |||
| 3bc2b5fd74 | |||
| af6e5e75fd | |||
| 8a8c2482d7 | |||
| 29c8a77e04 | |||
| 8e98779d70 | |||
| 1eb904fc68 | |||
| 45ee161f23 | |||
| 1e6d8d73a0 | |||
| 51d1050339 | |||
| 83b9c60a88 | |||
| 2d731e1af3 | |||
| 528ea551ec | |||
| c77cc498d7 | |||
| 5d0058bc85 | |||
| f265fcc8d0 | |||
| e33fb8d0db | |||
| 3d35bb920f | |||
| 4423efd313 | |||
| b0b1d0f8b2 | |||
| ed99546b8a | |||
| a2b3187188 | |||
| 30d29f2303 | |||
| 207806e55d | |||
| da09e9203f | |||
| 57b250963d | |||
| ea4508c079 | |||
| 1462a5effa | |||
| bd5d32035e | |||
| d4d2e4af3d | |||
| 8a4e3526c3 | |||
| 8340317a46 | |||
| e64d93ffdb | |||
| 4c21ad3d3f | |||
| 011f730309 | |||
| 009faad912 | |||
| 462fd687d2 | |||
| 1401ce02b5 | |||
| 15059f78b8 | |||
| aaaa80589f | |||
| ab30b0301c | |||
| de5d34787c | |||
| e7cf8a1d59 | |||
| 0a363f2885 | |||
| 44f7a7268a | |||
| 59c74e53ff | |||
| bba45b3022 | |||
| 6c60b19c4a | |||
| 697e6147f4 | |||
| c37a3f530d | |||
| 429d8d0522 | |||
| 3e80552244 | |||
| a797ac8193 | |||
| 1cb61b90e7 | |||
| 52b530fb82 | |||
| 96660cdfac | |||
| e65d720164 | |||
| ff6ef5bdf8 | |||
| 267bd1af36 | |||
| b9335f4989 | |||
| 23f8480af6 | |||
| d061be643e | |||
| 8d0f4eb87a | |||
| f90c7b17fc | |||
| 9c5ce8e4f2 | |||
| 8d6efa9f1b | |||
| 91fb7456a5 | |||
| 3ab7d6a088 | |||
| a445dd10e1 | |||
| f0f915b932 | |||
| 86fda799ec | |||
| e45b26eaf0 | |||
| 6ad75fe141 | |||
| 96db337a99 | |||
| 0fa5062c7d | |||
| 3e00e05e33 | |||
| e54791019a | |||
| 8a508910ba | |||
| 96ccae977e | |||
| 19601c0976 | |||
| 3fb8f5ed69 | |||
| f5310ca48c | |||
| 7f1120f6ed | |||
| 96ada1dd54 | |||
| 6b08c346f1 | |||
| f321fc73ef | |||
| 791796c67f | |||
| b73de97f97 | |||
| cfdc2330eb | |||
| cc580fc108 | |||
| 77ba7ca4d4 | |||
| ceb2151094 | |||
| e4f4c73b98 | |||
| 1a6f0f997a | |||
| 4f1e7f6343 | |||
| 53052a5eb3 | |||
| fe0b71280e | |||
| 5836d280b9 | |||
| cd2d81b79a | |||
| 4df27f8be6 | |||
| 4167aababe | |||
| d6b8b49da8 | |||
| a9cc444b79 | |||
| 782f22feb8 | |||
| 13146891fe | |||
| d72f51ac23 | |||
| 1d6396dd3f | |||
| 0ff5eb5687 | |||
| 559f13d450 | |||
| fd77d7d9b5 | |||
| 050f27910e | |||
| 483e9892ee | |||
| d6df40a5e2 | |||
| 60e5f0e0ae | |||
| 14fcd08f86 | |||
| f72670edff | |||
| aacd99c030 | |||
| 303c3135aa | |||
| f97f715f66 | |||
| bb8f7799d9 | |||
| 7ec78f6d6d | |||
| dce009cef1 | |||
| d8d3e34d5c | |||
| d300fab63a | |||
| 69b2a667c9 | |||
| be01ca7888 | |||
| 630d60de3b | |||
| 2390ebbf7e | |||
| 510d9fc5a5 | |||
| c6399ca920 | |||
| cdc1a34bab | |||
| fa49ae252b | |||
| 0b9391ff3b | |||
| 7bdc000865 | |||
| ac099d82eb | |||
| fb96927275 | |||
| ab5f6dbf41 | |||
| 7c45670c8b | |||
| 58aa8c97c2 | |||
| 9f4bb2d432 | |||
| 24ac8308b3 | |||
| 0e23e6c66c | |||
| 21c554d7d0 | |||
| 391f059335 | |||
| 5873ec1b22 | |||
| bb483951b7 | |||
| 7b5e605b29 | |||
| 732872b9cc | |||
| c6501b799e | |||
| 93ee308ebf | |||
| 9d6b8a9c28 | |||
| 530a5192ca | |||
| d859f7b00f | |||
| 2ef96e9e43 | |||
| baa8dccb0a | |||
| 5059e1ddec | |||
| dced6c581e | |||
| 3e64faf605 | |||
| 3083c32c35 | |||
| 51a34f5abc | |||
| f48e617cd2 | |||
| 1b825b4470 | |||
| 199a9801ca | |||
| f6ba6bc40e | |||
| bf9b9204c3 | |||
| 06ee000cb8 | |||
| d3861a5dcc | |||
| 8950c9b0c6 | |||
| a0fea418e2 | |||
| 1bce1e44c4 | |||
| 440cb83fa7 | |||
| b2532e7769 | |||
| 790de0f98e | |||
| cf5eaef236 | |||
| d148816bfe | |||
| f7291c4550 | |||
| eea442e209 | |||
| 755d354f69 | |||
| d71b3c4633 | |||
| de39878b9b | |||
| 274fee92dd | |||
| 64c15e179a | |||
| 1bcb90bf79 | |||
| 4deb146118 | |||
| a87763f6a6 | |||
| c61466b6e5 | |||
| 323149ad24 | |||
| e9cf0fba05 | |||
| 2d52ee13b1 | |||
| 5015883c01 | |||
| 74e118dd32 | |||
| 01f501e8e7 | |||
| 60ffaba71d | |||
| 056bb4f0a0 | |||
| 30d2e2d3cf | |||
| c07997d816 | |||
| 495fa6c577 | |||
| dfc9a8923a | |||
| ee895577ae | |||
| 9f032057b4 | |||
| 10b0c3cfca | |||
| 773548c283 | |||
| 9335b641f1 | |||
| ffc9894033 | |||
| 1406f9ec26 | |||
| b81fe70830 | |||
| bbde236be5 | |||
| 3b9176665f | |||
| 6a80d4de40 | |||
| 3f1d181b42 | |||
| 8d649d1737 | |||
| 21a84bdf91 | |||
| 1ad1957c41 | |||
| 4510067e63 | |||
| 8cf757daf0 | |||
| 6581c5792a | |||
| 03fb8f043e | |||
| 45ec64e6c8 | |||
| eb17ff1ea3 | |||
| a7538fab57 | |||
| 4fb85d1f76 | |||
| d9c73ae489 | |||
| e15d696a24 | |||
| dbfd1f90b1 | |||
| 883196981d | |||
| 3fed41547f | |||
| e22edc5dee | |||
| 0ef7589979 | |||
| 7dc9ccdcaa | |||
| b2bbc15463 | |||
| 7b38b148fa | |||
| 7f355ba343 | |||
| e1d45ec26e | |||
| 690d02f9e8 | |||
| 31b74cd627 | |||
| f04ccef588 | |||
| 8a8b5db977 | |||
| 5fb1181bb2 | |||
| 411ac5fcfa | |||
| 880215e8e6 | |||
| 3874c1312e | |||
| 09377471a3 | |||
| 2889dc7248 | |||
| d75c60d8ae | |||
| 582b613d5f | |||
| 6cce1cdc8b | |||
| b6203a7de5 | |||
| 701c916764 | |||
| d1c4a225a2 | |||
| 4cfa2ea304 | |||
| b5435cc83e | |||
| 1d5b95b5fe | |||
| 31aadc5c4d | |||
| a803516b16 | |||
| 1b212789e5 | |||
| 688fd5f3f1 | |||
| 75e19c3116 | |||
| 16dd92b38e | |||
| 92c329a8a9 | |||
| 6546dd3f5b | |||
| 752ab418c9 | |||
| d578d48a4f | |||
| 85771c8985 | |||
| 68c5d90ad0 | |||
| 0dcc53ab03 | |||
| 6ac572a179 | |||
| 7fd962926d | |||
| bca093d89c | |||
| 0ef981adbc | |||
| 2d61127606 | |||
| e099e98b8b | |||
| 2ff67f8ce4 | |||
| 13f66313d1 | |||
| 483075b4aa | |||
| 1668519996 | |||
| 5091c79e96 | |||
| 6bd1486a38 | |||
| 93f6cae46a | |||
| 68e36946fd | |||
| c6ecf3113a | |||
| 46e1b00c34 | |||
| a431e0fe9a | |||
| 6d69506294 | |||
| 77ec7ab679 | |||
| 6692ecfbbc | |||
| 3ef892b980 | |||
| e651d63566 | |||
| a7d6f2720f | |||
| 4a0a63999e | |||
| b1eb3e8746 | |||
| bc03a538cf | |||
| f639538600 | |||
| 3973cf7a83 | |||
| 28e212030d | |||
| cff9c7b60c | |||
| ef47662131 | |||
| 0c84e50583 | |||
| 618faa0ab6 | |||
| 5680ce1ee2 | |||
| f6825c7952 | |||
| d89ecc74be | |||
| 27aa7e4e91 | |||
| 43c0c3989b | |||
| 05194796ef | |||
| 61aaacd088 | |||
| e7f0628d79 | |||
| 7006056eae | |||
| b98f53ceca | |||
| 5a70be0846 | |||
| 78fc102df1 | |||
| fa2aeec45b | |||
| d03a225061 | |||
| abfe30454a | |||
| 3535d7890d | |||
| 47232ccf66 | |||
| cd8bc891f0 | |||
| 1cbbcf15d3 | |||
| b393d6eca1 | |||
| 9de77857a6 | |||
| 46e0ef92d3 | |||
| 8b793f8866 | |||
| 337e672d53 | |||
| 04d880e2ce | |||
| 4f43f0302d | |||
| f7cdd3ef63 | |||
| fac940e1cc | |||
| 7891960bd1 | |||
| 6e2bdb0613 | |||
| 05e4001cf2 | |||
| b6eb300718 | |||
| b4d7a31913 | |||
| 90e9a070a7 | |||
| 3b966afb9c | |||
| 613959c52b | |||
| 25551b23bf | |||
| 73b6ddd760 | |||
| 8b73d06898 | |||
| ec2b1be8c5 | |||
| c138f89c1f | |||
| d9483f5080 | |||
| 7bf0aaf99c | |||
| 51f150d84c | |||
| 71d4a23ec0 | |||
| 995a9705e2 | |||
| 33f20edbb1 | |||
| 710eb5c142 | |||
| 092db087c9 | |||
| 21196d8c0b | |||
| ac574a6ccb | |||
| 87eed74e42 | |||
| 119dd84327 | |||
| 08df023808 | |||
| a9b451b3e4 | |||
| 852f66fc11 | |||
| 08c23685c3 |
@ -49,10 +49,10 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Providing details of your set-up can help us identify any issues, e.g.
|
Providing details of your set-up can help us identify any issues, e.g.
|
||||||
OpenFOAM version : v2312|v2306|v2212|v2206|v2112 etc
|
OpenFOAM version : v2412|v2406|v2312|v2306|v2212 etc
|
||||||
Operating system : ubuntu|openSUSE|centos etc
|
Operating system : ubuntu|openSUSE|RedHat etc
|
||||||
Hardware info : any info that may help?
|
Hardware info : any info that may help?
|
||||||
Compiler : gcc|intel|clang etc
|
Compiler : gcc|clang etc
|
||||||
-->
|
-->
|
||||||
|
|
||||||
- OpenFOAM version :
|
- OpenFOAM version :
|
||||||
|
|||||||
9
.gitmodules
vendored
9
.gitmodules
vendored
@ -1,8 +1,8 @@
|
|||||||
[submodule "cfmesh"]
|
[submodule "cfmesh"]
|
||||||
path = modules/cfmesh
|
path = plugins/cfmesh
|
||||||
url = https://develop.openfoam.com/Community/integration-cfmesh.git
|
url = https://develop.openfoam.com/Community/integration-cfmesh.git
|
||||||
[submodule "avalanche"]
|
[submodule "avalanche"]
|
||||||
path = modules/avalanche
|
path = plugins/avalanche
|
||||||
url = https://develop.openfoam.com/Community/avalanche.git
|
url = https://develop.openfoam.com/Community/avalanche.git
|
||||||
[submodule "adios"]
|
[submodule "adios"]
|
||||||
path = modules/adios
|
path = modules/adios
|
||||||
@ -18,5 +18,8 @@
|
|||||||
path = modules/external-solver
|
path = modules/external-solver
|
||||||
url = https://develop.openfoam.com/Modules/external-solver.git
|
url = https://develop.openfoam.com/Modules/external-solver.git
|
||||||
[submodule "turbulence-community"]
|
[submodule "turbulence-community"]
|
||||||
path = modules/turbulence-community
|
path = plugins/turbulence-community
|
||||||
url = https://gitlab.com/openfoam/community/tc-turbulence/turbulence-community.git
|
url = https://gitlab.com/openfoam/community/tc-turbulence/turbulence-community.git
|
||||||
|
[submodule "plugins/data-community"]
|
||||||
|
path = plugins/data-community
|
||||||
|
url = https://gitlab.com/openfoam/community/sig-data-modelling/data-community.git
|
||||||
|
|||||||
17
Allwmake
17
Allwmake
@ -68,19 +68,34 @@ src/Allwmake $targetType $*
|
|||||||
# OpenFOAM applications
|
# OpenFOAM applications
|
||||||
applications/Allwmake $targetType $*
|
applications/Allwmake $targetType $*
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Additional components
|
||||||
|
|
||||||
# Additional components/modules
|
|
||||||
case "$FOAM_MODULE_PREFIX" in
|
case "$FOAM_MODULE_PREFIX" in
|
||||||
(false | none)
|
(false | none)
|
||||||
echo ========================================
|
echo ========================================
|
||||||
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
|
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
|
||||||
|
echo "Can be built separately:"
|
||||||
|
echo
|
||||||
|
echo " ./Allwmake-modules -prefix=..."
|
||||||
|
echo
|
||||||
|
echo ========================================
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
(*)
|
(*)
|
||||||
# Use wmake -all instead of Allwmake to allow for overrides
|
# Use wmake -all instead of Allwmake to allow for overrides
|
||||||
( cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all )
|
( cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all )
|
||||||
|
|
||||||
|
echo ========================================
|
||||||
|
echo "The optional plugins can be built separately:"
|
||||||
|
echo
|
||||||
|
echo " ./Allwmake-plugins -prefix=..."
|
||||||
|
echo
|
||||||
|
echo ========================================
|
||||||
|
echo
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
# Count files in given directory. Ignore "Test-*" binaries.
|
# Count files in given directory. Ignore "Test-*" binaries.
|
||||||
_foamCountDirEntries()
|
_foamCountDirEntries()
|
||||||
{
|
{
|
||||||
|
|||||||
39
Allwmake-modules
Executable file
39
Allwmake-modules
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
|
set -- -no-recursion "$@" # Parse arguments only
|
||||||
|
|
||||||
|
# Run from OPENFOAM top-level directory only
|
||||||
|
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
||||||
|
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
|
||||||
|
echo " Check your OpenFOAM environment and installation"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
||||||
|
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
||||||
|
echo "Argument parse error"
|
||||||
|
else
|
||||||
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
|
echo " Check your OpenFOAM environment and installation"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Additional components
|
||||||
|
|
||||||
|
case "$FOAM_MODULE_PREFIX" in
|
||||||
|
(false | none)
|
||||||
|
echo ========================================
|
||||||
|
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
|
||||||
|
echo "Can be built separately:"
|
||||||
|
echo
|
||||||
|
echo " ./Allwmake-modules -prefix=..."
|
||||||
|
echo
|
||||||
|
echo ========================================
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
# Use wmake -all instead of Allwmake to allow for overrides
|
||||||
|
( cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all )
|
||||||
|
esac
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
39
Allwmake-plugins
Executable file
39
Allwmake-plugins
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
|
set -- -no-recursion "$@" # Parse arguments only
|
||||||
|
|
||||||
|
# Run from OPENFOAM top-level directory only
|
||||||
|
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
||||||
|
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
|
||||||
|
echo " Check your OpenFOAM environment and installation"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
||||||
|
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
||||||
|
echo "Argument parse error"
|
||||||
|
else
|
||||||
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
||||||
|
echo " Check your OpenFOAM environment and installation"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Additional components
|
||||||
|
|
||||||
|
case "$FOAM_MODULE_PREFIX" in
|
||||||
|
(false | none)
|
||||||
|
echo ========================================
|
||||||
|
echo "OpenFOAM plugins disabled (prefix=${FOAM_MODULE_PREFIX})"
|
||||||
|
echo "Can be built separately:"
|
||||||
|
echo
|
||||||
|
echo " ./Allwmake-plugins -prefix=..."
|
||||||
|
echo
|
||||||
|
echo ========================================
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
# Use wmake -all instead of Allwmake to allow for overrides
|
||||||
|
( cd "$WM_PROJECT_DIR/plugins" 2>/dev/null && wmake -all )
|
||||||
|
esac
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -27,6 +27,7 @@ It is likely incomplete...
|
|||||||
- Bernhard Gschaider
|
- Bernhard Gschaider
|
||||||
- Andrew Heather
|
- Andrew Heather
|
||||||
- David Hill
|
- David Hill
|
||||||
|
- Crist<73>bal Ib<49><62>ez
|
||||||
- Yoshiaki Inoue
|
- Yoshiaki Inoue
|
||||||
- Mattijs Janssens
|
- Mattijs Janssens
|
||||||
- Andrew Jackson
|
- Andrew Jackson
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2312
|
api=2412
|
||||||
patch=0
|
patch=0
|
||||||
|
|||||||
16
README.md
16
README.md
@ -40,9 +40,9 @@ Violations of the Trademark are monitored, and will be duly prosecuted.
|
|||||||
|
|
||||||
If OpenFOAM has already been compiled on your system, simply source
|
If OpenFOAM has already been compiled on your system, simply source
|
||||||
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
||||||
For example, for the OpenFOAM-v2312 version:
|
For example, for the OpenFOAM-v2412 version:
|
||||||
```
|
```
|
||||||
source /installation/path/OpenFOAM-v2312/etc/bashrc
|
source /installation/path/OpenFOAM-v2412/etc/bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
## Compiling OpenFOAM
|
## Compiling OpenFOAM
|
||||||
@ -127,8 +127,8 @@ These 3rd-party sources are normally located in a directory parallel
|
|||||||
to the OpenFOAM directory. For example,
|
to the OpenFOAM directory. For example,
|
||||||
```
|
```
|
||||||
/path/parent
|
/path/parent
|
||||||
|-- OpenFOAM-v2312
|
|-- OpenFOAM-v2412
|
||||||
\-- ThirdParty-v2312
|
\-- ThirdParty-v2412
|
||||||
```
|
```
|
||||||
There are, however, many cases where this simple convention is inadequate:
|
There are, however, many cases where this simple convention is inadequate:
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ There are, however, many cases where this simple convention is inadequate:
|
|||||||
operating system or cluster installation provides it)
|
operating system or cluster installation provides it)
|
||||||
|
|
||||||
* When we have changed the OpenFOAM directory name to some arbitrary
|
* When we have changed the OpenFOAM directory name to some arbitrary
|
||||||
directory name, e.g. openfoam-sandbox2312, etc..
|
directory name, e.g. openfoam-sandbox2412, etc..
|
||||||
|
|
||||||
* When we would like any additional 3rd party software to be located
|
* When we would like any additional 3rd party software to be located
|
||||||
inside of the OpenFOAM directory to ensure that the installation is
|
inside of the OpenFOAM directory to ensure that the installation is
|
||||||
@ -156,9 +156,9 @@ when locating the ThirdParty directory with the following precedence:
|
|||||||
2. PREFIX/ThirdParty-VERSION
|
2. PREFIX/ThirdParty-VERSION
|
||||||
* this corresponds to the traditional approach
|
* this corresponds to the traditional approach
|
||||||
3. PREFIX/ThirdParty-vAPI
|
3. PREFIX/ThirdParty-vAPI
|
||||||
* allows for an updated value of VERSION, *eg*, `v2312-myCustom`,
|
* allows for an updated value of VERSION, *eg*, `v2412-myCustom`,
|
||||||
without requiring a renamed ThirdParty. The API value would still
|
without requiring a renamed ThirdParty. The API value would still
|
||||||
be `2312` and the original `ThirdParty-v2312/` would be found.
|
be `2412` and the original `ThirdParty-v2412/` would be found.
|
||||||
4. PREFIX/ThirdParty-API
|
4. PREFIX/ThirdParty-API
|
||||||
* same as the previous example, but using an unadorned API value.
|
* same as the previous example, but using an unadorned API value.
|
||||||
5. PREFIX/ThirdParty-common
|
5. PREFIX/ThirdParty-common
|
||||||
@ -213,4 +213,4 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
|||||||
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
|
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
|
||||||
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
||||||
|
|
||||||
Copyright 2016-2023 OpenCFD Ltd
|
Copyright 2016-2024 OpenCFD Ltd
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
|
Copyright (C) 2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -93,24 +94,14 @@ Foam::PDRDragModels::basic::~basic()
|
|||||||
|
|
||||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||||
{
|
{
|
||||||
tmp<volSymmTensorField> tDragDcu
|
auto tDragDcu = volSymmTensorField::New
|
||||||
(
|
(
|
||||||
new volSymmTensorField
|
"tDragDcu",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
U_.mesh(),
|
||||||
(
|
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||||
"tDragDcu",
|
|
||||||
U_.mesh().time().constant(),
|
|
||||||
U_.mesh(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
U_.mesh(),
|
|
||||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& DragDcu = tDragDcu.ref();
|
||||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
@ -127,24 +118,14 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
|||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tGk
|
auto tGk = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"tGk",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
U_.mesh(),
|
||||||
(
|
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||||
"tGk",
|
|
||||||
U_.mesh().time().constant(),
|
|
||||||
U_.mesh(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
U_.mesh(),
|
|
||||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Gk = tGk.ref();
|
||||||
volScalarField& Gk = tGk.ref();
|
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
|
Copyright (C) 2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -93,23 +94,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
|||||||
volScalarField K(0.157*upBySu/sqrt(Rl));
|
volScalarField K(0.157*upBySu/sqrt(Rl));
|
||||||
volScalarField Ma(MaModel.Ma());
|
volScalarField Ma(MaModel.Ma());
|
||||||
|
|
||||||
tmp<volScalarField> tXiEq
|
auto tXiEq = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"XiEq",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
epsilon.mesh(),
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"XiEq",
|
|
||||||
epsilon.time().timeName(),
|
|
||||||
epsilon.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
epsilon.mesh(),
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& xieq = tXiEq.ref();
|
auto& xieq = tXiEq.ref();
|
||||||
|
|
||||||
forAll(xieq, celli)
|
forAll(xieq, celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,11 +78,10 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
|||||||
void Foam::XiEqModel::writeFields() const
|
void Foam::XiEqModel::writeFields() const
|
||||||
{
|
{
|
||||||
//***HGW It is not clear why B is written here
|
//***HGW It is not clear why B is written here
|
||||||
if (Su_.mesh().foundObject<volSymmTensorField>("B"))
|
const auto* B = Su_.mesh().cfindObject<volSymmTensorField>("B");
|
||||||
|
if (B)
|
||||||
{
|
{
|
||||||
const volSymmTensorField& B =
|
B->write();
|
||||||
Su_.mesh().lookupObject<volSymmTensorField>("B");
|
|
||||||
B.write();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,39 +97,26 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
|
|||||||
const volSymmTensorField& nsv =
|
const volSymmTensorField& nsv =
|
||||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||||
|
|
||||||
tmp<volScalarField> tN
|
auto tN = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"tN",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh,
|
||||||
(
|
dimensionedScalar(Nv.dimensions(), Zero)
|
||||||
"tN",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(Nv.dimensions(), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& N = tN.ref();
|
auto& N = tN.ref();
|
||||||
|
|
||||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
volSymmTensorField ns
|
auto tns = volSymmTensorField::New
|
||||||
(
|
(
|
||||||
IOobject
|
"tns",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
"tns",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
auto& ns = tns.ref();
|
||||||
|
|
||||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
const volVectorField Uhat
|
const volVectorField Uhat
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
|
Copyright (C) 2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -255,24 +256,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
scalar phi
|
scalar phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tSu0
|
auto tSu0 = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Su0",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
p.mesh(),
|
||||||
(
|
dimensionedScalar(dimVelocity, Zero)
|
||||||
"Su0",
|
|
||||||
p.time().timeName(),
|
|
||||||
p.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
p.mesh(),
|
|
||||||
dimensionedScalar(dimVelocity, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Su0 = tSu0.ref();
|
||||||
volScalarField& Su0 = tSu0.ref();
|
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -304,24 +295,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
const volScalarField& phi
|
const volScalarField& phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tSu0
|
auto tSu0 = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Su0",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
p.mesh(),
|
||||||
(
|
dimensionedScalar(dimVelocity, Zero)
|
||||||
"Su0",
|
|
||||||
p.time().timeName(),
|
|
||||||
p.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
p.mesh(),
|
|
||||||
dimensionedScalar(dimVelocity, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Su0 = tSu0.ref();
|
||||||
volScalarField& Su0 = tSu0.ref();
|
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -358,24 +339,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
|
|||||||
const volScalarField& phi
|
const volScalarField& phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tMa
|
auto tMa = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Ma",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
phi.mesh(),
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"Ma",
|
|
||||||
phi.time().timeName(),
|
|
||||||
phi.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
phi.mesh(),
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& ma = tMa.ref();
|
||||||
volScalarField& ma = tMa.ref();
|
|
||||||
|
|
||||||
forAll(ma, celli)
|
forAll(ma, celli)
|
||||||
{
|
{
|
||||||
@ -418,21 +389,12 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
|
|||||||
{
|
{
|
||||||
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
||||||
|
|
||||||
return tmp<volScalarField>
|
return volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Ma",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh,
|
||||||
(
|
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||||
"Ma",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,8 @@ if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
|
|||||||
"0",
|
"0",
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh
|
mesh
|
||||||
)
|
)
|
||||||
|
|||||||
@ -21,6 +21,11 @@
|
|||||||
+ fvOptions(rho, he)
|
+ fvOptions(rho, he)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (MRF.active())
|
||||||
|
{
|
||||||
|
EEqn += fvc::div(MRF.phi(), p);
|
||||||
|
}
|
||||||
|
|
||||||
EEqn.relax();
|
EEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|||||||
@ -20,6 +20,11 @@
|
|||||||
fvOptions(rho, he)
|
fvOptions(rho, he)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (MRF.active())
|
||||||
|
{
|
||||||
|
EEqn += fvc::div(MRF.phi(), p);
|
||||||
|
}
|
||||||
|
|
||||||
EEqn.relax();
|
EEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|||||||
@ -14,6 +14,11 @@
|
|||||||
fvOptions(rho, he)
|
fvOptions(rho, he)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (MRF.active())
|
||||||
|
{
|
||||||
|
EEqn += fvc::div(MRF.phi(), p);
|
||||||
|
}
|
||||||
|
|
||||||
EEqn.relax();
|
EEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|||||||
@ -9,6 +9,11 @@
|
|||||||
fvOptions(rho, e)
|
fvOptions(rho, e)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (MRF.active())
|
||||||
|
{
|
||||||
|
EEqn += fvc::div(MRF.phi(), p);
|
||||||
|
}
|
||||||
|
|
||||||
EEqn.relax();
|
EEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(EEqn);
|
fvOptions.constrain(EEqn);
|
||||||
|
|||||||
@ -8,11 +8,13 @@
|
|||||||
|
|
||||||
volVectorField& U1 = phase1.URef();
|
volVectorField& U1 = phase1.URef();
|
||||||
surfaceScalarField& phi1 = phase1.phiRef();
|
surfaceScalarField& phi1 = phase1.phiRef();
|
||||||
const surfaceScalarField& alphaPhi1 = phase1.alphaPhi();
|
const tmp<surfaceScalarField> talphaPhi1 = phase1.alphaPhi();
|
||||||
|
const auto& alphaPhi1 = talphaPhi1();
|
||||||
|
|
||||||
volVectorField& U2 = phase2.URef();
|
volVectorField& U2 = phase2.URef();
|
||||||
surfaceScalarField& phi2 = phase2.phiRef();
|
surfaceScalarField& phi2 = phase2.phiRef();
|
||||||
const surfaceScalarField& alphaPhi2 = phase2.alphaPhi();
|
const tmp<surfaceScalarField> talphaPhi2 = phase2.alphaPhi();
|
||||||
|
const auto& alphaPhi2 = talphaPhi2();
|
||||||
|
|
||||||
surfaceScalarField& phi = fluid.phi();
|
surfaceScalarField& phi = fluid.phi();
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,12 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField contErr(interpolatedCells*cellMask*fvc::div(phi));
|
const DimensionedField<scalar, volMesh> contErr
|
||||||
|
(
|
||||||
|
interpolatedCells.internalField()
|
||||||
|
*cellMask.internalField()
|
||||||
|
*fvc::div(phi)().internalField()
|
||||||
|
);
|
||||||
|
|
||||||
scalar sumLocalContErr = runTime.deltaTValue()*
|
scalar sumLocalContErr = runTime.deltaTValue()*
|
||||||
mag(contErr)().weightedAverage(mesh.V()).value();
|
mag(contErr)().weightedAverage(mesh.V()).value();
|
||||||
|
|||||||
@ -5,13 +5,17 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/transportModels \
|
-I$(LIB_SRC)/transportModels \
|
||||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel
|
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||||
|
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||||
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lfvOptions \
|
-lfvOptions \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lsampling \
|
-lsampling \
|
||||||
|
-ldynamicMesh \
|
||||||
|
-ldynamicFvMesh \
|
||||||
-lturbulenceModels \
|
-lturbulenceModels \
|
||||||
-lincompressibleTurbulenceModels \
|
-lincompressibleTurbulenceModels \
|
||||||
-lincompressibleTransportModels \
|
-lincompressibleTransportModels \
|
||||||
|
|||||||
@ -33,7 +33,12 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField contErr(interpolatedCells*cellMask*fvc::div(phi));
|
const DimensionedField<scalar, volMesh> contErr
|
||||||
|
(
|
||||||
|
interpolatedCells.internalField()
|
||||||
|
*cellMask.internalField()
|
||||||
|
*fvc::div(phi)().internalField()
|
||||||
|
);
|
||||||
|
|
||||||
scalar sumLocalContErr = runTime.deltaTValue()*
|
scalar sumLocalContErr = runTime.deltaTValue()*
|
||||||
mag(contErr)().weightedAverage(mesh.V()).value();
|
mag(contErr)().weightedAverage(mesh.V()).value();
|
||||||
|
|||||||
@ -64,6 +64,7 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
|
#include "dynamicFvMesh.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "turbulentTransportModel.H"
|
#include "turbulentTransportModel.H"
|
||||||
#include "simpleControl.H"
|
#include "simpleControl.H"
|
||||||
@ -83,7 +84,7 @@ int main(int argc, char *argv[])
|
|||||||
#include "addCheckCaseOptions.H"
|
#include "addCheckCaseOptions.H"
|
||||||
#include "setRootCaseLists.H"
|
#include "setRootCaseLists.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createDynamicFvMesh.H"
|
||||||
#include "createControl.H"
|
#include "createControl.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
@ -98,6 +99,14 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
// Do any mesh changes
|
||||||
|
mesh.controlledUpdate();
|
||||||
|
|
||||||
|
if (mesh.changing())
|
||||||
|
{
|
||||||
|
MRF.update();
|
||||||
|
}
|
||||||
|
|
||||||
// --- Pressure-velocity SIMPLE corrector
|
// --- Pressure-velocity SIMPLE corrector
|
||||||
{
|
{
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -74,8 +74,11 @@ Foam::compressibleInterPhaseTransportModel::compressibleInterPhaseTransportModel
|
|||||||
const volScalarField& alpha1(mixture_.alpha1());
|
const volScalarField& alpha1(mixture_.alpha1());
|
||||||
const volScalarField& alpha2(mixture_.alpha2());
|
const volScalarField& alpha2(mixture_.alpha2());
|
||||||
|
|
||||||
const volScalarField& rho1 = mixture_.thermo1().rho();
|
const tmp<volScalarField> trho1 = mixture_.thermo1().rho();
|
||||||
const volScalarField& rho2 = mixture_.thermo2().rho();
|
const tmp<volScalarField> trho2 = mixture_.thermo2().rho();
|
||||||
|
|
||||||
|
const auto& rho1 = trho1();
|
||||||
|
const auto& rho2 = trho2();
|
||||||
|
|
||||||
alphaRhoPhi1_ =
|
alphaRhoPhi1_ =
|
||||||
(
|
(
|
||||||
@ -185,8 +188,8 @@ void Foam::compressibleInterPhaseTransportModel::correctPhasePhi()
|
|||||||
{
|
{
|
||||||
if (twoPhaseTransport_)
|
if (twoPhaseTransport_)
|
||||||
{
|
{
|
||||||
const volScalarField& rho1 = mixture_.thermo1().rho();
|
const tmp<volScalarField> rho1 = mixture_.thermo1().rho();
|
||||||
const volScalarField& rho2 = mixture_.thermo2().rho();
|
const tmp<volScalarField> rho2 = mixture_.thermo2().rho();
|
||||||
|
|
||||||
alphaRhoPhi1_.ref() = fvc::interpolate(rho1)*alphaPhi10_;
|
alphaRhoPhi1_.ref() = fvc::interpolate(rho1)*alphaPhi10_;
|
||||||
alphaRhoPhi2_.ref() = fvc::interpolate(rho2)*(phi_ - alphaPhi10_);
|
alphaRhoPhi2_.ref() = fvc::interpolate(rho2)*(phi_ - alphaPhi10_);
|
||||||
|
|||||||
@ -4,26 +4,19 @@ if (nAlphaSubCycles > 1)
|
|||||||
{
|
{
|
||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
|
|
||||||
talphaPhi1 = new surfaceScalarField
|
talphaPhi1.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new surfaceScalarField
|
||||||
(
|
(
|
||||||
"alphaPhi1",
|
mesh.newIOobject("alphaPhi1"),
|
||||||
runTime.timeName(),
|
mesh,
|
||||||
mesh
|
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
||||||
),
|
)
|
||||||
mesh,
|
|
||||||
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -13,26 +13,19 @@ if (nAlphaSubCycles > 1)
|
|||||||
{
|
{
|
||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
|
|
||||||
talphaPhi1 = new surfaceScalarField
|
talphaPhi1.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new surfaceScalarField
|
||||||
(
|
(
|
||||||
"alphaPhi1",
|
mesh.newIOobject("alphaPhi1"),
|
||||||
runTime.timeName(),
|
mesh,
|
||||||
mesh
|
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
||||||
),
|
)
|
||||||
mesh,
|
|
||||||
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -99,7 +99,8 @@ Foam::multiphaseMixtureThermo::multiphaseMixtureThermo
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
@ -998,19 +999,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::K
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::multiphaseMixtureThermo::nearInterface() const
|
Foam::multiphaseMixtureThermo::nearInterface() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tnearInt
|
auto tnearInt = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"nearInterface",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"nearInterface",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const phaseModel& phase : phases_)
|
for (const phaseModel& phase : phases_)
|
||||||
|
|||||||
@ -18,12 +18,7 @@
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField alphaPhiSum
|
surfaceScalarField alphaPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("alphaPhiSum"),
|
||||||
(
|
|
||||||
"alphaPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(phi.dimensions(), Zero)
|
dimensionedScalar(phi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,13 +158,11 @@ Foam::tmp<Foam::volSymmTensorField> Foam::relativeVelocityModel::tauDm() const
|
|||||||
// Calculate the relative velocity of the continuous phase w.r.t the mean
|
// Calculate the relative velocity of the continuous phase w.r.t the mean
|
||||||
volVectorField Ucm(betad*Udm_/betac);
|
volVectorField Ucm(betad*Udm_/betac);
|
||||||
|
|
||||||
return tmp<volSymmTensorField>
|
return volSymmTensorField::New
|
||||||
(
|
(
|
||||||
new volSymmTensorField
|
"tauDm",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
"tauDm",
|
betad*sqr(Udm_) + betac*sqr(Ucm)
|
||||||
betad*sqr(Udm_) + betac*sqr(Ucm)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -130,10 +130,17 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#include "UEqn.H"
|
|
||||||
#include "YEqns.H"
|
#include "YEqns.H"
|
||||||
#include "TEqn.H"
|
#include "TEqn.H"
|
||||||
|
|
||||||
|
if (pimple.frozenFlow())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "UEqn.H"
|
||||||
|
|
||||||
// --- Pressure corrector loop
|
// --- Pressure corrector loop
|
||||||
while (pimple.correct())
|
while (pimple.correct())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2022 OpenCFD Ltd.
|
Copyright (C) 2017-2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -407,7 +407,8 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimPower/dimVolume, Zero)
|
dimensionedScalar(dimPower/dimVolume, Zero)
|
||||||
@ -504,7 +505,8 @@ Foam::radiation::laserDTRM::laserDTRM
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimPower/pow3(dimLength), Zero)
|
dimensionedScalar(dimPower/pow3(dimLength), Zero)
|
||||||
@ -535,42 +537,23 @@ Foam::label Foam::radiation::laserDTRM::nBands() const
|
|||||||
|
|
||||||
void Foam::radiation::laserDTRM::calculate()
|
void Foam::radiation::laserDTRM::calculate()
|
||||||
{
|
{
|
||||||
tmp<volScalarField> treflectingCells
|
auto treflectingCells = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"reflectingCellsVol",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar("zero", dimless, -1)
|
||||||
"reflectingCellsVol",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("zero", dimless, -1)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& reflectingCellsVol = treflectingCells.ref();
|
auto& reflectingCellsVol = treflectingCells.ref();
|
||||||
|
|
||||||
|
auto tnHat = volVectorField::New
|
||||||
tmp<volVectorField> tnHat
|
|
||||||
(
|
(
|
||||||
new volVectorField
|
"nHat",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedVector(dimless, Zero)
|
||||||
"nHat",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedVector(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volVectorField& nHat = tnHat.ref();
|
auto& nHat = tnHat.ref();
|
||||||
|
|
||||||
|
|
||||||
// Reset the field
|
// Reset the field
|
||||||
@ -686,9 +669,9 @@ void Foam::radiation::laserDTRM::calculate()
|
|||||||
|
|
||||||
globalIndex::gatherInplaceOp(lines);
|
globalIndex::gatherInplaceOp(lines);
|
||||||
|
|
||||||
if (Pstream::master())
|
if (UPstream::master())
|
||||||
{
|
{
|
||||||
OBJstream os(type() + ":particlePath.obj");
|
OBJstream os(type() + "-particlePath.obj");
|
||||||
|
|
||||||
for (label pointi = 0; pointi < lines.size(); pointi += 2)
|
for (label pointi = 0; pointi < lines.size(); pointi += 2)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -88,25 +88,14 @@ Foam::radiation::localDensityAbsorptionEmission::localDensityAbsorptionEmission
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> ta
|
auto ta = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"a",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(inv(dimLength), Zero)
|
||||||
"a",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(inv(dimLength), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& a = ta.ref();
|
||||||
volScalarField& a = ta.ref();
|
|
||||||
|
|
||||||
forAll(alphaNames_, i)
|
forAll(alphaNames_, i)
|
||||||
{
|
{
|
||||||
@ -121,25 +110,14 @@ Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> te
|
auto te = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"e",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(inv(dimLength), Zero)
|
||||||
"e",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(inv(dimLength), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& e = te.ref();
|
||||||
volScalarField& e = te.ref();
|
|
||||||
|
|
||||||
forAll(alphaNames_, i)
|
forAll(alphaNames_, i)
|
||||||
{
|
{
|
||||||
@ -154,22 +132,12 @@ Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::ECont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::ECont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tE
|
auto tE = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"E",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||||
"E",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField& E = tE.ref().primitiveFieldRef();
|
scalarField& E = tE.ref().primitiveFieldRef();
|
||||||
|
|||||||
@ -171,16 +171,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::TSource() const
|
|||||||
|
|
||||||
const volScalarField& T = mesh_.lookupObject<volScalarField>("T");
|
const volScalarField& T = mesh_.lookupObject<volScalarField>("T");
|
||||||
|
|
||||||
tmp<fvScalarMatrix> tTSource
|
auto tTSource = tmp<fvScalarMatrix>::New(T, dimEnergy/dimTime);
|
||||||
(
|
auto& TSource = tTSource.ref();
|
||||||
new fvScalarMatrix
|
|
||||||
(
|
|
||||||
T,
|
|
||||||
dimEnergy/dimTime
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fvScalarMatrix& TSource = tTSource.ref();
|
|
||||||
|
|
||||||
const twoPhaseMixtureEThermo& thermo =
|
const twoPhaseMixtureEThermo& thermo =
|
||||||
refCast<const twoPhaseMixtureEThermo>
|
refCast<const twoPhaseMixtureEThermo>
|
||||||
|
|||||||
@ -382,7 +382,7 @@ Foam::tmp<Foam::volScalarField> Foam::twoPhaseMixtureEThermo::kappaEff
|
|||||||
const volScalarField& kappat
|
const volScalarField& kappat
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<Foam::volScalarField> kappaEff(kappa() + kappat);
|
tmp<volScalarField> kappaEff(kappa() + kappat);
|
||||||
kappaEff.ref().rename("kappaEff");
|
kappaEff.ref().rename("kappaEff");
|
||||||
return kappaEff;
|
return kappaEff;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -33,7 +33,12 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField contErr(interpolatedCells*cellMask*fvc::div(phi));
|
const DimensionedField<scalar, volMesh> contErr
|
||||||
|
(
|
||||||
|
interpolatedCells.internalField()
|
||||||
|
*cellMask.internalField()
|
||||||
|
*fvc::div(phi)().internalField()
|
||||||
|
);
|
||||||
|
|
||||||
scalar sumLocalContErr = runTime.deltaTValue()*
|
scalar sumLocalContErr = runTime.deltaTValue()*
|
||||||
mag(contErr)().weightedAverage(mesh.V()).value();
|
mag(contErr)().weightedAverage(mesh.V()).value();
|
||||||
|
|||||||
@ -32,12 +32,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -21,12 +21,7 @@
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -50,7 +50,8 @@
|
|||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimVelocity*dimArea, Zero)
|
dimensionedScalar(dimVelocity*dimArea, Zero)
|
||||||
|
|||||||
@ -68,8 +68,9 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
"transportProperties",
|
"transportProperties",
|
||||||
U.time().constant(),
|
U.time().constant(),
|
||||||
U.db(),
|
U.db(),
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
IOobject::READ_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -85,9 +86,7 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
(
|
(
|
||||||
"rhoPhi",
|
"rhoPhi",
|
||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimMass/dimTime, Zero)
|
dimensionedScalar(dimMass/dimTime, Zero)
|
||||||
@ -101,7 +100,8 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
@ -257,19 +257,12 @@ Foam::multiphaseMixture::nuf() const
|
|||||||
Foam::tmp<Foam::surfaceScalarField>
|
Foam::tmp<Foam::surfaceScalarField>
|
||||||
Foam::multiphaseMixture::surfaceTensionForce() const
|
Foam::multiphaseMixture::surfaceTensionForce() const
|
||||||
{
|
{
|
||||||
tmp<surfaceScalarField> tstf
|
auto tstf = surfaceScalarField::New
|
||||||
(
|
(
|
||||||
new surfaceScalarField
|
"surfaceTensionForce",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimensionSet(1, -2, -2, 0, 0), Zero)
|
||||||
"surfaceTensionForce",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimensionSet(1, -2, -2, 0, 0), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField& stf = tstf.ref();
|
surfaceScalarField& stf = tstf.ref();
|
||||||
@ -324,12 +317,7 @@ void Foam::multiphaseMixture::solve()
|
|||||||
{
|
{
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh_.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(rhoPhi_.dimensions(), Zero)
|
dimensionedScalar(rhoPhi_.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
@ -552,19 +540,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::multiphaseMixture::nearInterface() const
|
Foam::multiphaseMixture::nearInterface() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tnearInt
|
auto tnearInt = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"nearInterface",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"nearInterface",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const phase& ph : phases_)
|
for (const phase& ph : phases_)
|
||||||
@ -649,12 +630,7 @@ void Foam::multiphaseMixture::solveAlphas
|
|||||||
|
|
||||||
volScalarField sumAlpha
|
volScalarField sumAlpha
|
||||||
(
|
(
|
||||||
IOobject
|
mesh_.newIOobject("sumAlpha"),
|
||||||
(
|
|
||||||
"sumAlpha",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -12,8 +12,11 @@ for (int Ecorr=0; Ecorr<nEnergyCorrectors; Ecorr++)
|
|||||||
phaseModel& phase = fluid.anisothermalPhases()[anisothermalPhasei];
|
phaseModel& phase = fluid.anisothermalPhases()[anisothermalPhasei];
|
||||||
|
|
||||||
const volScalarField& alpha = phase;
|
const volScalarField& alpha = phase;
|
||||||
const volScalarField& rho = phase.rho();
|
const tmp<volScalarField> trho = phase.rho();
|
||||||
const volVectorField& U = phase.U();
|
const tmp<volVectorField> tU = phase.U();
|
||||||
|
|
||||||
|
const auto& rho = trho();
|
||||||
|
const auto& U = tU();
|
||||||
|
|
||||||
fvScalarMatrix EEqn
|
fvScalarMatrix EEqn
|
||||||
(
|
(
|
||||||
|
|||||||
@ -11,7 +11,9 @@
|
|||||||
|
|
||||||
UPtrList<volScalarField>& Y = phase.YActiveRef();
|
UPtrList<volScalarField>& Y = phase.YActiveRef();
|
||||||
const volScalarField& alpha = phase;
|
const volScalarField& alpha = phase;
|
||||||
const volScalarField& rho = phase.rho();
|
const tmp<volScalarField> trho = phase.rho();
|
||||||
|
|
||||||
|
const auto& rho = trho();
|
||||||
|
|
||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -14,9 +14,11 @@ PtrList<fvVectorMatrix> UEqns(phases.size());
|
|||||||
phaseModel& phase = fluid.movingPhases()[movingPhasei];
|
phaseModel& phase = fluid.movingPhases()[movingPhasei];
|
||||||
|
|
||||||
const volScalarField& alpha = phase;
|
const volScalarField& alpha = phase;
|
||||||
const volScalarField& rho = phase.rho();
|
const tmp<volScalarField> trho = phase.rho();
|
||||||
volVectorField& U = phase.URef();
|
volVectorField& U = phase.URef();
|
||||||
|
|
||||||
|
const auto& rho = trho();
|
||||||
|
|
||||||
UEqns.set
|
UEqns.set
|
||||||
(
|
(
|
||||||
phase.index(),
|
phase.index(),
|
||||||
|
|||||||
@ -17,9 +17,11 @@ PtrList<fvVectorMatrix> UEqns(phases.size());
|
|||||||
phaseModel& phase = fluid.movingPhases()[movingPhasei];
|
phaseModel& phase = fluid.movingPhases()[movingPhasei];
|
||||||
|
|
||||||
const volScalarField& alpha = phase;
|
const volScalarField& alpha = phase;
|
||||||
const volScalarField& rho = phase.rho();
|
const tmp<volScalarField> trho = phase.rho();
|
||||||
volVectorField& U = phase.URef();
|
volVectorField& U = phase.URef();
|
||||||
|
|
||||||
|
const auto& rho = trho();
|
||||||
|
|
||||||
UEqns.set
|
UEqns.set
|
||||||
(
|
(
|
||||||
phase.index(),
|
phase.index(),
|
||||||
|
|||||||
@ -272,10 +272,7 @@ while (pimple.correct())
|
|||||||
).ptr()
|
).ptr()
|
||||||
);
|
);
|
||||||
|
|
||||||
deleteDemandDrivenData
|
pEqnComps[phasei].faceFluxCorrectionPtr(nullptr);
|
||||||
(
|
|
||||||
pEqnComps[phasei].faceFluxCorrectionPtr()
|
|
||||||
);
|
|
||||||
|
|
||||||
pEqnComps[phasei].relax();
|
pEqnComps[phasei].relax();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,11 +6,13 @@ const volScalarField& alpha2 = phase2;
|
|||||||
|
|
||||||
volVectorField& U1 = phase1.URef();
|
volVectorField& U1 = phase1.URef();
|
||||||
surfaceScalarField& phi1 = phase1.phiRef();
|
surfaceScalarField& phi1 = phase1.phiRef();
|
||||||
const surfaceScalarField& alphaPhi1 = phase1.alphaPhi();
|
const tmp<surfaceScalarField> talphaPhi1 = phase1.alphaPhi();
|
||||||
|
const auto& alphaPhi1 = talphaPhi1();
|
||||||
|
|
||||||
volVectorField& U2 = phase2.URef();
|
volVectorField& U2 = phase2.URef();
|
||||||
surfaceScalarField& phi2 = phase2.phiRef();
|
surfaceScalarField& phi2 = phase2.phiRef();
|
||||||
const surfaceScalarField& alphaPhi2 = phase2.alphaPhi();
|
const tmp<surfaceScalarField> talphaPhi2 = phase2.alphaPhi();
|
||||||
|
const auto& alphaPhi2 = talphaPhi2();
|
||||||
|
|
||||||
surfaceScalarField& phi = fluid.phi();
|
surfaceScalarField& phi = fluid.phi();
|
||||||
|
|
||||||
|
|||||||
@ -5,12 +5,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
+ (
|
+ (
|
||||||
he2.name() == thermo2.phasePropertyName("e")
|
he2.name() == thermo2.phasePropertyName("e")
|
||||||
? fvc::div(fvc::absolute(alphaPhi2, alpha2, U2), p)
|
? fvc::div(fvc::absolute(alphaPhi2, alpha2, U2), p)
|
||||||
+ p*fvc::ddt(alpha1)
|
+ p*fvc::ddt(alpha2)
|
||||||
: -alpha2*dpdt
|
: -alpha2*dpdt
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd "${0%/*}" || exit # Run from this directory
|
cd "${0%/*}" || exit # Run from this directory
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments -no-recursion "$@"
|
set -- -no-recursion "$@" # Parse arguments only
|
||||||
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
|
||||||
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
|
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -70,7 +70,10 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
|
|
||||||
labelList cellToCoarse(identity(mesh.nCells()));
|
labelList cellToCoarse(identity(mesh.nCells()));
|
||||||
labelListList coarseToCell(invertOneToMany(mesh.nCells(), cellToCoarse));
|
CompactListList<label> coarseToCell
|
||||||
|
(
|
||||||
|
invertOneToManyCompact(mesh.nCells(), cellToCoarse)
|
||||||
|
);
|
||||||
|
|
||||||
++runTime;
|
++runTime;
|
||||||
|
|
||||||
@ -78,23 +81,21 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
volScalarField scalarAgglomeration
|
volScalarField scalarAgglomeration
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.thisDb().newIOobject("agglomeration"),
|
||||||
(
|
|
||||||
"agglomeration",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimless, Zero)
|
Foam::zero{},
|
||||||
|
dimless,
|
||||||
|
fvPatchFieldBase::zeroGradientType()
|
||||||
);
|
);
|
||||||
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
||||||
forAll(fld, celli)
|
forAll(fld, celli)
|
||||||
{
|
{
|
||||||
fld[celli] = cellToCoarse[celli];
|
fld[celli] = cellToCoarse[celli];
|
||||||
}
|
}
|
||||||
fld /= max(fld);
|
if (normalise)
|
||||||
|
{
|
||||||
|
fld /= max(fld);
|
||||||
|
}
|
||||||
scalarAgglomeration.correctBoundaryConditions();
|
scalarAgglomeration.correctBoundaryConditions();
|
||||||
scalarAgglomeration.write();
|
scalarAgglomeration.write();
|
||||||
|
|
||||||
@ -142,31 +143,23 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
forAll(addr, fineI)
|
forAll(addr, finei)
|
||||||
{
|
{
|
||||||
const labelList& cellLabels = coarseToCell[fineI];
|
labelUIndList(cellToCoarse, coarseToCell[finei]) = addr[finei];
|
||||||
forAll(cellLabels, i)
|
|
||||||
{
|
|
||||||
cellToCoarse[cellLabels[i]] = addr[fineI];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
coarseToCell = invertOneToMany(coarseSize, cellToCoarse);
|
coarseToCell = invertOneToManyCompact(coarseSize, cellToCoarse);
|
||||||
|
|
||||||
// Write agglomeration
|
// Write agglomeration
|
||||||
{
|
{
|
||||||
volScalarField scalarAgglomeration
|
volScalarField scalarAgglomeration
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.thisDb().newIOobject("agglomeration"),
|
||||||
(
|
|
||||||
"agglomeration",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimless, Zero)
|
Foam::zero{},
|
||||||
|
dimless,
|
||||||
|
fvPatchFieldBase::zeroGradientType()
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
||||||
forAll(fld, celli)
|
forAll(fld, celli)
|
||||||
{
|
{
|
||||||
@ -193,9 +186,9 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Determine coarse cc
|
// Determine coarse cc
|
||||||
forAll(coarseToCell, coarseI)
|
forAll(coarseToCell, coarsei)
|
||||||
{
|
{
|
||||||
const labelList& cellLabels = coarseToCell[coarseI];
|
const auto& cellLabels = coarseToCell[coarsei];
|
||||||
|
|
||||||
point coarseCc = average
|
point coarseCc = average
|
||||||
(
|
(
|
||||||
@ -204,10 +197,8 @@ int main(int argc, char *argv[])
|
|||||||
meshTools::writeOBJ(str, coarseCc);
|
meshTools::writeOBJ(str, coarseCc);
|
||||||
vertI++;
|
vertI++;
|
||||||
|
|
||||||
forAll(cellLabels, i)
|
for (label celli : cellLabels)
|
||||||
{
|
{
|
||||||
label celli = cellLabels[i];
|
|
||||||
|
|
||||||
str << "l " << celli+1 << ' ' << vertI << nl;
|
str << "l " << celli+1 << ' ' << vertI << nl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -124,11 +124,11 @@ int main(int argc, char *argv[])
|
|||||||
<< "toc: " << flatOutput(table0.toc()) << nl;
|
<< "toc: " << flatOutput(table0.toc()) << nl;
|
||||||
|
|
||||||
HashTable<label, label, Hash<label>> table2
|
HashTable<label, label, Hash<label>> table2
|
||||||
({
|
(
|
||||||
{3, 10},
|
// From key/value pairs
|
||||||
{5, 12},
|
labelList({3, 5, 7}),
|
||||||
{7, 16}
|
labelList({10, 12, 16})
|
||||||
});
|
);
|
||||||
|
|
||||||
Info<< "table2: " << table2 << nl
|
Info<< "table2: " << table2 << nl
|
||||||
<< "toc: " << flatOutput(table2.toc()) << nl;
|
<< "toc: " << flatOutput(table2.toc()) << nl;
|
||||||
|
|||||||
@ -206,7 +206,7 @@ int main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
loopInsert(map, nElem);
|
loopInsert(map, nElem);
|
||||||
(void)timer.cpuTimeIncrement();
|
timer.resetCpuTimeIncrement();
|
||||||
|
|
||||||
unsigned long sum = 0;
|
unsigned long sum = 0;
|
||||||
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
||||||
@ -268,7 +268,7 @@ int main(int argc, char *argv[])
|
|||||||
HashSet<label, Hash<label>> map(32);
|
HashSet<label, Hash<label>> map(32);
|
||||||
|
|
||||||
loopInsert(map, nElem);
|
loopInsert(map, nElem);
|
||||||
(void)timer.cpuTimeIncrement();
|
timer.resetCpuTimeIncrement();
|
||||||
|
|
||||||
unsigned long sum = 0;
|
unsigned long sum = 0;
|
||||||
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -188,8 +188,6 @@ int main(int argc, char *argv[])
|
|||||||
argList::addBoolOption("label", "Use label for tests (default)");
|
argList::addBoolOption("label", "Use label for tests (default)");
|
||||||
argList::addBoolOption("ref", "Test writing by ref");
|
argList::addBoolOption("ref", "Test writing by ref");
|
||||||
|
|
||||||
#include "addTimeOptions.H"
|
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createPolyMesh.H"
|
#include "createPolyMesh.H"
|
||||||
@ -280,7 +278,6 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
IOFieldRef<vector>(ioOutput, mesh.points()).write();
|
IOFieldRef<vector>(ioOutput, mesh.points()).write();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011 OpenFOAM Foundation
|
Copyright (C) 2011 OpenFOAM Foundation
|
||||||
Copyright (C) 2017-2022 OpenCFD Ltd.
|
Copyright (C) 2017-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -156,29 +156,24 @@ int main(int argc, char *argv[])
|
|||||||
os.writeEntry("idl3", idl3);
|
os.writeEntry("idl3", idl3);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Pstream::parRun())
|
if (UPstream::parRun())
|
||||||
{
|
{
|
||||||
if (Pstream::master())
|
if (UPstream::master())
|
||||||
{
|
{
|
||||||
Pout<< "full: " << flatOutput(idl3.values()) << nl
|
Pout<< "full: " << flatOutput(idl3.values()) << nl
|
||||||
<< "send: " << flatOutput(idl3) << endl;
|
<< "send: " << flatOutput(idl3) << endl;
|
||||||
|
|
||||||
for (const int proci : Pstream::subProcs())
|
for (const int proci : UPstream::subProcs())
|
||||||
{
|
{
|
||||||
OPstream toSlave(Pstream::commsTypes::scheduled, proci);
|
OPstream::send(idl3, proci);
|
||||||
toSlave << idl3;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// From master
|
// From master
|
||||||
IPstream fromMaster
|
List<label> recv;
|
||||||
(
|
|
||||||
Pstream::commsTypes::scheduled,
|
|
||||||
Pstream::masterNo()
|
|
||||||
);
|
|
||||||
|
|
||||||
List<label> recv(fromMaster);
|
IPstream::recv(recv, UPstream::masterNo());
|
||||||
|
|
||||||
Pout<<"recv: " << flatOutput(recv) << endl;
|
Pout<<"recv: " << flatOutput(recv) << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
Test-OCountStream.C
|
Test-OCountStream.cxx
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-OCountStream
|
EXE = $(FOAM_USER_APPBIN)/Test-OCountStream
|
||||||
|
|||||||
@ -65,11 +65,11 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
OCountStream cnt;
|
OCountStream cnt;
|
||||||
OCharStream cstr;
|
OCharStream cstr;
|
||||||
OStringStream str;
|
OStringStream sstr;
|
||||||
ocountstream plain;
|
ocountstream plain;
|
||||||
|
|
||||||
generateOutput(cstr);
|
generateOutput(cstr);
|
||||||
generateOutput(str);
|
generateOutput(sstr);
|
||||||
generateOutput(cnt);
|
generateOutput(cnt);
|
||||||
generateOutput(plain);
|
generateOutput(plain);
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "counter state: " << (cnt.stdStream().rdstate()) << nl
|
Info<< "counter state: " << (cnt.stdStream().rdstate()) << nl
|
||||||
<< "via char-stream: " << label(cstr.view().size()) << " chars" << nl
|
<< "via char-stream: " << label(cstr.view().size()) << " chars" << nl
|
||||||
<< "via string-stream: " << str.str().size() << " chars" << nl
|
<< "via string-stream: " << label(sstr.count()) << " chars" << nl
|
||||||
<< "via ocountstream: " << plain.count() << " chars" << endl;
|
<< "via ocountstream: " << plain.count() << " chars" << endl;
|
||||||
|
|
||||||
fileName outputName;
|
fileName outputName;
|
||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2022 OpenCFD Ltd.
|
Copyright (C) 2022-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -32,10 +32,14 @@ Description
|
|||||||
#include "IOstreams.H"
|
#include "IOstreams.H"
|
||||||
#include "OSspecific.H"
|
#include "OSspecific.H"
|
||||||
#include "argList.H"
|
#include "argList.H"
|
||||||
|
#include "clock.H"
|
||||||
|
#include "Switch.H"
|
||||||
#include "ListOps.H"
|
#include "ListOps.H"
|
||||||
|
|
||||||
using namespace Foam;
|
using namespace Foam;
|
||||||
|
|
||||||
|
std::string time_stamp;
|
||||||
|
|
||||||
void listFiles(const fileName& dir)
|
void listFiles(const fileName& dir)
|
||||||
{
|
{
|
||||||
wordList files = ListOps::create<word>
|
wordList files = ListOps::create<word>
|
||||||
@ -55,25 +59,150 @@ void listFiles(const fileName& dir)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
OSstream& printInfo(OFstream& os)
|
||||||
|
{
|
||||||
|
InfoErr
|
||||||
|
<< "open: " << os.name() << nl
|
||||||
|
<< "appending: " << Switch::name(os.is_appending())
|
||||||
|
<< " tellp: "<< os.stdStream().tellp()
|
||||||
|
<< " gz: " << Switch::name(os.compression()) << nl;
|
||||||
|
|
||||||
|
return InfoErr.stream();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void withHeader(OFstream& os)
|
||||||
|
{
|
||||||
|
const auto tellp = os.stdStream().tellp();
|
||||||
|
|
||||||
|
if (tellp <= 0)
|
||||||
|
{
|
||||||
|
InfoErr
|
||||||
|
<< "Add header" << nl;
|
||||||
|
os << "HEADER: " << time_stamp.c_str() << nl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class OSstreamType>
|
||||||
|
void generateLines(OSstreamType& os, label count = 1)
|
||||||
|
{
|
||||||
|
for (label line = 1; line <= count; ++line)
|
||||||
|
{
|
||||||
|
os << "[" << line
|
||||||
|
<< "] =============================================" << nl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class OSstreamType>
|
||||||
|
void generateContent
|
||||||
|
(
|
||||||
|
OSstreamType& os,
|
||||||
|
const bool with_seekend,
|
||||||
|
const bool test_overwrite = false,
|
||||||
|
const int64_t seek_out = -1
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (with_seekend)
|
||||||
|
{
|
||||||
|
os.stdStream().seekp(0, std::ios_base::end);
|
||||||
|
// OR? os.seek_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
printInfo(os);
|
||||||
|
|
||||||
|
withHeader(os);
|
||||||
|
|
||||||
|
if (test_overwrite && seek_out >= 0)
|
||||||
|
{
|
||||||
|
InfoErr<< "... seekp(" << seek_out << ")" << nl;
|
||||||
|
|
||||||
|
auto& oss = os.stdStream();
|
||||||
|
|
||||||
|
// Actually std::streampos, but cannot increment that
|
||||||
|
|
||||||
|
int64_t pos(seek_out);
|
||||||
|
|
||||||
|
const int64_t tellp_end = oss.tellp();
|
||||||
|
|
||||||
|
if (pos >= 0 && pos < tellp_end)
|
||||||
|
{
|
||||||
|
InfoErr
|
||||||
|
<< "... fill from " << label(pos)
|
||||||
|
<< " to " << label(tellp_end) << nl;
|
||||||
|
|
||||||
|
oss.seekp(pos);
|
||||||
|
|
||||||
|
while (pos < tellp_end)
|
||||||
|
{
|
||||||
|
// Fill with char 'X', rely on streambuf buffering
|
||||||
|
oss << 'X';
|
||||||
|
++pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
oss.seekp(seek_out);
|
||||||
|
os << "More content [at " << seek_out << ']' << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
generateLines(os, 4);
|
||||||
|
|
||||||
|
printInfo(os)
|
||||||
|
<< "... sleep" << endl;
|
||||||
|
|
||||||
|
listFiles(os.name().path());
|
||||||
|
|
||||||
|
sleep(2);
|
||||||
|
|
||||||
|
os << "[new content] +++++++++++++++++++++++++++++++++++" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class OSstreamType>
|
||||||
|
void generateOverwriteContent
|
||||||
|
(
|
||||||
|
OSstreamType& os,
|
||||||
|
const bool with_seekend,
|
||||||
|
const int64_t seek_out = -1
|
||||||
|
)
|
||||||
|
{
|
||||||
|
generateContent(os, with_seekend, true, seek_out);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
// Main program:
|
// Main program:
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
argList::addBoolOption("gz", "Use compression");
|
argList::addBoolOption("gz", "Use compression");
|
||||||
argList::addBoolOption("append", "Use append mode");
|
argList::addBoolOption("append-app", "Use append app mode");
|
||||||
|
argList::addBoolOption("append-ate", "Use append ate mode");
|
||||||
|
argList::addBoolOption("seekend", "Seek to end after non-append open");
|
||||||
|
argList::addOption("seek", "value", "Seek from start (default: 100)");
|
||||||
argList::addBoolOption("atomic", "Use atomic");
|
argList::addBoolOption("atomic", "Use atomic");
|
||||||
argList::addBoolOption("keep", "Do not remove test directory");
|
argList::addBoolOption("keep", "Do not remove test directory");
|
||||||
argList::addOption("write", "file", "test writing to file");
|
argList::addOption("write", "file", "test writing to file");
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
|
|
||||||
|
// Same time-stamp for all generated files
|
||||||
|
time_stamp = clock::dateTime();
|
||||||
|
|
||||||
const fileName baseDir("Test-OFstream-directory");
|
const fileName baseDir("Test-OFstream-directory");
|
||||||
|
|
||||||
Foam::mkDir(baseDir);
|
Foam::mkDir(baseDir);
|
||||||
|
|
||||||
InfoErr<< "mkdir: " << baseDir << endl;
|
InfoErr<< "mkdir: " << baseDir << endl;
|
||||||
|
|
||||||
|
Info<< "start:" << nl;
|
||||||
|
listFiles(baseDir);
|
||||||
|
|
||||||
|
const bool with_seekend = args.found("seekend");
|
||||||
|
|
||||||
|
const int seek_out = args.getOrDefault<int>("seek", 100);
|
||||||
|
|
||||||
IOstreamOption streamOpt;
|
IOstreamOption streamOpt;
|
||||||
|
|
||||||
if (args.found("gz"))
|
if (args.found("gz"))
|
||||||
@ -83,10 +212,11 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
IOstreamOption::appendType append =
|
IOstreamOption::appendType append =
|
||||||
(
|
(
|
||||||
args.found("append")
|
args.found("append-app") ? IOstreamOption::APPEND_APP
|
||||||
? IOstreamOption::APPEND
|
: args.found("append-ate") ? IOstreamOption::APPEND_ATE
|
||||||
: IOstreamOption::NON_APPEND
|
: IOstreamOption::NO_APPEND
|
||||||
);
|
);
|
||||||
|
|
||||||
IOstreamOption::atomicType atomic =
|
IOstreamOption::atomicType atomic =
|
||||||
(
|
(
|
||||||
args.found("atomic")
|
args.found("atomic")
|
||||||
@ -97,7 +227,6 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
OFstream(baseDir/"dummy")() << "Some file content" << endl;
|
OFstream(baseDir/"dummy")() << "Some file content" << endl;
|
||||||
|
|
||||||
Foam::ln("dummy", baseDir/"Test2.txt");
|
|
||||||
Foam::ln("dummy", baseDir/"Test3.txt");
|
Foam::ln("dummy", baseDir/"Test3.txt");
|
||||||
Foam::ln("dummy", baseDir/"Test4.txt");
|
Foam::ln("dummy", baseDir/"Test4.txt");
|
||||||
Foam::ln("dummy", baseDir/"Test4.txt.gz");
|
Foam::ln("dummy", baseDir/"Test4.txt.gz");
|
||||||
@ -114,16 +243,31 @@ int main(int argc, char *argv[])
|
|||||||
append
|
append
|
||||||
);
|
);
|
||||||
|
|
||||||
os << "=========================" << endl;
|
generateOverwriteContent(os, with_seekend, seek_out);
|
||||||
|
}
|
||||||
|
|
||||||
InfoErr<< "open: " << os.name() << endl;
|
{
|
||||||
InfoErr<< "... sleep" << endl;
|
OFstream os
|
||||||
|
(
|
||||||
|
atomic,
|
||||||
|
baseDir/"Test1-app.txt",
|
||||||
|
streamOpt,
|
||||||
|
IOstreamOption::APPEND_APP
|
||||||
|
);
|
||||||
|
|
||||||
listFiles(baseDir);
|
generateOverwriteContent(os, with_seekend, seek_out);
|
||||||
|
}
|
||||||
|
|
||||||
sleep(2);
|
{
|
||||||
|
OFstream os
|
||||||
|
(
|
||||||
|
atomic,
|
||||||
|
baseDir/"Test1-ate.txt",
|
||||||
|
streamOpt,
|
||||||
|
IOstreamOption::APPEND_ATE
|
||||||
|
);
|
||||||
|
|
||||||
os << "+++++++++++++++++++++++++++++++++++" << endl;
|
generateOverwriteContent(os, with_seekend, seek_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -132,39 +276,21 @@ int main(int argc, char *argv[])
|
|||||||
atomic,
|
atomic,
|
||||||
baseDir/"Test2.txt",
|
baseDir/"Test2.txt",
|
||||||
streamOpt
|
streamOpt
|
||||||
// NON_APPEND
|
|
||||||
);
|
);
|
||||||
|
|
||||||
os << "=========================" << endl;
|
generateContent(os, with_seekend);
|
||||||
|
|
||||||
InfoErr<< "open: " << os.name() << endl;
|
|
||||||
InfoErr<< "... sleep" << endl;
|
|
||||||
|
|
||||||
listFiles(baseDir);
|
|
||||||
|
|
||||||
sleep(2);
|
|
||||||
|
|
||||||
os << "+++++++++++++++++++++++++++++++++++" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
OFstream os
|
OFstream os
|
||||||
(
|
(
|
||||||
atomic,
|
atomic,
|
||||||
baseDir/"Test3.txt",
|
baseDir/"Test3.txt",
|
||||||
streamOpt,
|
streamOpt,
|
||||||
IOstreamOption::APPEND
|
IOstreamOption::APPEND_APP
|
||||||
);
|
);
|
||||||
|
|
||||||
os << "=========================" << endl;
|
generateContent(os, with_seekend, with_seekend);
|
||||||
|
|
||||||
InfoErr<< "open: " << os.name() << endl;
|
|
||||||
InfoErr<< "... sleep" << endl;
|
|
||||||
|
|
||||||
listFiles(baseDir);
|
|
||||||
|
|
||||||
sleep(2);
|
|
||||||
|
|
||||||
os << "+++++++++++++++++++++++++++++++++++" << endl;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
OFstream os
|
OFstream os
|
||||||
@ -174,35 +300,17 @@ int main(int argc, char *argv[])
|
|||||||
IOstreamOption::COMPRESSED
|
IOstreamOption::COMPRESSED
|
||||||
);
|
);
|
||||||
|
|
||||||
os << "=========================" << endl;
|
// No seekend with COMPRESSED
|
||||||
|
generateContent(os, false);
|
||||||
InfoErr<< "open: " << os.name() << endl;
|
|
||||||
InfoErr<< "... sleep" << endl;
|
|
||||||
|
|
||||||
listFiles(baseDir);
|
|
||||||
|
|
||||||
sleep(2);
|
|
||||||
|
|
||||||
os << "+++++++++++++++++++++++++++++++++++" << endl;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
OFstream os
|
OFstream os
|
||||||
(
|
(
|
||||||
IOstreamOption::ATOMIC,
|
IOstreamOption::ATOMIC,
|
||||||
baseDir/"Test5.txt"
|
baseDir/"Test5.txt"
|
||||||
// ASCII UNCOMPRESSED NON_APPEND
|
|
||||||
);
|
);
|
||||||
|
|
||||||
os << "=========================" << endl;
|
generateContent(os, with_seekend);
|
||||||
|
|
||||||
InfoErr<< "open: " << os.name() << endl;
|
|
||||||
InfoErr<< "... sleep" << endl;
|
|
||||||
|
|
||||||
listFiles(baseDir);
|
|
||||||
|
|
||||||
sleep(2);
|
|
||||||
|
|
||||||
os << "+++++++++++++++++++++++++++++++++++" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< nl << "done:" << endl;
|
Info<< nl << "done:" << endl;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -67,8 +67,8 @@ using namespace Foam;
|
|||||||
// // (note:without calculating pointNormals
|
// // (note:without calculating pointNormals
|
||||||
// // to avoid them being stored)
|
// // to avoid them being stored)
|
||||||
//
|
//
|
||||||
// tmp<pointField> textrudeN(new pointField(p.nPoints(), Zero));
|
// auto textrudeN = tmp<pointField>::New(p.nPoints(), Zero);
|
||||||
// pointField& extrudeN = textrudeN();
|
// auto& extrudeN = textrudeN.ref();
|
||||||
// {
|
// {
|
||||||
// const faceList& localFaces = p.localFaces();
|
// const faceList& localFaces = p.localFaces();
|
||||||
// const vectorField& faceAreas = mesh.faceAreas();
|
// const vectorField& faceAreas = mesh.faceAreas();
|
||||||
@ -201,7 +201,6 @@ using namespace Foam;
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#include "addTimeOptions.H"
|
|
||||||
argList::addArgument("patch");
|
argList::addArgument("patch");
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
|
|||||||
@ -53,46 +53,37 @@ int main(int argc, char *argv[])
|
|||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
|
|
||||||
fileName coherentInst;
|
word coherentInst;
|
||||||
coherentInst =
|
coherentInst =
|
||||||
(
|
(
|
||||||
runTime.findInstance
|
runTime.findInstance
|
||||||
(
|
(
|
||||||
polyMesh::meshSubDir,
|
polyMesh::meshSubDir,
|
||||||
"coherent",
|
"coherent",
|
||||||
IOobject::READ_IF_PRESENT
|
IOobject::READ_IF_PRESENT,
|
||||||
|
word::null, // No stop instance
|
||||||
|
false // No "constant" fallback (word::null instead)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Unfortunately with READ_IF_PRESENT, cannot tell if the file
|
Info<< "Found coherent \"" << coherentInst << '"' << nl;
|
||||||
// was actually found or not
|
|
||||||
|
|
||||||
Info<< "check: " << (coherentInst/polyMesh::meshSubDir/"coherent") << nl;
|
|
||||||
|
|
||||||
if (!Foam::isFile(coherentInst/polyMesh::meshSubDir/"coherent"))
|
|
||||||
{
|
|
||||||
coherentInst.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "found coherent: " << coherentInst << nl;
|
|
||||||
|
|
||||||
PtrList<entry> entries;
|
PtrList<entry> entries;
|
||||||
|
|
||||||
if (!coherentInst.empty())
|
if (!coherentInst.empty())
|
||||||
{
|
{
|
||||||
IOdictionary coherent
|
dictionary coherent =
|
||||||
(
|
IOdictionary::readContents
|
||||||
IOobject
|
|
||||||
(
|
(
|
||||||
"coherent",
|
IOobject
|
||||||
coherentInst,
|
(
|
||||||
polyMesh::meshSubDir,
|
"coherent",
|
||||||
runTime,
|
coherentInst,
|
||||||
IOobject::MUST_READ,
|
polyMesh::meshSubDir,
|
||||||
IOobject::NO_WRITE,
|
runTime,
|
||||||
IOobject::NO_REGISTER
|
IOobject::MUST_READ
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
ITstream& is = coherent.lookup("boundary");
|
ITstream& is = coherent.lookup("boundary");
|
||||||
is >> entries;
|
is >> entries;
|
||||||
@ -105,7 +96,7 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "size: " << polyBoundaryMeshEntries::patchSizes(entries) << nl;
|
Info<< "size: " << polyBoundaryMeshEntries::patchSizes(entries) << nl;
|
||||||
Info<< nl;
|
Info<< nl;
|
||||||
|
|
||||||
fileName boundaryInst;
|
word boundaryInst;
|
||||||
boundaryInst =
|
boundaryInst =
|
||||||
(
|
(
|
||||||
runTime.findInstance
|
runTime.findInstance
|
||||||
@ -116,7 +107,7 @@ int main(int argc, char *argv[])
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "found boundary: " << boundaryInst << nl;
|
Info<< "Found boundary: \"" << boundaryInst << '"' << nl;
|
||||||
|
|
||||||
polyBoundaryMeshEntries pbm
|
polyBoundaryMeshEntries pbm
|
||||||
(
|
(
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2023 OpenCFD Ltd.
|
Copyright (C) 2017-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -24,7 +24,7 @@ License
|
|||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
Application
|
||||||
checkDecomposePar
|
Test-checkDecomposePar
|
||||||
|
|
||||||
Group
|
Group
|
||||||
grpParallelUtilities
|
grpParallelUtilities
|
||||||
@ -35,8 +35,9 @@ Description
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "OSspecific.H"
|
#include "argList.H"
|
||||||
#include "fvCFD.H"
|
#include "timeSelector.H"
|
||||||
|
#include "polyMesh.H"
|
||||||
#include "cpuTime.H"
|
#include "cpuTime.H"
|
||||||
#include "IFstream.H"
|
#include "IFstream.H"
|
||||||
#include "regionProperties.H"
|
#include "regionProperties.H"
|
||||||
@ -44,10 +45,14 @@ Description
|
|||||||
#include "decompositionInformation.H"
|
#include "decompositionInformation.H"
|
||||||
#include "decompositionModel.H"
|
#include "decompositionModel.H"
|
||||||
|
|
||||||
|
using namespace Foam;
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
timeSelector::addOptions_singleTime(); // Single-time options
|
||||||
|
|
||||||
argList::addNote
|
argList::addNote
|
||||||
(
|
(
|
||||||
"Check decomposition from kaffpa (KaHIP) output"
|
"Check decomposition from kaffpa (KaHIP) output"
|
||||||
@ -65,9 +70,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
argList::addArgument("kaffpa-output-file");
|
argList::addArgument("kaffpa-output-file");
|
||||||
|
|
||||||
// Include explicit constant options, have zero from time range
|
|
||||||
timeSelector::addOptions(true, false);
|
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
|
|
||||||
const auto decompFile = args.get<fileName>(1);
|
const auto decompFile = args.get<fileName>(1);
|
||||||
@ -75,8 +77,8 @@ int main(int argc, char *argv[])
|
|||||||
// Set time from database
|
// Set time from database
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
|
|
||||||
// Allow override of time
|
// Allow override of time from specified time options, or no-op
|
||||||
instantList times = timeSelector::selectIfPresent(runTime, args);
|
timeSelector::setTimeIfPresent(runTime, args);
|
||||||
|
|
||||||
// Allow override of decomposeParDict location
|
// Allow override of decomposeParDict location
|
||||||
const fileName decompDictFile =
|
const fileName decompDictFile =
|
||||||
@ -95,7 +97,7 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "\n\nDecomposing mesh " << regionName << nl << endl;
|
Info<< "\n\nDecomposing mesh " << regionName << nl << endl;
|
||||||
Info<< "Create mesh..." << flush;
|
Info<< "Create mesh..." << flush;
|
||||||
|
|
||||||
fvMesh mesh
|
polyMesh mesh
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
(
|
(
|
||||||
@ -111,7 +113,7 @@ int main(int argc, char *argv[])
|
|||||||
Info<< " nCells = " << mesh.nCells() << endl;
|
Info<< " nCells = " << mesh.nCells() << endl;
|
||||||
|
|
||||||
// Expected format is a simple ASCII list
|
// Expected format is a simple ASCII list
|
||||||
cellToProc.setSize(mesh.nCells());
|
cellToProc.resize(mesh.nCells());
|
||||||
{
|
{
|
||||||
IFstream is(decompFile);
|
IFstream is(decompFile);
|
||||||
|
|
||||||
@ -123,15 +125,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
const label nDomains = max(cellToProc) + 1;
|
const label nDomains = max(cellToProc) + 1;
|
||||||
|
|
||||||
|
// Local mesh connectivity
|
||||||
CompactListList<label> cellCells;
|
CompactListList<label> cellCells;
|
||||||
globalMeshData::calcCellCells
|
globalMeshData::calcCellCells(mesh, cellCells);
|
||||||
(
|
|
||||||
mesh,
|
|
||||||
identity(mesh.nCells()),
|
|
||||||
mesh.nCells(),
|
|
||||||
false,
|
|
||||||
cellCells
|
|
||||||
);
|
|
||||||
|
|
||||||
decompositionInformation info
|
decompositionInformation info
|
||||||
(
|
(
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
Test-cstring.C
|
Test-cstring.cxx
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-cstring
|
EXE = $(FOAM_USER_APPBIN)/Test-cstring
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2016-2017 OpenCFD Ltd.
|
Copyright (C) 2016-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -81,8 +81,7 @@ int print(char *argv[])
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
DynamicList<string> dynlst;
|
DynamicList<string> dynlst(16);
|
||||||
dynlst.reserve(16);
|
|
||||||
|
|
||||||
dynlst.push_back("string1 with content");
|
dynlst.push_back("string1 with content");
|
||||||
dynlst.push_back("string2 other content");
|
dynlst.push_back("string2 other content");
|
||||||
@ -104,6 +103,18 @@ int main(int argc, char *argv[])
|
|||||||
Info<< nl;
|
Info<< nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
CStringList inC({ "string1", "string2", "string3", "end" });
|
||||||
|
|
||||||
|
Info<< "null-terminated string list from " << nl;
|
||||||
|
print(inC.strings());
|
||||||
|
|
||||||
|
Info<< "sublist: starting at " << inC.size()/2 << nl;
|
||||||
|
print(inC.strings(inC.size()/2));
|
||||||
|
|
||||||
|
Info<< nl;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
string testInput
|
string testInput
|
||||||
(
|
(
|
||||||
@ -112,7 +123,7 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
|
|
||||||
Info<< testInput << nl;
|
Info<< testInput << nl;
|
||||||
SubStrings<string> args = stringOps::splitSpace(testInput);
|
auto args = stringOps::splitSpace(testInput);
|
||||||
Info<< "split into " << args.size() << " args" << nl;
|
Info<< "split into " << args.size() << " args" << nl;
|
||||||
|
|
||||||
CStringList inC(args);
|
CStringList inC(args);
|
||||||
@ -124,7 +135,7 @@ int main(int argc, char *argv[])
|
|||||||
Info<< nl;
|
Info<< nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<<"command-line with " << CStringList::count(argv) << " items"<< endl;
|
Info<< "command-line with " << CStringList::count(argv) << " items" << nl;
|
||||||
|
|
||||||
print(argc, argv);
|
print(argc, argv);
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2312 |
|
| \\ / O peration | Version: v2412 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
Test-dimField.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-dimField
|
|
||||||
3
applications/test/dimField1/Make/files
Normal file
3
applications/test/dimField1/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Test-dimField1.cxx
|
||||||
|
|
||||||
|
EXE = $(FOAM_USER_APPBIN)/Test-dimField1
|
||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2020-2022 OpenCFD Ltd.
|
Copyright (C) 2020-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -24,7 +24,7 @@ License
|
|||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
Application
|
||||||
Test-dimField
|
Test-dimField1
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Simple tests for DimensionedField
|
Simple tests for DimensionedField
|
||||||
@ -52,7 +52,12 @@ namespace Foam
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
argList::addBoolOption("write", "write some test fields");
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
|
|
||||||
|
const bool doWrite = args.found("write");
|
||||||
|
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createMesh.H"
|
||||||
|
|
||||||
@ -60,19 +65,23 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "Tensor field\n" << endl;
|
Info<< "Tensor field\n" << endl;
|
||||||
DimensionedField<tensor, volMesh> tensorfld
|
DimensionedField<tensor, volMesh> tensorfld
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject
|
||||||
(
|
(
|
||||||
"tensor",
|
"tensor",
|
||||||
runTime.timeName(),
|
{ IOobject::READ_IF_PRESENT, IOobject::NO_WRITE }
|
||||||
mesh,
|
|
||||||
{ IOobject::READ_IF_PRESENT, IOobject::NO_REGISTER }
|
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensioned<tensor>(dimless, tensor(1,2,3,4,5,6,7,8,9))
|
dimensioned<tensor>(dimless, tensor(1,2,3,4,5,6,7,8,9))
|
||||||
);
|
);
|
||||||
|
|
||||||
Info().beginBlock("transformed")
|
if (doWrite)
|
||||||
<< tensorfld.T() << nl;
|
{
|
||||||
|
tensorfld.write();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Info<< nl;
|
||||||
|
Info().beginBlock("transformed") << tensorfld.T();
|
||||||
Info().endBlock();
|
Info().endBlock();
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -84,8 +93,8 @@ int main(int argc, char *argv[])
|
|||||||
dimensioned<scalar>(14)
|
dimensioned<scalar>(14)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info().beginBlock(tfld().type())
|
Info<< nl;
|
||||||
<< tfld << nl;
|
Info().beginBlock(tfld().type()) << tfld;
|
||||||
Info().endBlock();
|
Info().endBlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,8 +107,8 @@ int main(int argc, char *argv[])
|
|||||||
dimensioned<scalar>(5)
|
dimensioned<scalar>(5)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info().beginBlock(tfld().type())
|
Info<< nl;
|
||||||
<< tfld() << nl;
|
Info().beginBlock(tfld().type()) << tfld();
|
||||||
Info().endBlock();
|
Info().endBlock();
|
||||||
|
|
||||||
// From dissimilar types
|
// From dissimilar types
|
||||||
@ -111,8 +120,8 @@ int main(int argc, char *argv[])
|
|||||||
dimensioned<vector>(Zero)
|
dimensioned<vector>(Zero)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info().beginBlock(tfld2().type())
|
Info<< nl;
|
||||||
<< tfld2() << nl;
|
Info().beginBlock(tfld2().type()) << tfld2();
|
||||||
Info().endBlock();
|
Info().endBlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,20 +131,13 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "uint8 field\n" << endl;
|
Info<< "uint8 field\n" << endl;
|
||||||
DimensionedField<uint8_t, volMesh> statefld
|
DimensionedField<uint8_t, volMesh> statefld
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("state")
|
||||||
(
|
|
||||||
"state",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensioned<uint8_t>(dimless, uint8_t{100})
|
dimensioned<uint8_t>(dimless, uint8_t{100})
|
||||||
);
|
);
|
||||||
|
|
||||||
Info().beginBlock("stateField")
|
Info<< nl;
|
||||||
<< statefld << nl;
|
Info().beginBlock("stateField") << statefld;
|
||||||
Info().endBlock();
|
Info().endBlock();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user