mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'feature-dictionary-checks' into develop
This commit is contained in:
7
tutorials/IO/dictionary/Allrun
Executable file
7
tutorials/IO/dictionary/Allrun
Executable 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 "$@"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
111
tutorials/IO/dictionary/TestParsing
Executable file
111
tutorials/IO/dictionary/TestParsing
Executable 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
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
20
tutorials/IO/dictionary/fatal-ending1.dict
Normal file
20
tutorials/IO/dictionary/fatal-ending1.dict
Normal 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;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// ************************************************************************* //
|
||||
20
tutorials/IO/dictionary/fatal-ending2.dict
Normal file
20
tutorials/IO/dictionary/fatal-ending2.dict
Normal 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 '}'
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
21
tutorials/IO/dictionary/fatal-ending3.dict
Normal file
21
tutorials/IO/dictionary/fatal-ending3.dict
Normal 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;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
23
tutorials/IO/dictionary/fatal-ending4.dict
Normal file
23
tutorials/IO/dictionary/fatal-ending4.dict
Normal 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
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
25
tutorials/IO/dictionary/fatal-premature-ending1.dict
Normal file
25
tutorials/IO/dictionary/fatal-premature-ending1.dict
Normal 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 '}'
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
34
tutorials/IO/dictionary/fatal-premature-ending2.dict
Normal file
34
tutorials/IO/dictionary/fatal-premature-ending2.dict
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
23
tutorials/IO/dictionary/fatal-primitive-ending1.dict
Normal file
23
tutorials/IO/dictionary/fatal-primitive-ending1.dict
Normal 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
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
24
tutorials/IO/dictionary/fatal-primitive-ending2.dict
Normal file
24
tutorials/IO/dictionary/fatal-primitive-ending2.dict
Normal 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
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
20
tutorials/IO/dictionary/fatal-primitive-ending3.dict
Normal file
20
tutorials/IO/dictionary/fatal-primitive-ending3.dict
Normal 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
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
1
tutorials/IO/dictionary/good-empty1.dict
Normal file
1
tutorials/IO/dictionary/good-empty1.dict
Normal file
@ -0,0 +1 @@
|
||||
// A dictionary file that exists, but without any tokens
|
||||
20
tutorials/IO/dictionary/good-empty2.dict
Normal file
20
tutorials/IO/dictionary/good-empty2.dict
Normal 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
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
32
tutorials/IO/dictionary/good-ending1.dict
Normal file
32
tutorials/IO/dictionary/good-ending1.dict
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
23
tutorials/IO/dictionary/good-primitive-ending1.dict
Normal file
23
tutorials/IO/dictionary/good-primitive-ending1.dict
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
20
tutorials/IO/dictionary/missed-ending3.dict
Normal file
20
tutorials/IO/dictionary/missed-ending3.dict
Normal 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;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
#{
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -55,9 +55,9 @@ functions
|
||||
{
|
||||
timeStep
|
||||
{
|
||||
type coded;
|
||||
libs ("libutilityFunctionObjects.so");
|
||||
name setDeltaT;
|
||||
name setDeltaT;
|
||||
type coded;
|
||||
libs ("libutilityFunctionObjects.so");
|
||||
|
||||
code
|
||||
#{
|
||||
|
||||
@ -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
|
||||
#{
|
||||
|
||||
@ -24,8 +24,8 @@ boundaryField
|
||||
|
||||
inlet
|
||||
{
|
||||
type codedFixedValue;
|
||||
name swirl;
|
||||
type codedFixedValue;
|
||||
|
||||
code
|
||||
#{
|
||||
|
||||
@ -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
|
||||
#{
|
||||
|
||||
Reference in New Issue
Block a user