# AKMC
saddle_search_parameters = SaddleSearchParameters(max_forces=1e-3*eV/Ang)
# This allows for the AKMC simulation to be restarted.
if os.path.isfile('akmc_markov_chain.hdf5'):
    markov_chain = nlread('akmc_markov_chain.hdf5')[-1]
else:
    markov_chain = MarkovChain(initial_configuration, TotalEnergy(initial_configuration).evaluate())
if os.path.isfile('akmc_kmc.hdf5'):
    kmc = nlread('akmc_kmc.hdf5')[-1]
else:
    kmc = None
     
akmc = AdaptiveKineticMonteCarlo(markov_chain,
                                 kmc=None,
                                 kmc_temperature=300.0*Kelvin,
                                 md_temperature=2000*Kelvin,
                                 calculator=calculator,
                                 saddle_search_parameters=saddle_search_parameters,
                                 assumed_prefactor=1e13/Second,
                                 write_searches=False,
                                 superbasin_threshold=20,
                                 constraints=constraints,
                                 confidence=0.95)
# Run 200 saddle searches before exiting.                                 
akmc.run(200)