Should be able to update weight windows over multiple runs.
For example, the current implementation is simple,
- get original mesh
- generate weight window file
But what if this is done multiple times?
- get original mesh
- generate weight window file
- new mesh using weights
- generate weight window file
- new mesh using weights
However, it can not be assumed that the next run will always produce better results for the next weight windows set.
Feature
Instead of generating a brand new set of weights every time a simulation produces a new mesh, the previous weights should be updated and iterated upon.
Rules for updating could be as simple as updating the weight for a voxel if the error in flux is less than it was in the previous run.
Issues
This must require either reading in the pervious mesh data again (assuming it has not been overwritten or deleted), or generating new files to keep track of the previous dataset. Either works, but there is probably a choice to be made about which is best as a few extra files will be needed:
- Files for string the previous mesh results (or could re-parse old mesh directly, which would be slower)
- Possibly keep the previous weight window file
There needs to be a smart way of doing this to mitigate memory usage when comparing meshes. The best case would be to read the new mesh, and compare against a buffered byte stream from a binary of the previous mesh uncertainties. The result will be a small vector of boolean values indicating whether or not to update the weight.
Of course, this whole thing may also require a reader for WWINP files, which was on the todo list anyway.