def _run_one(simu_id, result_path, paramtree, measuretree, verbose): """ This function need to be outisde Launcher class to allow multiprocessing module to work """ queue = _run_one.q queue.put({"id": simu_id, "state": "start"}) meta = Metaphase(verbose=False, paramtree=paramtree, measuretree=measuretree, reduce_p=True) meta.simul() meta.evaluate() # Build filename simu_path = os.path.join(result_path, "simu_%06d.zip" % simu_id) # Write simulation result io = SimuIO(meta) io.save(simufname=simu_path, verbose=False) queue.put({"id" : simu_id, "state" : "stop" }) del meta del io gc.collect() return True
MEASUREFILE = parameters.MEASUREFILE # Arguments parser parser = argparse.ArgumentParser(description="KtSimu Animator") parser.add_argument("--new", "-n", action="store_true", default=False, help="Run a new simulation") parser.add_argument( "--results", "-r", type=str, default="simu.h5", help="Specified results hdf5 file for new or already runned simulation", ) args = parser.parse_args() results_file = args.results if args.new: meta = Metaphase(paramfile=PARAMFILE, measurefile=MEASUREFILE, verbose=True) meta.simul() io = SimuIO(meta) io.save(results_file) else: meta = SimuIO().read(results_file) # Run animation anim = Animator(meta) anim.play()