code: def directional_poisson_ratio(self, n, m, tol=1e-8):
          
          n, m = get_uvec(n), get_uvec(m)
          if not np.abs(np.dot(n, m)) < tol:
              raise ValueError("n and m must be orthogonal")
          v = self.compliance_tensor.einsum_sequence([n]*2 + [m]*2)
          v *= -1 / self.compliance_tensor.einsum_sequence([n]*4)
          return v
docs: Calculates the poisson ratio for a specific direction
          relative to a second, orthogonal direction
  
          Args:
              n (3-d vector): principal direction
              m (3-d vector): secondary direction orthogonal to n
              tol (float): tolerance for testing of orthogonality