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
# coding: utf-8
    # coding: utf-8
import numpy as np
    import numpy as np
import pandas as pd
    import pandas as pd
import sys
    import sys
file=sys.argv[1]
    file=sys.argv[1]
cell_vec=pd.read_csv(file, delim_whitespace=True,skiprows=2,nrows=3,names=['x','y','z'])
    cell_vec=pd.read_csv(file, delim_whitespace=True,skiprows=2,nrows=3,names=['x','y','z'])
cell_vec.head()
    cell_vec.head()
a1=np.array([float(cell_vec.loc[0].x),float(cell_vec.loc[0].y),float(cell_vec.loc[0].z)])
    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)])
    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)])
    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)
    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)
    data=pd.read_csv(file, delim_whitespace=True,skiprows=7,names=['x','y','z'], index_col=False)
nloops=data.x.value_counts().loc["Direct"]
    nloops=data.x.value_counts().loc["Direct"]
n_atoms=atoms_n.T.sum().loc[0]
    n_atoms=atoms_n.T.sum().loc[0]
n1=int(sys.argv[2])
    n1=int(sys.argv[2])
n2=int(sys.argv[3])
    n2=int(sys.argv[3])
low=1
    low=1
for i in range(nloops):
    for i in range(nloops):
    up=low+n_atoms
        up=low+n_atoms
    frame=data[low:up]
        frame=data[low:up]
    low=low+n_atoms+1
        low=low+n_atoms+1
    atom_pos1=frame.iloc[n1-1]
        atom_pos1=frame.iloc[n1-1]
    coord1=(float(atom_pos1.x)*a1)+(float(atom_pos1.y)*a2)+(float(atom_pos1.z)*a3)
        coord1=(float(atom_pos1.x)*a1)+(float(atom_pos1.y)*a2)+(float(atom_pos1.z)*a3)
    atom_pos2=frame.iloc[n2-1]
        atom_pos2=frame.iloc[n2-1]
    coord2=(float(atom_pos2.x)*a1)+(float(atom_pos2.y)*a2)+(float(atom_pos2.z)*a3)
        coord2=(float(atom_pos2.x)*a1)+(float(atom_pos2.y)*a2)+(float(atom_pos2.z)*a3)
    distance=min(np.linalg.norm(coord1-coord2),
        distance=min(np.linalg.norm(coord1-coord2),
        np.linalg.norm(coord1-(coord2+a1)),
            np.linalg.norm(coord1-(coord2+a1)),
        np.linalg.norm(coord1-(coord2+a2)),
            np.linalg.norm(coord1-(coord2+a2)),
        np.linalg.norm(coord1-(coord2+a1+a2)),
            np.linalg.norm(coord1-(coord2+a1+a2)),
        np.linalg.norm(coord1-(coord2-a1)),
            np.linalg.norm(coord1-(coord2-a1)),
        np.linalg.norm(coord1-(coord2-a2)),
            np.linalg.norm(coord1-(coord2-a2)),
        np.linalg.norm(coord1-(coord2-a1-a2))
            np.linalg.norm(coord1-(coord2-a1-a2))
      )
          )
    print(distance)
        print(distance)
~                     
~                     


----
----

Revision as of 14:10, 17 July 2018

In preparation.

   # /usr/bin/env python3
   # 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)

~