Compare commits
22 Commits
OpenFOAM-v
...
OpenFOAM-v
| Author | SHA1 | Date | |
|---|---|---|---|
| e000a3cdc5 | |||
| 3c596fe9bd | |||
| 169e482066 | |||
| 0c68f1be4b | |||
| ff16d27f63 | |||
| 54f23b9577 | |||
| 4dd1433133 | |||
| c1cbfe5780 | |||
| be420e7a71 | |||
| c278b93d7a | |||
| fce7948915 | |||
| e91dbcf834 | |||
| 00552eff17 | |||
| 3e76ef7b5b | |||
| f654b7fac6 | |||
| 1b017938c3 | |||
| 29faf6da89 | |||
| efebc5db3f | |||
| 3003356898 | |||
| 4ae61e621f | |||
| 27956330ac | |||
| b40d1d8e4f |
29
Allwmake
29
Allwmake
@ -25,7 +25,7 @@ command -v mpirun 2>/dev/null || true
|
||||
echo "========================================"
|
||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
||||
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||
echo "========================================"
|
||||
echo
|
||||
@ -36,9 +36,18 @@ echo
|
||||
# Compile ThirdParty libraries and applications
|
||||
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
||||
then
|
||||
$WM_THIRD_PARTY_DIR/Allwmake
|
||||
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
||||
then
|
||||
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
||||
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
|
||||
fi
|
||||
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
|
||||
then "$WM_THIRD_PARTY_DIR"/Allwmake
|
||||
else
|
||||
echo "Skip ThirdParty (no Allwmake* files)"
|
||||
fi
|
||||
else
|
||||
echo "No ThirdParty directory found - skipping"
|
||||
echo "Skip ThirdParty (no directory)"
|
||||
fi
|
||||
|
||||
echo "========================================"
|
||||
@ -57,13 +66,13 @@ then
|
||||
echo "========================================"
|
||||
echo "Compile OpenFOAM modules"
|
||||
echo
|
||||
(cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all)
|
||||
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
||||
fi
|
||||
|
||||
# Count files in given directory. Ignore "Test-*" binaries.
|
||||
_foamCountDirEntries()
|
||||
{
|
||||
(cd "$1" 2>/dev/null && find -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
||||
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
||||
sed -e '\@/Test-@d' | wc -l
|
||||
}
|
||||
|
||||
@ -72,13 +81,13 @@ echo
|
||||
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
||||
echo "========================================"
|
||||
echo " ${WM_PROJECT_DIR##*/}"
|
||||
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
|
||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||
echo
|
||||
echo " api = $(foamEtcFile -show-api 2>/dev/null)"
|
||||
echo " patch = $(foamEtcFile -show-patch 2>/dev/null)"
|
||||
echo " bin = $(_foamCountDirEntries $FOAM_APPBIN) entries"
|
||||
echo " lib = $(_foamCountDirEntries $FOAM_LIBBIN) entries"
|
||||
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
|
||||
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
||||
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
||||
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
||||
echo
|
||||
echo "========================================"
|
||||
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
api=1906
|
||||
patch=191111
|
||||
patch=200417
|
||||
|
||||
33
README.md
33
README.md
@ -1,13 +1,14 @@
|
||||
# About OpenFOAM
|
||||
OpenFOAM is a free, open source CFD software [released and developed primarily by OpenCFD Ltd](http://www.openfoam.com) since 2004. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
|
||||
|
||||
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
|
||||
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
|
||||
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
|
||||
[See documentation](http://www.openfoam.com/documentation)
|
||||
|
||||
OpenFOAM is professionally released every six months to include
|
||||
customer sponsored developments and contributions from the community -
|
||||
individual and group contributors, re-integrations (including from
|
||||
FOAM-extend and OpenFOAM Foundation Ltd) - in this Official Release
|
||||
sanctioned by the OpenFOAM Worldwide Trademark Owner aiming towards
|
||||
one OpenFOAM.
|
||||
individual and group contributors, integrations
|
||||
(eg, from FOAM-extend and OpenFOAM Foundation Ltd) as well as
|
||||
[governance guided activities](https://www.openfoam.com/governance/).
|
||||
|
||||
|
||||
# Copyright
|
||||
@ -168,17 +169,17 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/OpenFOAM-plus/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-plus/
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
|
||||
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/Requirements.md
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||
|
||||
|
||||
# Useful Links
|
||||
|
||||
@ -143,6 +143,13 @@ public:
|
||||
typedef indexedVertex<Gt,Vb2> Other;
|
||||
};
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
indexedVertex(const indexedVertex&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
inline indexedVertex();
|
||||
|
||||
114
bin/foamEtcFile
114
bin/foamEtcFile
@ -7,14 +7,13 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# foamEtcFile
|
||||
# bin/foamEtcFile
|
||||
#
|
||||
# Description
|
||||
# Locate user/group/other file as per '#includeEtc'.
|
||||
@ -33,7 +32,13 @@
|
||||
# \endcode
|
||||
#
|
||||
# Environment
|
||||
# - WM_PROJECT_SITE (unset defaults to PROJECT/site)
|
||||
# FOAM_CONFIG_ETC
|
||||
# Alternative etc directory for shipped files
|
||||
#
|
||||
# FOAM_CONFIG_MODE
|
||||
# Fallback search mode for etc files. Unset is the same as "ugo".
|
||||
#
|
||||
# WM_PROJECT_SITE (unset defaults to PROJECT/site)
|
||||
#
|
||||
# Note
|
||||
# This script must exist in the project 'bin' directory
|
||||
@ -46,8 +51,8 @@
|
||||
printHelp() {
|
||||
cat<<USAGE
|
||||
|
||||
Usage: foamEtcFile [OPTION] fileName [-- args]
|
||||
foamEtcFile [OPTION] [-list|-list-test] [fileName]
|
||||
Usage: ${0##*/} [OPTION] fileName [-- args]
|
||||
${0##*/} [OPTION] [-list|-list-test] [fileName]
|
||||
|
||||
options:
|
||||
-all (-a) Return all files (otherwise stop after the first match)
|
||||
@ -61,8 +66,8 @@ options:
|
||||
-config Add config directory prefix for shell type:
|
||||
with -csh* for a config.csh/ prefix
|
||||
with -sh* for a config.sh/ prefix
|
||||
-show-api Print api value from wmake/rules, or meta-info and exit
|
||||
-show-patch Print patch value from meta-info and exit
|
||||
-show-api Print META-INFO api value and exit
|
||||
-show-patch Print META-INFO patch value and exit
|
||||
-with-api=NUM Specify alternative api value to search with
|
||||
-quiet (-q) Suppress all normal output
|
||||
-silent (-s) Suppress stderr, except -csh-verbose, -sh-verbose output
|
||||
@ -106,64 +111,40 @@ projectDir="$(\cd $(dirname $binDir) && \pwd -L)" # Project dir
|
||||
|
||||
userDir="$HOME/.OpenFOAM" # As per foamVersion.H
|
||||
groupDir="${WM_PROJECT_SITE:-$projectDir/site}" # As per foamVersion.H
|
||||
optMode=ugo # Default search = 'ugo'
|
||||
|
||||
# Environment overrides
|
||||
case "$FOAM_CONFIG_MODE" in ([ugo]*) optMode="$FOAM_CONFIG_MODE" ;; esac
|
||||
|
||||
# Verify validity of FOAM_CONFIG_ETC
|
||||
if [ -n "$FOAM_CONFIG_ETC" ]
|
||||
then
|
||||
if [ ! -d "$FOAM_CONFIG_ETC" ] || [ "$FOAM_CONFIG_ETC" = "$projectDir/etc" ]
|
||||
then
|
||||
# Bad directory or redundant value
|
||||
unset FOAM_CONFIG_ETC
|
||||
fi
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# The API locations. See wmake/wmakeBuildInfo
|
||||
rulesFile="$projectDir/wmake/rules/General/general"
|
||||
metaInfoDir="$projectDir/META-INFO"
|
||||
|
||||
# Get api from rules/General/general
|
||||
#
|
||||
# Failure modes:
|
||||
# - No api information (can't find file etc).
|
||||
# -> Fatal for building, but could be OK for a stripped down version
|
||||
#
|
||||
# Fallback. Get from api-info
|
||||
#
|
||||
getApi()
|
||||
# Get a value from META-INFO/api-info
|
||||
# $1 : keyword
|
||||
getApiInfo()
|
||||
{
|
||||
local value
|
||||
|
||||
value="$(sed -ne '/^ *#/!{ /WM_VERSION.*OPENFOAM=/{ s@^.*OPENFOAM= *\([0-9][0-9]*\).*@\1@p; q }}' $rulesFile 2>/dev/null)"
|
||||
if [ -z "$value" ] && [ -f "$metaInfoDir/api-info" ]
|
||||
then
|
||||
# Fallback. Get from api-info
|
||||
value="$(sed -ne 's@^ *api *= *\([0-9][0-9]*\).*@\1@p' $metaInfoDir/api-info 2>/dev/null)"
|
||||
fi
|
||||
|
||||
if [ -n "$value" ]
|
||||
then
|
||||
echo "$value"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Get patch from meta-info / api-info
|
||||
#
|
||||
# Failure modes:
|
||||
# - No patch information (can't find file etc).
|
||||
#
|
||||
getPatchLevel()
|
||||
{
|
||||
local value
|
||||
|
||||
# Fallback. Get from api-info
|
||||
value="$(sed -ne 's@^ *patch *= *\([0-9][0-9]*\).*@\1@p' $metaInfoDir/api-info 2>/dev/null)"
|
||||
value="$(sed -ne 's@^'"$1"' *= *\([0-9][0-9]*\).*@\1@p' "$projectDir"/META-INFO/api-info 2>/dev/null)"
|
||||
|
||||
if [ -n "$value" ]
|
||||
then
|
||||
echo "$value"
|
||||
else
|
||||
echo "Could not determine OPENFOAM '$1' value" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
optMode=ugo # Default mode is always 'ugo'
|
||||
unset shellOutput verboseOutput
|
||||
unset optAll optConfig optList projectApi
|
||||
|
||||
@ -174,14 +155,12 @@ do
|
||||
-h | -help*)
|
||||
printHelp
|
||||
;;
|
||||
-show-api)
|
||||
# Show API and exit
|
||||
getApi
|
||||
-show-api) # Show API and exit
|
||||
getApiInfo api
|
||||
exit $?
|
||||
;;
|
||||
-show-patch)
|
||||
# Show patch level and exit
|
||||
getPatchLevel
|
||||
-show-patch) # Show patch level and exit
|
||||
getApiInfo patch
|
||||
exit $?
|
||||
;;
|
||||
-with-api=*)
|
||||
@ -208,7 +187,7 @@ do
|
||||
-config)
|
||||
optConfig=true
|
||||
;;
|
||||
-mode=[ugoa]*)
|
||||
-mode=[ugo]*)
|
||||
optMode="${1#*=}"
|
||||
;;
|
||||
-m | -mode)
|
||||
@ -216,7 +195,7 @@ do
|
||||
shift
|
||||
# Sanity check. Handles missing argument too.
|
||||
case "$optMode" in
|
||||
([ugoa]*)
|
||||
([ugo]*)
|
||||
;;
|
||||
(*)
|
||||
die "invalid mode '$optMode'"
|
||||
@ -257,8 +236,7 @@ done
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Establish the API value
|
||||
[ -n "$projectApi" ] || projectApi=$(getApi)
|
||||
|
||||
[ -n "$projectApi" ] || projectApi=$(getApiInfo api)
|
||||
|
||||
# Split arguments into filename (for searching) and trailing bits for shell eval
|
||||
# Silently remove leading ~OpenFOAM/ (as per Foam::findEtcFile)
|
||||
@ -293,23 +271,23 @@ fi
|
||||
|
||||
# Define the various places to be searched:
|
||||
unset dirList
|
||||
case "$optMode" in (*[au]*) # (A)ll or (U)ser
|
||||
case "$optMode" in (*[u]*) # (U)ser
|
||||
dirList="$dirList $userDir/$projectApi $userDir"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$optMode" in (*[ag]*) # (A)ll or (G)roup == site
|
||||
case "$optMode" in (*[g]*) # (G)roup == site
|
||||
dirList="$dirList $groupDir/$projectApi/etc $groupDir/etc"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$optMode" in (*[ao]*) # (A)ll or (O)ther == shipped
|
||||
dirList="$dirList $projectDir/etc"
|
||||
case "$optMode" in (*[o]*) # (O)ther == shipped
|
||||
dirList="$dirList $FOAM_CONFIG_ETC $projectDir/etc"
|
||||
;;
|
||||
esac
|
||||
set -- $dirList
|
||||
|
||||
[ "$#" -ge 1 ] || die "No directories to scan. Programming error?"
|
||||
[ "$#" -ge 1 ] || die "No directories to scan. Programming or user error?"
|
||||
exitCode=2 # Fallback is a FileNotFound error
|
||||
|
||||
|
||||
@ -318,7 +296,7 @@ exitCode=2 # Fallback is a FileNotFound error
|
||||
#
|
||||
|
||||
# Special handling of config.sh/ , config.csh/ directories
|
||||
if [ -n "$optConfig" -a -n "$shellOutput" -a -n "$fileName" ]
|
||||
if [ -n "$optConfig" ] && [ -n "$shellOutput" ] && [ -n "$fileName" ]
|
||||
then
|
||||
case "$shellOutput" in
|
||||
csh*)
|
||||
|
||||
272
bin/tools/create-mpi-config
Executable file
272
bin/tools/create-mpi-config
Executable file
@ -0,0 +1,272 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# bin/tools/create-mpi-config
|
||||
#
|
||||
# Description
|
||||
# Define hard-coded packaging settings for MPI flavours,
|
||||
# primarily for system openmpi.
|
||||
# This eliminates a runtime dependency on mpicc, for example.
|
||||
#
|
||||
# Instead of querying/parsing 'mpicc --showme:link' each time,
|
||||
# it is done once during packaging.
|
||||
#
|
||||
# Environment
|
||||
# FOAM_MPI, MPI_ARCH_PATH, DEB_TARGET_MULTIARCH
|
||||
#
|
||||
# Possible Dependencies
|
||||
# - dpkg-architecture
|
||||
# - mpicc
|
||||
#
|
||||
# Notes
|
||||
# Run from top-level directory when creating config files
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
printHelp() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} options
|
||||
|
||||
options:
|
||||
-dry-run Report but do not write config files
|
||||
-no-mpicc Bypass any use of mpicc
|
||||
-query-openmpi Report installation directory for system openmpi
|
||||
-write-openmpi Query system openmpi and write config files
|
||||
-write Write config files using FOAM_MPI, MPI_ARCH_PATH
|
||||
|
||||
Define hard-coded packaging settings for MPI flavours.
|
||||
|
||||
Equivalent options:
|
||||
-write-system-openmpi | -write-openmpi
|
||||
-query-system-openmpi | -query-openmpi
|
||||
|
||||
USAGE
|
||||
exit 0 # A clean exit
|
||||
}
|
||||
|
||||
|
||||
# Report error and exit
|
||||
die()
|
||||
{
|
||||
exec 1>&2
|
||||
echo
|
||||
echo "Error encountered:"
|
||||
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
|
||||
echo
|
||||
echo "See '${0##*/} -help' for usage"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Options
|
||||
unset optDryRun
|
||||
useMpicc=true
|
||||
|
||||
# Get installation directory for system openmpi
|
||||
# - from "mpicc --showme:link"
|
||||
# - manual fallback
|
||||
#
|
||||
# The mpicc content looks like this:
|
||||
# ----
|
||||
# -pthread -L/usr/lib64/mpi/gcc/openmpi/lib64 -lmpi
|
||||
# ----
|
||||
|
||||
query_system_openmpi()
|
||||
{
|
||||
unset arch_path
|
||||
|
||||
if [ "$useMpicc" = true ]
|
||||
then
|
||||
arch_path=$(mpicc --showme:link 2>/dev/null | sed -e 's#^.*-L\([^ ]*\).*#\1#')
|
||||
arch_path="${arch_path%/*}"
|
||||
|
||||
if [ -n "$arch_path" ]
|
||||
then
|
||||
echo "$arch_path"
|
||||
return 0 # Clean exit
|
||||
fi
|
||||
|
||||
echo "No mpicc found. Attempt manually" 1>&2
|
||||
fi
|
||||
|
||||
|
||||
# Manual discovery
|
||||
if [ -z "$DEB_TARGET_MULTIARCH" ]
|
||||
then
|
||||
DEB_TARGET_MULTIARCH=$(dpkg-architecture -qDEB_TARGET_MULTIARCH 2>/dev/null || true)
|
||||
fi
|
||||
|
||||
# Include is under /usr/lib... (eg, debian, openSUSE)
|
||||
for testdir in \
|
||||
/usr/lib/"${DEB_TARGET_MULTIARCH:+${DEB_TARGET_MULTIARCH}/}"openmpi/include \
|
||||
/usr/lib64/mpi/gcc/openmpi/include \
|
||||
;
|
||||
do
|
||||
if [ -e "$testdir/mpi.h" ]
|
||||
then
|
||||
echo "${testdir%/*}"
|
||||
return 0 # Clean exit
|
||||
fi
|
||||
done
|
||||
|
||||
# Include is under /usr/include (eg, RedHat)
|
||||
for testdir in \
|
||||
/usr/include/openmpi-"$(uname -m)" \
|
||||
/usr/include/openmpi \
|
||||
;
|
||||
do
|
||||
if [ -e "$testdir/mpi.h" ]
|
||||
then
|
||||
echo "/usr"
|
||||
return 0 # Clean exit
|
||||
fi
|
||||
done
|
||||
|
||||
# Failed (should not happen)
|
||||
# - report '/usr', but with error code 2
|
||||
echo "/usr"
|
||||
return 2
|
||||
}
|
||||
|
||||
|
||||
# Generate etc/config.{csh,sh}/MPI-TYPE files
|
||||
# based on the values for FOAM_MPI and MPI_ARCH_PATH
|
||||
|
||||
create_files()
|
||||
{
|
||||
[ -n "$FOAM_MPI" ] || die "FOAM_MPI not set"
|
||||
|
||||
if [ -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
echo "Define $FOAM_MPI with $MPI_ARCH_PATH" 1>&2
|
||||
|
||||
case "$FOAM_MPI" in
|
||||
(openmpi-system)
|
||||
configDir="etc/config.sh"
|
||||
if [ "$optDryRun" = true ]
|
||||
then
|
||||
cat << CONTENT 1>&2
|
||||
dry-run: $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
export MPI_ARCH_PATH="$MPI_ARCH_PATH"
|
||||
|
||||
CONTENT
|
||||
elif [ -d "$configDir" ]
|
||||
then
|
||||
echo "Write $configDir/$FOAM_MPI" 1>&2
|
||||
cat << CONTENT > "$configDir/$FOAM_MPI"
|
||||
# $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
|
||||
export MPI_ARCH_PATH="$MPI_ARCH_PATH"
|
||||
#----
|
||||
CONTENT
|
||||
else
|
||||
echo "Cannot write $configDir/$FOAM_MPI - no directory" 1>&2
|
||||
fi
|
||||
|
||||
configDir="etc/config.csh"
|
||||
if [ "$optDryRun" = true ]
|
||||
then
|
||||
cat << CONTENT 1>&2
|
||||
dry-run: $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
setenv MPI_ARCH_PATH "$MPI_ARCH_PATH"
|
||||
|
||||
CONTENT
|
||||
elif [ -d "$configDir" ]
|
||||
then
|
||||
echo "Write $configDir/$FOAM_MPI" 1>&2
|
||||
cat << CONTENT > "$configDir/$FOAM_MPI"
|
||||
# $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
|
||||
setenv MPI_ARCH_PATH "$MPI_ARCH_PATH"
|
||||
#----
|
||||
CONTENT
|
||||
else
|
||||
echo "Cannot write $configDir/$FOAM_MPI - no directory" 1>&2
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "Warning: $FOAM_MPI with bad MPI_ARCH_PATH: $MPI_ARCH_PATH" 1>&2
|
||||
# TBD - remove old/bad entries?
|
||||
#
|
||||
# for file in "etc/config.sh/$FOAM_MPI" "etc/config.csh/$FOAM_MPI"
|
||||
# do
|
||||
# [ -f "$file" ] && rm -f "$file"
|
||||
# done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help* | --help*)
|
||||
printHelp
|
||||
;;
|
||||
'')
|
||||
# Discard empty arguments
|
||||
;;
|
||||
|
||||
-dry-run)
|
||||
optDryRun=true
|
||||
;;
|
||||
|
||||
-no-mpicc)
|
||||
unset useMpicc
|
||||
;;
|
||||
|
||||
-query-openmpi | -query-system-openmpi)
|
||||
query_system_openmpi
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-write-openmpi | -write-system-openmpi)
|
||||
if MPI_ARCH_PATH=$(query_system_openmpi)
|
||||
then
|
||||
FOAM_MPI="openmpi-system"
|
||||
create_files
|
||||
else
|
||||
die "Failed query for system openmpi"
|
||||
fi
|
||||
;;
|
||||
|
||||
-write)
|
||||
create_files
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Ignore unknown option/argument: '$1'" 1>&2
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
exit 0 # A clean exit, if we get this far
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -7,11 +7,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# foamConfigurePaths
|
||||
@ -20,69 +19,26 @@
|
||||
# Adjust hardcoded installation versions and paths
|
||||
# in etc/{bashrc,cshrc} and etc/config.{sh,csh}/
|
||||
#
|
||||
# Requires
|
||||
# - sed
|
||||
# - bin/foamEtcFile
|
||||
#
|
||||
# Environment
|
||||
# FOAM_CONFIG_ETC
|
||||
# Alternative etc directory for shipped files
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
printHelp() {
|
||||
|
||||
usage: ${0##*/} options
|
||||
|
||||
Basic
|
||||
-project-path DIR specify 'WM_PROJECT_DIR' (eg, /opt/openfoam1806-patch1)
|
||||
-version VER specify project version (eg, v1806)
|
||||
-SP | -float32 single precision (WM_PRECISION_OPTION)
|
||||
-DP | -float64 double precision (WM_PRECISION_OPTION)
|
||||
-SPDP mixed single/double precision
|
||||
-int32 | -int64 the 'WM_LABEL_SIZE'
|
||||
|
||||
Compiler
|
||||
-system NAME specify 'system' compiler to use (eg, Gcc, Icc,...)
|
||||
-third NAME specify 'ThirdParty' compiler to use (eg, Clang40,...)
|
||||
-gcc VER specify 'gcc_version' for ThirdParty Gcc
|
||||
-clang VER specify 'clang_version' for ThirdParty Clang
|
||||
gmp-VERSION for ThirdParty gcc (gmp-system for system library)
|
||||
mpfr-VERSION for ThirdParty gcc (mpfr-system for system library)
|
||||
mpc-VERSION for ThirdParty gcc (mpc-system for system library)
|
||||
|
||||
MPI
|
||||
-mpi NAME specify 'WM_MPLIB' type (eg, INTELMPI, etc)
|
||||
-openmpi VER use ThirdParty openmpi, with version for 'FOAM_MPI'
|
||||
-openmpi-system use system openmpi
|
||||
-openmpi-third use ThirdParty openmpi (using default version)
|
||||
|
||||
Components
|
||||
-boost VER specify 'boost_version'
|
||||
-boost-path DIR specify 'BOOST_ARCH_PATH'
|
||||
-cgal ver specify 'cgal_version'
|
||||
-cgal-path DIR specify 'CGAL_ARCH_PATH'
|
||||
-cmake VER specify 'cmake_version'
|
||||
-fftw VER specify 'fffw_version'
|
||||
-fftw-path DIR specify 'FFTW_ARCH_PATH'
|
||||
-kahip VER specify 'KAHIP_VERSION'
|
||||
-kahip-path DIR specify 'KAHIP_ARCH_PATH'
|
||||
-metis ver specify 'METIS_VERSION'
|
||||
-metis-path DIR specify 'METIS_ARCH_PATH'
|
||||
-scotch VER specify 'SCOTCH_VERSION' (eg, scotch_6.0.4)
|
||||
-scotch-path DIR specify 'SCOTCH_ARCH_PATH' (eg, /opt/scotch_6.0.4)
|
||||
|
||||
Graphics
|
||||
-paraview VER specify 'ParaView_VERSION' (eg, 5.4.1 or system)
|
||||
-paraview-qt VER specify 'ParaView_QT' (eg, qt-system)
|
||||
-paraview-path DIR specify 'ParaView_DIR' (eg, /opt/ParaView-5.4.1)
|
||||
-vtk VER specify 'vtk_version' (eg, VTK-7.1.0)
|
||||
-mesa VER specify 'mesa_version' (eg, mesa-13.0.1)
|
||||
|
||||
Misc
|
||||
case "$1" in
|
||||
(*compat*)
|
||||
cat<<HELP_COMPAT
|
||||
Obsolete options:
|
||||
-foamInstall DIR [obsolete]
|
||||
-projectName NAME [obsolete]
|
||||
-sigfpe|-no-sigfpe [obsolete - now under etc/controlDict]
|
||||
-archOption 32|64 [obsolete setting of 'WM_ARCH_OPTION' - edit manually]
|
||||
|
||||
|
||||
Adjusts hardcoded versions and installation paths (POSIX and C-shell).
|
||||
|
||||
|
||||
Equivalent options:
|
||||
-version -foamVersion --projectVersion
|
||||
-archOption --archOption
|
||||
@ -91,11 +47,96 @@ Equivalent options:
|
||||
-paraview-path --paraviewInstall | -paraviewInstall
|
||||
-scotch --scotchVersion | -scotchVersion
|
||||
-scotch-path --scotchArchPath | -scotchArchPath
|
||||
-system-compiler -system
|
||||
-third-compiler -third
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
HELP_COMPAT
|
||||
exit 0 # A clean exit
|
||||
;;
|
||||
esac
|
||||
|
||||
cat<<HELP_HEAD
|
||||
|
||||
usage: $0 options
|
||||
|
||||
Options
|
||||
-h | -help Display short help and exit
|
||||
-help-compat Display compatibility options and exit
|
||||
-help-full Display full help and exit
|
||||
|
||||
Basic
|
||||
-etc=DIR set FOAM_CONFIG_ETC for alternative project files
|
||||
-project-path DIR specify 'WM_PROJECT_DIR' (eg, /opt/openfoam1806-patch1)
|
||||
-version VER specify project version (eg, v1806)
|
||||
-sp | -SP | -float32 single precision (WM_PRECISION_OPTION)
|
||||
-dp | -DP | -float64 double precision (WM_PRECISION_OPTION)
|
||||
-spdp | -SPDP mixed precision (WM_PRECISION_OPTION)
|
||||
-int32 | -int64 label-size (WM_LABEL_SIZE)
|
||||
|
||||
Compiler
|
||||
-system-compiler NAME The 'system' compiler to use (eg, Gcc, Clang, Icc,...)
|
||||
-third-compiler NAME The 'ThirdParty' compiler to use (eg, Clang40,...)
|
||||
-gcc VER The 'default_gcc_version' for ThirdParty Gcc
|
||||
-clang VER The 'default_clang_version' for ThirdParty Clang
|
||||
gmp-VERSION For ThirdParty gcc (gmp-system for system library)
|
||||
mpfr-VERSION For ThirdParty gcc (mpfr-system for system library)
|
||||
mpc-VERSION For ThirdParty gcc (mpc-system for system library)
|
||||
|
||||
MPI
|
||||
-mpi NAME specify 'WM_MPLIB' type (eg, INTELMPI, etc)
|
||||
-openmpi VER use ThirdParty openmpi, with version for 'FOAM_MPI'
|
||||
-openmpi-system use system openmpi
|
||||
-openmpi-third use ThirdParty openmpi (using default version)
|
||||
|
||||
Components versions (ThirdParty)
|
||||
-adios VER specify 'adios2_version'
|
||||
-boost VER specify 'boost_version'
|
||||
-cgal VER specify 'cgal_version'
|
||||
-cmake VER specify 'cmake_version'
|
||||
-fftw VER specify 'fffw_version'
|
||||
-kahip VER specify 'KAHIP_VERSION'
|
||||
-metis VER specify 'METIS_VERSION'
|
||||
-scotch VER specify 'SCOTCH_VERSION' (eg, scotch_6.0.4)
|
||||
|
||||
HELP_HEAD
|
||||
|
||||
case "$1" in
|
||||
(*full*)
|
||||
cat<<HELP_FULL
|
||||
Components specified by absolute path
|
||||
-adios-path DIR Path for 'ADIOS2_ARCH_PATH' (overrides -adios)
|
||||
-boost-path DIR Path for 'BOOST_ARCH_PATH' (overrides -boost)
|
||||
-cgal-path DIR Path for 'CGAL_ARCH_PATH' (overrides -cgal)
|
||||
-fftw-path DIR Path for 'FFTW_ARCH_PATH' (overrides -fftw)
|
||||
-kahip-path DIR Path for 'KAHIP_ARCH_PATH' (overrides -kahip)
|
||||
-metis-path DIR Path for 'METIS_ARCH_PATH' (overrides -metis)
|
||||
-scotch-path DIR Path for 'SCOTCH_ARCH_PATH' (overrides -scotch)
|
||||
|
||||
Graphics
|
||||
-paraview VER specify 'ParaView_VERSION' (eg, 5.4.1 or system)
|
||||
-paraview-qt VER specify 'ParaView_QT' (eg, qt-system)
|
||||
-paraview-path DIR specify 'ParaView_DIR' (eg, /opt/ParaView-5.4.1)
|
||||
-llvm VER specify 'mesa_llvm'
|
||||
-mesa VER specify 'mesa_version' (eg, mesa-13.0.1)
|
||||
-vtk VER specify 'vtk_version' (eg, VTK-7.1.0)
|
||||
-llvm-path DIR Path for 'LLVM_ARCH_PATH' (overrides -llvm)
|
||||
-mesa-path DIR Path for 'MESA_ARCH_PATH' (overrides -mesa)
|
||||
-vtk-path DIR Path for 'VTK_DIR' (overrides -vtk)
|
||||
|
||||
HELP_FULL
|
||||
;;
|
||||
esac
|
||||
|
||||
cat<<HELP_TAIL_COMMON
|
||||
Adjusts hardcoded versions and installation paths (POSIX and C-shell)
|
||||
for OpenFOAM.
|
||||
|
||||
HELP_TAIL_COMMON
|
||||
|
||||
exit 0 # A clean exit
|
||||
}
|
||||
|
||||
|
||||
# Report error and exit
|
||||
die()
|
||||
{
|
||||
@ -104,16 +145,32 @@ die()
|
||||
echo "Error encountered:"
|
||||
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
|
||||
echo
|
||||
echo "See '${0##*/} -help' for usage"
|
||||
echo "See '$0 -help' for usage"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
projectDir="$(\pwd -L)" # Project dir
|
||||
|
||||
# Check that it appears to be an OpenFOAM installation
|
||||
[ -f etc/bashrc -a -d etc/config.sh ] || \
|
||||
usage "Please run from top-level directory of installation"
|
||||
if [ -f etc/bashrc ] && [ -d "META-INFO" ]
|
||||
then
|
||||
echo "Configuring OpenFOAM ($projectDir)" 1>&2
|
||||
else
|
||||
die "Please run from the OpenFOAM top-level installation directory" \
|
||||
"No etc/bashrc or META-INFO/ found"
|
||||
fi
|
||||
|
||||
# Use foamEtcFile to locate files, but only edit shipped files
|
||||
if [ -x bin/foamEtcFile ]
|
||||
then
|
||||
_foamEtc() {
|
||||
./bin/foamEtcFile -mode=o "$@"
|
||||
}
|
||||
else
|
||||
die "No bin/foamEtcFile found in installation"
|
||||
fi
|
||||
|
||||
|
||||
# Check if argument matches the expected input. Respects case.
|
||||
@ -144,18 +201,22 @@ _inlineSed()
|
||||
local replacement="$3"
|
||||
local msg="$4"
|
||||
local cmd='/^[^#]/s@'"$regexp"'@'"$replacement"'@'
|
||||
local localFile
|
||||
|
||||
[ -f "$file" ] || {
|
||||
echo "Missing file: $file"
|
||||
exit 2 # Fatal
|
||||
}
|
||||
|
||||
# Local filename (for reporting)
|
||||
localFile="$(echo "$file" | sed -e "s#^$projectDir/##")"
|
||||
|
||||
grep -q "$regexp" "$file" && sed -i -e "$cmd" "$file" || { \
|
||||
echo "Failed: ${msg:-replacement} in $file"
|
||||
echo "Failed: ${msg:-replacement} in $localFile"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ -n "$msg" ] && echo " $msg ($file)"
|
||||
[ -n "$msg" ] && echo " $msg ($localFile)"
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -181,7 +242,7 @@ replace()
|
||||
"$file" \
|
||||
"$key=.*" \
|
||||
"$key=$val" \
|
||||
"Replaced $key setting by '$val'"
|
||||
"Replaced $key by '$val'"
|
||||
done
|
||||
}
|
||||
|
||||
@ -204,12 +265,34 @@ replaceCsh()
|
||||
|
||||
_inlineSed \
|
||||
"$file" \
|
||||
"setenv *$key [^ #]*" \
|
||||
"setenv [ ]*$key [^ #]*" \
|
||||
"setenv $key $val" \
|
||||
"Replaced $key setenv by '$val'"
|
||||
"Replaced $key by '$val'"
|
||||
done
|
||||
}
|
||||
|
||||
# Locate file with foamEtcFile -mode=o and forward to replace()
|
||||
replaceEtc()
|
||||
{
|
||||
local file="$1"
|
||||
shift
|
||||
|
||||
file=$(_foamEtc "$file")
|
||||
replace $file "$@"
|
||||
}
|
||||
|
||||
|
||||
# Locate file with foamEtcFile -mode=o and forward to replaceCsh()
|
||||
replaceEtcCsh()
|
||||
{
|
||||
local file="$1"
|
||||
shift
|
||||
|
||||
file=$(_foamEtc "$file")
|
||||
replaceCsh $file "$@"
|
||||
}
|
||||
|
||||
|
||||
# Get the option's value (argument), or die on missing or empty argument
|
||||
# $1 option
|
||||
# $2 value
|
||||
@ -273,23 +356,62 @@ unset adjusted optMpi
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help* | --help*)
|
||||
usage
|
||||
-help-c*) # Compat help
|
||||
printHelp -compat
|
||||
;;
|
||||
-help-f*) # Full help
|
||||
printHelp -full
|
||||
;;
|
||||
-h | -help*) # Short help
|
||||
printHelp
|
||||
;;
|
||||
'')
|
||||
# Discard empty arguments
|
||||
;;
|
||||
|
||||
-debug-list)
|
||||
# Undocumented (experimental)
|
||||
# TDB: List files that can be edited by this script
|
||||
cat << CONFIG_SH
|
||||
etc/bashrc
|
||||
etc/config.sh/adios2
|
||||
etc/config.sh/compiler
|
||||
etc/config.sh/paraview
|
||||
etc/config.sh/vtk
|
||||
etc/config.sh/CGAL
|
||||
etc/config.sh/FFTW
|
||||
etc/config.sh/metis
|
||||
etc/config.sh/kahip
|
||||
etc/config.sh/scotch
|
||||
CONFIG_SH
|
||||
|
||||
cat << CONFIG_CSH
|
||||
etc/cshrc
|
||||
etc/config.csh/adios2
|
||||
etc/config.csh/compiler
|
||||
etc/config.csh/paraview
|
||||
etc/config.csh/vtk
|
||||
etc/config.csh/CGAL
|
||||
etc/config.csh/FFTW
|
||||
CONFIG_CSH
|
||||
exit 0
|
||||
;;
|
||||
|
||||
## Basic ##
|
||||
|
||||
-etc=*)
|
||||
# Define FOAM_CONFIG_ETC for finding files
|
||||
export FOAM_CONFIG_ETC="${1#*=}"
|
||||
;;
|
||||
|
||||
-project-path)
|
||||
# Replace WM_PROJECT_DIR=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/bashrc WM_PROJECT_DIR "\"$optionValue\""
|
||||
replaceCsh etc/cshrc WM_PROJECT_DIR "\"$optionValue\""
|
||||
replaceEtc bashrc WM_PROJECT_DIR "\"$optionValue\""
|
||||
replaceEtcCsh cshrc WM_PROJECT_DIR "\"$optionValue\""
|
||||
|
||||
removeBashMagic etc/bashrc
|
||||
removeCshMagic etc/cshrc
|
||||
removeBashMagic $(_foamEtc bashrc)
|
||||
removeCshMagic $(_foamEtc cshrc)
|
||||
|
||||
adjusted=true
|
||||
shift
|
||||
@ -298,8 +420,8 @@ do
|
||||
-version | -foamVersion | --projectVersion)
|
||||
# Replace WM_PROJECT_VERSION=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/bashrc WM_PROJECT_VERSION "$optionValue"
|
||||
replaceCsh etc/cshrc WM_PROJECT_VERSION "$optionValue"
|
||||
replaceEtc bashrc WM_PROJECT_VERSION "$optionValue"
|
||||
replaceEtcCsh cshrc WM_PROJECT_VERSION "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -311,32 +433,32 @@ do
|
||||
shift
|
||||
;;
|
||||
|
||||
-SP | -float32)
|
||||
-sp | -SP | -float32)
|
||||
# Replace WM_PRECISION_OPTION=...
|
||||
replace etc/bashrc WM_PRECISION_OPTION "SP"
|
||||
replaceCsh etc/cshrc WM_PRECISION_OPTION "SP"
|
||||
replaceEtc bashrc WM_PRECISION_OPTION "SP"
|
||||
replaceEtcCsh cshrc WM_PRECISION_OPTION "SP"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
-DP | -float64)
|
||||
-dp | -DP | -float64)
|
||||
# Replace WM_PRECISION_OPTION=...
|
||||
replace etc/bashrc WM_PRECISION_OPTION "DP"
|
||||
replaceCsh etc/cshrc WM_PRECISION_OPTION "DP"
|
||||
replaceEtc bashrc WM_PRECISION_OPTION "DP"
|
||||
replaceEtcCsh cshrc WM_PRECISION_OPTION "DP"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
-SPDP)
|
||||
-spdp | -SPDP)
|
||||
# Replace WM_PRECISION_OPTION=...
|
||||
replace etc/bashrc WM_PRECISION_OPTION "SPDP"
|
||||
replaceCsh etc/cshrc WM_PRECISION_OPTION "SPDP"
|
||||
replaceEtc bashrc WM_PRECISION_OPTION "SPDP"
|
||||
replaceEtcCsh cshrc WM_PRECISION_OPTION "SPDP"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
-int32 | -int64)
|
||||
# Replace WM_LABEL_SIZE=...
|
||||
optionValue="${1#-int}"
|
||||
replace etc/bashrc WM_LABEL_SIZE "$optionValue"
|
||||
replaceCsh etc/cshrc WM_LABEL_SIZE "$optionValue"
|
||||
replaceEtc bashrc WM_LABEL_SIZE "$optionValue"
|
||||
replaceEtcCsh cshrc WM_LABEL_SIZE "$optionValue"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
@ -344,43 +466,43 @@ do
|
||||
## Compiler ##
|
||||
|
||||
-clang)
|
||||
# Replace clang_version=...
|
||||
# Replace default_clang_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/compiler clang_version "$optionValue"
|
||||
replace etc/config.csh/compiler clang_version "$optionValue"
|
||||
replaceEtc config.sh/compiler default_clang_version "$optionValue"
|
||||
replaceEtc config.csh/compiler default_clang_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-gcc)
|
||||
# Replace gcc_version=...
|
||||
# Replace default_gcc_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/compiler gcc_version "$optionValue"
|
||||
replace etc/config.csh/compiler gcc_version "$optionValue"
|
||||
replaceEtc config.sh/compiler default_gcc_version "$optionValue"
|
||||
replaceEtc config.csh/compiler default_gcc_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-system)
|
||||
-system-compiler | -system)
|
||||
# Replace WM_COMPILER_TYPE=... and WM_COMPILER=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/bashrc \
|
||||
replaceEtc bashrc \
|
||||
WM_COMPILER_TYPE system \
|
||||
WM_COMPILER "$optionValue"
|
||||
replaceCsh etc/cshrc \
|
||||
replaceEtcCsh cshrc \
|
||||
WM_COMPILER_TYPE system \
|
||||
WM_COMPILER "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-third | -ThirdParty)
|
||||
-third-compiler | -third | -ThirdParty)
|
||||
# Replace WM_COMPILER_TYPE=... and WM_COMPILER=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/bashrc \
|
||||
replaceEtc bashrc \
|
||||
WM_COMPILER_TYPE ThirdParty \
|
||||
WM_COMPILER "$optionValue"
|
||||
replaceCsh etc/cshrc \
|
||||
replaceEtcCsh cshrc \
|
||||
WM_COMPILER_TYPE ThirdParty \
|
||||
WM_COMPILER "$optionValue"
|
||||
adjusted=true
|
||||
@ -389,22 +511,22 @@ do
|
||||
|
||||
gmp-[4-9]* | gmp-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler gmp_version "$1"
|
||||
replace etc/config.csh/compiler gmp_version "$1"
|
||||
replaceEtc config.sh/compiler default_gmp_version "$1"
|
||||
replaceEtc config.csh/compiler default_gmp_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
mpfr-[2-9]* | mpfr-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler mpfr_version "$1"
|
||||
replace etc/config.csh/compiler mpfr_version "$1"
|
||||
replaceEtc config.sh/compiler default_mpfr_version "$1"
|
||||
replaceEtc config.csh/compiler default_mpfr_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
mpc-[0-9]* | mpc-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler mpc_version "$1"
|
||||
replace etc/config.csh/compiler mpc_version "$1"
|
||||
replaceEtc config.sh/compiler default_mpc_version "$1"
|
||||
replaceEtc config.csh/compiler default_mpc_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
@ -414,8 +536,8 @@ do
|
||||
-mpi)
|
||||
# Explicitly set WM_MPLIB=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/bashrc WM_MPLIB "$optionValue"
|
||||
replaceCsh etc/bashrc WM_MPLIB "$optionValue"
|
||||
replaceEtc bashrc WM_MPLIB "$optionValue"
|
||||
replaceEtcCsh cshrc WM_MPLIB "$optionValue"
|
||||
optMpi=system
|
||||
adjusted=true
|
||||
shift
|
||||
@ -430,34 +552,34 @@ do
|
||||
_matches "$optMpi" "$expected" || \
|
||||
die "'$1' has bad value: '$optMpi'"
|
||||
|
||||
_inlineSed etc/config.sh/mpi \
|
||||
_inlineSed $(_foamEtc config.sh/mpi) \
|
||||
"FOAM_MPI=$expected" \
|
||||
"FOAM_MPI=$optMpi" \
|
||||
"Replaced 'FOAM_MPI=$expected' setting by 'FOAM_MPI=$optMpi'"
|
||||
"Replaced 'FOAM_MPI=$expected' by 'FOAM_MPI=$optMpi'"
|
||||
|
||||
_inlineSed etc/config.csh/mpi \
|
||||
_inlineSed $(_foamEtc config.csh/mpi) \
|
||||
"FOAM_MPI $expected" \
|
||||
"FOAM_MPI $optMpi" \
|
||||
"Replaced 'FOAM_MPI $expected' setting by 'FOAM_MPI $optMpi'"
|
||||
"Replaced 'FOAM_MPI $expected' by 'FOAM_MPI $optMpi'"
|
||||
|
||||
replace etc/bashrc WM_MPLIB OPENMPI
|
||||
replaceCsh etc/cshrc WM_MPLIB OPENMPI
|
||||
replaceEtc bashrc WM_MPLIB OPENMPI
|
||||
replaceEtcCsh cshrc WM_MPLIB OPENMPI
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-openmpi-system)
|
||||
# Explicitly set WM_MPLIB=SYSTEMOPENMPI
|
||||
replace etc/bashrc WM_MPLIB SYSTEMOPENMPI
|
||||
replaceCsh etc/cshrc WM_MPLIB SYSTEMOPENMPI
|
||||
replaceEtc bashrc WM_MPLIB SYSTEMOPENMPI
|
||||
replaceEtcCsh cshrc WM_MPLIB SYSTEMOPENMPI
|
||||
optMpi=system
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
-openmpi-third)
|
||||
# Explicitly set WM_MPLIB=OPENMPI, using default setting for openmpi
|
||||
replace etc/bashrc WM_MPLIB OPENMPI
|
||||
replaceCsh etc/cshrc WM_MPLIB OPENMPI
|
||||
replaceEtc bashrc WM_MPLIB OPENMPI
|
||||
replaceEtcCsh cshrc WM_MPLIB OPENMPI
|
||||
optMpi=third
|
||||
adjusted=true
|
||||
;;
|
||||
@ -465,11 +587,29 @@ do
|
||||
|
||||
## Components ##
|
||||
|
||||
-adios | -adios2)
|
||||
# Replace adios2_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/adios2 adios2_version "$optionValue"
|
||||
replaceEtc config.csh/adios2 adios2_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-adios-path | -adios2-path)
|
||||
# Replace ADIOS2_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/adios2 ADIOS2_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtcCsh config.csh/adios2 ADIOS2_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-boost)
|
||||
# Replace boost_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/CGAL boost_version "$optionValue"
|
||||
replace etc/config.csh/CGAL boost_version "$optionValue"
|
||||
replaceEtc config.sh/CGAL boost_version "$optionValue"
|
||||
replaceEtc config.csh/CGAL boost_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -477,8 +617,8 @@ do
|
||||
-boost-path)
|
||||
# Replace BOOST_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/CGAL BOOST_ARCH_PATH "\"$optionValue\""
|
||||
replaceCsh etc/config.csh/CGAL BOOST_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtc config.sh/CGAL BOOST_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtcCsh config.csh/CGAL BOOST_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -486,8 +626,8 @@ do
|
||||
-cgal)
|
||||
# Replace cgal_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/CGAL cgal_version "$optionValue"
|
||||
replace etc/config.csh/CGAL cgal_version "$optionValue"
|
||||
replaceEtc config.sh/CGAL cgal_version "$optionValue"
|
||||
replaceEtc config.csh/CGAL cgal_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -495,8 +635,8 @@ do
|
||||
-cgal-path)
|
||||
# Replace CGAL_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/CGAL CGAL_ARCH_PATH "$optionValue"
|
||||
replaceCsh etc/config.csh/CGAL CGAL_ARCH_PATH "$optionValue"
|
||||
replaceEtc config.sh/CGAL CGAL_ARCH_PATH "$optionValue"
|
||||
replaceEtcCsh config.csh/CGAL CGAL_ARCH_PATH "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -504,8 +644,8 @@ do
|
||||
-fftw)
|
||||
# Replace fftw_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/FFTW fftw_version "$optionValue"
|
||||
replace etc/config.csh/FFTW fftw_version "$optionValue"
|
||||
replaceEtc config.sh/FFTW fftw_version "$optionValue"
|
||||
replaceEtc config.csh/FFTW fftw_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -513,8 +653,8 @@ do
|
||||
-fftw-path)
|
||||
# Replace FFTW_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/FFTW FFTW_ARCH_PATH "\"$optionValue\""
|
||||
replaceCsh etc/config.csh/FFTW FFTW_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtc config.sh/FFTW FFTW_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtcCsh config.csh/FFTW FFTW_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -522,8 +662,8 @@ do
|
||||
-cmake)
|
||||
# Replace cmake_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/paraview cmake_version "$optionValue"
|
||||
replace etc/config.csh/paraview cmake_version "$optionValue"
|
||||
replaceEtc config.sh/paraview cmake_version "$optionValue"
|
||||
replaceEtc config.csh/paraview cmake_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -531,7 +671,7 @@ do
|
||||
-kahip)
|
||||
# Replace KAHIP_VERSION=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/kahip KAHIP_VERSION "$optionValue"
|
||||
replaceEtc config.sh/kahip KAHIP_VERSION "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -539,7 +679,7 @@ do
|
||||
-kahip-path)
|
||||
# Replace KAHIP_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/kahip KAHIP_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtc config.sh/kahip KAHIP_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -547,7 +687,7 @@ do
|
||||
-metis)
|
||||
# Replace METIS_VERSION=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/metis METIS_VERSION "$optionValue"
|
||||
replaceEtc config.sh/metis METIS_VERSION "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -555,7 +695,7 @@ do
|
||||
-metis-path)
|
||||
# Replace METIS_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/metis METIS_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtc config.sh/metis METIS_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -563,7 +703,7 @@ do
|
||||
-scotch | -scotchVersion | --scotchVersion)
|
||||
# Replace SCOTCH_VERSION=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/scotch SCOTCH_VERSION "$optionValue"
|
||||
replaceEtc config.sh/scotch SCOTCH_VERSION "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -571,7 +711,7 @@ do
|
||||
-scotch-path | -scotchArchPath | --scotchArchPath)
|
||||
# Replace SCOTCH_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/scotch SCOTCH_ARCH_PATH "\"$optionValue\""
|
||||
replaceEtc config.sh/scotch SCOTCH_ARCH_PATH "\"$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -586,8 +726,8 @@ do
|
||||
_matches "$optionValue" "$expected" || \
|
||||
[ "$optionValue" != "${optionValue%system}" ] || \
|
||||
die "'$1' has bad value: '$optionValue'"
|
||||
replace etc/config.sh/paraview ParaView_VERSION "$optionValue"
|
||||
replace etc/config.csh/paraview ParaView_VERSION "$optionValue"
|
||||
replaceEtc config.sh/paraview ParaView_VERSION "$optionValue"
|
||||
replaceEtc config.csh/paraview ParaView_VERSION "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -595,8 +735,8 @@ do
|
||||
-paraview-qt)
|
||||
# Replace ParaView_QT=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/paraview ParaView_QT "$optionValue"
|
||||
replace etc/config.csh/paraview ParaView_QT "$optionValue"
|
||||
replaceEtc config.sh/paraview ParaView_QT "$optionValue"
|
||||
replaceEtc config.csh/paraview ParaView_QT "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -604,17 +744,17 @@ do
|
||||
-paraview-path | -paraviewInstall | --paraviewInstall)
|
||||
# Replace ParaView_DIR=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/paraview ParaView_DIR \""$optionValue\""
|
||||
replaceCsh etc/config.csh/paraview ParaView_DIR \""$optionValue\""
|
||||
replaceEtc config.sh/paraview ParaView_DIR \""$optionValue\""
|
||||
replaceEtcCsh config.csh/paraview ParaView_DIR \""$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-vtk)
|
||||
# Replace vtk_version=...
|
||||
-llvm)
|
||||
# Replace mesa_llvm=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/vtk vtk_version "$optionValue"
|
||||
replace etc/config.csh/vtk vtk_version "$optionValue"
|
||||
replaceEtc config.sh/vtk mesa_llvm "$optionValue"
|
||||
replaceEtc config.csh/vtk mesa_llvm "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -622,8 +762,44 @@ do
|
||||
-mesa)
|
||||
# Replace mesa_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/vtk mesa_version "$optionValue"
|
||||
replace etc/config.csh/vtk mesa_version "$optionValue"
|
||||
replaceEtc config.sh/vtk mesa_version "$optionValue"
|
||||
replaceEtc config.csh/vtk mesa_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-vtk)
|
||||
# Replace vtk_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/vtk vtk_version "$optionValue"
|
||||
replaceEtc config.csh/vtk vtk_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-llvm-path)
|
||||
# Replace LLVM_ARCH_PATH=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/vtk LLVM_ARCH_PATH \""$optionValue\""
|
||||
replaceEtcCsh config.csh/vtk LLVM_ARCH_PATH \""$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-mesa-path)
|
||||
# Replace MESA_ARCH_PATH...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/vtk MESA_ARCH_PATH \""$optionValue\""
|
||||
replaceEtcCsh config.csh/vtk MESA_ARCH_PATH \""$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-vtk-path)
|
||||
# Replace VTK_DIR...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replaceEtc config.sh/vtk VTK_DIR \""$optionValue\""
|
||||
replaceEtcCsh config.csh/vtk VTK_DIR \""$optionValue\""
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
@ -1,193 +0,0 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2019 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# openfoam [args]
|
||||
#
|
||||
# Description
|
||||
# Open an interactive bash session with an OpenFOAM environment,
|
||||
# or run an OpenFOAM application (with arguments) after first sourcing
|
||||
# the OpenFOAM etc/bashrc file from the project directory.
|
||||
#
|
||||
# This script normally exists in $WM_PROJECT_DIR/bin/tools but can also
|
||||
# be modified to use a hard-coded PROJECT_DIR entry and placed elsewhere
|
||||
# in the filesystem (eg, /usr/bin).
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Hard-coded value (eg, with autoconfig)
|
||||
projectDir="@PROJECT_DIR@"
|
||||
|
||||
if [ -z "$projectDir" ] || [ "${projectDir#@}" != "$projectDir" ]
|
||||
then
|
||||
# Auto-detect from location
|
||||
toolsDir="${0%/*}" # The bin/tools dir
|
||||
projectDir="${toolsDir%/bin/tools}" # Project dir
|
||||
|
||||
case "$projectDir" in
|
||||
(/bin | /usr/bin | /usr/local/bin)
|
||||
# This shouldn't happen.
|
||||
# If copied to a system dir, should also be using hard-coded values!
|
||||
echo "Warning: suspicious looking project dir: $projectDir" 1>&2
|
||||
;;
|
||||
|
||||
("$toolsDir")
|
||||
# Eg, called as ./openfoam etc - need to try harder
|
||||
projectDir="$(\cd $(dirname $0)/../.. && \pwd -L)" || unset projectDir
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
Usage: ${0##*/} [OPTION] [application ...]
|
||||
|
||||
options:
|
||||
-prefix=DIR Specify alternative OpenFOAM directory
|
||||
-sp Single precision
|
||||
-dp Double precision
|
||||
-spdp Mixed single/double precision
|
||||
-int32 | -int64 The label-size
|
||||
-help Print the usage
|
||||
|
||||
Open an interactive bash session with an OpenFOAM environment,
|
||||
or run an OpenFOAM application (with arguments) after first sourcing
|
||||
the OpenFOAM etc/bashrc file from the project directory:
|
||||
($projectDir)
|
||||
|
||||
For more information: www.OpenFOAM.com
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Only preserve settings for non-interactive?
|
||||
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
unset _foamSettings FOAM_SETTINGS
|
||||
else
|
||||
_foamSettings="$FOAM_SETTINGS"
|
||||
fi
|
||||
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help*)
|
||||
usage
|
||||
;;
|
||||
-prefix=* | -foam=*)
|
||||
projectDir="${1#*=}"
|
||||
;;
|
||||
|
||||
-sp | -SP)
|
||||
# WM_PRECISION_OPTION=...
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_PRECISION_OPTION=SP"
|
||||
;;
|
||||
|
||||
-dp | -DP)
|
||||
# WM_PRECISION_OPTION=...
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_PRECISION_OPTION=DP"
|
||||
;;
|
||||
|
||||
-spdp | -SPDP)
|
||||
# WM_PRECISION_OPTION=...
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_PRECISION_OPTION=SPDP"
|
||||
;;
|
||||
|
||||
-int32 | -int64)
|
||||
# WM_LABEL_SIZE=...
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_LABEL_SIZE=${1#-int}"
|
||||
;;
|
||||
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*)
|
||||
echo "Error: unknown option: '$1'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Remove current OpenFOAM environment
|
||||
if [ -d "$WM_PROJECT_DIR" ] && [ -f "$WM_PROJECT_DIR/etc/config.sh/unset" ]
|
||||
then
|
||||
. "$WM_PROJECT_DIR/etc/config.sh/unset"
|
||||
fi
|
||||
|
||||
[ -d "$projectDir" ] || {
|
||||
echo "Error: no project dir: $projectDir" 1>&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
_foamSourceBashEnv="$projectDir/etc/bashrc"
|
||||
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
# Interactive shell
|
||||
_foamSourceBashEnv="$projectDir/bin/tools/source-bashrc"
|
||||
fi
|
||||
|
||||
[ -f "$_foamSourceBashEnv" ] || {
|
||||
echo "Error: file not found: $_foamSourceBashEnv" 1>&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
# Source user ~/.bashrc and OpenFOAM etc/bashrc.
|
||||
# 1) Can either use a tmp file, or 2) chain off to a dedicated file
|
||||
# We use a dedicated file.
|
||||
|
||||
if [ -n "$_foamSettings" ]
|
||||
then
|
||||
export FOAM_SETTINGS="$_foamSettings"
|
||||
fi
|
||||
|
||||
## echo "Source with $_foamSourceBashEnv with '$FOAM_SETTINGS'" 1>&2
|
||||
|
||||
# Interactive shell (newer bash can use --init-file instead of --rcfile)
|
||||
exec bash --rcfile "$_foamSourceBashEnv" -i
|
||||
|
||||
else
|
||||
# Non-interactive
|
||||
|
||||
# Source bashrc within a function to preserve command-line arguments
|
||||
# - this will not have aliases, but working non-interactively anyhow
|
||||
sourceBashrc()
|
||||
{
|
||||
. "$_foamSourceBashEnv" $_foamSettings
|
||||
}
|
||||
|
||||
sourceBashrc
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
19
bin/tools/openfoam.in
Normal file
19
bin/tools/openfoam.in
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
exec "@PROJECT_DIR@"/etc/openfoam "$@"
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Description
|
||||
# Forwarding to OpenFOAM etc/openfoam bash session script.
|
||||
# Uses a hard-code directory path (eg, generated with autoconfig).
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
22
doc/Build.md
22
doc/Build.md
@ -122,18 +122,18 @@ More details in the [ThirdParty build guide][link third-build].
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/OpenFOAM-plus/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-plus/
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
|
||||
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Build.md
|
||||
[link openfoam-cross]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Cross-Compile-mingw.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/Requirements.md
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
||||
[link openfoam-cross]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Cross-Compile-mingw.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||
|
||||
---
|
||||
Copyright 2019 OpenCFD Ltd
|
||||
|
||||
@ -110,17 +110,17 @@ and attempt to install a `paraview~qt` version instead.
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/OpenFOAM-plus/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-plus/
|
||||
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
|
||||
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
|
||||
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/Requirements.md
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
||||
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||
|
||||
---
|
||||
Copyright 2019 OpenCFD Ltd
|
||||
|
||||
@ -30,8 +30,7 @@ USAGE
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
defineURL() {
|
||||
WEB_PATH="https://develop.openfoam.com"
|
||||
FOAM_REPO_VERSION="$WM_PROJECT-plus"
|
||||
export FOAM_BASE_REPO="https://develop.openfoam.com/Development/openfoam"
|
||||
|
||||
case "$WM_PROJECT_VERSION" in
|
||||
v[1-9][.0-9]*)
|
||||
@ -42,7 +41,6 @@ defineURL() {
|
||||
;;
|
||||
esac
|
||||
|
||||
export FOAM_BASE_REPO="$WEB_PATH/Development/$FOAM_REPO_VERSION"
|
||||
export FOAM_ONLINE_REPO="$FOAM_BASE_REPO/blob/${FOAM_REPO_TAG}"
|
||||
}
|
||||
|
||||
|
||||
@ -161,13 +161,13 @@ A partial list is given in the [ThirdParty requirements][link third-require].
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/README.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/Requirements.md
|
||||
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
|
||||
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
|
||||
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
|
||||
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
|
||||
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
|
||||
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
|
||||
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
|
||||
|
||||
---
|
||||
Copyright 2019 OpenCFD Ltd
|
||||
|
||||
1
doc/modules/README
Normal file
1
doc/modules/README
Normal file
@ -0,0 +1 @@
|
||||
Modules-related documents when collated for an installation package.
|
||||
70
doc/openfoam.1.in
Normal file
70
doc/openfoam.1.in
Normal file
@ -0,0 +1,70 @@
|
||||
.TH "OPENFOAM" 1 "OpenFOAM-version" "www.openfoam.com" "OpenFOAM Commands Manual"
|
||||
|
||||
.SH NAME
|
||||
openfoam \- OpenFOAM bash(1) session
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBopenfoam\fR [\fIOPTIONS\fR] [\fIapplication ...\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
Activate an \fBOpenFOAM\fR environment in an interactive or
|
||||
non-interactive bash(1) session.
|
||||
|
||||
If no application is given, an interactive bash session will be used.
|
||||
If an application (optionally with arguments) is provided, the
|
||||
OpenFOAM \fIetc/bashrc\fR file will be sourced from the project directory
|
||||
prior to running the application.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-c\fR \fIcommand\fR
|
||||
Execute shell commands with OpenFOAM environment
|
||||
.TP
|
||||
\fB\-D\fR\fIkey=[value]\fR
|
||||
Define key/value to pass as a preference
|
||||
.TP
|
||||
\fB\-sp\fR
|
||||
Use single precision for scalar-size
|
||||
.TP
|
||||
\fB\-dp\fR
|
||||
Use double precision for scalar-size
|
||||
.TP
|
||||
\fB\-spdp\fR
|
||||
Use single precision for scalar-size, double for solve-scalar size
|
||||
.TP
|
||||
\fB\-int32\fR
|
||||
Use 32-bit label-size
|
||||
.TP
|
||||
\fB\-int64\fR
|
||||
Use 64-bit label-size
|
||||
.TP
|
||||
\fB\-prefix=DIR\fR
|
||||
Specify alternative OpenFOAM project directory
|
||||
.TP
|
||||
\fB\-show-api\fR | \fB\-version\fR
|
||||
Print META-INFO api value and exit
|
||||
.TP
|
||||
\fB\-show-patch\fR
|
||||
Print META-INFO patch value and exit
|
||||
.TP
|
||||
\fB\-show-prefix\fR
|
||||
Print project directory and exit
|
||||
.TP
|
||||
\fB\-help\fR
|
||||
Print the usage
|
||||
|
||||
.SH ARGUMENTS
|
||||
|
||||
If arguments remain after option processing, the first argument is
|
||||
assumed to be an application with options and arguments.
|
||||
|
||||
.SH FILES
|
||||
|
||||
The \fIetc/bashrc\fR file from the OpenFOAM project directory supplies
|
||||
the environment settings.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
Online documentation https://www.openfoam.com/documentation/
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 OpenCFD Ltd.
|
||||
@ -6,11 +6,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# etc/config.csh/compiler
|
||||
@ -24,14 +23,19 @@
|
||||
|
||||
switch ("$WM_COMPILER_TYPE")
|
||||
case ThirdParty:
|
||||
# Default versions of GMP, MPFR, MPC - override as necessary
|
||||
# Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary
|
||||
|
||||
set gmp_version=gmp-system
|
||||
set mpfr_version=mpfr-system
|
||||
set mpc_version=mpc-system
|
||||
set default_clang_version=llvm-3.7.1
|
||||
set default_gcc_version=gcc-4.8.5
|
||||
|
||||
set default_gmp_version=gmp-system
|
||||
set default_mpfr_version=mpfr-system
|
||||
set default_mpc_version=mpc-system
|
||||
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc:
|
||||
set gcc_version="$default_gcc_version"
|
||||
breaksw
|
||||
case Gcc48*:
|
||||
set gcc_version=gcc-4.8.5
|
||||
breaksw
|
||||
@ -86,7 +90,19 @@ case ThirdParty:
|
||||
case Gcc82*:
|
||||
set gcc_version=gcc-8.2.0
|
||||
breaksw
|
||||
case Gcc83*:
|
||||
set gcc_version=gcc-8.3.0
|
||||
breaksw
|
||||
case Gcc91*:
|
||||
set gcc_version=gcc-9.1.0
|
||||
breaksw
|
||||
case Gcc92*:
|
||||
set gcc_version=gcc-9.2.0
|
||||
breaksw
|
||||
|
||||
case Clang:
|
||||
set clang_version="$default_clang_version"
|
||||
breaksw
|
||||
case Clang37*:
|
||||
set clang_version=llvm-3.7.1
|
||||
breaksw
|
||||
@ -108,6 +124,13 @@ case ThirdParty:
|
||||
case Clang70*:
|
||||
set clang_version=llvm-7.0.1
|
||||
breaksw
|
||||
case Clang80*:
|
||||
set clang_version=llvm-8.0.1
|
||||
breaksw
|
||||
case Clang90*:
|
||||
set clang_version=llvm-9.0.0
|
||||
breaksw
|
||||
|
||||
default:
|
||||
/bin/cat << UNKNOWN_COMPILER
|
||||
===============================================================================
|
||||
@ -125,4 +148,7 @@ UNKNOWN_COMPILER
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -9,15 +9,17 @@
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/settings
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning ThirdParty compiler settings for OpenFOAM
|
||||
# Older example of fine tuning compiler settings for OpenFOAM
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -26,7 +28,7 @@ eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh -config -mode=o compiler`
|
||||
|
||||
# Modify/override compiler settings
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc70:
|
||||
case Gcc70*:
|
||||
set gcc_version=gcc-7.0.0
|
||||
set gmp_version=gmp-6.1.2
|
||||
set mpfr_version=mpfr-3.1.5
|
||||
|
||||
28
etc/config.csh/example/compiler-Gcc92
Normal file
28
etc/config.csh/example/compiler-Gcc92
Normal file
@ -0,0 +1,28 @@
|
||||
#----------------------------------*-sh-*--------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Modify/override compiler settings
|
||||
set gcc_version=gcc-9.2.0
|
||||
set gmp_version=gmp-6.2.0
|
||||
set mpfr_version=mpfr-4.0.2
|
||||
set mpc_version=mpc-1.1.0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -6,11 +6,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# etc/config.sh/compiler
|
||||
@ -24,90 +23,56 @@
|
||||
|
||||
case "$WM_COMPILER_TYPE" in
|
||||
ThirdParty)
|
||||
# Default versions of GMP, MPFR, MPC - override as necessary
|
||||
gmp_version=gmp-system
|
||||
mpfr_version=mpfr-system
|
||||
mpc_version=mpc-system
|
||||
# Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary
|
||||
|
||||
default_clang_version=llvm-3.7.1
|
||||
default_gcc_version=gcc-4.8.5
|
||||
|
||||
default_gmp_version=gmp-system
|
||||
default_mpfr_version=mpfr-system
|
||||
default_mpc_version=mpc-system
|
||||
|
||||
gmp_version="$default_gmp_version"
|
||||
mpfr_version="$default_mpfr_version"
|
||||
mpc_version="$default_mpc_version"
|
||||
|
||||
case "$WM_COMPILER" in
|
||||
Gcc | Gcc48*)
|
||||
gcc_version=gcc-4.8.5
|
||||
;;
|
||||
Gcc49*)
|
||||
gcc_version=gcc-4.9.4
|
||||
;;
|
||||
Gcc51*)
|
||||
gcc_version=gcc-5.1.0
|
||||
;;
|
||||
Gcc52*)
|
||||
gcc_version=gcc-5.2.0
|
||||
;;
|
||||
Gcc53*)
|
||||
gcc_version=gcc-5.3.0
|
||||
;;
|
||||
Gcc54*)
|
||||
gcc_version=gcc-5.4.0
|
||||
;;
|
||||
Gcc55*)
|
||||
gcc_version=gcc-5.5.0
|
||||
;;
|
||||
Gcc61*)
|
||||
gcc_version=gcc-6.1.0
|
||||
;;
|
||||
Gcc62*)
|
||||
gcc_version=gcc-6.2.0
|
||||
;;
|
||||
Gcc63*)
|
||||
gcc_version=gcc-6.3.0
|
||||
;;
|
||||
Gcc64*)
|
||||
gcc_version=gcc-6.4.0
|
||||
;;
|
||||
Gcc65*)
|
||||
gcc_version=gcc-6.5.0
|
||||
;;
|
||||
Gcc71*)
|
||||
gcc_version=gcc-7.1.0
|
||||
;;
|
||||
Gcc72*)
|
||||
gcc_version=gcc-7.2.0
|
||||
;;
|
||||
Gcc73*)
|
||||
gcc_version=gcc-7.3.0
|
||||
;;
|
||||
Gcc74*)
|
||||
gcc_version=gcc-7.4.0
|
||||
;;
|
||||
Gcc81*)
|
||||
gcc_version=gcc-8.1.0
|
||||
;;
|
||||
Gcc82*)
|
||||
gcc_version=gcc-8.2.0
|
||||
;;
|
||||
Clang | Clang37*)
|
||||
clang_version=llvm-3.7.1
|
||||
;;
|
||||
Clang38*)
|
||||
clang_version=llvm-3.8.1
|
||||
;;
|
||||
Clang39*)
|
||||
clang_version=llvm-3.9.1
|
||||
;;
|
||||
Clang40*)
|
||||
clang_version=llvm-4.0.1
|
||||
;;
|
||||
Clang50*)
|
||||
clang_version=llvm-5.0.2
|
||||
;;
|
||||
Clang60*)
|
||||
clang_version=llvm-6.0.1
|
||||
;;
|
||||
Clang70*)
|
||||
clang_version=llvm-7.0.1
|
||||
;;
|
||||
Clang80*)
|
||||
clang_version=llvm-8.0.0
|
||||
;;
|
||||
Gcc) gcc_version="$default_gcc_version" ;;
|
||||
Gcc48*) gcc_version=gcc-4.8.5 ;;
|
||||
Gcc49*) gcc_version=gcc-4.9.4 ;;
|
||||
Gcc51*) gcc_version=gcc-5.1.0 ;;
|
||||
Gcc52*) gcc_version=gcc-5.2.0 ;;
|
||||
Gcc53*) gcc_version=gcc-5.3.0 ;;
|
||||
Gcc54*) gcc_version=gcc-5.4.0 ;;
|
||||
Gcc55*) gcc_version=gcc-5.5.0 ;;
|
||||
Gcc61*) gcc_version=gcc-6.1.0 ;;
|
||||
Gcc62*) gcc_version=gcc-6.2.0 ;;
|
||||
Gcc63*) gcc_version=gcc-6.3.0 ;;
|
||||
Gcc64*) gcc_version=gcc-6.4.0 ;;
|
||||
Gcc65*) gcc_version=gcc-6.5.0 ;;
|
||||
Gcc71*) gcc_version=gcc-7.1.0 ;;
|
||||
Gcc72*) gcc_version=gcc-7.2.0 ;;
|
||||
Gcc73*) gcc_version=gcc-7.3.0 ;;
|
||||
Gcc74*) gcc_version=gcc-7.4.0 ;;
|
||||
Gcc75*) gcc_version=gcc-7.5.0 ;;
|
||||
Gcc81*) gcc_version=gcc-8.1.0 ;;
|
||||
Gcc82*) gcc_version=gcc-8.2.0 ;;
|
||||
Gcc83*) gcc_version=gcc-8.3.0 ;;
|
||||
Gcc91*) gcc_version=gcc-9.1.0 ;;
|
||||
Gcc92*) gcc_version=gcc-9.2.0 ;;
|
||||
|
||||
Clang) clang_version="$default_clang_version" ;;
|
||||
Clang37*) clang_version=llvm-3.7.1 ;;
|
||||
Clang38*) clang_version=llvm-3.8.1 ;;
|
||||
Clang39*) clang_version=llvm-3.9.1 ;;
|
||||
Clang40*) clang_version=llvm-4.0.1 ;;
|
||||
Clang50*) clang_version=llvm-5.0.2 ;;
|
||||
Clang60*) clang_version=llvm-6.0.1 ;;
|
||||
Clang70*) clang_version=llvm-7.0.1 ;;
|
||||
Clang71*) clang_version=llvm-7.1.0 ;;
|
||||
Clang80*) clang_version=llvm-8.0.1 ;;
|
||||
Clang90*) clang_version=llvm-9.0.0 ;;
|
||||
|
||||
*)
|
||||
/bin/cat << UNKNOWN_COMPILER 1>&2
|
||||
===============================================================================
|
||||
@ -125,4 +90,7 @@ UNKNOWN_COMPILER
|
||||
;;
|
||||
esac
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -9,15 +9,17 @@
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/settings
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler versions and settings for OpenFOAM
|
||||
# Older example of fine tuning compiler settings for OpenFOAM.
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -26,18 +28,12 @@ eval $($WM_PROJECT_DIR/bin/foamEtcFile -sh -config -mode=o compiler)
|
||||
|
||||
# Modify/override compiler settings
|
||||
case "$WM_COMPILER" in
|
||||
Gcc70)
|
||||
Gcc70*)
|
||||
gcc_version=gcc-7.0.0
|
||||
gmp_version=gmp-6.1.2
|
||||
mpfr_version=mpfr-3.1.5
|
||||
mpc_version=mpc-1.0.3
|
||||
;;
|
||||
Gcc48u)
|
||||
# Example of using the system GCC 4.8 in Ubuntu 15.10. Keep in mind you
|
||||
# will also need to create the respective directory in "wmake/rules"
|
||||
export CC='gcc-4.8'
|
||||
export CXX='g++-4.8'
|
||||
;;
|
||||
esac
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
28
etc/config.sh/example/compiler-Gcc92
Normal file
28
etc/config.sh/example/compiler-Gcc92
Normal file
@ -0,0 +1,28 @@
|
||||
#----------------------------------*-sh-*--------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Modify/override compiler settings
|
||||
gcc_version=gcc-9.2.0
|
||||
gmp_version=gmp-6.2.0
|
||||
mpfr_version=mpfr-4.0.2
|
||||
mpc_version=mpc-1.1.0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -9,12 +9,11 @@
|
||||
# Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# etc/config.sh/gperftools
|
||||
# - sourced by OpenFOAM-*/etc/bashrc
|
||||
# Not normally sourced by OpenFOAM-*/etc/bashrc
|
||||
#
|
||||
# Description
|
||||
# Setup file for GPERFTOOLS binaries/libraries.
|
||||
@ -48,7 +47,7 @@ then
|
||||
echo "Using gperftools ($gperftools_version) -> $GPERFTOOLS_ARCH_PATH" 1>&2
|
||||
fi
|
||||
|
||||
if command -v _foamAddLib > /dev/null 2>&1 # Normal sourcing
|
||||
if command -v _foamAddLib >/dev/null # Normal sourcing
|
||||
then
|
||||
|
||||
# If GPERFTOOLS_ARCH_PATH does not end with '-system' or '-none',
|
||||
|
||||
@ -121,7 +121,6 @@ _foamEtc -config settings
|
||||
_foamEtc -config mpi
|
||||
_foamEtc -config paraview -- "$@" # Pass through for evaluation
|
||||
_foamEtc -config vtk
|
||||
_foamEtc -config gperftools
|
||||
## _foamEtc -config ADIOS
|
||||
## _foamEtc -config ADIOS2
|
||||
_foamEtc -config CGAL
|
||||
|
||||
301
etc/openfoam
Executable file
301
etc/openfoam
Executable file
@ -0,0 +1,301 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# openfoam [options] [args]
|
||||
#
|
||||
# Description
|
||||
# Open an interactive bash session with an OpenFOAM environment,
|
||||
# or run an OpenFOAM application (with arguments) after first sourcing
|
||||
# the OpenFOAM etc/bashrc file from the project directory.
|
||||
#
|
||||
# Note
|
||||
# This script normally exists in the $WM_PROJECT_DIR/etc/ directory.
|
||||
# Do not copy/move/link to other locations. Use instead an edited copy of
|
||||
# `bin/tools/openfoam.in` with a hard-coded projectDir entry.
|
||||
#
|
||||
# See OpenFOAM etc/bashrc for (command-line) preferences.
|
||||
# Some equivalent settings:
|
||||
# -sp | -DWM_PRECISION_OPTION=SP
|
||||
# -dp | -DWM_PRECISION_OPTION=DP
|
||||
# -int32 | -DWM_LABEL_SIZE=32
|
||||
# -int64 | -DWM_LABEL_SIZE=64
|
||||
#
|
||||
# However, the '-D' options grant more flexibility. For example,
|
||||
# etc/openfoam -DWM_COMPILER=Clang
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Auto-detect from location. Do not call from within the etc/directory itself!
|
||||
projectDir="$(\cd "$(dirname "${0%/*}")" && \pwd -L)"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
printHelp() {
|
||||
cat<<USAGE
|
||||
|
||||
Usage: ${0##*/} [OPTION] [application ...]
|
||||
|
||||
options:
|
||||
-c command Execute shell commands with OpenFOAM environment
|
||||
-Dkey[=value] Define key/value to pass as a preference
|
||||
-sp Single precision
|
||||
-dp Double precision
|
||||
-spdp Mixed single/double precision
|
||||
-int32 | -int64 The label-size
|
||||
-etc=DIR Additional project etc/ directory
|
||||
-prefix=DIR Alternative OpenFOAM project directory
|
||||
-show-api | -version Print META-INFO api value and exit
|
||||
-show-patch Print META-INFO patch value and exit
|
||||
-show-prefix Print project directory and exit
|
||||
-test-tutorial Forward arguments to tutorials/AutoTest
|
||||
-verbose Set FOAM_VERBOSE=true (interactive only)
|
||||
-help Print the usage
|
||||
|
||||
Open an interactive bash session with an OpenFOAM environment,
|
||||
or run an OpenFOAM application (with arguments) after first sourcing
|
||||
the OpenFOAM etc/bashrc file from the project directory:
|
||||
($projectDir)
|
||||
|
||||
For more information: www.openfoam.com
|
||||
|
||||
USAGE
|
||||
exit 0 # A clean exit
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Get a value from META-INFO/api-info
|
||||
# $1 : keyword
|
||||
getApiInfo()
|
||||
{
|
||||
value="$(sed -ne 's@^'"$1"' *= *\([0-9][0-9]*\).*@\1@p' "$projectDir"/META-INFO/api-info 2>/dev/null)"
|
||||
|
||||
if [ -n "$value" ]
|
||||
then
|
||||
echo "$value"
|
||||
else
|
||||
echo "Could not determine OPENFOAM '$1' value" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# No inheritance of FOAM_SETTINGS
|
||||
unset FOAM_SETTINGS
|
||||
unset _foamEtcDir _foamSettings _foamScriptCommand
|
||||
unset optTestTut
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help* | --help*)
|
||||
printHelp
|
||||
;;
|
||||
-show-api | -version | --version) # Show API and exit
|
||||
getApiInfo api
|
||||
exit $?
|
||||
;;
|
||||
-show-patch) # Show patch level and exit
|
||||
getApiInfo patch
|
||||
exit $?
|
||||
;;
|
||||
-show-prefix) # Show project directory and exit
|
||||
echo "$projectDir"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-test-tutorial) # Run tutorials/AutoTest
|
||||
optTestTut=true
|
||||
;;
|
||||
|
||||
-c) # Shell command
|
||||
_foamScriptCommand="$2"
|
||||
[ -n "$_foamScriptCommand" ] || {
|
||||
echo "$0: missing or bad command argument: $2" 1>&2
|
||||
exit 1
|
||||
}
|
||||
shift 2
|
||||
break
|
||||
;;
|
||||
|
||||
-D*) # Define key/value to pass as preference
|
||||
setting="${1#-D}"
|
||||
if [ -n "$setting" ]
|
||||
then
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }$setting"
|
||||
fi
|
||||
;;
|
||||
|
||||
-sp | -dp | -spdp )
|
||||
# WM_PRECISION_OPTION=(SP|DP|SPDP)
|
||||
setting=$(echo "${1#-}" | sed -e 's/-//g;y/sdp/SDP/')
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_PRECISION_OPTION=$setting"
|
||||
;;
|
||||
|
||||
-int32 | -int64)
|
||||
# WM_LABEL_SIZE=...
|
||||
_foamSettings="$_foamSettings${_foamSettings:+ }WM_LABEL_SIZE=${1#-int}"
|
||||
;;
|
||||
|
||||
-etc=*)
|
||||
# Define FOAM_CONFIG_ETC for finding files
|
||||
_foamEtcDir="${1#*=}"
|
||||
;;
|
||||
|
||||
-prefix=*)
|
||||
projectDir="${1#*=}"
|
||||
;;
|
||||
|
||||
-verbose)
|
||||
export FOAM_VERBOSE=true
|
||||
;;
|
||||
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*)
|
||||
echo "$0: unknown option: '$1'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Sanity check (installed under /bin, /usr/bin, /usr/local/bin)
|
||||
# This should not happen.
|
||||
# If copied to a system dir, should also be using hard-coded values!
|
||||
|
||||
if [ "${projectDir%/bin}" != "$projectDir" ]
|
||||
then
|
||||
echo "Warning: suspicious project dir: $projectDir" 1>&2
|
||||
fi
|
||||
|
||||
[ -d "$projectDir/META-INFO" ] || {
|
||||
echo "Warning: missing META-INFO in OpenFOAM directory:" 1>&2
|
||||
echo " $projectDir" 1>&2
|
||||
}
|
||||
|
||||
|
||||
# Remove current OpenFOAM environment
|
||||
if [ -d "$WM_PROJECT_DIR" ] && [ -f "$WM_PROJECT_DIR/etc/config.sh/unset" ]
|
||||
then
|
||||
. "$WM_PROJECT_DIR/etc/config.sh/unset" || true
|
||||
fi
|
||||
|
||||
unset interactive
|
||||
|
||||
if [ "$#" -eq 0 ] && [ -z "$_foamScriptCommand" ] && [ -z "$optTestTut" ]
|
||||
then
|
||||
# Interactive shell, chain off via a file
|
||||
interactive=true
|
||||
_foamSourceBashEnv="$projectDir/bin/tools/source-bashrc"
|
||||
else
|
||||
# Non-interactive shell, use the OPENFOAM etc/bashrc
|
||||
_foamSourceBashEnv="$projectDir/etc/bashrc"
|
||||
fi
|
||||
|
||||
[ -f "$_foamSourceBashEnv" ] || {
|
||||
echo "Error: file not found: $_foamSourceBashEnv" 1>&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
if [ -n "$_foamEtcDir" ] && [ -d "$_foamEtcDir" ]
|
||||
then
|
||||
# Additional etc directory
|
||||
export FOAM_CONFIG_ETC="$_foamEtcDir"
|
||||
else
|
||||
unset FOAM_CONFIG_ETC
|
||||
fi
|
||||
|
||||
if [ -n "$interactive" ]
|
||||
then
|
||||
# Interactive shell
|
||||
# -----------------
|
||||
|
||||
# Source ~/.bashrc and OpenFOAM etc/bashrc in one of two ways:
|
||||
# 1) Generate and use a tmp file
|
||||
# 2) Chain off to a dedicated file [This is what we use]
|
||||
|
||||
if [ -n "$_foamSettings" ]
|
||||
then
|
||||
# Pass preferences via the FOAM_SETTINGS mechanism
|
||||
export FOAM_SETTINGS="$_foamSettings"
|
||||
fi
|
||||
|
||||
## echo "Source with $_foamSourceBashEnv with '$FOAM_SETTINGS'" 1>&2
|
||||
|
||||
# Newer bash can use --init-file instead of --rcfile
|
||||
exec bash --rcfile "$_foamSourceBashEnv" -i
|
||||
exit $? # Safety
|
||||
fi
|
||||
|
||||
|
||||
# Non-interactive shell
|
||||
# ---------------------
|
||||
|
||||
# Source bashrc within a function to preserve command-line arguments
|
||||
# Suppresses aliases as a side-effect, but non-interactive anyhow.
|
||||
sourceBashrc()
|
||||
{
|
||||
. "$_foamSourceBashEnv" $_foamSettings
|
||||
}
|
||||
|
||||
|
||||
if [ -n "$_foamScriptCommand" ]
|
||||
then
|
||||
# A shell command
|
||||
|
||||
sourceBashrc
|
||||
exec bash -c "$_foamScriptCommand" "$@"
|
||||
exit $? # Safety
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$optTestTut" ]
|
||||
then
|
||||
|
||||
sourceBashrc
|
||||
exec "$WM_PROJECT_DIR/tutorials/AutoTest" "$@"
|
||||
exit $? # Safety
|
||||
fi
|
||||
|
||||
|
||||
# An application or a shell script
|
||||
|
||||
# It may actually be a script with a '#!/project-path/bin/openfoam',
|
||||
# so we need to catch this to avoid infinite recursion.
|
||||
if [ -f "$1" ] \
|
||||
&& [ -n "$(sed -ne '1{/^#!.*\/openfoam$/p; q}' "$1" 2>/dev/null)" ]
|
||||
then
|
||||
# A shell script
|
||||
|
||||
sourceBashrc
|
||||
exec bash "$@"
|
||||
|
||||
else
|
||||
# An application
|
||||
|
||||
sourceBashrc
|
||||
exec "$@"
|
||||
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1428,7 +1428,7 @@ bool Foam::ping
|
||||
}
|
||||
|
||||
// Fill sockaddr_in structure with dest address and port
|
||||
memset(reinterpret_cast<char *>(&destAddr), '\0', sizeof(destAddr));
|
||||
std::memset(reinterpret_cast<char *>(&destAddr), '\0', sizeof(destAddr));
|
||||
destAddr.sin_family = AF_INET;
|
||||
destAddr.sin_port = htons(ushort(destPort));
|
||||
destAddr.sin_addr.s_addr = addr;
|
||||
|
||||
@ -472,6 +472,12 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
//- Copy construct
|
||||
reference(const reference&) = default;
|
||||
|
||||
//- Move construct
|
||||
reference(reference&&) = default;
|
||||
|
||||
//- Value assignment
|
||||
inline void operator=(const reference& other);
|
||||
|
||||
|
||||
@ -447,6 +447,12 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
//- Copy construct
|
||||
reference(const reference&) = default;
|
||||
|
||||
//- Move construct
|
||||
reference(reference&&) = default;
|
||||
|
||||
//- Flip the bit at the position, no range-checking
|
||||
inline void flip();
|
||||
|
||||
|
||||
@ -766,8 +766,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null (end iterator)
|
||||
inline const_iterator() = default;
|
||||
//- Default construct (end iterator)
|
||||
const_iterator() = default;
|
||||
|
||||
//- Copy construct
|
||||
const_iterator(const const_iterator&) = default;
|
||||
|
||||
//- Copy construct from similar access type
|
||||
inline explicit const_iterator(const Iterator<true>& iter)
|
||||
|
||||
@ -233,6 +233,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
//- Copy construct
|
||||
iterator(const iterator&) = default;
|
||||
|
||||
//- Construct for a node on a list
|
||||
inline iterator(DLListBase* list, link* item);
|
||||
|
||||
|
||||
@ -209,6 +209,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
//- Copy construct
|
||||
iterator(const iterator&) = default;
|
||||
|
||||
//- Construct for a node on the list
|
||||
inline iterator(SLListBase* list, link* item);
|
||||
|
||||
|
||||
@ -59,7 +59,10 @@ void Foam::List<T>::doResize(const label newSize)
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(nv, this->v_, overlap*sizeof(T));
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(nv), this->v_, overlap*sizeof(T)
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -185,21 +188,26 @@ Foam::List<T>::List(const UList<T>& a)
|
||||
:
|
||||
UList<T>(nullptr, a.size_)
|
||||
{
|
||||
if (this->size_)
|
||||
const label len = this->size_;
|
||||
|
||||
if (len)
|
||||
{
|
||||
doAlloc();
|
||||
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(this->v_, a.v_, this->byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(this->v_), a.v_, this->byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
List_ACCESS(T, (*this), vp);
|
||||
List_CONST_ACCESS(T, a, ap);
|
||||
List_FOR_ALL((*this), i)
|
||||
for (label i = 0; i < len; ++i)
|
||||
{
|
||||
vp[i] = ap[i];
|
||||
}
|
||||
@ -213,21 +221,26 @@ Foam::List<T>::List(const List<T>& a)
|
||||
:
|
||||
UList<T>(nullptr, a.size_)
|
||||
{
|
||||
if (this->size_)
|
||||
const label len = this->size_;
|
||||
|
||||
if (len)
|
||||
{
|
||||
doAlloc();
|
||||
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(this->v_, a.v_, this->byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(this->v_), a.v_, this->byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
List_ACCESS(T, (*this), vp);
|
||||
List_CONST_ACCESS(T, a, ap);
|
||||
List_FOR_ALL((*this), i)
|
||||
for (label i = 0; i < len; ++i)
|
||||
{
|
||||
vp[i] = ap[i];
|
||||
}
|
||||
@ -247,22 +260,29 @@ Foam::List<T>::List(List<T>& a, bool reuse)
|
||||
this->v_ = a.v_;
|
||||
a.v_ = nullptr;
|
||||
a.size_ = 0;
|
||||
return;
|
||||
}
|
||||
else if (this->size_)
|
||||
|
||||
const label len = this->size_;
|
||||
|
||||
if (len)
|
||||
{
|
||||
doAlloc();
|
||||
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(this->v_, a.v_, this->byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(this->v_), a.v_, this->byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
List_ACCESS(T, (*this), vp);
|
||||
List_CONST_ACCESS(T, a, ap);
|
||||
List_FOR_ALL((*this), i)
|
||||
for (label i = 0; i < len; ++i)
|
||||
{
|
||||
vp[i] = ap[i];
|
||||
}
|
||||
@ -454,19 +474,24 @@ void Foam::List<T>::operator=(const UList<T>& a)
|
||||
{
|
||||
reAlloc(a.size_);
|
||||
|
||||
if (this->size_)
|
||||
const label len = this->size_;
|
||||
|
||||
if (len)
|
||||
{
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(this->v_, a.v_, this->byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(this->v_), a.v_, this->byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
List_ACCESS(T, (*this), vp);
|
||||
List_CONST_ACCESS(T, a, ap);
|
||||
List_FOR_ALL((*this), i)
|
||||
for (label i = 0; i < len; ++i)
|
||||
{
|
||||
vp[i] = ap[i];
|
||||
}
|
||||
@ -522,7 +547,7 @@ void Foam::List<T>::operator=(const IndirectListBase<T, Addr>& list)
|
||||
{
|
||||
List_ACCESS(T, (*this), vp);
|
||||
|
||||
for (label i=0; i<len; ++i)
|
||||
for (label i=0; i < len; ++i)
|
||||
{
|
||||
vp[i] = list[i];
|
||||
}
|
||||
|
||||
@ -76,6 +76,12 @@ public:
|
||||
inline static const SubList<T>& null();
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
SubList(const SubList&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from UList and sub-list size, start at 0
|
||||
|
||||
@ -118,7 +118,10 @@ void Foam::UList<T>::deepCopy(const UList<T>& list)
|
||||
#ifdef USEMEMCPY
|
||||
if (contiguous<T>())
|
||||
{
|
||||
memcpy(this->v_, list.v_, this->byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(this->v_), list.v_, this->byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
@ -213,6 +213,12 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
UList(const UList<T>&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Null constructor
|
||||
|
||||
@ -259,6 +259,15 @@ public:
|
||||
);
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
IOobject(const IOobject&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~IOobject() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from name, instance, registry, io options
|
||||
@ -328,10 +337,6 @@ public:
|
||||
}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~IOobject() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// General access
|
||||
|
||||
@ -77,12 +77,6 @@ Foam::baseIOdictionary::baseIOdictionary
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::baseIOdictionary::~baseIOdictionary()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Members Functions * * * * * * * * * * * * * //
|
||||
|
||||
const Foam::word& Foam::baseIOdictionary::name() const
|
||||
|
||||
@ -68,6 +68,18 @@ public:
|
||||
TypeName("dictionary");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
baseIOdictionary(const baseIOdictionary&) = default;
|
||||
|
||||
//- Move construct
|
||||
baseIOdictionary(baseIOdictionary&&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~baseIOdictionary() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct given an IOobject
|
||||
@ -80,11 +92,7 @@ public:
|
||||
baseIOdictionary(const IOobject&, Istream&);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~baseIOdictionary();
|
||||
|
||||
|
||||
// Member functions
|
||||
// Member Functions
|
||||
|
||||
//- Return complete path + object name if the file exists
|
||||
// either in the case/processor or case otherwise null
|
||||
|
||||
@ -140,6 +140,15 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
IOstream(const IOstream&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~IOstream() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct with specified stream option
|
||||
@ -165,10 +174,6 @@ public:
|
||||
{}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~IOstream() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Access
|
||||
|
||||
@ -72,6 +72,15 @@ class Istream
|
||||
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
Istream(const Istream&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~Istream() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct and set stream status
|
||||
@ -87,11 +96,7 @@ public:
|
||||
{}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Istream() = default;
|
||||
|
||||
|
||||
// Member functions
|
||||
// Member Functions
|
||||
|
||||
// Read functions
|
||||
|
||||
|
||||
@ -75,6 +75,15 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
Ostream(const Ostream&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~Ostream() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct and set stream status
|
||||
@ -90,11 +99,7 @@ public:
|
||||
{}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Ostream() = default;
|
||||
|
||||
|
||||
// Member functions
|
||||
// Member Functions
|
||||
|
||||
// Write functions
|
||||
|
||||
|
||||
@ -62,14 +62,17 @@ class OSstream
|
||||
std::ostream& os_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
OSstream(const OSstream&) = default;
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const OSstream&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct as wrapper around std::ostream and set stream status
|
||||
|
||||
@ -301,4 +301,32 @@ void Foam::ITstream::rewind()
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::ITstream::operator=(const ITstream& is)
|
||||
{
|
||||
Istream::operator=(is);
|
||||
tokenList::operator=(is);
|
||||
name_ = is.name_;
|
||||
|
||||
rewind();
|
||||
}
|
||||
|
||||
|
||||
void Foam::ITstream::operator=(const tokenList& toks)
|
||||
{
|
||||
tokenList::operator=(toks);
|
||||
|
||||
rewind();
|
||||
}
|
||||
|
||||
|
||||
void Foam::ITstream::operator=(tokenList&& toks)
|
||||
{
|
||||
tokenList::operator=(std::move(toks));
|
||||
|
||||
rewind();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -273,10 +273,22 @@ public:
|
||||
}
|
||||
|
||||
|
||||
// Print
|
||||
// Output
|
||||
|
||||
//- Print description of stream to Ostream
|
||||
void print(Ostream& os) const;
|
||||
//- Print stream description to Ostream
|
||||
void print(Ostream& os) const;
|
||||
|
||||
|
||||
// Member Operators
|
||||
|
||||
//- Copy assignment, with rewind()
|
||||
void operator=(const ITstream& is);
|
||||
|
||||
//- Copy assignment of tokens, with rewind()
|
||||
void operator=(const tokenList& toks);
|
||||
|
||||
//- Move assignment of tokens, with rewind()
|
||||
void operator=(tokenList&& toks);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2018 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -144,7 +144,8 @@ bool Foam::functionEntries::includeEntry::execute
|
||||
{
|
||||
if (Foam::functionEntries::includeEntry::log)
|
||||
{
|
||||
DetailInfo << fName << endl;
|
||||
// Report to stdout which file is included
|
||||
Info<< fName << nl;
|
||||
}
|
||||
|
||||
// Add watch on included file
|
||||
@ -189,7 +190,8 @@ bool Foam::functionEntries::includeEntry::execute
|
||||
{
|
||||
if (Foam::functionEntries::includeEntry::log)
|
||||
{
|
||||
DetailInfo << fName << endl;
|
||||
// Report to stdout which file is included
|
||||
Info<< fName << nl;
|
||||
}
|
||||
|
||||
// Add watch on included file
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2015-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -104,7 +105,8 @@ bool Foam::functionEntries::includeEtcEntry::execute
|
||||
{
|
||||
if (Foam::functionEntries::includeEtcEntry::log)
|
||||
{
|
||||
DetailInfo << fName << endl;
|
||||
// Report to stdout which file is included
|
||||
Info<< fName << nl;
|
||||
}
|
||||
parentDict.read(ifs);
|
||||
return true;
|
||||
@ -137,7 +139,8 @@ bool Foam::functionEntries::includeEtcEntry::execute
|
||||
{
|
||||
if (Foam::functionEntries::includeEtcEntry::log)
|
||||
{
|
||||
DetailInfo << fName << endl;
|
||||
// Report to stdout which file is included
|
||||
Info<< fName << nl;
|
||||
}
|
||||
entry.read(parentDict, ifs);
|
||||
return true;
|
||||
|
||||
@ -55,7 +55,7 @@ Foam::IOerror::IOerror(const dictionary& errDict)
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::IOerror::~IOerror() throw()
|
||||
Foam::IOerror::~IOerror() noexcept
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ Foam::error::error(const error& err)
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::error::~error() throw()
|
||||
Foam::error::~error() noexcept
|
||||
{
|
||||
delete messageStreamPtr_;
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~error() throw();
|
||||
virtual ~error() noexcept;
|
||||
|
||||
|
||||
// Static Member Functions
|
||||
@ -239,7 +239,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~IOerror() throw();
|
||||
virtual ~IOerror() noexcept;
|
||||
|
||||
|
||||
// Member functions
|
||||
|
||||
@ -65,6 +65,12 @@ public:
|
||||
TypeName("value");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
valuePointPatchField(const valuePointPatchField&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from patch and internal field
|
||||
|
||||
@ -427,6 +427,21 @@ public:
|
||||
inline bool readListIfPresent(const word& optName, List<T>& list) const;
|
||||
|
||||
|
||||
//- Alternative name for option opt(const word& optName)
|
||||
template<class T=string>
|
||||
T get(const word& optName) const
|
||||
{
|
||||
return this->opt<T>(optName);
|
||||
}
|
||||
|
||||
//- Alternative name for option opt(const word& optName, ...)
|
||||
template<class T>
|
||||
T get(const word& optName, const T& deflt) const
|
||||
{
|
||||
return this->opt<T>(optName, deflt);
|
||||
}
|
||||
|
||||
|
||||
// Edit
|
||||
|
||||
//- Append a (mandatory) argument to validArgs
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2016 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -56,7 +56,7 @@ void Foam::interpolation2DTable<Type>::readTable()
|
||||
template<class Type>
|
||||
Foam::interpolation2DTable<Type>::interpolation2DTable()
|
||||
:
|
||||
List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(),
|
||||
List<value_type>(),
|
||||
bounding_(bounds::normalBounding::WARN),
|
||||
fileName_("fileNameIsUndefined"),
|
||||
reader_(nullptr)
|
||||
@ -71,7 +71,7 @@ Foam::interpolation2DTable<Type>::interpolation2DTable
|
||||
const fileName& fName
|
||||
)
|
||||
:
|
||||
List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(values),
|
||||
List<value_type>(values),
|
||||
bounding_(bounding),
|
||||
fileName_(fName),
|
||||
reader_(nullptr)
|
||||
@ -81,7 +81,7 @@ Foam::interpolation2DTable<Type>::interpolation2DTable
|
||||
template<class Type>
|
||||
Foam::interpolation2DTable<Type>::interpolation2DTable(const fileName& fName)
|
||||
:
|
||||
List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(),
|
||||
List<value_type>(),
|
||||
bounding_(bounds::normalBounding::WARN),
|
||||
fileName_(fName),
|
||||
reader_(new openFoamTableReader<Type>(dictionary()))
|
||||
@ -93,7 +93,7 @@ Foam::interpolation2DTable<Type>::interpolation2DTable(const fileName& fName)
|
||||
template<class Type>
|
||||
Foam::interpolation2DTable<Type>::interpolation2DTable(const dictionary& dict)
|
||||
:
|
||||
List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(),
|
||||
List<value_type>(),
|
||||
bounding_
|
||||
(
|
||||
bounds::normalBoundingNames.lookupOrDefault
|
||||
@ -114,13 +114,13 @@ Foam::interpolation2DTable<Type>::interpolation2DTable(const dictionary& dict)
|
||||
template<class Type>
|
||||
Foam::interpolation2DTable<Type>::interpolation2DTable
|
||||
(
|
||||
const interpolation2DTable& interpTable
|
||||
const interpolation2DTable& tbl
|
||||
)
|
||||
:
|
||||
List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(interpTable),
|
||||
bounding_(interpTable.bounding_),
|
||||
fileName_(interpTable.fileName_),
|
||||
reader_(interpTable.reader_) // note: steals reader. Used in write().
|
||||
List<value_type>(tbl),
|
||||
bounding_(tbl.bounding_),
|
||||
fileName_(tbl.fileName_),
|
||||
reader_(tbl.reader_.clone())
|
||||
{}
|
||||
|
||||
|
||||
@ -312,6 +312,24 @@ Foam::label Foam::interpolation2DTable<Type>::Xi
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
void Foam::interpolation2DTable<Type>::operator=
|
||||
(
|
||||
const interpolation2DTable<Type>& rhs
|
||||
)
|
||||
{
|
||||
if (this == &rhs)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static_cast<List<value_type>&>(*this) = rhs;
|
||||
bounding_ = rhs.bounding_;
|
||||
fileName_ = rhs.fileName_;
|
||||
reader_.reset(rhs.reader_.clone());
|
||||
}
|
||||
|
||||
|
||||
template<class Type>
|
||||
Type Foam::interpolation2DTable<Type>::operator()
|
||||
(
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -57,17 +58,7 @@ class interpolation2DTable
|
||||
:
|
||||
public List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>
|
||||
{
|
||||
public:
|
||||
|
||||
// Public data types
|
||||
|
||||
//- Convenience typedef
|
||||
typedef List<Tuple2<scalar, List<Tuple2<scalar, Type>>>> table;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
//- Handling for out-of-bound values
|
||||
bounds::normalBounding bounding_;
|
||||
@ -103,6 +94,15 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
// Public Data Types
|
||||
|
||||
//- The element data type
|
||||
typedef Tuple2<scalar, List<Tuple2<scalar, Type>>> value_type;
|
||||
|
||||
//- Convenience typedef
|
||||
typedef List<Tuple2<scalar, List<Tuple2<scalar, Type>>>> table;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
@ -122,8 +122,8 @@ public:
|
||||
//- Construct by reading file name and outOfBounds from dictionary
|
||||
interpolation2DTable(const dictionary& dict);
|
||||
|
||||
//- Construct copy
|
||||
interpolation2DTable(const interpolation2DTable& interpTable);
|
||||
//- Copy construct
|
||||
interpolation2DTable(const interpolation2DTable& tbl);
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -141,6 +141,9 @@ public:
|
||||
//- Return an element of constant List<Tuple2<scalar, Type>>
|
||||
const List<Tuple2<scalar, Type>>& operator[](const label) const;
|
||||
|
||||
//- Copy assignment
|
||||
void operator=(const interpolation2DTable<Type>& rhs);
|
||||
|
||||
//- Return an interpolated value
|
||||
Type operator()(const scalar valueX, const scalar valueY) const;
|
||||
};
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -59,7 +60,7 @@ void Foam::interpolationTable<Type>::readTable()
|
||||
template<class Type>
|
||||
Foam::interpolationTable<Type>::interpolationTable()
|
||||
:
|
||||
List<Tuple2<scalar, Type>>(),
|
||||
List<value_type>(),
|
||||
bounding_(bounds::repeatableBounding::WARN),
|
||||
fileName_("fileNameIsUndefined"),
|
||||
reader_(nullptr)
|
||||
@ -74,7 +75,7 @@ Foam::interpolationTable<Type>::interpolationTable
|
||||
const fileName& fName
|
||||
)
|
||||
:
|
||||
List<Tuple2<scalar, Type>>(values),
|
||||
List<value_type>(values),
|
||||
bounding_(bounding),
|
||||
fileName_(fName),
|
||||
reader_(nullptr)
|
||||
@ -84,7 +85,7 @@ Foam::interpolationTable<Type>::interpolationTable
|
||||
template<class Type>
|
||||
Foam::interpolationTable<Type>::interpolationTable(const fileName& fName)
|
||||
:
|
||||
List<Tuple2<scalar, Type>>(),
|
||||
List<value_type>(),
|
||||
bounding_(bounds::repeatableBounding::WARN),
|
||||
fileName_(fName),
|
||||
reader_(new openFoamTableReader<Type>(dictionary()))
|
||||
@ -96,7 +97,7 @@ Foam::interpolationTable<Type>::interpolationTable(const fileName& fName)
|
||||
template<class Type>
|
||||
Foam::interpolationTable<Type>::interpolationTable(const dictionary& dict)
|
||||
:
|
||||
List<Tuple2<scalar, Type>>(),
|
||||
List<value_type>(),
|
||||
bounding_
|
||||
(
|
||||
bounds::repeatableBoundingNames.lookupOrDefault
|
||||
@ -117,17 +118,16 @@ Foam::interpolationTable<Type>::interpolationTable(const dictionary& dict)
|
||||
template<class Type>
|
||||
Foam::interpolationTable<Type>::interpolationTable
|
||||
(
|
||||
const interpolationTable& interpTable
|
||||
const interpolationTable& tbl
|
||||
)
|
||||
:
|
||||
List<Tuple2<scalar, Type>>(interpTable),
|
||||
bounding_(interpTable.bounding_),
|
||||
fileName_(interpTable.fileName_),
|
||||
reader_(interpTable.reader_) // note: steals reader. Used in write().
|
||||
List<value_type>(tbl),
|
||||
bounding_(tbl.bounding_),
|
||||
fileName_(tbl.fileName_),
|
||||
reader_(tbl.reader_.clone())
|
||||
{}
|
||||
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
@ -318,6 +318,24 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
void Foam::interpolationTable<Type>::operator=
|
||||
(
|
||||
const interpolationTable<Type>& rhs
|
||||
)
|
||||
{
|
||||
if (this == &rhs)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static_cast<List<value_type>&>(*this) = rhs;
|
||||
bounding_ = rhs.bounding_;
|
||||
fileName_ = rhs.fileName_;
|
||||
reader_.reset(rhs.reader_.clone());
|
||||
}
|
||||
|
||||
|
||||
template<class Type>
|
||||
const Foam::Tuple2<Foam::scalar, Type>&
|
||||
Foam::interpolationTable<Type>::operator[](const label i) const
|
||||
|
||||
@ -104,6 +104,15 @@ class interpolationTable
|
||||
|
||||
public:
|
||||
|
||||
// Public Data Types
|
||||
|
||||
//- The element data type
|
||||
typedef Tuple2<scalar, Type> value_type;
|
||||
|
||||
//- The mapped data type
|
||||
typedef Type mapped_type;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
@ -125,8 +134,8 @@ public:
|
||||
// This is a specialised constructor used by patchFields
|
||||
interpolationTable(const dictionary& dict);
|
||||
|
||||
//- Construct copy
|
||||
interpolationTable(const interpolationTable& interpTable);
|
||||
//- Copy construct
|
||||
interpolationTable(const interpolationTable& tbl);
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -145,6 +154,9 @@ public:
|
||||
|
||||
// Member Operators
|
||||
|
||||
//- Copy assignment
|
||||
void operator=(const interpolationTable<Type>& rhs);
|
||||
|
||||
//- Return an element of constant Tuple2<scalar, Type>
|
||||
const Tuple2<scalar, Type>& operator[](const label) const;
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ void Foam::processorLduInterface::send
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
reinterpret_cast<const char*>(f.begin()),
|
||||
reinterpret_cast<const char*>(f.cdata()),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -64,20 +64,23 @@ void Foam::processorLduInterface::send
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
receiveBuf_.begin(),
|
||||
receiveBuf_.data(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
);
|
||||
|
||||
resizeBuf(sendBuf_, nBytes);
|
||||
memcpy(sendBuf_.begin(), f.begin(), nBytes);
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(sendBuf_.data()), f.cdata(), nBytes
|
||||
);
|
||||
|
||||
OPstream::write
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
sendBuf_.begin(),
|
||||
sendBuf_.cdata(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -109,7 +112,7 @@ void Foam::processorLduInterface::receive
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
reinterpret_cast<char*>(f.begin()),
|
||||
reinterpret_cast<char*>(f.data()),
|
||||
f.byteSize(),
|
||||
tag(),
|
||||
comm()
|
||||
@ -117,7 +120,10 @@ void Foam::processorLduInterface::receive
|
||||
}
|
||||
else if (commsType == Pstream::commsTypes::nonBlocking)
|
||||
{
|
||||
memcpy(f.begin(), receiveBuf_.begin(), f.byteSize());
|
||||
std::memcpy
|
||||
(
|
||||
static_cast<void*>(f.data()), receiveBuf_.cdata(), f.byteSize()
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -156,10 +162,10 @@ void Foam::processorLduInterface::compressedSend
|
||||
label nFloats = nm1 + nlast;
|
||||
label nBytes = nFloats*sizeof(float);
|
||||
|
||||
const scalar *sArray = reinterpret_cast<const scalar*>(f.begin());
|
||||
const scalar *sArray = reinterpret_cast<const scalar*>(f.cdata());
|
||||
const scalar *slast = &sArray[nm1];
|
||||
resizeBuf(sendBuf_, nBytes);
|
||||
float *fArray = reinterpret_cast<float*>(sendBuf_.begin());
|
||||
float *fArray = reinterpret_cast<float*>(sendBuf_.data());
|
||||
|
||||
for (label i=0; i<nm1; i++)
|
||||
{
|
||||
@ -178,7 +184,7 @@ void Foam::processorLduInterface::compressedSend
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
sendBuf_.begin(),
|
||||
sendBuf_.cdata(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -192,7 +198,7 @@ void Foam::processorLduInterface::compressedSend
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
receiveBuf_.begin(),
|
||||
receiveBuf_.data(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -202,7 +208,7 @@ void Foam::processorLduInterface::compressedSend
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
sendBuf_.begin(),
|
||||
sendBuf_.cdata(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -248,7 +254,7 @@ void Foam::processorLduInterface::compressedReceive
|
||||
(
|
||||
commsType,
|
||||
neighbProcNo(),
|
||||
receiveBuf_.begin(),
|
||||
receiveBuf_.data(),
|
||||
nBytes,
|
||||
tag(),
|
||||
comm()
|
||||
@ -262,9 +268,9 @@ void Foam::processorLduInterface::compressedReceive
|
||||
}
|
||||
|
||||
const float *fArray =
|
||||
reinterpret_cast<const float*>(receiveBuf_.begin());
|
||||
reinterpret_cast<const float*>(receiveBuf_.cdata());
|
||||
f.last() = reinterpret_cast<const Type&>(fArray[nm1]);
|
||||
scalar *sArray = reinterpret_cast<scalar*>(f.begin());
|
||||
scalar *sArray = reinterpret_cast<scalar*>(f.data());
|
||||
const scalar *slast = &sArray[nm1];
|
||||
|
||||
for (label i=0; i<nm1; i++)
|
||||
|
||||
@ -73,6 +73,18 @@ class patchIdentifier
|
||||
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
patchIdentifier(const patchIdentifier&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
patchIdentifier& operator=(const patchIdentifier&) = default;
|
||||
|
||||
//- Destructor
|
||||
virtual ~patchIdentifier() = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
@ -100,10 +112,6 @@ public:
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~patchIdentifier() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the patch name
|
||||
|
||||
@ -83,6 +83,15 @@ public:
|
||||
static const word emptyType;
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
surfZoneIdentifier(const surfZoneIdentifier&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
surfZoneIdentifier& operator=(const surfZoneIdentifier&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
|
||||
@ -79,10 +79,19 @@ public:
|
||||
enum components { XX, XY, XZ, YY, YZ, ZZ };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline SymmTensor();
|
||||
//- Default construct
|
||||
SymmTensor() = default;
|
||||
|
||||
//- Copy construct
|
||||
SymmTensor(const SymmTensor&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
SymmTensor& operator=(const SymmTensor&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline SymmTensor(const Foam::zero);
|
||||
|
||||
@ -30,11 +30,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::SymmTensor<Cmpt>::SymmTensor()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::SymmTensor<Cmpt>::SymmTensor(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -79,10 +79,19 @@ public:
|
||||
enum components { XX, XY, YY };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline SymmTensor2D();
|
||||
//- Default construct
|
||||
SymmTensor2D() = default;
|
||||
|
||||
//- Copy construct
|
||||
SymmTensor2D(const SymmTensor2D&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
SymmTensor2D& operator=(const SymmTensor2D&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline SymmTensor2D(const Foam::zero);
|
||||
|
||||
@ -30,11 +30,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::SymmTensor2D<Cmpt>::SymmTensor2D()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::SymmTensor2D<Cmpt>::SymmTensor2D(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -89,10 +89,19 @@ public:
|
||||
enum components { XX, XY, XZ, YX, YY, YZ, ZX, ZY, ZZ };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline Tensor();
|
||||
//- Default construct
|
||||
Tensor() = default;
|
||||
|
||||
//- Copy construct
|
||||
Tensor(const Tensor&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
Tensor& operator=(const Tensor&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline Tensor(const Foam::zero);
|
||||
|
||||
@ -30,11 +30,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Tensor<Cmpt>::Tensor()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Tensor<Cmpt>::Tensor(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -83,10 +83,19 @@ public:
|
||||
enum components { XX, XY, YX, YY };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline Tensor2D();
|
||||
//- Default construct
|
||||
Tensor2D() = default;
|
||||
|
||||
//- Copy construct
|
||||
Tensor2D(const Tensor2D&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
Tensor2D& operator=(const Tensor2D&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline Tensor2D(const Foam::zero);
|
||||
|
||||
@ -28,11 +28,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Tensor2D<Cmpt>::Tensor2D()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Tensor2D<Cmpt>::Tensor2D(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -80,10 +80,19 @@ public:
|
||||
enum components { X, Y, Z };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline Vector();
|
||||
//- Default construct
|
||||
Vector() = default;
|
||||
|
||||
//- Copy construct
|
||||
Vector(const Vector&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
Vector& operator=(const Vector&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline Vector(const Foam::zero);
|
||||
|
||||
@ -28,11 +28,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Vector<Cmpt>::Vector()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Vector<Cmpt>::Vector(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -73,10 +73,19 @@ public:
|
||||
enum components { X, Y };
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline Vector2D();
|
||||
//- Default construct
|
||||
Vector2D() = default;
|
||||
|
||||
//- Copy construct
|
||||
Vector2D(const Vector2D&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
Vector2D& operator=(const Vector2D&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct initialized to zero
|
||||
inline Vector2D(const Foam::zero);
|
||||
|
||||
@ -28,11 +28,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Vector2D<Cmpt>::Vector2D()
|
||||
{}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Foam::Vector2D<Cmpt>::Vector2D(const Foam::zero)
|
||||
:
|
||||
|
||||
@ -90,14 +90,26 @@ class complex
|
||||
|
||||
public:
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
complex(const complex&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
complex& operator=(const complex&) = default;
|
||||
|
||||
//- Move construct
|
||||
complex(complex&&) = default;
|
||||
|
||||
//- Move assignment
|
||||
complex& operator=(complex&&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null as zero-initialized
|
||||
//- Default construct, as zero-initialized
|
||||
inline constexpr complex() noexcept;
|
||||
|
||||
//- Default copy constructor
|
||||
complex(const complex&) = default;
|
||||
|
||||
//- Construct zero-initialized from zero class
|
||||
inline constexpr complex(const Foam::zero) noexcept;
|
||||
|
||||
@ -173,9 +185,6 @@ public:
|
||||
}
|
||||
|
||||
|
||||
//- Copy assignment
|
||||
inline void operator=(const complex& c);
|
||||
|
||||
//- Assign zero
|
||||
inline void operator=(const Foam::zero);
|
||||
|
||||
|
||||
@ -116,13 +116,6 @@ inline Foam::complex Foam::complex::conjugate() const
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
inline void Foam::complex::operator=(const complex& c)
|
||||
{
|
||||
re = c.re;
|
||||
im = c.im;
|
||||
}
|
||||
|
||||
|
||||
inline void Foam::complex::operator=(const Foam::zero)
|
||||
{
|
||||
re = 0;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,7 +28,6 @@ License
|
||||
|
||||
#include "CSV.H"
|
||||
#include "DynamicList.H"
|
||||
//#include "IFstream.H"
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
@ -36,7 +35,7 @@ template<>
|
||||
Foam::label Foam::Function1Types::CSV<Foam::label>::readValue
|
||||
(
|
||||
const List<string>& splitted
|
||||
)
|
||||
) const
|
||||
{
|
||||
if (componentColumns_[0] >= splitted.size())
|
||||
{
|
||||
@ -54,7 +53,7 @@ template<>
|
||||
Foam::scalar Foam::Function1Types::CSV<Foam::scalar>::readValue
|
||||
(
|
||||
const List<string>& splitted
|
||||
)
|
||||
) const
|
||||
{
|
||||
if (componentColumns_[0] >= splitted.size())
|
||||
{
|
||||
@ -69,7 +68,10 @@ Foam::scalar Foam::Function1Types::CSV<Foam::scalar>::readValue
|
||||
|
||||
|
||||
template<class Type>
|
||||
Type Foam::Function1Types::CSV<Type>::readValue(const List<string>& splitted)
|
||||
Type Foam::Function1Types::CSV<Type>::readValue
|
||||
(
|
||||
const List<string>& splitted
|
||||
) const
|
||||
{
|
||||
Type result;
|
||||
|
||||
@ -94,7 +96,6 @@ template<class Type>
|
||||
void Foam::Function1Types::CSV<Type>::read()
|
||||
{
|
||||
fileName expandedFile(fName_);
|
||||
//IFstream is(expandedFile.expand());
|
||||
autoPtr<ISstream> isPtr(fileHandler().NewIFstream(expandedFile.expand()));
|
||||
ISstream& is = isPtr();
|
||||
|
||||
@ -214,17 +215,24 @@ Foam::Function1Types::CSV<Type>::CSV
|
||||
TableBase<Type>(entryName, dict),
|
||||
nHeaderLine_(dict.get<label>("nHeaderLine")),
|
||||
refColumn_(dict.get<label>("refColumn")),
|
||||
componentColumns_(dict.lookup("componentColumns")),
|
||||
separator_(dict.lookupOrDefault<string>("separator", ",")[0]),
|
||||
componentColumns_(),
|
||||
separator_(dict.getOrDefault<string>("separator", ",")[0]),
|
||||
mergeSeparators_(dict.get<bool>("mergeSeparators")),
|
||||
fName_(fName.empty() ? dict.get<fileName>("file") : fName)
|
||||
{
|
||||
// Writing of "componentColumns" was forced to be ASCII,
|
||||
// do the same when reading
|
||||
ITstream& is = dict.lookup("componentColumns");
|
||||
is.format(IOstream::ASCII);
|
||||
is >> componentColumns_;
|
||||
dict.checkITstream(is, "componentColumns");
|
||||
|
||||
if (componentColumns_.size() != pTraits<Type>::nComponents)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
FatalIOErrorInFunction(dict)
|
||||
<< componentColumns_ << " does not have the expected length of "
|
||||
<< pTraits<Type>::nComponents << endl
|
||||
<< exit(FatalError);
|
||||
<< pTraits<Type>::nComponents << nl
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
|
||||
read();
|
||||
@ -246,13 +254,6 @@ Foam::Function1Types::CSV<Type>::CSV(const CSV<Type>& csv)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
Foam::Function1Types::CSV<Type>::~CSV()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2017 OpenCFD Ltd.
|
||||
Copyright (C) 2017-2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -105,7 +105,7 @@ class CSV
|
||||
void read();
|
||||
|
||||
//- Read the next value from the splitted string
|
||||
Type readValue(const List<string>&);
|
||||
Type readValue(const List<string>& splitted) const;
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const CSV<Type>&) = delete;
|
||||
@ -138,7 +138,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~CSV();
|
||||
virtual ~CSV() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -151,11 +151,12 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// Template specialisations
|
||||
template<>
|
||||
label CSV<label>::readValue(const List<string>& splitted);
|
||||
label CSV<label>::readValue(const List<string>& splitted) const;
|
||||
|
||||
template<>
|
||||
Foam::scalar CSV<scalar>::readValue(const List<string>& splitted);
|
||||
Foam::scalar CSV<scalar>::readValue(const List<string>& splitted) const;
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -63,18 +63,21 @@ class Uniform
|
||||
:
|
||||
public Constant<Type>
|
||||
{
|
||||
// Private Member Functions
|
||||
public:
|
||||
|
||||
//- Declare type-name, virtual type (with debug switch)
|
||||
TypeName("uniform");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
Uniform<Type>(const Uniform&) = default;
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const Uniform<Type>&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Runtime type information
|
||||
TypeName("uniform");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from entry name and dictionary
|
||||
|
||||
@ -43,18 +43,6 @@ Foam::Polynomial<PolySize>::Polynomial()
|
||||
}
|
||||
|
||||
|
||||
template<int PolySize>
|
||||
Foam::Polynomial<PolySize>::Polynomial
|
||||
(
|
||||
const Polynomial<PolySize>& poly
|
||||
)
|
||||
:
|
||||
VectorSpace<Polynomial<PolySize>, scalar, PolySize>(poly),
|
||||
logActive_(poly.logActive_),
|
||||
logCoeff_(poly.logCoeff_)
|
||||
{}
|
||||
|
||||
|
||||
template<int PolySize>
|
||||
Foam::Polynomial<PolySize>::Polynomial(const scalar coeffs[PolySize])
|
||||
:
|
||||
|
||||
@ -108,9 +108,6 @@ public:
|
||||
//- Construct null, with all coefficients = 0.0
|
||||
Polynomial();
|
||||
|
||||
//- Copy constructor
|
||||
Polynomial(const Polynomial&);
|
||||
|
||||
//- Construct from C-array of coefficients
|
||||
explicit Polynomial(const scalar coeffs[PolySize]);
|
||||
|
||||
|
||||
@ -88,6 +88,16 @@ public:
|
||||
static const vectorTensorTransform I;
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
vectorTensorTransform(const vectorTensorTransform&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
vectorTensorTransform&
|
||||
operator=(const vectorTensorTransform&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
@ -151,11 +161,11 @@ public:
|
||||
tmp<Field<Type>> transform(const Field<Type>&) const;
|
||||
|
||||
|
||||
// Member operators
|
||||
// Member Operators
|
||||
|
||||
inline void operator=(const vectorTensorTransform&);
|
||||
inline void operator&=(const vectorTensorTransform&);
|
||||
|
||||
//- Assign translation
|
||||
inline void operator=(const vector&);
|
||||
inline void operator+=(const vector&);
|
||||
inline void operator-=(const vector&);
|
||||
|
||||
@ -173,17 +173,6 @@ inline Foam::pointField Foam::vectorTensorTransform::invTransformPosition
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
inline void Foam::vectorTensorTransform::operator=
|
||||
(
|
||||
const vectorTensorTransform& tr
|
||||
)
|
||||
{
|
||||
t_ = tr.t_;
|
||||
R_ = tr.R_;
|
||||
hasR_ = tr.hasR_;
|
||||
}
|
||||
|
||||
|
||||
inline void Foam::vectorTensorTransform::operator&=
|
||||
(
|
||||
const vectorTensorTransform& tr
|
||||
|
||||
@ -68,7 +68,7 @@ static inline uint32_t swapBytes(uint32_t n)
|
||||
// *(uint32_t *) cp = val
|
||||
static inline void set_uint32(unsigned char *dst, uint32_t v)
|
||||
{
|
||||
memcpy(dst, &v, sizeof(uint32_t));
|
||||
std::memcpy(dst, &v, sizeof(uint32_t));
|
||||
}
|
||||
//! \endcond
|
||||
|
||||
@ -96,7 +96,7 @@ void Foam::SHA1::processBytes(const void *data, size_t len)
|
||||
|
||||
unsigned char* bufp = reinterpret_cast<unsigned char*>(buffer_);
|
||||
|
||||
memcpy(&bufp[remaining], data, add);
|
||||
std::memcpy(&bufp[remaining], data, add);
|
||||
bufLen_ += add;
|
||||
|
||||
if (bufLen_ > 64)
|
||||
@ -106,7 +106,7 @@ void Foam::SHA1::processBytes(const void *data, size_t len)
|
||||
bufLen_ &= 63;
|
||||
// The regions in the following copy operation do not
|
||||
// (cannot) overlap
|
||||
memcpy(buffer_, &bufp[(remaining + add) & ~63], bufLen_);
|
||||
std::memcpy(buffer_, &bufp[(remaining + add) & ~63], bufLen_);
|
||||
}
|
||||
|
||||
data = reinterpret_cast<const unsigned char*>(data) + add;
|
||||
@ -116,7 +116,7 @@ void Foam::SHA1::processBytes(const void *data, size_t len)
|
||||
// Process available complete blocks
|
||||
while (len >= 64)
|
||||
{
|
||||
processBlock(memcpy(buffer_, data, 64), 64);
|
||||
processBlock(std::memcpy(buffer_, data, 64), 64);
|
||||
data = reinterpret_cast<const unsigned char*>(data) + 64;
|
||||
len -= 64;
|
||||
}
|
||||
@ -127,13 +127,13 @@ void Foam::SHA1::processBytes(const void *data, size_t len)
|
||||
unsigned char* bufp = reinterpret_cast<unsigned char*>(buffer_);
|
||||
size_t remaining = bufLen_;
|
||||
|
||||
memcpy(&bufp[remaining], data, len);
|
||||
std::memcpy(&bufp[remaining], data, len);
|
||||
remaining += len;
|
||||
if (remaining >= 64)
|
||||
{
|
||||
processBlock(buffer_, 64);
|
||||
remaining -= 64;
|
||||
memcpy(buffer_, &buffer_[16], remaining);
|
||||
std::memcpy(buffer_, &buffer_[16], remaining);
|
||||
}
|
||||
bufLen_ = remaining;
|
||||
}
|
||||
@ -356,7 +356,7 @@ bool Foam::SHA1::finalize()
|
||||
|
||||
unsigned char* bufp = reinterpret_cast<unsigned char *>(buffer_);
|
||||
|
||||
memcpy(&bufp[bytes], fillbuf, (size-2) * sizeof(uint32_t) - bytes);
|
||||
std::memcpy(&bufp[bytes], fillbuf, (size-2) * sizeof(uint32_t) - bytes);
|
||||
|
||||
// Process remaining bytes
|
||||
processBlock(buffer_, size * sizeof(uint32_t));
|
||||
|
||||
@ -128,10 +128,19 @@ public:
|
||||
static const quaternion I;
|
||||
|
||||
|
||||
// Constructors
|
||||
// Generated Methods
|
||||
|
||||
//- Construct null
|
||||
inline quaternion();
|
||||
//- Default construct
|
||||
quaternion() = default;
|
||||
|
||||
//- Copy construct
|
||||
quaternion(const quaternion&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
quaternion& operator=(const quaternion&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct zero initialized
|
||||
inline quaternion(const Foam::zero);
|
||||
@ -223,7 +232,6 @@ public:
|
||||
|
||||
// Member Operators
|
||||
|
||||
inline void operator=(const quaternion& q);
|
||||
inline void operator+=(const quaternion& q);
|
||||
inline void operator-=(const quaternion& q);
|
||||
inline void operator*=(const quaternion& q);
|
||||
|
||||
@ -28,10 +28,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
inline Foam::quaternion::quaternion()
|
||||
{}
|
||||
|
||||
|
||||
inline Foam::quaternion::quaternion(const Foam::zero)
|
||||
:
|
||||
w_(Zero),
|
||||
@ -585,12 +581,6 @@ inline Foam::vector Foam::quaternion::eulerAngles
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
inline void Foam::quaternion::operator=(const quaternion& q)
|
||||
{
|
||||
w_ = q.w_;
|
||||
v_ = q.v_;
|
||||
}
|
||||
|
||||
inline void Foam::quaternion::operator+=(const quaternion& q)
|
||||
{
|
||||
w_ += q.w_;
|
||||
|
||||
@ -40,13 +40,9 @@ Foam::Random::Random(const label seedValue)
|
||||
{}
|
||||
|
||||
|
||||
Foam::Random::Random(const Random& r, const bool reset)
|
||||
Foam::Random::Random(const Random& rnd, const bool reset)
|
||||
:
|
||||
seed_(r.seed_),
|
||||
generator_(r.generator_),
|
||||
uniform01_(),
|
||||
hasGaussSample_(r.hasGaussSample_),
|
||||
gaussSample_(r.gaussSample_)
|
||||
Random(rnd)
|
||||
{
|
||||
if (reset)
|
||||
{
|
||||
|
||||
@ -90,12 +90,8 @@ public:
|
||||
//- Construct with seed value
|
||||
Random(const label seedValue = 123456);
|
||||
|
||||
//- Copy construct with optional reset of seed
|
||||
Random(const Random& r, const bool reset = false);
|
||||
|
||||
|
||||
//- Destructor
|
||||
~Random() = default;
|
||||
//- Copy construct with possible reset of seed
|
||||
Random(const Random& rnd, const bool reset);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -86,10 +86,22 @@ public:
|
||||
static const septernion I;
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Default construct
|
||||
septernion() = default;
|
||||
|
||||
//- Copy construct
|
||||
septernion(const septernion&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
septernion& operator=(const septernion&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
inline septernion();
|
||||
//- Construct zero initialized
|
||||
inline septernion(const Foam::zero);
|
||||
|
||||
//- Construct given a translation vector and rotation quaternion
|
||||
inline septernion(const vector& t, const quaternion& r);
|
||||
@ -130,9 +142,8 @@ public:
|
||||
inline vector invTransformPoint(const vector& v) const;
|
||||
|
||||
|
||||
// Member operators
|
||||
// Member Operators
|
||||
|
||||
inline void operator=(const septernion&);
|
||||
inline void operator*=(const septernion&);
|
||||
|
||||
inline void operator=(const vector&);
|
||||
|
||||
@ -27,7 +27,10 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
inline Foam::septernion::septernion()
|
||||
inline Foam::septernion::septernion(const Foam::zero)
|
||||
:
|
||||
t_(Zero),
|
||||
r_(Zero)
|
||||
{}
|
||||
|
||||
inline Foam::septernion::septernion(const vector& t, const quaternion& r)
|
||||
@ -95,12 +98,6 @@ inline Foam::vector Foam::septernion::invTransformPoint(const vector& v) const
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
inline void Foam::septernion::operator=(const septernion& tr)
|
||||
{
|
||||
t_ = tr.t_;
|
||||
r_ = tr.r_;
|
||||
}
|
||||
|
||||
inline void Foam::septernion::operator*=(const septernion& tr)
|
||||
{
|
||||
t_ = tr.t() + tr.r().invTransform(t_);
|
||||
|
||||
@ -574,7 +574,7 @@ void Foam::UPstream::allToAll
|
||||
<< " does not equal bytes to receive " << recvSizes[0]
|
||||
<< Foam::abort(FatalError);
|
||||
}
|
||||
memmove(recvData, &sendData[sendOffsets[0]], recvSizes[0]);
|
||||
std::memmove(recvData, &sendData[sendOffsets[0]], recvSizes[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -640,7 +640,7 @@ void Foam::UPstream::gather
|
||||
|
||||
if (!UPstream::parRun())
|
||||
{
|
||||
memmove(recvData, sendData, sendSize);
|
||||
std::memmove(recvData, sendData, sendSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -703,7 +703,7 @@ void Foam::UPstream::scatter
|
||||
|
||||
if (!UPstream::parRun())
|
||||
{
|
||||
memmove(recvData, sendData, recvSize);
|
||||
std::memmove(recvData, sendData, recvSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -59,34 +59,14 @@ Foam::boundaryPatch::boundaryPatch
|
||||
{}
|
||||
|
||||
|
||||
Foam::boundaryPatch::boundaryPatch(const boundaryPatch& p)
|
||||
:
|
||||
patchIdentifier(p.name(), p.index(), p.physicalType()),
|
||||
size_(p.size()),
|
||||
start_(p.start())
|
||||
{}
|
||||
|
||||
|
||||
Foam::boundaryPatch::boundaryPatch(const boundaryPatch& p, const label index)
|
||||
:
|
||||
patchIdentifier(p.name(), index, p.physicalType()),
|
||||
size_(p.size()),
|
||||
start_(p.start())
|
||||
{}
|
||||
|
||||
|
||||
Foam::autoPtr<Foam::boundaryPatch> Foam::boundaryPatch::clone() const
|
||||
boundaryPatch(p)
|
||||
{
|
||||
return autoPtr<boundaryPatch>::New(*this);
|
||||
patchIdentifier::index() = index;
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::boundaryPatch::~boundaryPatch()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::boundaryPatch::write(Ostream& os) const
|
||||
|
||||
@ -88,18 +88,15 @@ public:
|
||||
const label index
|
||||
);
|
||||
|
||||
//- Construct as copy
|
||||
boundaryPatch(const boundaryPatch&);
|
||||
//- Copy construct, resetting the index
|
||||
boundaryPatch(const boundaryPatch& p, const label index);
|
||||
|
||||
//- Construct as copy, resetting the index
|
||||
boundaryPatch(const boundaryPatch&, const label index);
|
||||
|
||||
//- Clone
|
||||
autoPtr<boundaryPatch> clone() const;
|
||||
|
||||
|
||||
//- Destructor
|
||||
~boundaryPatch();
|
||||
autoPtr<boundaryPatch> clone() const
|
||||
{
|
||||
return autoPtr<boundaryPatch>::New(*this);
|
||||
}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -141,9 +141,6 @@ public:
|
||||
const vector& n
|
||||
);
|
||||
|
||||
//- Construct as copy
|
||||
inline directionInfo(const directionInfo&);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
|
||||
@ -51,14 +51,6 @@ inline Foam::directionInfo::directionInfo
|
||||
{}
|
||||
|
||||
|
||||
// Construct as copy
|
||||
inline Foam::directionInfo::directionInfo(const directionInfo& w2)
|
||||
:
|
||||
index_(w2.index()),
|
||||
n_(w2.n())
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class TrackingData>
|
||||
|
||||
@ -89,8 +89,7 @@ public:
|
||||
//- Construct from normal
|
||||
inline wallNormalInfo(const vector& normal);
|
||||
|
||||
//- Construct as copy
|
||||
inline wallNormalInfo(const wallNormalInfo&);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
|
||||
@ -74,13 +74,6 @@ inline Foam::wallNormalInfo::wallNormalInfo(const vector& normal)
|
||||
{}
|
||||
|
||||
|
||||
// Construct as copy
|
||||
inline Foam::wallNormalInfo::wallNormalInfo(const wallNormalInfo& wpt)
|
||||
:
|
||||
normal_(wpt.normal())
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
inline const Foam::vector& Foam::wallNormalInfo::normal() const
|
||||
|
||||
@ -124,9 +124,6 @@ public:
|
||||
//- Construct from origin, distance
|
||||
inline externalPointEdgePoint(const point&, const scalar);
|
||||
|
||||
//- Construct as copy
|
||||
inline externalPointEdgePoint(const externalPointEdgePoint&);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
|
||||
@ -135,16 +135,6 @@ inline Foam::externalPointEdgePoint::externalPointEdgePoint
|
||||
{}
|
||||
|
||||
|
||||
inline Foam::externalPointEdgePoint::externalPointEdgePoint
|
||||
(
|
||||
const externalPointEdgePoint& wpt
|
||||
)
|
||||
:
|
||||
origin_(wpt.origin()),
|
||||
distSqr_(wpt.distSqr())
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
inline const Foam::point& Foam::externalPointEdgePoint::origin() const
|
||||
|
||||
@ -112,6 +112,12 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
ignitionSite(const ignitionSite&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from Istream and database
|
||||
|
||||
@ -166,19 +166,15 @@ Foam::Ostream& Foam::ensightFile::write
|
||||
|
||||
Foam::Ostream& Foam::ensightFile::write(const char* value)
|
||||
{
|
||||
// Parentheses around strncpy to silence the GCC -Wstringop-truncation
|
||||
// warning, which is spurious here.
|
||||
// The max-size and buffer-size *are* identical, which means the buffer
|
||||
// may not have a nul terminator. However, this is properly handled in
|
||||
// the subsequent binary write and the ASCII write explicitly adds
|
||||
// a nul terminator.
|
||||
// Output 80 chars, but allocate for trailing nul character
|
||||
// to avoid -Wstringop-truncation warnings/errors.
|
||||
|
||||
char buf[80];
|
||||
(strncpy(buf, value, 80)); // max 80 chars or padded with nul if smaller
|
||||
char buf[80+1];
|
||||
strncpy(buf, value, 80); // max 80 chars or padded with nul if smaller
|
||||
|
||||
if (format() == IOstream::BINARY)
|
||||
{
|
||||
write(buf, sizeof(buf));
|
||||
write(buf, 80);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -56,25 +56,37 @@ Foam::Istream& Foam::ensightReadFile::read(string& value)
|
||||
{
|
||||
if (format() == IOstream::BINARY)
|
||||
{
|
||||
char buf[80];
|
||||
auto& iss = stdStream();
|
||||
|
||||
read(reinterpret_cast<char*>(buf), sizeof(buf));
|
||||
// Binary string is *exactly* 80 characters
|
||||
value.resize(80, '\0');
|
||||
iss.read(&value[0], 80);
|
||||
|
||||
string strBuf(value);
|
||||
|
||||
const size_t iEnd = strBuf.find('\0', 0);
|
||||
if (iEnd == string::npos)
|
||||
if (!iss)
|
||||
{
|
||||
value = buf;
|
||||
// Truncated - could also exit here, but no real advantage
|
||||
value.erase(iss.gcount());
|
||||
}
|
||||
else
|
||||
|
||||
// Truncate at the first embedded '\0'
|
||||
auto endp = value.find('\0');
|
||||
|
||||
if (endp != std::string::npos)
|
||||
{
|
||||
value = strBuf.substr(0, iEnd - 1);
|
||||
value.erase(endp);
|
||||
}
|
||||
|
||||
// May have been padded with trailing spaces - remove those
|
||||
endp = value.find_last_not_of(" \t\f\v\n\r");
|
||||
|
||||
if (endp != std::string::npos)
|
||||
{
|
||||
value.erase(endp + 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
value = "";
|
||||
value.clear();
|
||||
while (value.empty() && !eof())
|
||||
{
|
||||
getLine(value);
|
||||
|
||||
@ -111,10 +111,7 @@ Foam::zeroGradientFaPatchField<Type>::valueInternalCoeffs
|
||||
const tmp<scalarField>&
|
||||
) const
|
||||
{
|
||||
return tmp<Field<Type>>
|
||||
(
|
||||
new Field<Type>(this->size(), Zero)
|
||||
);
|
||||
return tmp<Field<Type>>::New(this->size(), pTraits<Type>::one);
|
||||
}
|
||||
|
||||
|
||||
@ -125,10 +122,7 @@ Foam::zeroGradientFaPatchField<Type>::valueBoundaryCoeffs
|
||||
const tmp<scalarField>&
|
||||
) const
|
||||
{
|
||||
return tmp<Field<Type>>
|
||||
(
|
||||
new Field<Type>(this->size(), Zero)
|
||||
);
|
||||
return tmp<Field<Type>>::New(this->size(), Zero);
|
||||
}
|
||||
|
||||
|
||||
@ -136,10 +130,7 @@ template<class Type>
|
||||
Foam::tmp<Foam::Field<Type>>
|
||||
Foam::zeroGradientFaPatchField<Type>::gradientInternalCoeffs() const
|
||||
{
|
||||
return tmp<Field<Type>>
|
||||
(
|
||||
new Field<Type>(this->size(), Zero)
|
||||
);
|
||||
return tmp<Field<Type>>::New(this->size(), Zero);
|
||||
}
|
||||
|
||||
|
||||
@ -147,10 +138,7 @@ template<class Type>
|
||||
Foam::tmp<Foam::Field<Type>>
|
||||
Foam::zeroGradientFaPatchField<Type>::gradientBoundaryCoeffs() const
|
||||
{
|
||||
return tmp<Field<Type>>
|
||||
(
|
||||
new Field<Type>(this->size(), Zero)
|
||||
);
|
||||
return tmp<Field<Type>>::New(this->size(), Zero);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -96,11 +96,11 @@ Foam::turbulentDigitalFilterInletFvPatchVectorField::patchIndexPairs()
|
||||
const vector nf(computePatchNormal());
|
||||
|
||||
// Find the second local coordinate direction
|
||||
direction minCmpt = -1;
|
||||
scalar minMag = VGREAT;
|
||||
for (direction cmpt = 0; cmpt < pTraits<vector>::nComponents; ++cmpt)
|
||||
direction minCmpt = 0;
|
||||
scalar minMag = mag(nf[minCmpt]);
|
||||
for (direction cmpt = 1; cmpt < pTraits<vector>::nComponents; ++cmpt)
|
||||
{
|
||||
scalar s = mag(nf[cmpt]);
|
||||
const scalar s = mag(nf[cmpt]);
|
||||
if (s < minMag)
|
||||
{
|
||||
minMag = s;
|
||||
@ -110,7 +110,7 @@ Foam::turbulentDigitalFilterInletFvPatchVectorField::patchIndexPairs()
|
||||
|
||||
// Create the second local coordinate direction
|
||||
vector e2(Zero);
|
||||
e2[minCmpt] = 1.0;
|
||||
e2[minCmpt] = 1;
|
||||
|
||||
// Remove normal component
|
||||
e2 -= (nf&e2)*nf;
|
||||
@ -147,17 +147,14 @@ Foam::turbulentDigitalFilterInletFvPatchVectorField::patchIndexPairs()
|
||||
// Compute virtual-actual patch index pairs
|
||||
List<Pair<label>> indexPairs(this->size(), Pair<label>(Zero, Zero));
|
||||
|
||||
// Virtual turbulence plane indices
|
||||
label j = 0;
|
||||
label k = 0;
|
||||
|
||||
forAll(*this, facei)
|
||||
{
|
||||
const scalar& centre0 = localPos[facei][0];
|
||||
const scalar& centre1 = localPos[facei][1];
|
||||
|
||||
j = label((centre0 - localMinPt[0])*invDelta_[0]);
|
||||
k = label((centre1 - localMinPt[1])*invDelta_[1]);
|
||||
// Virtual turbulence plane indices
|
||||
const label j = label((centre0 - localMinPt[0])*invDelta_[0]);
|
||||
const label k = label((centre1 - localMinPt[1])*invDelta_[1]);
|
||||
|
||||
indexPairs[facei] = Pair<label>(facei, k*n[0] + j);
|
||||
}
|
||||
|
||||
@ -83,6 +83,15 @@ private:
|
||||
public:
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- Copy construct
|
||||
smoothData(const smoothData&) = default;
|
||||
|
||||
//- Copy assignment
|
||||
smoothData& operator=(const smoothData&) = default;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user