Merge branch 'feature-dictionary-checks' into develop

This commit is contained in:
Mark Olesen
2018-07-05 13:40:25 +02:00
42 changed files with 648 additions and 229 deletions

7
tutorials/IO/dictionary/Allrun Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
runApplication ./TestParsing "$@"
#------------------------------------------------------------------------------

View File

@ -0,0 +1,111 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
echo "dictionary input tests"
verbose=true
npass=0
nwarn=0
nfail=0
foamDictionary -help > /dev/null 2>&1 || {
echo "Error: non-functional foamDictionary"
exit 2
}
# Reduced verbosity in test mode?
if isTest "$@"
then
verbose=false
fi
for dict in \
good*.dict \
warn*.dict \
fatal*.dict \
;
do
[ -f "$dict" ] || continue # protect against bad globs
# capture stderr, ignore stdout
stderr=$(foamDictionary -keywords $dict 2>&1 >/dev/null)
exitCode=$?
case "$dict" in
*fatal*)
if [ $exitCode -eq 0 ]
then
echo "NOK did not detect fatal input $dict"
nfail=$(($fail + 1))
else
echo "OK detected fatal input $dict"
npass=$(($npass + 1))
fi
;;
*good*)
if [ $exitCode -eq 0 ]
then
npass=$(($npass + 1))
if [ "${#stderr}" -gt 0 ]
then
# count unexpected warnings
nwarn=$(($nwarn + 1))
echo "NOK unexpected warnings: $dict"
else
echo "OK good input $dict"
fi
else
echo "NOK failed input $dict"
nfail=$(($fail + 1))
fi
;;
*warn*)
if [ $exitCode -eq 0 ]
then
npass=$(($npass + 1))
if [ "${#stderr}" -gt 0 ]
then
echo "OK trapped warnings: $dict"
else
# count missing warnings
nwarn=$(($nwarn + 1))
echo "NOK missing expected warnings: $dict"
fi
else
nfail=$(($fail + 1))
echo "NOK failed (not warn) input $dict"
fi
;;
esac
if [ "$verbose" = true ] && [ "${#stderr}" -gt 0 ]
then
echo "================" 1>&2
echo "dictionary = $dict" 1>&2
echo "$stderr" 1>&2
echo "================" 1>&2
fi
done
echo "$npass passed"
echo "$nwarn warnings"
echo "$nfail failed"
if test $nfail -eq 0
then
echo
echo End
echo
else
exit 1
fi
#------------------------------------------------------------------------------

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
} // A stray '}' before any real entries
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // oops extra stray '}'
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
{
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict
{
{ key val; } // A stray '{}' pair after the first entries
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict
{
key1 value1;
key2 value2;
// oops no trailing '}'
// ************************************************************************* //

View File

@ -0,0 +1,34 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict1
{
key1 value1;
key2 value2;
}
} // oops extra stray '}'
dict2
{
key1 value1;
key2 value2;
}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict
{
key missing ending
}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict
{
key missing ending
// no closing } either
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
key missing ending
// ************************************************************************* //

View File

@ -0,0 +1 @@
// A dictionary file that exists, but without any tokens

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// A dictionary file without any tokens except the header
// ************************************************************************* //

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict1
{
key1 value1;
key2 value2;
}
dict2
{
key1 value1;
key2 value2;
}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dict
{
key with ending;
}
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
{} // A stray '{}' pair before any real entries
FoamFile
{
version 2;
format ascii;
class dictionary;
object dictionary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -49,13 +49,9 @@ functions
{
error
{
// Load the library containing the 'coded' functionObject
libs ("libutilityFunctionObjects.so");
type coded;
// Name of on-the-fly generated functionObject
name error;
name error;
type coded;
libs ("libutilityFunctionObjects.so");
codeEnd
#{

View File

@ -23,13 +23,13 @@ boundaryField
{
walls
{
type fixedValue;
value $internalField;
type fixedValue;
value $internalField;
}
cylinder
{
type codedFixedValue;
name pointDisplacementy_cylinder;
name pointDisplacementy_cylinder;
type codedFixedValue;
code
#{
const scalar t = this->db().time().value();
@ -37,21 +37,21 @@ boundaryField
const scalar f = 200;
operator==(a*sin(constant::mathematical::twoPi*f*t));
#};
value $internalField;
value $internalField;
}
"inlet.*"
{
type fixedValue;
value $internalField;
type fixedValue;
value $internalField;
}
outlet
{
type fixedValue;
value $internalField;
type fixedValue;
value $internalField;
}
frontAndBack
{
type empty;
type empty;
}
}

View File

@ -55,9 +55,9 @@ functions
{
timeStep
{
type coded;
libs ("libutilityFunctionObjects.so");
name setDeltaT;
name setDeltaT;
type coded;
libs ("libutilityFunctionObjects.so");
code
#{

View File

@ -19,10 +19,10 @@ functions
{
createVortex
{
type coded;
libs ("libutilityFunctionObjects.so");
name createVortices;
enabled yes;
name createVortices;
type coded;
libs ("libutilityFunctionObjects.so");
enabled yes;
codeInclude
#{

View File

@ -24,8 +24,8 @@ boundaryField
inlet
{
type codedFixedValue;
name swirl;
type codedFixedValue;
code
#{

View File

@ -8,8 +8,8 @@
inletMassFlowRate
{
type surfaceFieldValue;
libs ("libfieldFunctionObjects.so");
type surfaceFieldValue;
libs ("libfieldFunctionObjects.so");
fields
(
@ -31,8 +31,8 @@ inletMassFlowRate
outletMassFlowRate
{
type surfaceFieldValue;
libs ("libfieldFunctionObjects.so");
type surfaceFieldValue;
libs ("libfieldFunctionObjects.so");
fields
(
@ -54,9 +54,9 @@ outletMassFlowRate
totalMass
{
type coded;
libs ("libutilityFunctionObjects.so");
name error;
type coded;
libs ("libutilityFunctionObjects.so");
code
#{