Symmetric Tensor Field Functions
STAR-CCM+ provides support for symmetric tensor-valued field functions. These functions are stored internally as six floating point values for a 3 x 3 symmetric matrix.
Symmetric tensor-valued field functions are currently only produced by the finite-element solid stress module, but they can be constructed and used for general calculations. Similar to vector-valued field functions, you can access individual components of symmetric tensors, perform coordinate transformations on them, and compute common algebraic operations on them.
Construction
In the field function expression editor, a symmetric tensor-valued variable must be prefixed with $$$.
Symmetric tensor variables are constructed in the following way:
Operation | Expression Syntax | Result |
---|---|---|
3 x 3, lower-triangular specification | [1 ; 2,3 ; 4,5,6] | |
3 x 3, upper-triangular specification | [1,2,3 ; 4,5 ; 6] |
Note | Symmetric tensors support all basic arithmetic operations, except for multiplication of two symmetric tensors. Multiplication of two symmetric tensors can result in a non-symmetric tensor and so the current version of STAR-CCM+ does not support this operation. |
Coordinate System Transformations
Symmetric tensors are transformed into a local coordinate system through similarity transformation. For example, the user-defined field function expression
$$$A( @CoordinateSystem("Laboratory.Sph1") )
transforms the symmetric tensor into the local spherical coordinate system Sph1, whose parent is the Laboratory coordinate system. Let denote the 3 x 3 orthogonal matrix which transforms a vector from Sph1 into Laboratory coordinates. Then the mathematical form of this transformation is:
The columns of are the (position-dependent) local basis in Sph1.
The components of are now with respect to the local basis at that particular location within Sph1. (Recall that the unit basis vectors of a local curvilinear coordinate system depend on the coordinate within that local frame.) The matrix-vector product of with ,
is therefore equivalent to transforming into the Laboratory frame, applying , and then transforming the result back into Sph1. In STAR-CCM+, it is possible to verify that for any symmetric tensor and any vector (both in the Laboratory frame), the expression
$$$A(@CoordinateSystem("Laboratory.Sph1")) *
$$v(@CoordinateSystem("Laboratory.Sph1"))
produces values that are identical to the ones that are produced by
($$$A*$$v)(@CoordinateSystem("Laboratory.Sph1"))
since
Coordinate System Components
When selecting a component of a symmetric tensor in each coordinate system, the following labels correspond to the appropriate matrix entry:
Coordinate System Type | Tensor Component |
---|---|
Laboratory | |
Local Cartesian | |
Cylindrical | |
Spherical |