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 ==
, then the user should call toTensor(
Available syntaxes:
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(
toTensor(___,
[k11,
Description
\(\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} \)
\( \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