122 lines
2.6 KiB
C++
122 lines
2.6 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: v2106 |
|
|
| \\ / A nd | Website: www.openfoam.com |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
object dictionary;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
// Test expansion with negative signs
|
|
|
|
value 0.5;
|
|
|
|
radius 3;
|
|
|
|
negValue -$value;
|
|
|
|
select1 10;
|
|
|
|
sqrt05 #eval{ sqrt(0.5) };
|
|
|
|
vector ( -10 ${{-$sqrt05}} $value );
|
|
|
|
corner ( ${{ -$radius*sqrt(0.5) }} 1 0 );
|
|
|
|
corner2 ${{
|
|
vector(-${radius}*sqrt(0.5), ${radius}*sqrt(0.5), 2)
|
|
}};
|
|
|
|
|
|
// Just a future idea (2021-05-14) - does not yet work!
|
|
#if 0
|
|
corner3 #eval #{
|
|
variables ( "outer = $radius*sqrt(0.5)" );
|
|
vector(-outer, outer, 2)
|
|
#};
|
|
#endif
|
|
|
|
|
|
// The brace-bracket #eval with multi-lines failed for v2012 and earlier
|
|
|
|
corner2b #eval
|
|
{
|
|
vector(-${radius}*sqrt(0.5), $radius*sqrt(0.5), 2)
|
|
};
|
|
|
|
corner2c #eval
|
|
${{
|
|
vector(-${radius}*sqrt(0.5), $radius*sqrt(0.5), 2)
|
|
}};
|
|
|
|
|
|
longSlurp #eval
|
|
{
|
|
// This is actually a very simple expression
|
|
1 + 2
|
|
// With a long comment that is stripped out
|
|
// during reading anyhow.
|
|
};
|
|
|
|
|
|
longVariable
|
|
${{
|
|
// This is actually a very simple expression in variable syntax
|
|
1 + 2
|
|
/*
|
|
// With a long comment that is stripped out
|
|
// during reading anyhow.
|
|
*/
|
|
}};
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
// Geometric parameters
|
|
rxo 2;
|
|
ryo 3;
|
|
rzo 4;
|
|
|
|
// Geometric parameters
|
|
outerRadius 1;
|
|
innerRatio 0.75;
|
|
|
|
geometry
|
|
{
|
|
sphere
|
|
{
|
|
type sphere;
|
|
origin (0 0 0);
|
|
radius ($rxo $ryo $rzo);
|
|
}
|
|
|
|
innerSphere
|
|
{
|
|
$sphere
|
|
|
|
// Different solutions to the same problem
|
|
radius_v1
|
|
(
|
|
${{ $innerRatio*$rxo }}
|
|
${{ $innerRatio*$ryo }}
|
|
${{ $innerRatio*$rzo }}
|
|
);
|
|
|
|
radius_v2 #eval{ $innerRatio*vector($rxo, $ryo, $rzo) };
|
|
radius_v3 ${{ $innerRatio*$[(vector) ../sphere/radius] }};
|
|
|
|
// Inplace overwrite the same value
|
|
radius ${{ $innerRatio*$[(vector) radius] }};
|
|
}
|
|
}
|
|
|
|
|
|
// ************************************************************************* //
|