Option Explicit
Sub drv()
Dim v3x3 As Variant
v3x3 = StiffnessMatrixOrient(151.7, 10.3, 0.25, 3.6, 55)
End Sub
Function StiffnessMatrixOrient(E1 As Double, E2 As Double, V12 As Double, G12 As Double, OrientationDegrees As Double) As Variant
Const cPI As Double = 3.14159265358979
Dim T(1 To 3, 1 To 3) As Double, T_Inverse As Variant, T_Transpose As Variant
Dim R(1 To 3, 1 To 3) As Double, R_Inverse As Variant, R_Transpose As Variant
Dim C(1 To 3, 1 To 3) As Double, S(1 To 3, 1 To 3) As Double
Dim SinRad As Double, CosRad As Double, v21 As Double
SinRad = Sin(OrientationDegrees * cPI / 180#)
CosRad = Cos(OrientationDegrees * cPI / 180#)
'T matrix
T(1, 1) = CosRad ^ 2
T(1, 2) = SinRad ^ 2
T(1, 3) = 2 * SinRad * CosRad
T(2, 1) = SinRad ^ 2
T(2, 2) = CosRad ^ 2
T(2, 3) = -2 * SinRad * CosRad
T(3, 1) = -SinRad * CosRad
T(3, 2) = SinRad * CosRad
T(3, 3) = CosRad ^ 2 - SinRad ^ 2
T_Inverse = Application.WorksheetFunction.MInverse(T())
T_Transpose = Application.WorksheetFunction.Transpose(T_Inverse)
'R matrix
R(1, 1) = 1#
R(1, 2) = 0#
R(1, 3) = 0#
R(2, 1) = 0#
R(2, 2) = 1#
R(2, 3) = 0#
R(3, 1) = 0#
R(3, 2) = 0#
R(3, 3) = 2#
R_Inverse = Application.WorksheetFunction.MInverse(R())
R_Transpose = Application.WorksheetFunction.Transpose(R_Inverse)
'C matrix
v21 = (E2 / E1) * V12
C(1, 1) = E1 / (1 - V12 * v21)
C(1, 2) = V12 * E2 / (1 - V12 * v21)
C(1, 3) = 0#
C(2, 1) = v21 * E1 / (1 - V12 * v21)
C(2, 2) = E2 / (1 - V12 * v21)
C(2, 3) = 0#
C(3, 1) = 0#
C(3, 2) = 0#
C(3, 3) = G12
Stop ' to check
End Function