Skip to content

Add python-based tuning of models #158

@alexkaiser

Description

@alexkaiser

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions