Files
lammps/tools/tabulate/wall_multi_tabulate.py
2023-02-23 01:09:44 -05:00

65 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python
from tabulate import WallTabulate
import os, sys
################################################################################
import math
k = 100.0
rzero = 4.0
epsilon = 0.02
sigma = 2.0
depth = 20.0
width = 2.0
r0 = 1.2
def harmonic_force(r):
dr = r - rzero
f = -2.0 * k * dr
return f
def harmonic_energy(r):
dr = r - rzero
f = k * dr * dr
return f
def lj126_force(r):
f = -4.0*epsilon*(-12.0*math.pow(sigma/r,12.0)/r + 6.0*math.pow(sigma/r,6.0)/r)
return f
def lj126_energy(r):
f = 4.0*epsilon*(math.pow(sigma/r,12.0) - math.pow(sigma/r,6.0))
return f
def morse_energy(r):
ralpha = math.exp(-width*(r-r0))
f = depth * (-1.0 + (1.0 - ralpha) * (1.0 - ralpha))
return f
def morse_force(r):
ralpha = math.exp(-width*(r-r0))
f = -2.0 * depth * width * (1.0 -ralpha) * ralpha
return f
################################################################################
if __name__ == "__main__":
fname = 'walltab.dat'
if os.path.exists(fname):
os.remove(fname)
sys.argv.append('--filename')
sys.argv.append(fname)
sys.argv.append('--num-points')
sys.argv.append('400')
sys.argv.append('--inner')
sys.argv.append('0.01')
sys.argv.append('--outer')
sys.argv.append('4.0')
wtable = WallTabulate(harmonic_energy, harmonic_force, units='real')
wtable.run('HARMONIC')
wtable = WallTabulate(lj126_energy, lj126_force, units='real')
wtable.run('LJ126')
wtable = WallTabulate(morse_energy, morse_force, units='real')
wtable.run('MORSE')