By using the dual of the cellset we can quickly compute the GhostCells
of structured data using WorkletPointNeighborhood boundary condition
object
Using a 1024x1024x512 test grid we see the following perf:
Master Serial : 5.658144 sec
This MR Serial: 0.519684 sec
Master OpenMP : 0.532256 sec
This MR OpenMP: 0.080604 sec
The CrossProduct and DotProduct are field filters and therefore
fields are automatically propagated instead of calling DoMapField.
As GhostCellClassify is passing through all fields, it can
override `MapFieldOntoOutput` and skip the deduction of the
Field to an ArrayHandle for better compile time.
By removing the ability to have multiple CellSets in a DataSet
we can simplify the following things:
- Cell Fields now don't require a CellSet name when being constructed
- Filters don't need to manage what the active cellset is
To help provide a better time writing VTK-m filter this streamlines
the CreateResult API to provide a focused set of methods, based on
how CreateResult has been used by existing filters.