Software Catalog

Much of our knowledge and experience is embodied in the FASTMath software tools, many of which are Department of Energy (DOE) landmark packages that are widely available and used by DOE and other application scientists. A strength of the FASTMath project is its ability to build a more integrated, high-performing software base for applications, while sharing software development best practices internally and across DOE. To fully realize this potential, we must bring together software products with varying degrees of interoperability, maturity, robustness, and user support. Our efforts aim at improving quality, reducing barriers to adoption, and facilitating integration of the many FASTMath software products.

A list of FASTMath software tools is provided here, along with links for further information and for downloading the software packages.

Tools for Problem Discretization

Albany

Unstructured grid finite element code with optimization

AMReX

Block-structured AMR framework for mesh and particle data in regular and complex geometries

Chombo

Tools for implementing finite-difference and finite-volume methods for the solution of PDEs on block-structured AMR grids with complex geometries

EnGPar

N-Graph based dynamic load balance improvement tool

MFEM

Scalable C++ library for high-order finite element discretizations

Omega_h

Tetrahedron and triangle mesh adaptativity, with a focus on scalable HPC performance using MPI and OpenMP or CUDA

PHASTA

Adaptive unstructured grid computational fluid dynamics

PuLP/XtraPuLP

Parallel graph partitioning tools for shared-memory (PuLP) and distributed-memory (XtraPuLP) partitioning of large sparse graphs

PUMI/MeshAdapt/ParMA

Parallel unstructured mesh infrastructure including curved mesh adaptation and dynamic load balancing

PUMIPic

Infrastructure to support PIC operations on distributed unstructured meshes

SUNDIALS

Time integrators, nonlinear solvers for algebraic systems

Zoltan/Zoltan2

Dynamic load balancing, partitioning, task placement, data ordering, coloring

Tools for Solution of Algebraic Systems

ButterflyPACK

Direct solution of large dense rank-structured systems

FASTEig

Compute eigenpairs or perform spectral analysis of large sparse or structured matrices

FFTX

Performance-portable fast Fourier transforms for hybrid architectures

hypre

High-performance preconditioners and solvers for large sparse linear systems

KokkosKernels

Library for node-level, performance-portable, computational kernels for sparse/dense linear algebra and graph operations

ML/MueLu

Algebraic multigrid methods

PDSLin

Hybrid direct/iterative solver

PETSc

Numerical solution of partial differential equations

ShyLU

Solver library that has implementations of domain decomposition algorithms and node-level direct solvers

STRUMPACK

Software library that provides linear algebra routines for sparse matrices and for dense rank-structured matrices

SUNDIALS/KINSOL

Time integrators, nonlinear solvers for algebraic systems

SuperLU

Direct solution of large sparse nonsymmetric systems

symPACK

Direct solution of sparse symmetric systems of linear equations

Trilinos

Computational science libraries

Tools for Numerical Optimization

libEnsemble

Managing ensemble-like collections of computations

MATSuMoTo

Surrogate model toolbox for box-constrained global optimization

MINOTAUR

Toolkit for solving mixed-integer nonlinear optimization problems

ORBIT

Bound-constrained derivative-free optimization solver

ROL

C++ package for large-scale optimization

TAO

Toolkit for Advanced Optimization

Tools for Uncertainty Quantification

Dakota

Flexible, extensible interface between simulation codes and various iterative systems analysis methods

UQTk

Libraries and tools for the quantification of uncertainty in numerical model predictions