Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to handle structural parameters #18

Closed
3 tasks
BradyPlanden opened this issue Aug 4, 2023 · 0 comments · Fixed by #169
Closed
3 tasks

How to handle structural parameters #18

BradyPlanden opened this issue Aug 4, 2023 · 0 comments · Fixed by #169

Comments

@BradyPlanden
Copy link
Member

Parameters that don't affect the geometric structure of the model should be passed as inputs to the pybamm.solver class to improve performance. This will allow the built model to be updated with the appropriate parameters at each iteration without reforming the model, discretisation and solver.

If the parameters of interest have an influence on the geometric structure of the model (electrode thickness, number of particles, etc.), the above workflow must be rebuilt on each iteration. This slows down the iterations/sec of parameterisation/optimisation, but without pre-composing the design space (there is a side discussion to be had here) we need to do this to enable robust results.

Open thoughts:

  • For the structural parameter set, obtaining the gradient of the result will not be easy, and if needed will require more computationally complex methods, as the model structure changes with each iteration.
  • There is a further discussion here about the fidelity of varying the model structure during either parameterisation or optimisation. There may be side effects that need to be captured in the model construction (for multi-particle models, the discretisation distribution could be held constant between structural changes).

To do:

  • Group the parameters of supported models into the two domains of structural and non-structural.
  • Update the constructor of the parameterisation/optimisation class to include functionality for each of the parameter groups.
  • Build a parameter update method for each iteration that returns either the forward model or the simulation result to the parameterisation / optimisation method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant