예제 #1
0
sys.path.append('/home/kevin/projects/ntpl/Codes') # Needed to recognize ntpy module
import ntpy.param.lj as lj
import ntpy.param.const as ct
import ntpy.gulp as gp

temps = [20, 50, 80]
strains = [-0.12, -0.10, -0.08, -0.06, -0.04, -0.02, -0.01, 0.0, \
			0.005, 0.01, 0.015, 0.02, 0.04, 0.06, 0.08, 0.10, 0.12]
numTemps = len(temps)
numStrains = len(strains)
# numKpts = 100
numKpts = 50
numAtomsUC = 4 # Number of atoms in the unit cell
numFreq = 3 * numAtomsUC
numVel = numFreq
mass = 1.0 * lj.value('mass') * ct.value('kilo') * ct.value('avog')
gulpName = 'gulp.temp' # Gulp template file
tempName = 'input.gulp'

# Lattice Constants
alat = np.array( [lj.value('lat20'), lj.value('lat50'), lj.value('lat80')] ) 

# Data Arrays
vel = np.zeros( (numTemps, numStrains, numKpts, 3, numFreq, 3),	dtype=float)

freqConv = 2.0 * np.pi * ct.value('c') * ct.value('tocenti') * lj.value('tau')

# velConv = ((1.0 / ct.value('centi')) * ct.value('c')) / (1.0 / (lj.value('lat20') * ct.value('ang')))
# print velConv

for itemp in range(numTemps):
예제 #2
0
# from scipy.optimize import leastsq
import numpy as np
import operator
import sys
sys.path.append('/home/kevin/projects/ntpl/Codes')
import ntpy.param.lj as lj

temps = [20, 50, 80]
strains = [-.12, -.10, -.08, -.06, -.04, -.02, -.01, 0, .005, .01, .015, .02, .04, .06, .08, .10, .12]

numTemps = len(temps)
numStrains = len(strains)
numFreqs = 12

# Lattice Constants
alat = np.array( [lj.value('lat20'), lj.value('lat50'), lj.value('lat80')] ) 

print "Begin Load Sequence"
## ## ## Load freq from file
freq = np.load('post.freq.npy')

## ## ## Load vel from file
vel = np.load('post.vel.npy')

print vel[0,0,:,0,0,0]

## ## ## Load freqStep from file
freqStep = np.load('post.freqStep.npy')

## ## ## Load freqdos from file
freqdos = np.load('post.freq.dos.npy')
예제 #3
0
## ## ## Kevin Parrish - 7/31/12 - lammps pos script ## ## ##
import sys
sys.path.append('/home/kevin/projects/ntpl/Codes') # Needed to recognize ntpy module
import ntpy.lattice as lt	# Lattice module
import ntpy.param.lj as lj	# Parameter module

## Set lattice constants
lat20 = (lj.value('lat20') / lj.value('sigma')) * 1e-10
lat50 = (lj.value('lat50') / lj.value('sigma')) * 1e-10
lat80 = (lj.value('lat80') / lj.value('sigma')) * 1e-10
lat100 = lat80

## Automated using a loop
lats = [lat20, lat50, lat80, lat100]

for index, lat in zip(range(len(lats)), lats):
	mylamp = lt.Lammps('in.pos.'+ str(index))
	mylat = lt.Block([lats[index], lats[index], lats[index]], 'fcc', [6, 6, 6], atom_mass = [1])
	mylamp.buildLammps([mylat])

예제 #4
0
sys.path.append('/home/kevin/projects/ntpl/Codes') # Needed to recognize ntpy module
import ntpy.lattice as lt
import ntpy.param.lj as lj
import ntpy.param.const as ct
import ntpy.gulp as gp

temps = [20, 50, 80]
strains = [-0.12, -0.10, -0.08, -0.06, -0.04, -0.02, -0.01, 0.0, \
			0.005, 0.01, 0.015, 0.02, 0.04, 0.06, 0.08, 0.10, 0.12]
