The following applies to any line that is not a Power Syntax
or action line (that is, the line does not start with a !
or >)
.
Everything in the file is sensitive to case.
Case sensitivity is not ideal for typing in many long parameter
names, but it is essential for bringing the CFX Expression Language
(CEL) into CCL. This is because some names used to define CCL objects
(such as Fluids
, Materials
and Additional Variables
) are used to construct
corresponding CEL names.
For simplicity and consistency, the following is implemented:
Singletons and object types use upper case only.
Parameter names, and predefined object names, are mixed case. The CFX Expression Language tries to follow the following conventions:
Major words start with an upper case letter, while minor words such as prepositions and conjunctions are left in lower case (for example,
Mass Flow in
).Case is preserved for familiar names (for variables
k
orr
), or for abbreviationRNG
.
User object names conventions can be chosen arbitrarily by you.
Names of singletons, types of object, names of objects, and names of parameters all follow the same rules:
In simple syntax, a CCL name must be at least one character. This first character must be alphabetic; there may be any number of subsequent characters and these can be alphabetic, numeric, space or tab.
The effects of spaces in CCL names are:
Spaces appearing before or after a name are not considered to be part of the name.
Single spaces appearing inside a name are significant.
Multiple spaces and tabs appearing inside a name are treated as a single space.
The #
character is used for this. Any
text to the right of this character will be treated as comments. Any
characters may be used within comments.
If a line ends with the character \
, the following line will be linked to the existing line. There is
no restriction on the number of continuation lines.
A named object consists of an object type at the start of a
line, followed by a :
and an object name. Subsequent
lines may define parameters and child objects associated with this
object. The object definition is terminated by the string END
on a line by itself.
Object names must be unique within the given scope, and the name must not contain an underscore.
A singleton object consists of an object type at the start of
a line, followed by a :
. Subsequent lines may
define parameters and child objects associated with this object. The
object definition is terminated by the string END
on a line by itself.
The difference between a singleton object and a named object is that (after the data has been processed), a singleton can appear just once as the child of a parent object. However, there may be several instances of a named object of the same type defined with different names.
A parameter consists of a parameter name at the start of a line
followed by an =
character followed by
a parameter value. A parameter may belong to many different object
types. For example, U Velocity = 1.0 [m/s]
may belong to an initial value object and U Velocity =
2.0 [m/s]
may belong to a boundary condition
object. Both refer to the same definition of U velocity in the rules
file.
All parameter values are initially handled as data of type String, and should first of all conform to the following definition of allowed String values:
Any characters can be used in a parameter value.
String values or other parameter type values are normally unquoted. If any quotes are present, they are considered part of the value. Leading and trailing spaces are ignored. Internal spaces in parameter values are preserved as given, although a given application is free to subsequently assume a space condensation rule when using the data.
The characters
$
and#
have a special meaning. A string beginning with$
is evaluated as a Power Syntax variable, even if it occurs within a simple syntax statement. This is useful for performing more complex Power Syntax variable manipulation, and then using the result as part of a parameter or object definition. The appearance of#
anywhere in the CCL file denotes the start of a comment.The characters such as
[
,]
,{
, and}
are special only if used in conjunction with$
. Following a$
, such characters terminate the preceding Perl variable name.Other characters that might be special elsewhere in power syntax are escaped automatically when they appear in parameter values. For example,
@
,%
and&
are escaped automatically (that is, you do not need to precede these characters with the escape character\
when using them in parameter values).Parameter values can contain commas, but if the string is processed as a List or part of a List then the commas may be interpreted as separators (see below under List data types).
Some examples of valid parameter values using special characters in power syntax are:
Estimated cost = \$500 Title = Run\#1 Sys Command = "echo ’Starting up Stress solver’ ; fred.exe &" Pressure = $myArray[4] Option = $myHash{"foo"} Fuel = C${numberCatoms}H${numberHatoms}
Parameter values for data types other than String will additionally conform to one of the following definitions.
A list of string items separated by commas. Items in a String List should not contain a comma unless contained between parentheses. One exception can be made if the String List to be is interpreted as a Real List (see below). Otherwise, each item in the String List follows the same rules as String data.
names = one, two, three, four
Sequence of digits containing no spaces or commas. If a real is specified when an integer is needed, the real is rounded to the nearest integer.
A single-precision real number that may be specified in integer, floating point, or scientific format, followed optionally by a dimension. Units use the same syntax as CEL.
Expressions are allowed to include commas inside function call argument lists.
Example usage:
a = 12.24 a = 1.224E01 a = 12.24 [m s^-1]
A real may also be specified as an expression such as:
a = myvel^2 + b a = max(b,2.0)
List of reals, comma separated. Note that all items in the list must have the same dimensions. Items that are expressions may include commas inside function call argument lists, and the enclosed commas will be ignored when the list is parsed into individual items. Example usage:
a = 1.0 [m/s], 2.0 [m/s], 3.0 [m/s], 2.0*myvel, 4.0 [cm/s]
The list syntax 5*2.0
to represent
5 entries of the value 2.0 is not supported within CCL and hence within CFD-Post.
Several forms are acceptable: YES
, TRUE
, 1
or ON
are all equivalent; NO
or FALSE
or 0
or OFF
are all equivalent;
initial letter variants Y
, T
, N
, F
are accepted (O
is not accepted for On
/Off
); all case variants are accepted. Logical strings
are also case insensitive (YeS
, nO
).