1"""Prescribed finite rotation through 7.1 radians, with unequal stretches."""
4LOG_STRETCH = np.array([0.04, -0.015, 0.005])
6_AXIS = np.array([0.02, -0.015, 0.01])
7_AXIS /= np.linalg.norm(_AXIS)
12 skew = np.array([[0, z, -y], [-z, 0, x], [y, -x, 0]])
14 rotation = np.eye(3) + np.sin(angle) * skew + (1 - np.cos(angle)) * skew @ skew
15 return rotation @ np.diag(np.exp(time * LOG_STRETCH))
19 points = np.column_stack((x, y, z))
25 jacobian = np.linalg.det(gradient)
26 inverse_transpose = np.linalg.inv(gradient).T
27 stress = (2 * C10 * jacobian**(-2 / 3)
28 * (gradient - np.sum(gradient**2) / 3 * inverse_transpose)
29 + K * jacobian * (jacobian - 1) * inverse_transpose)
30 normals = np.column_stack((tx, ty, tz))
31 normals /= np.linalg.norm(normals, axis=1)[:,
None]
32 return np.ascontiguousarray(normals @ stress.T)
36 return np.zeros((len(x), 1))
40 return np.ones((len(x), 1))
analytical_traction(delta_t, t, x, y, z, tx, ty, tz, block_name)
analytical_external_strain(delta_t, t, x, y, z, block_name)
analytical_disp(delta_t, t, x, y, z, tx, ty, tz, block_name)
deformation_gradient(time)
analytical_elastic(delta_t, t, x, y, z, block_name)