lanl / LaGriT

Los Alamos Grid Toolbox (LaGriT) is a library of user callable tools that provide mesh generation, mesh optimization and dynamic mesh maintenance in two and three dimensions.
https://lanl.github.io/LaGriT/
Other
116 stars 48 forks source link

Integrating lanl/voronoi code with LaGriT #209

Open daniellivingston opened 3 years ago

daniellivingston commented 3 years ago

Interface the Voronoi codebase with LaGriT to supersede the dump/stor and dump/pflotran commands. The Voronoi + LaGriT codebase already exists, but is about 1.5 years out of date and not completely production ready. We’d need to: update the LaGriT Makefile, add test suite cases, merge/clean up the two codebases, and add those compiler directives.

daniellivingston commented 3 years ago

The Voronoi code fundamentally relies on PETSc data structures to compute. Because PETSc is such a heavy dependency, it's proposed that we use compiler directives to allow compiling with Voronoi/PETSc to be optional. For example:

subroutine voronoi(args)
#ifndef HAS_PETSC
       write(*,*) "petsc required to use this subroutine; returning"
#else
c      [do voronoi stuff]
#endif
end subroutine voronoi
millerta commented 2 years ago

While fixing cmake to build with Exodus, look into similar scripts for Petsc option. Stable but old code for Voronoi is at https://github.com/lanl/voronoi Is there something newer? See https://github.com/lanl/voronoi/issues/15

millerta commented 2 years ago

Find most recent version of Voronoi working with Petsc. From Daniel's note above: The Voronoi + LaGriT codebase already exists, but is about 1.5 years out of date and not completely production ready.

millerta commented 2 years ago

From Daniel note:

PETSc integration:
find_package(PETSc v3.3.3 REQUIRED)
PETSc_FOUND
PETSc_INCLUDE_DIRS
PETSc_LIBRARIES

if (PETSc_FOUND)
    # add voronoi source
    set(TPL_LIBRARIES "${PETSc_LIBRARIES}")
    set(TPL_INCLUDE_DIRS "${PETSC_INCLUDE_DIRS} ..."")
endif()