def A_reflector(x, r, p): tmp = 1 + np.sqrt(1 - lp.dot_VV(p, p) / r**4) return (2 + tmp) / r * lp.outer(p, p) - r**3 * tmp * lp.identity( x.shape[1:])
def D(x): return (mu * (2 + np.cos(np.pi * x[0])) / 3 * (nu * lp.identity(x.shape[1:]) + (1 - nu) * lp.outer(omega0(x / 2), omega0(x / 2))))