def test_crystal(): '''Building a crystal by using spacegroup module''' na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0],[0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[13,13,13])
def test_crystal(): '''Building a crystal by using spacegroup module''' na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[13, 13, 13])
def test_sort(): na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0],[0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3,3,3]) tsys.sort() assert np.all(tsys.type_array[:tsys.n_mol/2] == 'Cl')
def test_sort(): na = Molecule([Atom("Na", [0.0, 0.0, 0.0])]) cl = Molecule([Atom("Cl", [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3, 3, 3]) tsys.sort() assert_npequal(tsys.type_array[: tsys.n_mol / 2], ["Cl"] * (tsys.n_mol / 2))
def test_crystal(): """Building a crystal by using spacegroup module""" na = Molecule([Atom("Na", [0.0, 0.0, 0.0])]) cl = Molecule([Atom("Cl", [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[13, 13, 13]) eq_(tsys.r_array.min(), 0.0) eq_(tsys.r_array.max(), 12.5)
def test_sort(): na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3, 3, 3]) tsys.sort() assert np.all(tsys.type_array[:tsys.n_mol / 2] == 'Cl')
def test_serialization(): cl = Molecule([Atom.from_fields(type='Cl', r=[0.0, 0.0, 0.0])]) jsonstr = cl.tojson() assert Molecule.from_json(jsonstr).tojson() == jsonstr na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0],[0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3,3,3]) jsonstr = tsys.tojson() assert System.from_json(jsonstr).tojson() == jsonstr
def test_serialization(): cl = Molecule([Atom.from_fields(type="Cl", r=[0.0, 0.0, 0.0])]) jsonstr = cl.to_json() m = Molecule.from_json(jsonstr) eq_(Molecule.from_json(jsonstr).to_json(), jsonstr) na = Molecule([Atom("Na", [0.0, 0.0, 0.0])]) cl = Molecule([Atom("Cl", [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3, 3, 3]) jsonstr = tsys.to_json() eq_(System.from_json(jsonstr).to_json(), jsonstr)
def test_serialization(): cl = Molecule([Atom.from_fields(type='Cl', r=[0.0, 0.0, 0.0])]) jsonstr = cl.tojson() assert Molecule.from_json(jsonstr).tojson() == jsonstr na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3, 3, 3]) jsonstr = tsys.tojson() assert System.from_json(jsonstr).tojson() == jsonstr
def test_serialization(): cl = Molecule([Atom.from_fields(type='Cl', r=[0.0, 0.0, 0.0])]) jsonstr = cl.to_json() m = Molecule.from_json(jsonstr) eq_(Molecule.from_json(jsonstr).to_json(), jsonstr) na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) # Fract position of Na and Cl, space group 255 tsys = crystal([[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], [na, cl], 225, repetitions=[3, 3, 3]) jsonstr = tsys.to_json() npeq_(System.from_json(jsonstr).r_array, tsys.r_array)
from chemlab.core import Atom, Molecule, crystal from chemlab.graphics.qt import display_system # Molecule templates na = Molecule([Atom('Na', [0.0, 0.0, 0.0])]) cl = Molecule([Atom('Cl', [0.0, 0.0, 0.0])]) s = crystal( [[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]], # Fractional Positions [na, cl], # Molecules 225, # Space Group cellpar=[.54, .54, .54, 90, 90, 90], # unit cell parameters repetitions=[5, 5, 5]) # unit cell repetitions in each direction display_system(s)
#thr_a2 = thr_a * thr_a thr_b2 = thr_b * thr_b dr2 = ((r_array[i] - r_array[j])**2).sum() # print(dr2) if dr2 < thr_b2: bonds.append((i, j)) return np.array(bonds) # END_PATCH --- Si = Molecule([Atom('Si', [0.0, 0.0, 0.0])]) la = 0.5431 s = crystal([[0.0, 0.0, 0.0], [0.25, 0.25, 0.25]], # Fractional Positions [Si, Si], # Molecules 225, # Space Group cellpar = [la,la,la, 90, 90, 90], # unit cell parameters repetitions = [2, 2, 2]) # unit cell repetitions in each direction bonds = guess_bonds(s.r_array, s.type_array, threshold=0.02) #s.bonds = [[0,1], [1, 2]] v = QtViewer() v.add_renderer(BallAndStickRenderer, s.r_array, s.type_array, bonds,shading='phong') v.run()
# print(dr2) if dr2 < thr_b2: bonds.append((i, j)) return np.array(bonds) # END_PATCH --- Si = Molecule([Atom('Si', [0.0, 0.0, 0.0])]) la = 0.5431 s = crystal( [[0.0, 0.0, 0.0], [0.25, 0.25, 0.25]], # Fractional Positions [Si, Si], # Molecules 225, # Space Group cellpar=[la, la, la, 90, 90, 90], # unit cell parameters repetitions=[2, 2, 2]) # unit cell repetitions in each direction bonds = guess_bonds(s.r_array, s.type_array, threshold=0.02) #s.bonds = [[0,1], [1, 2]] v = QtViewer() v.add_renderer(BallAndStickRenderer, s.r_array, s.type_array, bonds, shading='phong') v.run()