Statistiques
| Révision :

root / ase / io / sdf.py

Historique | Voir | Annoter | Télécharger (591 octet)

1 1 tkerber
from math import pi, cos, sin, sqrt, acos
2 1 tkerber
3 1 tkerber
from ase.atoms import Atoms
4 1 tkerber
from ase.parallel import paropen
5 1 tkerber
6 1 tkerber
def read_sdf(fileobj):
7 1 tkerber
    if isinstance(fileobj, str):
8 1 tkerber
        fileobj = open(fileobj)
9 1 tkerber
10 1 tkerber
    lines = fileobj.readlines()
11 1 tkerber
    # first three lines header
12 1 tkerber
    del lines[:3]
13 1 tkerber
14 1 tkerber
    #
15 1 tkerber
    L1 = lines.pop(0).split()
16 1 tkerber
    natoms = int(L1[0])
17 1 tkerber
    positions = []
18 1 tkerber
    symbols = []
19 1 tkerber
    for line in lines[:natoms]:
20 1 tkerber
        x, y, z, symbol = line.split()[:4]
21 1 tkerber
        symbols.append(symbol)
22 1 tkerber
        positions.append([float(x), float(y), float(z)])
23 1 tkerber
    return Atoms(symbols=symbols, positions=positions)