def testA1(self): struct = matter.Structure( lattice=matter.Lattice(a=1, b=1, c=1, alpha=60, beta=60, gamma=60), sgid=225, atoms=[matter.Atom('Cu')], ) self.assertEqual(StrukturberichtDesignationFinder().find(struct), A1) return
def testMethodInStructureClass(self): struct = matter.Structure( lattice=matter.Lattice(a=1, b=1, c=1, alpha=60, beta=60, gamma=60), sgid=225, atoms=[matter.Atom('Cu')], ) self.assertEqual(struct.StrukturberichtDesignation, A1) return
def testB2(self): struct = matter.Structure( lattice=matter.Lattice(a=1, b=1, c=1, alpha=90, beta=90, gamma=90), sgid=221, atoms=[matter.Atom('Cs'), matter.Atom('Cl', xyz=[0.5, 0.5, 0.5])], ) self.assertEqual(StrukturberichtDesignationFinder().find(struct), B2) return
def _qVector(self, h, k, l): "Returns q-vector from (h, k, l) parameters" import numpy lat = matter.Lattice(self._a, self._b, self._c, self._alpha, self._beta, self._gamma) rb = lat.recbase # Reciprocal matrix trb = rb.T # Should I transpose it? q = 2 * PI * (h * trb[0] + k * trb[1] + l * trb[2]) return numpy.sqrt(numpy.dot(q, q))
def testA2(self): struct = matter.Structure( lattice=matter.Lattice(a=1, b=1, c=1, alpha=acos1_3, beta=acos1_3, gamma=acos1_3), sgid=229, atoms=[matter.Atom('Cu')], ) self.assertEqual(StrukturberichtDesignationFinder().find(struct), A2) struct = matter.Structure( lattice=matter.Lattice(a=1, b=1, c=1, alpha=90, beta=90, gamma=90), sgid=229, atoms=[ matter.Atom('Cu', xyz=[0, 0, 0]), matter.Atom('Cu', xyz=[0.5, 0.5, 0.5]) ], ) self.assertEqual(StrukturberichtDesignationFinder().find(struct), A2) return
def testWriter(self): p = getParser() from danse.ins import matter a = 1.5 lattice = matter.Lattice(2 * a, 2 * a, 2 * a, 90, 90, 90) atoms = [matter.Atom('Ni'), matter.Atom('Ni', (0.5, 0.5, 0.5))] struct = Structure(lattice=lattice, atoms=atoms, sgid=229) print 'original unitcell, cartesian coords' print '\n'.join(p.toLines(struct)) print 'original unitcell, fractional coords' print '\n'.join(p.toLines(struct, use_fractional_coordinates=1)) print 'primitive unitcell, cartesian coords' print '\n'.join(p.toLines(struct, use_primitive_unitcell=1)) print 'primitive unitcell, fractional coords' print '\n'.join( p.toLines(struct, use_primitive_unitcell=1, use_fractional_coordinates=1)) return