-
garth authored
Enabled AMR ghost zone information in avtIVPVTKField; integral curves now correctly descend into finer levels as encountered (Eduard Deines). Modified domain transition handling in avtIntegralCurve::Advance() to push across the boundary with smaller steps. Adapted the IC algorithms and the Poincare plot to the new terminology. Cleanup of status and termination flags used between avtIVPSolver and avtIntegralCurve. Introduced explicit DIRECTION flag for avtIntegralCurve to allow more robust handling of integration direction; this was previously inferred from the termination criterion, which is not compatible with pathlines. Refactored termination handling out of the avtIVPSolver subclasses, it is now the responsibility of avtIntegralCurve::AnalyzeStep(). avtIntegralCurve::Advance() now explicitly respects temporal bounds of avtIVPField. (avtIntegralCurve::DoAdvance() was merged into avtIntegralCurve::Advance()). Reduce role of avtIVPStep: avtIVPField::ComputeScalarVariable() now uses an index-based instead of variable name strings, the mapping is set through avtIVPField::SetScalarVariable(). Total rewrite of avtStateRecorderIntegralCurve to use a flat storage scheme that reduces memory consumption tremendously. Adapted avtStreamlinePolyDataFilter correspondingly. avtStateRecorderIntegralCurve::Serialize() now also transmits the serialize flags, ensuring that sender and receiver agree on what is transmitted; this fixes current crashes in parallel IC algorithms. New cell locator infrastructure based on avtCellLocator, for now local to the IVP module. The previously used vtkVisItCellLocator was reimplemented as avtCellLocatorClassic. Added cell locators for rectilinear (avtCellLocatorRect) and unstructured meshes (avtCellLocatorBIH). The new infrastructure is more robust, faster and consumes less memory for (un)structured meshes; fast paths for specific mesh and cell types are introduced that avoid calls to VTK methods which are not thread-safe and slow (e.g. unstructured tet/hex). Locators are now stateless and can be safely shared between multiple threads (in preparation for David Camp's hybrid parallel work) and cached in the pipeline (future work). Rewrote avtIVPVTKField to contain all cell/point location state. avtParICAlgorithm now handles the case of no seedpoints without crashing. git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@12139 18c085ea-50e0-402c-830e-de6fd14e8384
09f7c3ca