Curls: Difference between revisions

From Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
In preparation.
In preparation.
----
----


# /usr/bin/env python3
# /usr/bin/env python3

Revision as of 14:08, 17 July 2018

In preparation.

  1. /usr/bin/env python3
  2. coding: utf-8

import numpy as np import pandas as pd import sys file=sys.argv[1] cell_vec=pd.read_csv(file, delim_whitespace=True,skiprows=2,nrows=3,names=['x','y','z']) cell_vec.head() a1=np.array([float(cell_vec.loc[0].x),float(cell_vec.loc[0].y),float(cell_vec.loc[0].z)]) a2=np.array([float(cell_vec.loc[1].x),float(cell_vec.loc[1].y),float(cell_vec.loc[1].z)]) a3=np.array([float(cell_vec.loc[2].x),float(cell_vec.loc[2].y),float(cell_vec.loc[2].z)]) atoms_n=pd.read_csv(file, delim_whitespace=True,skiprows=5,nrows=1) data=pd.read_csv(file, delim_whitespace=True,skiprows=7,names=['x','y','z'], index_col=False) nloops=data.x.value_counts().loc["Direct"] n_atoms=atoms_n.T.sum().loc[0] n1=int(sys.argv[2]) n2=int(sys.argv[3]) low=1 for i in range(nloops):

   up=low+n_atoms
   frame=data[low:up]
   low=low+n_atoms+1
   atom_pos1=frame.iloc[n1-1]
   coord1=(float(atom_pos1.x)*a1)+(float(atom_pos1.y)*a2)+(float(atom_pos1.z)*a3)
   atom_pos2=frame.iloc[n2-1]
   coord2=(float(atom_pos2.x)*a1)+(float(atom_pos2.y)*a2)+(float(atom_pos2.z)*a3)
   distance=min(np.linalg.norm(coord1-coord2),
       np.linalg.norm(coord1-(coord2+a1)),
       np.linalg.norm(coord1-(coord2+a2)),
       np.linalg.norm(coord1-(coord2+a1+a2)),
       np.linalg.norm(coord1-(coord2-a1)),
       np.linalg.norm(coord1-(coord2-a2)),
       np.linalg.norm(coord1-(coord2-a1-a2))
      )
   print(distance)

~