BestieTemplate.jl
BestieTemplate.jl is a template focused on best practices for package development in Julia.
Democratizing multi-physics simulations with high-productivity high-performance finite element software
The HP2SIM project contributed towards making high-performance simulations of a wide-class of physical problems accessible via a modern GPU-accelerated finite element toolbox in Julia. Its original objectives focused on creating GalerkinToolkit.jl, a major refactoring of Gridap.jl, enhancing it in three ways: 1) a low-level interface providing direct access to library internals, 2) a parallel implementation to solve multi-physics problems coupling domains of different topological dimensions, and 3) support for GPUs. HP2SIM resulted in a version of GalerkinToolkit.jl addressing items 1 and 3 with an iterator-based API running on both CPUs and GPUs. The project prioritized GPU acceleration over classical MPI-based parallelization (item 2), which is planned for future work. HP2SIM specifically targeted researchers from the finite-element community using Julia and organized a two-day workshop with over 50 international participants. The key next step is working toward the first stable release, GalerkinToolkit.jl v1.0. It will combine the GPU acceleration work of HP2SIM with the pending MPI implementation, yielding one of the first, if not the first, general-purpose finite element libraries capable of running on GPU-accelerated supercomputers. For more information about GalerkinToolkit.jl, visit the project GitHub repository.
Discovering deep physics models with differentiable programming
BestieTemplate.jl is a template focused on best practices for package development in Julia.
GalerkinToolkit is a high-performance finite element (FE) toolbox fully implemented in the Julia programming language. It provides modular building blocks to easily implement custom finite element codes to solve partial differential equations (PDEs) using a variety of numerical schemes.
This package provides distributed (a.k.a. partitioned) vectors and sparse matrices like the ones needed in distributed finite differences, finite volumes, or finite element computations.