def cp(): p,zpe,spec,bonds,offd,angs,torp,hbs= read_lib(libfile='ffield') p_ = p.copy() p_chon,zpe,spec,bonds,offd,angs,torp,hbs= read_lib(libfile='ffieldCHON') for key in p_chon: if not key in p_: # print(key) p_[key] = p_chon[key] write_lib(p_,spec,bonds,offd,angs,torp,hbs,libfile='ffield_')
def i(): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') fj = open('ffield.json', 'w') j = {'p': p, 'm': [], 'bo_layer': [], 'zpe': []} js.dump(j, fj, sort_keys=True, indent=2) fj.close()
def plro(lab='sigma'): p,zpe,spec,bonds,offd,angs,torp,hbs= \ read_lib(libfile='ffield',zpe=False) r = np.arange(0.0001, 3.0, 0.1) ro = np.arange(0.75, 1.85, 0.15) plt.figure() plt.ylabel('Uncorrected ' + lab + 'Bond Order') plt.xlabel(r'$Radius$ $(Angstrom)$') plt.xlim(0, 3.0) plt.ylim(0, 1.01) bd = 'C-H' # for i,bd in enumerate(bonds): b = bd.split('-') bdn = b[0] if b[0] == b[1] else bd for i, rosi in enumerate(ro): b = get_bo(r, rosi=rosi, bo1=p['bo1_' + bd], bo2=p['bo2_' + bd]) plt.plot(r, b, label=r'$r_{sigma}=%f$' % rosi, color=colors[i % len(colors)], linewidth=2, linestyle='--') plt.legend() plt.savefig('bovsro.eps') plt.close()
def plbo3d(lab='sigma'): p,zpe,spec,bonds,offd,angs,torp,hbs= \ read_lib(libfile='ffield',zpe=False) r = np.linspace(0.0001, 3.0, 50) bo2_ = np.linspace(0.001, 18.0, 50) bo1_ = np.linspace(-0.9, -0.0001, 50) bo1_, bo2_ = np.meshgrid(bo1_, bo2_) bd = 'C-C' b = bd.split('-') bdn = b[0] if b[0] == b[1] else bd b = get_bo(r, rosi=p['rosi_' + bdn], bo1=bo1_, bo2=bo2_) fig = plt.figure() ax = Axes3D(fig) # plt.xlabel("Delta'") ax = plt.subplot(111, projection='3d') ax.plot_surface(bo1_, bo2_, b, cmap=plt.get_cmap('rainbow')) ax.contourf(bo1_, bo2_, b, zdir='z', offset=0.0, cmap=plt.get_cmap('rainbow')) plt.savefig('bovsbo23d.eps') plt.close()
def q(gen='packed.gen'): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') A = read(gen) q = qeq(p=p, atoms=A) q.calc(A) # q.debug() print('\n- Qeq Charges: \n', q.q[:-1])
def cpl(): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib( libfile='ffield-FromPaperSort') p_ = {} specs = ['Al', 'C', 'H'] for key in p: k = key.split('_') if len(k) == 1: p_[key] = p[key] else: bd = k[1] b = bd.split('-') if len(b) == 1: if b[0] in specs: if b[0] == 'H': p_[k[0] + '_' + 'F'] = p[key] else: p_[key] = p[key] elif len(b) == 2: if b[0] in specs and b[1] in specs: if b[0] == 'H' or b[1] == 'H': bd_ = bd.replace('H', 'F') p_[k[0] + '_' + bd_] = p[key] else: p_[key] = p[key] elif len(b) == 3: if b[0] in specs and b[1] in specs and b[2] in specs: if b[0] == 'H' or b[1] == 'H' or b[2] == 'H': bd_ = bd.replace('H', 'F') p_[k[0] + '_' + bd_] = p[key] else: p_[key] = p[key] elif len(b) == 4: if b[0] in specs and b[1] in specs and b[2] in specs and b[ 3] in specs: if b[0] == 'H' or b[1] == 'H' or b[2] == 'H' or b[3] == 'H': bd_ = bd.replace('H', 'F') p_[k[0] + '_' + bd_] = p[key] else: p_[key] = p[key] spec_ = ['C', 'F', 'Al'] # write_lib(p_,spec_,bonds,offd,angs,torp,hbs,libfile='ffield_') with open('ffield.json', 'w') as fj: j = { 'p': p_, 'm': None, 'EnergyFunction': 0, 'MessageFunction': 0, 'messages': 1, 'bo_layer': None, 'bf_layer': None, 'be_layer': None, 'vdw_layer': None, 'MolEnergy': None } js.dump(j, fj, sort_keys=True, indent=2)
def get_p(ffield): if ffield.endswith('.json'): lf = open(ffield, 'r') j = js.load(lf) p = j['p'] m = j['m'] spec, bonds, offd, angs, torp, hbs = init_bonds(p) else: p, zpe_, spec, bonds, offd, Angs, torp, Hbs = read_lib(libfile=ffield, zpe=False) return p, bonds
def jj(): lf = open('ffield.json', 'r') j = js.load(lf) p_ = j['p'] m_ = j['m'] bo_layer_ = j['bo_layer'] lf.close() spec, bonds, offd, angs, torp, hbs = init_bonds(p_) p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') fj = open('ffield_.json', 'w') j = {'p': p, 'm': m_, 'bo_layer': bo_layer} js.dump(j, fj, sort_keys=True, indent=2) fj.close()
def resetff(): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib( libfile='ffield.reax') # print(torp) p_ = p.copy() Poffd = ['Devdw', 'rvdw', 'alfa', 'rosi', 'ropi', 'ropp'] for bd in bonds: b = bd.split('-') if b[0] != b[1]: if bd not in offd: # print(bd) offd.append(bd) for ofd in Poffd: if p_[ofd + '_' + b[0]] > 0 and p_[ofd + '_' + b[1]] > 0: p_[ofd + '_' + bd] = np.sqrt(p_[ofd + '_' + b[0]] * p_[ofd + '_' + b[1]]) else: p_[ofd + '_' + bd] = -1.0 for key in p: k = key.split('_') kpre = k[0] if kpre == 'ropi' or kpre == 'ropp': pcon = k[1] pc_ = pcon.split('-') if p[key] <= 0.0: if pcon != 'X': if len(pc_) == 2: p_['bo3_' + pcon] = -50.0 p_['bo4_' + pcon] = 2.0 else: p_['bo3_' + pcon + '-' + pcon] = -50.0 p_['bo4_' + pcon + '-' + pcon] = 2.0 for key in p: k = key.split('_') kpre = k[0] if kpre == 'ropi' or kpre == 'ropp': pcon = k[1] if kpre == 'ropi': p_[key] = 0.9 * p['rosi_' + pcon] elif kpre == 'ropp': p_[key] = 0.8 * p['rosi_' + pcon] p_, tors = check_tors(p_, spec, torp) write_lib(p_, spec, bonds, offd, angs, tors, hbs, libfile='ffield')
def plbo1(lab='sigma'): p,zpe,spec,bonds,offd,angs,torp,hbs= \ read_lib(libfile='ffield',zpe=False) r = np.arange(0.0001, 3.0, 0.1) bo1_ = np.arange(-2.0, -0.0001, 0.05) plt.figure() plt.ylabel('Uncorrected ' + lab + 'Bond Order') plt.xlabel(r'$Radius$ $(Angstrom)$') plt.xlim(0, 2.6) plt.ylim(0, 1.01) bd = 'C-C' # for i,bd in enumerate(bonds): b = bd.split('-') bdn = b[0] if b[0] == b[1] else bd for i, bo1 in enumerate(bo1_): b = get_bo(r, rosi=p['rosi_' + bdn], bo1=bo1, bo2=p['bo2_' + bd]) if i == 0: plt.plot(r, b, label=r'$bo1=%f$' % bo1, color=colors[i % len(colors)], linewidth=2, linestyle='--') elif i == len(bo1_) - 1: plt.plot(r, b, label=r'$bo1=%f$' % bo1, color=colors[i % len(colors)], linewidth=2, linestyle='--') else: plt.plot( r, b, # label=r'$bo1=%f$' %bo1, color=colors[i % len(colors)], linewidth=2, linestyle='--') plt.legend() plt.savefig('bovsbo1.eps') plt.close()
def i(): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') fj = open('ffield.json', 'w') # j = {'p':p,'m':[],'bo_layer':[],'zpe':[]} j = { 'p': p, 'm': None, 'EnergyFunction': 0, 'MessageFunction': 0, 'messages': 1, 'bo_layer': None, 'bf_layer': None, 'be_layer': None, 'vdw_layer': None, 'MolEnergy': None } js.dump(j, fj, sort_keys=True, indent=2) fj.close()
def ii(): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') write_lib(p_, spec, bonds, offd, angs, torp, hbs, libfile='ffield_')
def q(gen='packed.gen'): p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') A = read(gen) q = qeq(p=p, atoms=A) q.calc()
#!/usr/bin/env python # -*- coding: utf-8 -*- import matplotlib matplotlib.use('Agg') from os import system, getcwd, chdir, listdir from os.path import isfile # exists import argh import argparse from irff.reax import ReaxFF from irff.mpnn import MPNN from irff.reaxfflib import read_lib, write_lib direcs = {'alc2f6': '/home/feng/mlff/Al/alc2f6'} # can by multi-directories batch = 50 # number of frame need to collected from directories. p, zpe, spec, bonds, offd, angs, torp, hbs = read_lib(libfile='ffield') vto = [] ## define variables to optimize for key in p: k = key.split('_') if len(k) == 1: continue kpre = k[0] kc = k[1] kc_ = kc.split('-') if kpre == 'n.u.': continue # if kpre=='Devdw': # continue