Beispiel #1
0
def load_feff_dat(filename):
    xk = []
    cdelta = []
    afeff = []
    phfeff = []
    redfac = []
    xlam = []
    rep = []

    atoms = Atoms()
    atoms.set_pbc((False,False,False))

    path_section = False
    atoms_section = False
    data_section = False
    f = open(filename)
    for line in f:
        line = line.strip()
        fields = line.split()
        if "genfmt" in line:
            path_section = True
            continue
        if fields[0] == "x" and fields[1] == "y" and fields[2] == "z":
            atoms_section = True
            path_section = False
            continue
        if fields[0] == "k" and fields[1] == "real[2*phc]":
            data_section = True
            atoms_section = False
            continue

        if path_section:
            if "---------------" in line:
                continue
            reff = float(fields[2])
            path_section = False

        if atoms_section:
            x = float(fields[0])
            y = float(fields[1])
            z = float(fields[2])
            pot = int(fields[3])
            atomic_number = int(fields[4])
            atoms.append(Atom(symbol=atomic_number, position=(x,y,z),
                         tag=pot))

        if data_section:
            fields = [ float(f) for f in fields ]
            xk.append(fields[0])
            cdelta.append(fields[1])
            afeff.append(fields[2])
            phfeff.append(fields[3])
            redfac.append(fields[4])
            xlam.append(fields[5])
            rep.append(fields[6])

    xk = numpy.array(xk)
    cdelta = numpy.array(cdelta)
    afeff = numpy.array(afeff)
    phfeff = numpy.array(phfeff)
    redfac = numpy.array(redfac)
    xlam = numpy.array(xlam)
    rep = numpy.array(rep)

    return { 
             "atoms":atoms,
             "reff":reff,
             "xk":xk,
             "cdelta":cdelta,
             "afeff":afeff,
             "phfeff":phfeff,
             "redfac":redfac,
             "xlam":xlam,
             "rep":rep,
           }
Beispiel #2
0
def load_feff_dat(filename):
    xk = []
    cdelta = []
    afeff = []
    phfeff = []
    redfac = []
    xlam = []
    rep = []

    atoms = Atoms()
    atoms.set_pbc((False,False,False))

    path_section = False
    atoms_section = False
    data_section = False
    f = open(filename)
    for line in f:
        line = line.strip()
        fields = line.split()
        if "genfmt" in line:
            path_section = True
            continue
        if fields[0] == "x" and fields[1] == "y" and fields[2] == "z":
            atoms_section = True
            path_section = False
            continue
        if fields[0] == "k" and fields[1] == "real[2*phc]":
            data_section = True
            atoms_section = False
            continue

        if path_section:
            if "---------------" in line:
                continue
            reff = float(fields[2])
            path_section = False

        if atoms_section:
            x = float(fields[0])
            y = float(fields[1])
            z = float(fields[2])
            pot = int(fields[3])
            atomic_number = int(fields[4])
            atoms.append(Atom(symbol=atomic_number, position=(x,y,z),
                         tag=pot))

        if data_section:
            fields = [ float(f) for f in fields ]
            xk.append(fields[0])
            cdelta.append(fields[1])
            afeff.append(fields[2])
            phfeff.append(fields[3])
            redfac.append(fields[4])
            xlam.append(fields[5])
            rep.append(fields[6])

    xk = numpy.array(xk)
    cdelta = numpy.array(cdelta)
    afeff = numpy.array(afeff)
    phfeff = numpy.array(phfeff)
    redfac = numpy.array(redfac)
    xlam = numpy.array(xlam)
    rep = numpy.array(rep)

    return {
             "atoms":atoms,
             "reff":reff,
             "xk":xk,
             "cdelta":cdelta,
             "afeff":afeff,
             "phfeff":phfeff,
             "redfac":redfac,
             "xlam":xlam,
             "rep":rep,
           }