WIP:Multi component extrapolation prototype
This MR is to introduce a Multi-stepper which will be used in the Gaussian Sum Filter.
The State for the MultiStepper contains a list of tuple<SingleState,Weight,Status>, Status has 3 cases: Free,LOCKED,DEAD. The principle of Multi-Stepper is:
- to use the weighted combination of the components(pos,dir) as the navigation stream to find the candidate surface, then update the stepsize and do runge-kutta step for each component.
- the components that reach the surface will be set "LOCKED", and wait other FREE components to reach the surface,
- unless all the free components reach the surface, the "currentSuface" is set and then return to the propagator ActionList flow.
- the component which can not reach the surface is set to "DEAD", and now Killed in the Stepper. This process should better deal with in the Fitter process.
to create a multistate obj, there is a MultiMaterialInteration actor, in that copy a list of singlecomponents, which are same right now to test if they are equal in the multi-stepper propagator , but will be a physical material interator (Bethe-Hitler) .
the stepper should contains new feature: when it comes to a Surface, there would better be a MultiTrackParameter to get the multi-bound-parameters, and then we can do e.g. component reduction, component combination ( this related to MR !588 (closed) )
Since there will be many changes in the Navigator and MaterialInteractor, this is moved into WIP again.