53 for j
in range(len(mesh.normals)):
67 vd = np.array( [ [x_1, y_1, z_1, 1],
71 V_j = - (1./6.) * np.linalg.det(vd)
73 a += V_j * ( y_1**2 + y_1*y_2 + y_2**2 + y_1*y_3 + y_2*y_3 +
74 y_3**2 + y_1*y_4 + y_2*y_4 + y_3*y_4 + y_4**2 +
75 z_1**2 + z_1*z_2 + z_2**2 + z_1*z_3 + z_2*z_3 +
76 z_3**2 + z_1*z_4 + z_2*z_4 + z_3*z_4 + z_4**2 ) / 10.
78 b += V_j * ( x_1**2 + x_1*x_2 + x_2**2 + x_1*x_3 + x_2*x_3 +
79 x_3**2 + x_1*x_4 + x_2*x_4 + x_3*x_4 + x_4**2 +
80 z_1**2 + z_1*z_2 + z_2**2 + z_1*z_3 + z_2*z_3 +
81 z_3**2 + z_1*z_4 + z_2*z_4 + z_3*z_4 + z_4**2 ) / 10.
83 c += V_j * ( x_1**2 + x_1*x_2 + x_2**2 + x_1*x_3 + x_2*x_3 +
84 x_3**2 + x_1*x_4 + x_2*x_4 + x_3*x_4 + x_4**2 +
85 y_1**2 + y_1*y_2 + y_2**2 + y_1*y_3 + y_2*y_3 +
86 y_3**2 + y_1*y_4 + y_2*y_4 + y_3*y_4 + y_4**2 ) / 10.
88 a_p += V_j * ( 2*y_1*z_1 + y_2*z_1 + y_3*z_1 + y_4*z_1 + y_1*z_2 +
89 2*y_2*z_2 + y_3*z_2 + y_4*z_2 + y_1*z_3 + y_2*z_3 +
90 2*y_3*z_3 + y_4*z_3 + y_1*z_4 + y_2*z_4 + y_3*z_4 +
93 b_p += V_j * ( 2*x_1*z_1 + x_2*z_1 + x_3*z_1 + x_4*z_1 + x_1*z_2 +
94 2*x_2*z_2 + x_3*z_2 + x_4*z_2 + x_1*z_3 + x_2*z_3 +
95 2*x_3*z_3 + x_4*z_3 + x_1*z_4 + x_2*z_4 + x_3*z_4 +
98 c_p += V_j * ( 2*x_1*y_1 + x_2*y_1 + x_3*y_1 + x_4*y_1 + x_1*y_2 +
99 2*x_2*y_2 + x_3*y_2 + x_4*y_2 + x_1*y_3 + x_2*y_3 +
100 2*x_3*y_3 + x_4*y_3 + x_1*y_4 + x_2*y_4 + x_3*y_4 +
104 return density * np.array([[a, -c_p, -b_p],[ -c_p, b, -a_p],[ -b_p, -a_p, c]])
def ClumpTOIFromMesh(mesh, density)
Definition: InertiaComputationsMesh.py:44