Exemple #1
0
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])
Exemple #3
0
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')
Exemple #4
0
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))
Exemple #5
0
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')
Exemple #7
0
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
Exemple #8
0
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
Exemple #10
0
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)
Exemple #11
0
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)
Exemple #12
0
        #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()

Exemple #13
0
        # 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()