plt.gca().set_aspect('equal') draw() print("etot(eV): ", etot * evpmol) # writes out the occ matrix # this is the same as metro1 ofile = open((out_filenm), 'w') np.save(ofile, n) np.save(ofile, m) np.save(ofile, ntotmol) np.save(ofile, occm) np.save(ofile, etot) if (bbcharg): np.save(ofile, occm_ch) np.save(ofile, occm_higd) np.save(ofile, dipoles) ofile.close() ifilout.close() """ if __name__ == '__main__': args = scripts.get_args() logger = scripts.get_logger(quiet=args.quiet, debug=args.debug) simulation = Metro2(args)
return args def simulation_wrapper(args): try: logger.debug("simulation wrapper called, initialising...") sim = metro1.Metro1(args) logger.debug("starting simulation...") sim.start() logger.debug("simulation complete.") except Exception as e: logger.warning(e.message) if __name__ == '__main__': args = get_args() logger = scripts.get_logger(debug=args.debug, quiet=args.quiet, namespace='analytics') pool = mp.Pool() dt = time.time() sim_idx = 0 for n_idx in range(args.n_min, args.n_max+1, args.n_step): for m_idx in range(args.m_min, args.m_max+1, args.m_step): for p_idx in range(0, int((args.p_max-args.p_min)/args.p_step)): # range is integer only, can't do floats sim_args = scripts.get_args(default=True) sim_args.n_samples = args.n_samples sim_args.n = int(n_idx) sim_args.m = int(m_idx) sim_args.b = args.b sim_args.cov = (float(p_idx)/float(sim_args.n*sim_args.m))+0.001 sim_args.kt = args.kt/(sim_args.kelperev*sim_args.hartree) if p_idx >= sim_args.n or p_idx >= sim_args.m: break