-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLJConvert.py
More file actions
38 lines (34 loc) · 1.37 KB
/
Copy pathLJConvert.py
File metadata and controls
38 lines (34 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import sys
### Written by Niel Henriksen.
Vals = {}
for i,arg in enumerate(sys.argv):
if arg == '-rmin':
Vals['rmin'] = float(sys.argv[i+1])
if arg == '-rmin/2': ### AMBER
Vals['rmin/2'] = float(sys.argv[i+1])
if arg == '-sigma':
Vals['sigma'] = float(sys.argv[i+1])
if arg == '-epsilon': ### AMBER
Vals['epsilon'] = float(sys.argv[i+1])
if arg == '-A':
Vals['A'] = float(sys.argv[i+1])
if arg in ['-B','-C']:
Vals['B'] = float(sys.argv[i+1])
if 'rmin' in Vals and not 'rmin/2' in Vals:
Vals['rmin/2'] = Vals['rmin']/2.0
if 'rmin/2' in Vals and not 'rmin' in Vals:
Vals['rmin'] = Vals['rmin/2']*2.0
if 'rmin' in Vals and not 'sigma' in Vals:
Vals['sigma'] = Vals['rmin']/(2.0**(1.0/6.0))
if 'sigma' in Vals and not 'rmin' in Vals:
Vals['rmin'] = Vals['sigma']*(2.0**(1.0/6.0))
if 'sigma' in Vals and 'epsilon' in Vals and (not 'A' in Vals or not 'B' in Vals):
Vals['A'] = 4.0*Vals['epsilon']*(Vals['sigma']**12.0)
Vals['B'] = 4.0*Vals['epsilon']*(Vals['sigma']**6.0)
if 'A' in Vals and 'B' in Vals and (not 'rmin' in Vals or not 'sigma' in Vals or not 'epsilon' in Vals):
Vals['sigma'] = (Vals['A']/Vals['B'])**(1.0/6.0)
Vals['rmin'] = Vals['sigma']*(2.0**(1.0/6.0))
Vals['epsilon'] = (Vals['B']**2.0)/(4.0*Vals['A'])
Vals['rmin/2'] = Vals['rmin']/2.0
for key in "rmin/2 rmin sigma epsilon A B".split():
print "%8s= %15.7f" % (key,Vals[key])