numTemps = len(temps)
numStrains = len(strains)
numKpts = 100
numAtomsUC = 4 # Number of atoms in the unit cell
numFreq = 3 * numAtomsUC
numVel = numFreq
mass = 1.0 * lj.value('mass') * ct.value('kilo') * ct.value('avog')
gulpName = 'gulp.temp' # Gulp template file
tempName = 'input.gulp'

# Lattice Constants
alat = np.array( [lj.value('lat20'), lj.value('lat50'), lj.value('lat80')] ) 

# Data Arrays
eig = np.zeros( (numTemps, numStrains, numKpts, 3, numFreq, numFreq), \
				dtype=complex)

for itemp in range(numTemps):
	for istrain in range(numStrains):
		# 100 Direction, Create kpts
		kpt = np.zeros( (numKpts, 3), dtype=float)
		kpt[:, 0] = np.linspace(0, 0.5, num=numKpts)
예제 #5
0
파일: nmd.py 프로젝트: csgorham/ntpy
## ## ## Kevin Parrish		## ## ##
## ## ## nmd.py config file	## ## ##
import numpy as np
import sys
ntpyPath = '/opt/mcgaugheygroup/ntpy'
sys.path.append(ntpyPath) # Needed to recognize ntpy module
import ntpy.lattice as lt
import ntpy.param.lj as lj
import ntpy.param.const as ct

## ## ## BEGIN USER INPUT	## ## ##

## Lattice Parameters
dim = [4, 4, 4]
latType = 'fcc'
realMass = 1.0 * lj.value('mass') * ct.value('kilo') * ct.value('avog')
ljMass = 1.0
realLat = lj.value('lat20') * (1.0+ 0.0)
ljLat = ((lj.value('lat20') / lj.value('sigma')) * 1e-10) * (1.0 + 0.0)

## Name Parameters

gulpName = 'gulp.template'				# Gulp Template Name
gulpTrans = 'input.gulp'				# Gulp Transient Name
gulpExe = 'gulp_ifort'					# Gulp Executable Name

lammpsName = 'lammps.template'			# Lammps Template Name
lammpsRunName = 'in.lammps'				# Lammps Run Name

lammpsSubName = 'lammps.sub.template'	# Lammps Submission Template Name
lammpsSubRunName = 'tmp.lammps.sub'		# Lammps Submission Run Name
예제 #6
0
# np.savez('post.ald.new.'+ str(2)+ '.'+ str(8)+ '.'+ \
# str(0)+ '.npz', newKpt=newKpt, newFreq=newFreq, \
# newLife=newLife, newVel=newVel)

# print 'finish'
# sys.exit()
##########################


for tStr, itemp in zip(strTemps, range(len(strTemps))):
    for i, sStr, sNum, istrain in zip(colors, strStrains, rStrains, range(len(strStrains))):
        for zStr, isize, zNum in zip(strSizes, range(len(strSizes)), rSizes):
            print tStr + "/" + sStr + "/" + zStr + "/"
            # # Create volume
            latType = "fcc"
            ljLat = ((lj.value("lat" + str(rTemps[itemp])) / lj.value("sigma")) * 1e-10) * (1.0 + sNum)
            myBox = lt.Block([ljLat, ljLat, ljLat], latType, [zNum, zNum, zNum])
            Lx = myBox.Lx()
            Ly = myBox.Ly()
            Lz = myBox.Lz()
            numAtomsUC = myBox.numAtomsUcell()
            numModes = 3 * numAtomsUC
            V = (Lx * Ly * Lz) * (1.0 * lj.value("sigma") ** 3)

            # # Extract Data
            pathName = basePathName + tStr + "/" + sStr + "/" + zStr + "/"
            jobName = pathName + fileData
            kpt, freq, freqShiftQ, lifeQ, freqShiftC, lifeC, vg = aldLife(jobName)
            rKpt = lt.kpt([zNum, zNum, zNum], conv=True)

            # EigenVectors