示例#1
0
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_')
示例#2
0
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()
示例#3
0
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()
示例#4
0
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()
示例#5
0
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])
示例#6
0
文件: cplib.py 项目: haoxy97/I-ReaxFF
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)
示例#7
0
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
示例#8
0
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()
示例#9
0
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')
示例#10
0
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()
示例#11
0
文件: jslib.py 项目: haoxy97/I-ReaxFF
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()
示例#12
0
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_')
示例#13
0
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()
示例#14
0
#!/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