Currently, blueice instantiates a model grid in the anchor point grid spanned by the shape parameter variations from all sources. This extends to the pdf interpolation.
The pdfs are cached, and only loaded into memory once, so that the second problem poses a larger challenge than the first.
Proposed steps:
1) Create a wrapper "interpolator" that contains (and passes relevant parameters to) per-source interpolators in only the relevant shape directions for each
2) Consider modifying or removing the model layer, possible solutions:
2.1) Remove model layer completely, letting the likelihood call a collection of sources (possibly with a source_collection class that provides access to the sources.(similar to 2.2)
2.2) Change the model to be per physical model-- instantiate one model for ER, one for NR etc. and change "source" to be anchor_source or model_point
2.3) maintain current structure, while moving most of the functionality (interpolation etc) to be per-source.
Currently, this approach breaks some functionality from Model:
multi-CPU source computation (but fewer sources need to be computed)
The model simulate functionality-- since there is no object except the likelihood that contains all the sources, I will make a simulate method under the likelihood.
Currently, blueice instantiates a model grid in the anchor point grid spanned by the shape parameter variations from all sources. This extends to the pdf interpolation.
The pdfs are cached, and only loaded into memory once, so that the second problem poses a larger challenge than the first.
Proposed steps: 1) Create a wrapper "interpolator" that contains (and passes relevant parameters to) per-source interpolators in only the relevant shape directions for each 2) Consider modifying or removing the model layer, possible solutions: 2.1) Remove model layer completely, letting the likelihood call a collection of sources (possibly with a source_collection class that provides access to the sources.(similar to 2.2) 2.2) Change the model to be per physical model-- instantiate one model for ER, one for NR etc. and change "source" to be anchor_source or model_point 2.3) maintain current structure, while moving most of the functionality (interpolation etc) to be per-source.