Skip to content

Commit

Permalink
pybamm-team#744 add distributions into variables
Browse files Browse the repository at this point in the history
  • Loading branch information
suhaklee committed Nov 22, 2019
1 parent 726d3da commit 4ee5305
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
15 changes: 14 additions & 1 deletion examples/scripts/compare_lithium_ion_particle_distribution.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,19 @@ def positive_distribution(x):
for i, model in enumerate(models):
solutions[i] = model.default_solver.solve(model, t_eval)


output_variables = [
"Negative particle surface concentration",
"Electrolyte concentration",
"Positive particle surface concentration",
"Current [A]",
"Negative electrode potential [V]",
"Electrolyte potential [V]",
"Positive electrode potential [V]",
"Terminal voltage [V]",
"Negative particle distribution",
"Positive particle distribution",]

# plot
plot = pybamm.QuickPlot(models, mesh, solutions)
plot = pybamm.QuickPlot(models, mesh, solutions,output_variables=output_variables)
plot.dynamic_plot()
16 changes: 12 additions & 4 deletions pybamm/models/submodels/particle/fickian/fickian_many_particles.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ def get_coupled_variables(self, variables):
N_s = self._flux_law(c_s, T_k)

variables.update(self._get_standard_flux_variables(N_s, N_s))

if self.domain == "Negative":
x = pybamm.standard_spatial_vars.x_n
R = pybamm.FunctionParameter( 'Negative particle distribution', x)
variables.update({"Negative particle distribution":R})

elif self.domain == "Positive":
x = pybamm.standard_spatial_vars.x_p
R = pybamm.FunctionParameter( 'Positive particle distribution', x)
variables.update({"Positive particle distribution": R})
return variables


Expand All @@ -54,13 +64,11 @@ def set_rhs(self, variables):
c, N, _ = self._unpack(variables)

if self.domain == "Negative":
x = pybamm.standard_spatial_vars.x_n
R = pybamm.PrimaryBroadcast(pybamm.FunctionParameter('Negative particle distribution',x), 'negative particle',)
R = pybamm.PrimaryBroadcast(variables['Negative particle distribution'], 'negative particle',)
self.rhs = {c: -(1 / (R**2 * self.param.C_n)) * pybamm.div(N)}

elif self.domain == "Positive":
x = pybamm.standard_spatial_vars.x_p
R = pybamm.PrimaryBroadcast(pybamm.FunctionParameter('Positive particle distribution', x), 'positive particle',)
R = pybamm.PrimaryBroadcast(variables['Positive particle distribution'], 'positive particle',)
self.rhs = {c: -(1 / (R**2 * self.param.C_p)) * pybamm.div(N)}


Expand Down

0 comments on commit 4ee5305

Please sign in to comment.