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]
A = [ 1 2 4 2 3 5 4 5 6 ]
3 x 3, upper-triangular specification [1,2,3 ; 4,5 ; 6]
A = [ 1 2 3 2 4 5 3 5 6 ]
NoteSymmetric 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 A into the local spherical coordinate system Sph1, whose parent is the Laboratory coordinate system. Let R denote the 3 x 3 orthogonal matrix which transforms a vector v s from Sph1 into Laboratory coordinates. Then the mathematical form of this transformation is:

Figure 1. EQUATION_DISPLAY
A s = R T A R
(10)

The columns of R are the (position-dependent) local basis in Sph1.

The components of A s 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 A s with v s ,

Figure 2. EQUATION_DISPLAY
A s v s = R T A R v s
(11)

is therefore equivalent to transforming v s into the Laboratory frame, applying A , and then transforming the result back into Sph1. In STAR-CCM+, it is possible to verify that for any symmetric tensor A and any vector v (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

Figure 3. EQUATION_DISPLAY
( R T A R ) ( R T v ) = R T ( A v )
(12)

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
i i = a 00 i j = a 01 i k = a 02 j j = a 11 j k = a 12 k k = a 22
Local Cartesian
i i = a 00 i j = a 01 i k = a 02 j j = a 11 j k = a 12 k k = a 22
Cylindrical
r r = a 00 r θ = a 01 r z = a 02 θ θ = a 11 θ z = a 12 z z = a 22
Spherical
r r = a 00 r θ = a 01 r ϕ = a 02 θ θ = a 11 θ ϕ = a 12 ϕ ϕ = a 22