Ejemplo n.º 1
0
 def test_axes_orthonorm(self):
     import opan.utils.inertia as oui
     from opan.utils.vector import orthonorm_check as onchk
     axes = oui.principals(self.xyz.geoms[0], self.hess.atom_masses)[1]
     on, nfail, ofail = onchk(axes, report=True)
     self.assertTrue(on, msg="Norm failures: " + str(nfail) +
                             "; ortho failures: " + str(ofail))
Ejemplo n.º 2
0
 def test_moments(self):
     import opan.utils.inertia as oui
     moments = oui.principals(self.xyz.geoms[0], self.hess.atom_masses)[0]
     for i in range(moments.shape[0]):
         if moments[i] < 1e-10:
             self.assertAlmostEqual(self.moments[i], moments[i],
                     delta=1e-7,
                     msg="Principal moment index '" + str(i) + "'")
         else:
             self.assertAlmostEqual(self.moments[i] / moments[i], 1.0,
                     delta=1e-7,
                     msg="Principal moment index '" + str(i) + "'")
Ejemplo n.º 3
0
 def test_axes(self):
     import opan.utils.inertia as oui
     axes = oui.principals(self.xyz.geoms[0], self.hess.atom_masses)[1]
     for i in range(axes.shape[0]):
         for j in range(axes.shape[1]):
             if abs(axes[i,j]) < 1e-10:
                 self.assertAlmostEqual(self.axes[i,j], axes[i,j],
                         delta=1e-7,
                         msg="Principal axis #" + str(j) + ", element " +
                                                                     str(i))
             else:
                 self.assertAlmostEqual(self.axes[i,j] / axes[i,j], 1.0,
                         delta=1e-6,
                         msg="Principal axis #" + str(j) + ", element " +
                                                                     str(i))
Ejemplo n.º 4
0
 def test_toptype(self):
     import opan.utils.inertia as oui
     top = oui.principals(self.xyz.geoms[0], self.hess.atom_masses)[2]
     self.assertEqual(top, self.top)