pyerrors.dirac
View Source
0import numpy as np 1 2 3gammaX = np.array( 4 [[0, 0, 0, 1j], [0, 0, 1j, 0], [0, -1j, 0, 0], [-1j, 0, 0, 0]], 5 dtype=complex) 6gammaY = np.array( 7 [[0, 0, 0, -1], [0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0]], 8 dtype=complex) 9gammaZ = np.array( 10 [[0, 0, 1j, 0], [0, 0, 0, -1j], [-1j, 0, 0, 0], [0, 1j, 0, 0]], 11 dtype=complex) 12gammaT = np.array( 13 [[0, 0, 1, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 1, 0, 0]], 14 dtype=complex) 15gamma = np.array([gammaX, gammaY, gammaZ, gammaT]) 16gamma5 = np.array( 17 [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, -1]], 18 dtype=complex) 19identity = np.array( 20 [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], 21 dtype=complex) 22 23 24def epsilon_tensor(i, j, k): 25 """Rank-3 epsilon tensor 26 27 Based on https://codegolf.stackexchange.com/a/160375 28 """ 29 test_set = set((i, j, k)) 30 if not (test_set <= set((1, 2, 3)) or test_set <= set((0, 1, 2))): 31 raise Exception("Unexpected input", i, j, k) 32 33 return (i - j) * (j - k) * (k - i) / 2 34 35 36def epsilon_tensor_rank4(i, j, k, o): 37 """Rank-4 epsilon tensor 38 39 Extension of https://codegolf.stackexchange.com/a/160375 40 """ 41 test_set = set((i, j, k, o)) 42 if not (test_set <= set((1, 2, 3, 4)) or test_set <= set((0, 1, 2, 3))): 43 raise Exception("Unexpected input", i, j, k, o) 44 45 return (i - j) * (j - k) * (k - i) * (i - o) * (j - o) * (o - k) / 12 46 47 48def Grid_gamma(gamma_tag): 49 """Returns gamma matrix in Grid labeling.""" 50 if gamma_tag == 'Identity': 51 g = identity 52 elif gamma_tag == 'Gamma5': 53 g = gamma5 54 elif gamma_tag == 'GammaX': 55 g = gamma[0] 56 elif gamma_tag == 'GammaY': 57 g = gamma[1] 58 elif gamma_tag == 'GammaZ': 59 g = gamma[2] 60 elif gamma_tag == 'GammaT': 61 g = gamma[3] 62 elif gamma_tag == 'GammaXGamma5': 63 g = gamma[0] @ gamma5 64 elif gamma_tag == 'GammaYGamma5': 65 g = gamma[1] @ gamma5 66 elif gamma_tag == 'GammaZGamma5': 67 g = gamma[2] @ gamma5 68 elif gamma_tag == 'GammaTGamma5': 69 g = gamma[3] @ gamma5 70 elif gamma_tag == 'SigmaXT': 71 g = 0.5 * (gamma[0] @ gamma[3] - gamma[3] @ gamma[0]) 72 elif gamma_tag == 'SigmaXY': 73 g = 0.5 * (gamma[0] @ gamma[1] - gamma[1] @ gamma[0]) 74 elif gamma_tag == 'SigmaXZ': 75 g = 0.5 * (gamma[0] @ gamma[2] - gamma[2] @ gamma[0]) 76 elif gamma_tag == 'SigmaYT': 77 g = 0.5 * (gamma[1] @ gamma[3] - gamma[3] @ gamma[1]) 78 elif gamma_tag == 'SigmaYZ': 79 g = 0.5 * (gamma[1] @ gamma[2] - gamma[2] @ gamma[1]) 80 elif gamma_tag == 'SigmaZT': 81 g = 0.5 * (gamma[2] @ gamma[3] - gamma[3] @ gamma[2]) 82 else: 83 raise Exception('Unkown gamma structure', gamma_tag) 84 return g
View Source
25def epsilon_tensor(i, j, k): 26 """Rank-3 epsilon tensor 27 28 Based on https://codegolf.stackexchange.com/a/160375 29 """ 30 test_set = set((i, j, k)) 31 if not (test_set <= set((1, 2, 3)) or test_set <= set((0, 1, 2))): 32 raise Exception("Unexpected input", i, j, k) 33 34 return (i - j) * (j - k) * (k - i) / 2
Rank-3 epsilon tensor
Based on https://codegolf.stackexchange.com/a/160375
View Source
37def epsilon_tensor_rank4(i, j, k, o): 38 """Rank-4 epsilon tensor 39 40 Extension of https://codegolf.stackexchange.com/a/160375 41 """ 42 test_set = set((i, j, k, o)) 43 if not (test_set <= set((1, 2, 3, 4)) or test_set <= set((0, 1, 2, 3))): 44 raise Exception("Unexpected input", i, j, k, o) 45 46 return (i - j) * (j - k) * (k - i) * (i - o) * (j - o) * (o - k) / 12
Rank-4 epsilon tensor
Extension of https://codegolf.stackexchange.com/a/160375
View Source
49def Grid_gamma(gamma_tag): 50 """Returns gamma matrix in Grid labeling.""" 51 if gamma_tag == 'Identity': 52 g = identity 53 elif gamma_tag == 'Gamma5': 54 g = gamma5 55 elif gamma_tag == 'GammaX': 56 g = gamma[0] 57 elif gamma_tag == 'GammaY': 58 g = gamma[1] 59 elif gamma_tag == 'GammaZ': 60 g = gamma[2] 61 elif gamma_tag == 'GammaT': 62 g = gamma[3] 63 elif gamma_tag == 'GammaXGamma5': 64 g = gamma[0] @ gamma5 65 elif gamma_tag == 'GammaYGamma5': 66 g = gamma[1] @ gamma5 67 elif gamma_tag == 'GammaZGamma5': 68 g = gamma[2] @ gamma5 69 elif gamma_tag == 'GammaTGamma5': 70 g = gamma[3] @ gamma5 71 elif gamma_tag == 'SigmaXT': 72 g = 0.5 * (gamma[0] @ gamma[3] - gamma[3] @ gamma[0]) 73 elif gamma_tag == 'SigmaXY': 74 g = 0.5 * (gamma[0] @ gamma[1] - gamma[1] @ gamma[0]) 75 elif gamma_tag == 'SigmaXZ': 76 g = 0.5 * (gamma[0] @ gamma[2] - gamma[2] @ gamma[0]) 77 elif gamma_tag == 'SigmaYT': 78 g = 0.5 * (gamma[1] @ gamma[3] - gamma[3] @ gamma[1]) 79 elif gamma_tag == 'SigmaYZ': 80 g = 0.5 * (gamma[1] @ gamma[2] - gamma[2] @ gamma[1]) 81 elif gamma_tag == 'SigmaZT': 82 g = 0.5 * (gamma[2] @ gamma[3] - gamma[3] @ gamma[2]) 83 else: 84 raise Exception('Unkown gamma structure', gamma_tag) 85 return g
Returns gamma matrix in Grid labeling.