import autode as ade
from autode.bracket import DHS
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"]
# The keywords are modified to include tighter SCF and larger grid

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

dhs = DHS(
   initial_species = rct,
   final_species = prod,
   maxiter = 1000,
   gtol = 1e-3,
   dist_tol = 0.5,
)

dhs.calculate(ade.methods.ORCA(), n_cores=8)
total_iters = dhs._macro_iter + dhs._micro_iter + 2
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 dhs.ts_guess is not None:
    dhs.ts_guess.print_xyz_file(filename="reaction-15-dhs_ts_guess.xyz")
