Directly create transposed chi/phi matrices

This commit is contained in:
2023-01-25 23:08:09 +01:00
parent cda8896599
commit 4b6994a9f3

View File

@@ -22,21 +22,21 @@ def z4frgn(wave, ga, nu):
@njit(cache=True) @njit(cache=True)
def phimat(phi): def phimat_T(phi):
"""BUSING AND LEVY CONVENTION ROTATION MATRIX FOR PHI OR OMEGA """TRANSPOSED BUSING AND LEVY CONVENTION ROTATION MATRIX FOR PHI OR OMEGA
Args: Args:
PHI PHI
Returns: Returns:
DUM DUM_T
""" """
ph_r = phi / pi_r ph_r = phi / pi_r
dum = np.zeros(9).reshape(3, 3) dum = np.zeros((3, 3))
dum[0, 0] = np.cos(ph_r) dum[0, 0] = np.cos(ph_r)
dum[0, 1] = np.sin(ph_r) dum[1, 0] = np.sin(ph_r)
dum[1, 0] = -dum[0, 1] dum[0, 1] = -dum[1, 0]
dum[1, 1] = dum[0, 0] dum[1, 1] = dum[0, 0]
dum[2, 2] = 1 dum[2, 2] = 1
@@ -54,30 +54,28 @@ def z1frnb(wave, ga, nu, om):
Z1 Z1
""" """
z4 = z4frgn(wave, ga, nu) z4 = z4frgn(wave, ga, nu)
dum = phimat(phi=om) z3 = phimat_T(phi=om).dot(z4)
dumt = np.transpose(dum)
z3 = dumt.dot(z4)
return z3 return z3
@njit(cache=True) @njit(cache=True)
def chimat(chi): def chimat_T(chi):
"""BUSING AND LEVY CONVENTION ROTATION MATRIX FOR CHI """TRANSPOSED BUSING AND LEVY CONVENTION ROTATION MATRIX FOR CHI
Args: Args:
CHI CHI
Returns: Returns:
DUM DUM_T
""" """
ch_r = chi / pi_r ch_r = chi / pi_r
dum = np.zeros(9).reshape(3, 3) dum = np.zeros((3, 3))
dum[0, 0] = np.cos(ch_r) dum[0, 0] = np.cos(ch_r)
dum[0, 2] = np.sin(ch_r) dum[2, 0] = np.sin(ch_r)
dum[1, 1] = 1 dum[1, 1] = 1
dum[2, 0] = -dum[0, 2] dum[0, 2] = -dum[2, 0]
dum[2, 2] = dum[0, 0] dum[2, 2] = dum[0, 0]
return dum return dum
@@ -93,13 +91,8 @@ def z1frz3(z3, chi, phi):
Returns: Returns:
Z1 Z1
""" """
dum1 = chimat(chi) z2 = chimat_T(chi).dot(z3)
dum2 = np.transpose(dum1) z1 = phimat_T(phi).dot(z2)
z2 = dum2.dot(z3)
dum1 = phimat(phi)
dum2 = np.transpose(dum1)
z1 = dum2.dot(z2)
return z1 return z1