Ejemplo n.º 1
0
def argparser(arg):
    global pairs, fixed, waters, coord, density, cell, cagetype, cagepos
    logger = getLogger()

    # Ref. C2
    atoms = """
O1 0.0000 0.0000 0.1937
Ne1 0.0000 0.0000 0.7066
    """

    # Ref. C2
    # space group: I4_1md No. 109 http://img.chem.ucl.ac.uk/sgp/large/109az1.htm
    symops = """
      x,            y,            z
     -x,           -y,            z
     -y,          1/2+x,        1/4+z
      y,          1/2-x,        1/4+z
     -x,            y,            z
      x,           -y,            z
      y,          1/2+x,        1/4+z
     -y,          1/2-x,        1/4+z

      x+1/2,            y+1/2,            z+1/2
     -x+1/2,           -y+1/2,            z+1/2
     -y+1/2,          1/2+x+1/2,        1/4+z+1/2
      y+1/2,          1/2-x+1/2,        1/4+z+1/2
     -x+1/2,            y+1/2,            z+1/2
      x+1/2,           -y+1/2,            z+1/2
      y+1/2,          1/2+x+1/2,        1/4+z+1/2
     -y+1/2,          1/2-x+1/2,        1/4+z+1/2
    """.replace(',', ' ')

    # Ref. C2
    a = 4.409 / 10.0  #nm
    c = 6.251 / 10.0  #nm

    from genice.cell import cellvectors
    cell = cellvectors(a, a, c)

    # helper routines to make from CIF-like data
    from genice import CIF
    atomd = CIF.atomdic(atoms)
    atoms = CIF.fullatoms(atomd, CIF.symmetry_operators(symops))

    cagetype = []
    cagepos = []
    for name, pos in pick_atoms(atoms, ("Ne1", ), repeat=(2, 2, 2)):
        cagetype.append(name)
        cagepos.append(pos)

    waters, pairs = CIF.waters_and_pairs(cell,
                                         atomd,
                                         CIF.symmetry_operators(symops),
                                         rep=(2, 2, 2))

    density = 18 * len(waters) / 6.022e23 / (np.linalg.det(cell) * 1e-21)

    coord = "relative"
Ejemplo n.º 2
0
def argparser(arg):
    global pairs, fixed, waters, coord, density, cell, cagetype, cagepos
    logger = getLogger()

    # Ref. Ih
    atoms="""
O1 0.0000 0.6699 0.0488 
O2 0.0000 0.3377 -0.0557
Ne1 0.0000 0.0013 0.7539
    """

    # Ref. Ih
    # space group: Cmc2_1
    symops="""
      x,            y,            z
     -x,            y,            z
      x,           -y,          1/2+z
     -x,           -y,          1/2+z
      x+1/2,            y+1/2,            z
     -x+1/2,            y+1/2,            z
      x+1/2,           -y+1/2,          1/2+z
     -x+1/2,           -y+1/2,          1/2+z
    """.replace(',', ' ')

    # Ref. Ih
    a=4.568 / 10.0 #nm
    b=7.980 / 10.0 #nm
    c=6.894 / 10.0 #nm

    from genice.cell import cellvectors
    cell  = cellvectors(a,b,c)

    # helper routines to make from CIF-like data
    from genice import CIF
    atomd = CIF.atomdic(atoms)
    atoms = CIF.fullatoms(atomd, CIF.symmetry_operators(symops))

    cagetype = []
    cagepos  = []
    for name, pos in pick_atoms(atoms, ("Ne1",), repeat=(2,1,1)):
        cagetype.append(name)
        cagepos.append(pos)
    
    waters, pairs = CIF.waters_and_pairs(cell, atomd, CIF.symmetry_operators(symops), rep=(2,1,1))

    density = 18*len(waters)/6.022e23 / (np.linalg.det(cell)*1e-21)

    coord = "relative"
Ejemplo n.º 3
0
def argparser(arg):
    global pairs, fixed, waters, coord, density, cell, cagetype, cagepos
    logger = getLogger()

    # Ref. 2atom
    atoms="""
    O1 0.2342 0.4721 0.8019
    O2 0.7648 0.5306 0.2941
    Ne1 -0.0647 0.7868 0.7669
    """

    # Ref. 
    # space group: P3_2
    symops="""
      x,            y,            z
-y,x-y,z+2/3
-x+y,-x,z+1/3
    """.replace(',', ' ')

    # Ref. 2cell
    a=6.177 / 10.0 #nm
    c=6.054 / 10.0 #nm
    C=120.0

    from genice.cell import cellvectors
    cell  = cellvectors(a,a,c,C=C)

    # helper routines to make from CIF-like data
    from genice import CIF
    atomd = CIF.atomdic(atoms)
    atoms = CIF.fullatoms(atomd, CIF.symmetry_operators(symops))

    cagetype = []
    cagepos  = []
    for atomname, pos in atoms:
        if atomname == "Ne1":
            cagetype.append(atomname)
            cagepos.append(pos)
            
    waters, pairs = CIF.waters_and_pairs(cell, atomd, CIF.symmetry_operators(symops))

    density = 18*len(waters)/6.022e23 / (np.linalg.det(cell)*1e-21)

    coord = "relative"
Ejemplo n.º 4
0
def argparser(arg):
    global pairs, fixed, waters, coord, density, cell, cagepos, cagetype
    logger = getLogger()

    # Ref. C1
    atoms="""
O1 0.2228 0.1966 0.0454
O2 0.5236 0.8974  0.1466
H1 0.8184 0.5344  0.3198
H2 0.2244 0.2188 0.2045
H3 0.4384 0.8815  0.1496
H4 0.5729 -0.0253 0.2297
Ne1 0.0000 0.0000 0.7361
    """

    # Ref. C1
    # space group: R-3 No. 148
    # in a rhombus cell
    symops="""
     x,            y,            z
     -y,           x-y,           z
    -x+y,          -x,            z
 
     -x,           -y,           -z
      y,          -x+y,          -z
     x-y,           x,           -z

      x+2/3,            y+1/3,           z+1/3
     -y+2/3,          x-y+1/3,           z+1/3
   -x+y+2/3,           -x+1/3,           z+1/3
 
     -x+2/3,           -y+1/3,          -z+1/3
      y+2/3,         -x+y+1/3,          -z+1/3
    x-y+2/3,            x+1/3,          -z+1/3

      x+1/3,            y+2/3,           z+2/3
     -y+1/3,          x-y+2/3,           z+2/3
   -x+y+1/3,           -x+2/3,           z+2/3
 
     -x+1/3,           -y+2/3,          -z+2/3
      y+1/3,         -x+y+2/3,          -z+2/3
    x-y+1/3,            x+2/3,          -z+2/3
    """.replace(',', ' ')

    # Ref. C1
    a=12.673 / 10.0 #nm
    c= 6.017 / 10.0 #nm
    C= 120

    from genice.cell import cellvectors
    cell  = cellvectors(a,a,c,C=C)

    # helper routines to make from CIF-like data
    from genice import CIF
    atomd = CIF.atomdic(atoms)
    atoms = CIF.fullatoms(atomd, CIF.symmetry_operators(symops))

    cagetype = []
    cagepos  = []
    for name, pos in pick_atoms(atoms, ("Ne1",)):
        cagetype.append(name)
        cagepos.append(pos)
        
    sops  = CIF.symmetry_operators(symops)
    waters, fixed = CIF.waters_and_pairs(cell, atomd, sops)

    # set pairs in this way for hydrogen-ordered ices.
    pairs = fixed

    density = 18*len(waters)/6.022e23 / (np.linalg.det(cell)*1e-21)

    coord = "relative"