1 of 1

Mesh repartitioning and flattening added to VisIt

1

Scientific Achievement

We added a general mesh repartitioning capability to VisIt. It includes a simple built-in general repartitioning algorithm that can increase or decrease the number of partitions. It also has support for repartitioning based on a field, which allows the repartition to come from an external tool such as ParMETIS.

We also added support for flattening the mesh into an array or collection of arrays.

Significance and Impact

  • When simulation data is processed in parallel it is partitioned so that individual processors can operate on a portion of the mesh. For various performance or algorithmic reasons, the mesh may need to be repartitioned. VisIt is now able to repartition data for optimum algorithm performance.
  • When working with simulation data, the data is defined on a mesh, whose description can be quite complex. When performing machine learning, the systems typically want arrays. The flattening capabilities makes it easy to export mesh data into machine learning frameworks.

A three-dimensional unstructured mesh that is stored in 36 pieces for parallel simulation that is exported into an Excel spreadsheet file format for processing in a machine learning framework.

Technical Approach

  • We implemented a general framework for moving data using MPI to support a repartition operation.
  • We implemented a simple built-in repartition algorithm.
  • We implemented the ability to repartition based on a field.
  • We leveraged the repartitioning to support flattening the simulation data.