/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: dev \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { format ascii; class dictionary; object testCalc; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // a 1.1; b 3.2; c #calc "$a*$b"; // Special care is required for calc entries that include a division since // "/" is also used as the scoping operator to identify keywords in // sub-dictionaries. For example, "$a/b" expects a keyword "b" within a // sub-dictionary named "a". A division can be correctly executed by using a // space between a variables and "/", e.g. c #calc "$a / $b"; // or bracketing the variable, e.g. c #calc "($a)/$b"; s "field"; fieldName #calc "$s + \"Name\" "; // Additional include files for the #calc code compilation can be specified // using the #calcInclude entry, e.g. if functions from transform.H are used angleOfAttack 5; // degs angle #calc "-degToRad($angleOfAttack)"; #calcInclude "transform.H" liftDir #calc "transform(Ry($angle), vector(0, 0, 1))"; dragDir #calc "transform(Ry($angle), vector(1, 0, 0))"; // Calculate the magnitude of the velocity and turbulent kinetic energy // where the velocity is looked-up from testCalc2 magU #calc "mag($testCalc2!U)"; k #calc "1.5*magSqr(0.05*${${FOAM_CASE}/testCalc2!U})"; // If the code string is delimited by '#{...#}' multiple lines and multiple // code statements can be used to generate the entry using 'os << ...;'. // This is equivalent to #codeStream but with a more compact syntax. #calcInclude "transform.H" maxAngle 30; nAngles 7; Us #calc #{ const vector U($testCalc2!U); const int nAngles = $nAngles; const scalar angleStep = ($maxAngle)/(nAngles - 1); List Us(nAngles); for(int i=0; i>listU[1])"; // Field of vectors and scalars example #calcInclude "Field.H" magUs #calc "mag($>listU)"; magSqrU1 #calc "sqr($>magUs[1])"; #calcInclude "HashTable.H" namedU (U0 (1.1 2.1 1.1) U1 (2.1 3.2 4.1) U2 (4.3 5.3 0)); magU2 #calc "mag($>namedU[\"U2\"])"; // ************************************************************************* //