import autode as ade
from autode.bracket.ieip import IEIP
from datetime import datetime

start_time = datetime.now()

ade.log.logger.setLevel('INFO')
ade.Config.n_cores = 8
ade.Config.ORCA.keywords.grad = ["PBE0", "D3BJ", "def2-SVP", "def2/J", "TightSCF", "defgrid3", "RIJCOSX", "EnGrad"]
ade.Config.ORCA.keywords.low_sp = ["PBE0", "D3BJ", "def2-SVP", "def2/J", "TightSCF", "defgrid3", "RIJCOSX", "SP"]
# The keywords are modified to include tighter SCF and larger grid

rct = ade.Reactant('reaction-17_RCT_pbe0.xyz', charge=0, mult=1)
prod = ade.Product('reaction-17_PROD_pbe0.xyz', charge=0, mult=1)

ieip = IEIP(
   initial_species = rct,
   final_species = prod,
   maxiter = 1000,
   use_ll_neb_interp = False,
   gtol=0.01
)

ieip.calculate(ade.methods.ORCA(), n_cores=8)
total_iters = ieip._macro_iter * 2 + 4
with open("grad_counter.txt", "w") as fh:
    fh.write(str(total_iters))

runtime = datetime.now() - start_time
with open("autode_time.txt", "w") as fh2:
    fh2.write(str(runtime.total_seconds()))

if ieip.ts_guess is not None:
    ieip.ts_guess.print_xyz_file(filename="reaction-17-ieip_ts_guess.xyz")

