Beispiel #1
0
def fire(coords, pot, tol=1e-3, nsteps=100000, **kwargs):
    """
    A wrapper function for the pele FIRE implementation
    """
    opt = Fire(coords, pot, **kwargs)
    res = opt.run(fmax=tol, steps=nsteps)
    return res
Beispiel #2
0
def fire(coords, pot, tol=1e-3, nsteps=100000, **kwargs):
    """
    A wrapper function for the pele FIRE implementation
    """
    opt = Fire(coords, pot, **kwargs)
    res = opt.run(fmax=tol, steps=nsteps)
    return res
Beispiel #3
0
def fire(coords, pot, tol=1e-3, nsteps=100000, **kwargs):
    """
    A wrapper function for the pele FIRE implementation
    """
    if not hasattr(pot, "getEnergyGradient"):
        # for compatibility with old quenchers.
        # assume pot is a getEnergyGradient function
        pot = _getEnergyGradientWrapper(pot)
    opt = Fire(coords, pot, **kwargs)
    res = opt.run(fmax=tol, steps=nsteps)
    return res
Beispiel #4
0
def fire(coords, getEnergyGradient, tol=1e-3, nsteps=100000, **kwargs):
    """
    A wrapper function for the pele FIRE implementation
    """
    if hasattr(getEnergyGradient, "getEnergyGradient"):
        # this is to aid compatibility between old and new quenchers.
        # This function will now accept a potential object
        getEnergyGradient = getEnergyGradient.getEnergyGradient
    pot = getEnergyGradientWrapper(getEnergyGradient)
    opt = Fire(coords, pot, **kwargs)
    opt.run(fmax=tol, steps=nsteps)
    e,g = getEnergyGradient(opt.coords)
    rms = np.linalg.norm(g)/np.sqrt(len(g))
    return opt.coords, e, rms, opt.nsteps