def test_save_load(self): model = pybamm.lead_acid.LOQS() model.use_jacobian = True sim = pybamm.Simulation(model) sim.save("test.pickle") sim_load = pybamm.load_sim("test.pickle") self.assertEqual(sim.model.name, sim_load.model.name) # save after solving sim.solve([0, 600]) sim.save("test.pickle") sim_load = pybamm.load_sim("test.pickle") self.assertEqual(sim.model.name, sim_load.model.name) # with python formats model.convert_to_format = None sim = pybamm.Simulation(model) sim.solve([0, 600]) sim.save("test.pickle") model.convert_to_format = "python" sim = pybamm.Simulation(model) sim.solve([0, 600]) with self.assertRaisesRegex( NotImplementedError, "Cannot save simulation if model format is python"): sim.save("test.pickle")
def test_save_load_dae(self): model = pybamm.lead_acid.LOQS({"surface form": "algebraic"}) model.use_jacobian = True sim = pybamm.Simulation(model) # save after solving sim.solve([0, 600]) sim.save("test.pickle") sim_load = pybamm.load_sim("test.pickle") self.assertEqual(sim.model.name, sim_load.model.name) # with python format model.convert_to_format = None sim = pybamm.Simulation(model) sim.solve([0, 600]) sim.save("test.pickle") # with Casadi solver model.convert_to_format = "casadi" sim = pybamm.Simulation(model, solver=pybamm.CasadiSolver()) sim.solve([0, 600]) sim.save("test.pickle") sim_load = pybamm.load_sim("test.pickle") self.assertEqual(sim.model.name, sim_load.model.name)
def test_load_param(self): # Test load_sim for parameters imports filename = f"{uuid.uuid4()}.p" save_sim = f"import pybamm; model = pybamm.lithium_ion.SPM(); params = pybamm.ParameterValues(chemistry=pybamm.parameter_sets.Chen2020); sim = pybamm.Simulation(model, parameter_values=params); sim.solve([0, 3600]); sim.save('{filename}')" # noqa subprocess.run([sys.executable, "-c", save_sim]) try: pkl_obj = pybamm.load_sim(os.path.join(filename)) except Exception as excep: os.remove(filename) raise excep self.assertEqual( "graphite_LGM50_electrolyte_exchange_current_density_Chen2020", pkl_obj.parameter_values[ "Negative electrode exchange-current density [A.m-2]"]. __name__, ) os.remove(filename)