Skip to main content

Read lammps dump trajectory.

Project description

ReadLammpsTraj

  • Read lammps dump trajectory

Installation

  • github:

    git clone https://github.com/eastsheng/ReadLammpsTraj
    cd ReadLammpsTraj
    pip install .
    
  • pip

    pip install ReadLammpsTraj
    

Usage

  • A example to calculate density in demo folder:

    # calculating the density from lammps traj
    import numpy as np
    import matplotlib.pyplot as plt
    import ReadLammpsTraj as RLT
    from pathlib import Path
    import periodictable as pt
    
    def cal_density():
    	path = "./"
    	f = "1000.lammpstrj"
    	# lammpsdata = "1_npt_dissociation.data"
    	Path(path+"imgs/").mkdir(parents=True,exist_ok=True)
    
    	md = RLT.ReadLammpsTraj(path+f)
    	md.read_info()
    	# # number of frames
    	mframe,nframe = 1, 1
    	# # chunk number in z
    	Nz = 100
    	id_range = [1,10000]
    	# # element mass
    	# O_mass = pt.elements.symbol('O').mass
    	# H_mass = pt.elements.symbol('H').mass
    	# C_mass = pt.elements.symbol('C').mass
    	# mass_dict = {1:O_mass,2:H_mass,3:C_mass+4*H_mass,4:C_mass+4*H_mass}
    	mass_dict = {}
    	# mass_dict = RLT.read_mass(path+lammpsdata)
    
    	direction = "z"
    
    	Calculate = True #True#False
    
    	if Calculate==True:
    		rho_nframe = np.zeros(Nz).reshape(Nz,1)
    		for i in range(mframe,nframe+1):
    			position = md.read_mxyz(i)
    			# z, rho = md.oneframe_alldensity(position,Nz,mass_dict,density_type="mass",direction=direction)
    			z, rho = md.oneframe_moldensity(position,Nz,id_range,mass_dict,id_type="atom",density_type="mass",direction=direction)
    
    			rho_nframe = rho_nframe+rho
    
    			print(i,"---",nframe)
    		nf = (nframe-mframe+1)
    		rho=rho_nframe/nf #all
    		print("Average density =",rho.mean(),"g/mL")
    	#---- end ----------------------------------------------
    	plt.rc('font', family='Times New Roman', size=26)
    	fig = plt.figure(figsize=(12,8))
    	fig.subplots_adjust(bottom=0.2,left=0.2)
    	ax=fig.add_subplot(111)
    	ax.plot(z,rho,'r--',label='All',linewidth=2)
    
    	# ax.legend(loc="center")
    	ax.legend(loc="best")
    
    	ax.set_ylabel('Density(g/mL)',fontweight='bold',size=32)
    	ax.set_xlabel('z(脜)',fontweight='bold',size=32)	
    	# ax.set_ylim(-0.05,1.5)
    
    	plt.savefig(path+"imgs/density.png",dpi=300)
    	plt.show()
    
    
    if __name__ == '__main__':
    	cal_density()
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ReadLammpsTraj-1.1.6.tar.gz (1.1 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page