|
1 | 1 | import pybamm
|
2 | 2 | import numpy as np
|
3 | 3 | import matplotlib.pyplot as plt
|
4 |
| -plt.close('all') |
| 4 | + |
| 5 | +plt.close("all") |
5 | 6 | pybamm.set_logging_level("INFO")
|
6 | 7 |
|
7 | 8 | # load model
|
|
13 | 14 | # load parameter values and process model and geometry
|
14 | 15 | param = model.default_parameter_values
|
15 | 16 |
|
16 |
| -param.update({'Negative electrode surface area density [m-1]': 180000.0, |
17 |
| - 'Positive electrode surface area density [m-1]': 150000.0}) |
| 17 | +param.update( |
| 18 | + { |
| 19 | + "Negative electrode surface area density [m-1]": 180000.0, |
| 20 | + "Positive electrode surface area density [m-1]": 150000.0, |
| 21 | + } |
| 22 | +) |
18 | 23 |
|
19 | 24 |
|
20 |
| -max_neg = param['Maximum concentration in negative electrode [mol.m-3]'] |
21 |
| -max_pos = param['Maximum concentration in positive electrode [mol.m-3]'] |
22 |
| -a_neg = param['Negative electrode surface area density [m-1]'] |
23 |
| -a_pos = param['Positive electrode surface area density [m-1]'] |
24 |
| -l_neg = param['Negative electrode thickness [m]'] |
25 |
| -l_pos = param['Positive electrode thickness [m]'] |
26 |
| -por_neg = param['Negative electrode porosity'] |
27 |
| -por_pos = param['Positive electrode porosity'] |
| 25 | +max_neg = param["Maximum concentration in negative electrode [mol.m-3]"] |
| 26 | +max_pos = param["Maximum concentration in positive electrode [mol.m-3]"] |
| 27 | +a_neg = param["Negative electrode surface area density [m-1]"] |
| 28 | +a_pos = param["Positive electrode surface area density [m-1]"] |
| 29 | +l_neg = param["Negative electrode thickness [m]"] |
| 30 | +l_pos = param["Positive electrode thickness [m]"] |
| 31 | +por_neg = param["Negative electrode porosity"] |
| 32 | +por_pos = param["Positive electrode porosity"] |
28 | 33 |
|
29 | 34 | param.process_model(model)
|
30 | 35 | param.process_geometry(geometry)
|
31 | 36 |
|
32 | 37 | s_var = pybamm.standard_spatial_vars
|
33 |
| -var_pts = {s_var.x_n: 5, s_var.x_s: 5, |
34 |
| - s_var.x_p: 5, s_var.r_n: 5, |
35 |
| - s_var.r_p: 10} |
| 38 | +var_pts = {s_var.x_n: 5, s_var.x_s: 5, s_var.x_p: 5, s_var.r_n: 5, s_var.r_p: 10} |
36 | 39 | # set mesh
|
37 | 40 | mesh = pybamm.Mesh(geometry, model.default_submesh_types, var_pts)
|
38 | 41 |
|
|
45 | 48 | sol = model.default_solver.solve(model, t_eval)
|
46 | 49 |
|
47 | 50 | # plot
|
48 |
| -out_vars = ['RX-averaged positive particle concentration [mol.m-3]', |
49 |
| - 'RX-averaged negative particle concentration [mol.m-3]', |
50 |
| - 'X-averaged electrolyte concentration [mol.m-3]', |
51 |
| - 'X-averaged positive electrode porosity', |
52 |
| - 'X-averaged negative electrode porosity', |
53 |
| - 'X-averaged separator porosity'] |
| 51 | +out_vars = [ |
| 52 | + "RX-averaged positive particle concentration [mol.m-3]", |
| 53 | + "RX-averaged negative particle concentration [mol.m-3]", |
| 54 | + "X-averaged electrolyte concentration [mol.m-3]", |
| 55 | + "X-averaged positive electrode porosity", |
| 56 | + "X-averaged negative electrode porosity", |
| 57 | + "X-averaged separator porosity", |
| 58 | +] |
54 | 59 | plot = pybamm.QuickPlot(model, mesh, sol, output_variables=out_vars)
|
55 | 60 | plot.dynamic_plot()
|
56 | 61 | keys = list(model.variables.keys())
|
57 | 62 | keys.sort()
|
58 | 63 |
|
59 |
| -xppc = pybamm.ProcessedVariable(model.variables[out_vars[0]], |
60 |
| - sol.t, sol.y, mesh=mesh) |
61 |
| -xnpc = pybamm.ProcessedVariable(model.variables[out_vars[1]], |
62 |
| - sol.t, sol.y, mesh=mesh) |
63 |
| -xec = pybamm.ProcessedVariable(model.variables[out_vars[2]], |
64 |
| - sol.t, sol.y, mesh=mesh) |
| 64 | +xppc = pybamm.ProcessedVariable(model.variables[out_vars[0]], sol.t, sol.y, mesh=mesh) |
| 65 | +xnpc = pybamm.ProcessedVariable(model.variables[out_vars[1]], sol.t, sol.y, mesh=mesh) |
| 66 | +xec = pybamm.ProcessedVariable(model.variables[out_vars[2]], sol.t, sol.y, mesh=mesh) |
65 | 67 | rp = np.linspace(0, 1.0, 11)
|
66 | 68 |
|
67 | 69 | plt.figure()
|
68 | 70 | rplt = 0.0
|
69 |
| -plt.plot(np.ones(len(sol.t))*max_neg*por_neg, 'r--', label='Max Neg') |
70 |
| -plt.plot(xnpc(sol.t, r=rplt)*por_neg, 'r', label='Neg Li') |
71 |
| -plt.plot(np.ones(len(sol.t))*max_pos*por_pos, 'b--', label='Max Pos') |
72 |
| -plt.plot(xppc(sol.t, r=rplt)*por_pos, 'b', label='Pos Li') |
73 |
| -plt.plot(xec(sol.t, r=rplt), 'g', label='Elec Li') |
74 |
| -tot = (xnpc(sol.t, r=rplt) * por_neg + |
75 |
| - xppc(sol.t, r=rplt) * por_pos + |
76 |
| - xec(sol.t, r=rplt)) |
77 |
| -plt.plot(tot, 'k-', label='Total Li') |
| 71 | +plt.plot(np.ones(len(sol.t)) * max_neg * por_neg, "r--", label="Max Neg") |
| 72 | +plt.plot(xnpc(sol.t, r=rplt) * por_neg, "r", label="Neg Li") |
| 73 | +plt.plot(np.ones(len(sol.t)) * max_pos * por_pos, "b--", label="Max Pos") |
| 74 | +plt.plot(xppc(sol.t, r=rplt) * por_pos, "b", label="Pos Li") |
| 75 | +plt.plot(xec(sol.t, r=rplt), "g", label="Elec Li") |
| 76 | +tot = xnpc(sol.t, r=rplt) * por_neg + xppc(sol.t, r=rplt) * por_pos + xec(sol.t, r=rplt) |
| 77 | +plt.plot(tot, "k-", label="Total Li") |
78 | 78 | plt.legend()
|
0 commit comments