-
Notifications
You must be signed in to change notification settings - Fork 35
Description
Use Case
It is frequently required to tune parameters and boundary conditions in a 0D model to match experimentally derived waveforms or other data.
Problem
One workflow that is "standard" in the lab is to apply Nelder Mead or another optimization algorithm to tune a 0D model or its boundary conditions. Existing code to for these workflows is scattered amongst various scripts and requires significant manual changes to work. A flexible script that allows users to optimize all possible parameters should be included with the repo, along with documentation.
Solution
A flexible python script that calls Nelder Mead from scipy should be added to the solver. This requires a legible user interface to traverse the json file and pass parameters to the optimizer, run the optimizer from scipy (or wherever) and solver, update data structures and repeat. This also should include an interface for the user to select which variables, which could be any constants in the input file, to optimize.
I have implemented such a script from examples of others in the lab. This script is highly effective on my use case but the user interface needs substantial improvement. I had to carefully and manually figure out how to traverse the nested data structures from the json file reads. @ncdorn said he may have code for improving the software interface to the json files.
alexkaiser@782e889
Alternatives considered
The calibrator tunes parameters but is limited to certain internal elements, does not tune chambers or boundary conditions and requires computing derivatives.
Additional context
No response
Code of Conduct
- I agree to follow this project's Code of Conduct and Contributing Guidelines