This repository has been archived by the owner on Sep 9, 2022. It is now read-only.
neic-glass v0.5.0
Pre-release
Pre-release
- Changes to locator annealing process to avoid local minima.
- Changes to locator and nucleation process including giving higher weights to shallow nodes.
- Added new global grid generation algorithm based on Fibonacci lattices that is user configurable, matches the requested grid resolution (on average), and is slightly faster.
- Trigger tracking was split from Node into the new CTrigger class for computational performance and stability reasons.
- Glass is somewhat faster (computationally) in processing data when multiple threads are used.
- Glass is much less likely to crash, because the glass classes have been converted to use setters/getters for member access, to avoid incorrect access between threads. A change was also made to ensure that a hypo could only be processed by a single thread at a time.
- Glass is memory stable during long runs, once the grids are generated and the pick list and hypo list have reached their limits, because the input json object pointers were converted to shared_ptr to ensure proper cleanup when the input data is no longer needed. Additionally, some shared_ptr links between classes (mainly between hypo and pick) were changed to weak_ptr to avoid cyclical references (preventing some picks and/or hypos from ever cleaning up).
- A bug when nDetect is greater than the available number of stations (preventing nodes from being linked to stations) was fixed.
- A bug preventing 2-phase nucleation from working (try secondary phase if primary phase was unsuccessful) was fixed.
- A bug preventing nucleation phases from being used during initial nucleation location (anneal) was fixed.
Nucleation locations also now use the same phase weighting as the hypo locations. - Logging was somewhat simplified and reduced (less logging per pick processed, less logging of the site list).
- Some performance logging was added to track how long it takes to run evolve for a hypo, and to give a better understanding of how far glass has progressed during the processing of a dataset.