예제 #1
0
def fire(frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {'dt': 0.1, 'euler': False, 'maxiter': maxiter}
    return neb.NEB("neb_test",
                   frames,
                   "! HF-3c",
                   opt="FIRE",
                   new_opt_params=new_opt_params)
예제 #2
0
def quick_min(frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {
        'dt': 0.1,
        'verbose': False,
        'euler': False,
        'maxiter': maxiter
    }
    return neb.NEB("neb_test",
                   frames,
                   "! HF-3c",
                   opt="QM",
                   new_opt_params=new_opt_params)
예제 #3
0
def sd(frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {
        'step_size': 0.1,
        'step_size_adjustment': 0.5,
        'max_step': 0.2,
        'linesearch': 'backtrack',
        'accelerate': True,
        'maxiter': maxiter
    }
    return neb.NEB("neb_test",
                   frames,
                   "! HF-3c",
                   opt="SD",
                   new_opt_params=new_opt_params)
예제 #4
0
def scipy(method="slsqp", frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {
        'disp': False,
        'gtol': units.convert_energy("Ha", "eV", 1e-3),
        'eps': 1.4901161193847656e-08,
        'return_all': False,
        'maxiter': maxiter,
        'norm': 2.0,
        'ftol': 0.0
    }
    return neb.NEB("scipy",
                   frames,
                   "! HF-3c",
                   opt="scipy_" + method,
                   new_opt_params=new_opt_params)
예제 #5
0
def conjugate_gradient(frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {
        'step_size': 0.1,
        'step_size_adjustment': 0.5,
        'max_step': 0.2,
        'linesearch': 'backtrack',
        'accelerate': True,
        'maxiter': maxiter,
        'method': 'FR',
        'linesearch': 'backtrack'
    }
    return neb.NEB("squid_cg",
                   frames,
                   "! HF-3c",
                   opt="CG",
                   new_opt_params=new_opt_params)
예제 #6
0
def lbfgs(frames=files.read_xyz("CNH_HCN.xyz"), maxiter=1000):
    new_opt_params = {
        'step_size': 1.0,
        'step_size_adjustment': 0.5,
        'max_step': 0.04,
        'linesearch': None,
        'accelerate': True,
        'reset_step_size': 20,
        'maxiter': maxiter
    }
    return neb.NEB("neb_test",
                   frames,
                   "! HF-3c",
                   opt="LBFGS",
                   queue=None,
                   procs=1,
                   new_opt_params=new_opt_params,
                   ci_neb=True,
                   no_energy=False)
예제 #7
0
        atom.fz = units.convert("kcal/ang", "Ha/ang", float(atom.extras['fz']))

    energy = open("lammps/solv_box-%d-%d/energy.profile" % (step_to_use, i),
                  'r').read().strip().split("\n")[-1]
    new_energy = float(energy.strip().split()[-1].strip())

    # Add the forces onto our state
    for a, b in zip(state, new_atoms):
        a.fx, a.fy, a.fz = b.fx, b.fy, b.fz

    return units.convert_energy("kcal/mol", "Ha", new_energy), new_atoms


frames = generate_frames()
files.write_xyz(frames, "neb_initial_configuration.xyz")

sim = neb.NEB(
    'benzene',
    frames,
    ('water.cml', 1.0),
    #('CH3OH.cml', 0.8),
    DFT="None",
    opt="LBFGS",
    queue="short",
    procs=4,
    start_job=run_simulation,
    get_results=read_simulation,
    no_energy=False)

sim.optimize()