Closed steven-murray closed 5 years ago
Yeah, give it a go yourself. If you run into any issues let me know.
It is likely not a final list of these parameters. Any more I'll need to add I'll throw in myself given the framework you set up.
I think this is a good idea, but I don't want to dive into it too much without some planning. I also think that implementing it properly will fundamentally change the API, so I'm setting the milestone to v2, to give us time to think about it properly.
My idea is something like the following:
<>_params
and one "options" struct called <>_options
. The former is for any parameter which directly affects this particular function, and is a physically meaningful parameter (something that could potentially be changed in MCMC, if you want to think of it that way). The latter is for any other option that affects the computation (resolution parameters, options, min/max parameters etc.). Point 5 is the one that I'm most vague on, and will probably need help with. Before really starting though, I'd really like to gauge your thoughts on this, and try to arrive at the best solution.
The positive aspects (in my mind) to this approach are essentially encapsulation -- each function knows its own parameters exactly. This helps with caching, and provides an easy workflow for the python wrapping (as far as I can see).
Yep, I am fine to move this to a later version.
Moved to above referenced issue.
Having had a look through due to the previous issue about
z_heat_max
and co, I've realised that almost all of the "global_params" actually only affect a single module (sometimes two). It would seem to me to be better then to separate these into structs which affect each module independently. This will also help with keeping track of which parameter affects which Output Struct, so that the caching is slightly easier.I think I could implement this by myself, if you think it's a reasonable idea.