toTensor

Converts user inputs to tensor representation.

Syntax

The appropriate syntax to use depends on the isotropy and orient Layer properties. The inputStr Layer property specifies which base syntax to use. For example, if layer.inputStr == ["k⊥","k∥","θ_az","θ_pol"], then the user should call toTensor(layer,k⊥,k∥,θ_az,θ_pol)

Available syntaxes:

toTensor(layer,k)

toTensor(layer,k⊥,k∥,θ_az,θ_pol)
toTensor(layer,k⊥,k∥,v1,v2,v3)
toTensor(layer,k⊥,k∥,θa1,θb2)
toTensor(layer,k⊥,k∥,q1,q2,q3,q4)
toTensor(layer,k⊥,k∥,R11,R21,R31,R12,R22,R32,R13,R23,R33)

toTensor(layer,kp1,kp2,kp3,θa1,θb2,θc3)
toTensor(layer,kp1,kp2,kp3,q1,q2,q3,q4)
toTensor(layer,kp1,kp2,kp3,R11,R21,R31,R12,R22,R32,R13,R23,R33)

toTensor(layer,k11,k21,k31,k22,k32,k33)

toTensor(___,transform)
[k11,k21,k31,k22,k32,k33] = toTensor(___)

Description

toTensor(layer,k)

\(\mathbf{K} = \begin{bmatrix} k & 0 & 0 \\ 0 & k & 0 \\ 0 & 0 & k \end{bmatrix}\)


toTensor(layer,k⊥,k∥,θ_az,θ_pol)

\( \mathbf{K} = \mathbf{R} \begin{bmatrix} k_\perp & 0 & 0 \\ 0 & k_\perp & 0 \\ 0 & 0 & k_\parallel \end{bmatrix} \mathbf{R}^\mathsf{T} \)

where

\( \mathbf{R} = \mathbf{R}_z \left( \theta_\mathrm{az} \right) \mathbf{R}_y \left( \theta_\mathrm{pol} \right) \)


toTensor(layer,k⊥,k∥,v1,v2,v3)

\( \mathbf{K} = k_\perp \left( \mathbf{I} - \mathbf{v} \mathbf{v}^\mathsf{T} \right) + k_\parallel \mathbf{v} \mathbf{v}^\mathsf{T} \)


toTensor(layer,k⊥,k∥,θa1,θb2)

\( \mathbf{K} = \mathbf{R} \begin{bmatrix} k_\perp & 0 & 0 \\ 0 & k_\perp & 0 \\ 0 & 0 & k_\parallel \end{bmatrix} \mathbf{R}^\mathsf{T} \)

where

\( \mathbf{R} = \mathbf{R}_a \left( \theta_a^1 \right) \mathbf{R}_b \left( \theta_b^2 \right) \quad \mathrm{for} \quad a, b \in \left\{ x, y, z \right\} \)


toTensor(layer,k⊥,k∥,q1,q2,q3,q4)


toTensor(layer,k⊥,k∥,R11,R21,R31,R12,R22,R32,R13,R23,R33)

\( \mathbf{K} = \mathbf{R} \begin{bmatrix} k_\perp & 0 & 0 \\ 0 & k_\perp & 0 \\ 0 & 0 & k_\parallel \end{bmatrix} \mathbf{R}^\mathsf{T} \)


toTensor(layer,kp1,kp2,kp3,θa1,θb2,θc3)

\( \mathbf{K} = \mathbf{R} \begin{bmatrix} k_p^1 & 0 & 0 \\ 0 & k_p^2 & 0 \\ 0 & 0 & k_p^3 \end{bmatrix} \mathbf{R}^\mathsf{T} \)

where

\( \mathbf{R} = \mathbf{R}_a \left( \theta_a^1 \right) \mathbf{R}_b \left( \theta_b^2 \right) \mathbf{R}_c \left( \theta_c^3 \right) \quad \mathrm{for} \quad a, b, c \in \left\{ x, y, z \right\} \)


toTensor(layer,kp1,kp2,kp3,q1,q2,q3,q4)


toTensor(layer,kp1,kp2,kp3,R11,R21,R31,R12,R22,R32,R13,R23,R33)

\( \mathbf{K} = \mathbf{R} \begin{bmatrix} k_p^1 & 0 & 0 \\ 0 & k_p^2 & 0 \\ 0 & 0 & k_p^3 \end{bmatrix} \mathbf{R}^\mathsf{T} \)


toTensor(layer,k11,k21,k31,k22,k32,k33)


toTensor(___,transform) applies the function specified by transform to strictly-positive thermal conductivity variables (k, k⊥, k∥, kp1, kp2, kp3, k11, k22, k33) provided by the user prior to converting inputs to tensor representation.


[k11,k21,k31,k22,k32,k33] = toTensor(___) returns the 6 unique elements of the symmetric thermal conductivity tensor.

Input Arguments

layer - Input layer object Layer object

The input layer object defines the thermal conductivity of a material layer—whether isotropic, uniaxially anisotropic, or fully anisotropic—and specifies how conductivity is expressed in user inputs.

Data Type: Layer

transform – Transformation function function handle

The transformation function is applied to all strictly positive thermal conductivity variables (k, k⊥, k∥, kp1, kp2, kp3, k11, k22, k33) provided by the user before converting them to tensor representation.

The typical use case is the exponential transformation (@(x) exp(x)) when log_args is true inside the ForwardModel. However, any function handle may be provided. Remember that the transformation is applied only to the thermal conductivity variables listed above.

Data Type: function_handle

Conductivity Arguments:

k - Isotropic thermal conductivity \(N_T \times 1\) real vector | \(N_T \times N_\mathrm{pump}\) real matrix

Isotropic (scalar) thermal conductivity

Data Types: double | single

k⊥ - Transverse thermal conductivity \(N_T \times 1\) real vector | \(N_T \times N_\mathrm{pump}\) real matrix

Transverse (radial) thermal conductivity (uniaxial anisotropy)

Data Types: double | single

k∥ - Axial thermal conductivity \(N_T \times 1\) real vector | \(N_T \times N_\mathrm{pump}\) real matrix

Axial (longitudinal) thermal conductivity (uniaxial anisotropy)

Data Types: double | single

kpi - \(i\)-th principal thermal conductivity \(N_T \times 1\) real vector | \(N_T \times N_\mathrm{pump}\) real matrix

\(i\)-th principal thermal conductivity, with \(i \in \{1,2,3\}\)

Data Types: double | single

kij - \((i,j)\)-th tensor component \(N_T \times 1\) real vector | \(N_T \times N_\mathrm{pump}\) real matrix

\((i,j)\)-th component of the thermal conductivity tensor, with \(i,j \in \{1,2,3\}\)

Data Types: double | single

Orientation Arguments:

θ_az - Azimuthal angle \(1 \times N_\mathrm{pump}\) real vector

Azimuthal angle of the thermal conductivity axis of rotation (uniaxial anisotropy)

Data Types: double | single

θ_pol - Polar angle \(1 \times N_\mathrm{pump}\) real vector

Polar angle of the thermal conductivity axis of rotation (uniaxial anisotropy)

Data Types: double | single

vi - \(i\)-th unit vector component \(1 \times N_\mathrm{pump}\) real vector

\(i\)-th component of the unit vector along the thermal conductivity axis of rotation (uniaxial anisotropy), with \(i \in \{1,2,3\}\)

Data Types: double | single

θai - \(i\)-th Euler angle \(1 \times N_\mathrm{pump}\) real vector

\(i\)-th Euler rotation angle about the \(a\)-axis, defining the orientation of the principal thermal conductivity axes, with \(i \in \{1,2,3\}\), \(a \in \{x,y,z\}\)

Data Types: double | single

qi - \(i\)-th unit quaternion component \(1 \times N_\mathrm{pump}\) real vector

\(i\)-th component of the unit quaternion defining the orientation of the principal thermal conductivity axes, with \(i \in \{1,2,3,4\}\)

Data Types: double | single

Rij - \((i,j)\)-th rotation matrix component \(1 \times N_\mathrm{pump}\) real vector

\((i,j)\)-th component of the rotation matrix defining the orientation of the principal thermal conductivity axes, with \(i,j \in \{1,2,3\}\)

Data Types: double | single

Output Arguments

kij - \((i,j)\)-th tensor component \(N_T \times N_\mathrm{pump}\) real matrix

\((i,j)\)-th component of the thermal conductivity tensor, with \(i,j \in \{1,2,3\}\)

Data Types: double | single

Examples

See Also