ENH: avoid parse problems caused by #calc directives (fixes #722)
- The additional output generated by #calc directives in the controlDict or decomposeParDict causes issues for the RunFunctions extraction of 'application' and 'numberOfSubdomains'. Avoid by using -disableFunctionEntries, which also has the side-effect of disabling '#include'.
This commit is contained in:
parent
0c5f36f40a
commit
d637b6eb78
@ -3,7 +3,7 @@
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2016-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
|
||||
\\/ M anipulation | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -334,7 +334,11 @@ int main(int argc, char *argv[])
|
||||
const bool disableEntries = args.found("disableFunctionEntries");
|
||||
if (disableEntries)
|
||||
{
|
||||
Info<< "Not expanding variables or dictionary directives" << endl;
|
||||
// Report on stderr (once) to avoid polluting the output
|
||||
if (Pstream::master())
|
||||
{
|
||||
Serr<< "Not expanding variables or dictionary directives" << endl;
|
||||
}
|
||||
entry::disableFunctionEntries = true;
|
||||
}
|
||||
|
||||
|
@ -56,6 +56,9 @@ notTest()
|
||||
# Extract 'numberOfSubdomains' from system/decomposeParDict
|
||||
# (or alternative location).
|
||||
#
|
||||
# Note that '#include' and other directives are disabled - only entries that
|
||||
# are in the dictionary are considered.
|
||||
#
|
||||
# On failure:
|
||||
# return '1'
|
||||
# exit status 1
|
||||
@ -65,13 +68,13 @@ getNumberOfProcessors()
|
||||
local dict="${1:-system/decomposeParDict}"
|
||||
|
||||
# Re-use positional parameters for automatic whitespace elimination
|
||||
set -- $(foamDictionary -entry numberOfSubdomains -value "$dict" 2>/dev/null)
|
||||
set -- $(foamDictionary -disableFunctionEntries -entry numberOfSubdomains -value "$dict" 2>/dev/null)
|
||||
|
||||
if [ "$#" -eq 1 ]
|
||||
then
|
||||
echo "$1"
|
||||
else
|
||||
echo "Warning no 'numberOfSubdomains' in '$dict'" 1>&2
|
||||
echo "Error getting 'numberOfSubdomains' from '$dict'" 1>&2
|
||||
echo 1 # serial as fallback
|
||||
return 1
|
||||
fi
|
||||
@ -81,6 +84,9 @@ getNumberOfProcessors()
|
||||
#
|
||||
# Extract 'application' from system/controlDict
|
||||
#
|
||||
# Note that '#include' and other directives are disabled - only entries that
|
||||
# are in the dictionary are considered.
|
||||
#
|
||||
# On failure:
|
||||
# return 'false' which is also a command (ie, shell builtin or /bin/false)
|
||||
# exit status 1
|
||||
@ -88,13 +94,13 @@ getNumberOfProcessors()
|
||||
getApplication()
|
||||
{
|
||||
# Re-use positional parameters for automatic whitespace elimination
|
||||
set -- $(foamDictionary -entry application -value system/controlDict)
|
||||
set -- $(foamDictionary -disableFunctionEntries -entry application -value system/controlDict)
|
||||
|
||||
if [ "$#" -eq 1 ]
|
||||
then
|
||||
echo "$1"
|
||||
else
|
||||
echo "Error retrieving 'application' from controlDict" 1>&2
|
||||
echo "Error getting 'application' from system/controlDict" 1>&2
|
||||
echo false
|
||||
return 1
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user