# Software

## Software Catalog

**DeepXDE: **A Deep Learning Library for Solving Differential Equations

Deep learning has achieved remarkable success in diverse applications; however, its use in solving partial differential equations (PDEs) has emerged only recently. Here, we present an overview of physics-informed neural networks (PINNs), which embed a PDE into the loss of the neural network using automatic differentiation. The PINN algorithm is simple, and it can be applied to different types of PDEs, including integro- differential equations, fractional PDEs, and stochastic PDEs. Moreover, from the implementation point of view, PINNs solve inverse problems as easily as forward problems. We propose a new residual-based adaptive reﬁnement (RAR) method to improve the training efficiency of PINNs. For pedagogical reasons, we compare the PINN algorithm to a standard ﬁnite element method. We also present a Python library for PINNs, DeepXDE, which is designed to serve both as an education tool to be used in the classroom as well as a research tool for solving problems in computational science and engineering. Specifically, DeepXDE can solve forward problems given initial and boundary conditions, as well as inverse problems given some extra measurements. DeepXDE supports complex-geometry domains based on the technique of constructive solid geometry, and enables the user code to be compact, resembling closely the mathematical formulation. We introduce the usage of DeepXDE and its customizability, and we also demonstrate the capability of PINNs and the user-friendliness of DeepXDE for five different examples. More broadly, DeepXDE contributes to the more rapid development of the emerging Scientiﬁc Machine Learning field.

DeepXDE is a deep learning library for solving differential equations on top of TensorFlow. More details found in the documentation.

**Total downloads:** 56,000 as of September 2020

**LAMMPS MD Package**

**USER-SELM**: Fluctuating Hydrodynamics Simulations in LAMMPS

The USER-SELM package provides ﬂuctuating hydrodynamics capabilities for LAMMPS for simulating fluid-structure interactions subject to thermal ﬂuctuations based on stochastic continuum fields (SPDEs). The pack-age provides a variety of time-step integrators for different physical regimes for implicit-solvent coarse-grained simulations, stochastic immersed boundary methods, and other stochastic eulerian lagrangian methods (SELMs). Work was done on a major re-working of the C++ back-end of the package to operate with the LAMMPS shear functionality to facilitate rheological studies of complex ﬂuids and soft materials, and for better integration with machine learning methods. An interface was developed for using SELM package from Python and within Jupyter notebooks. This new release was accompanied with new tutorial videos, example scripts, and notebooks on webpage: http://mango-selm.org/. This work was also presented as an extended session as part of the 2021 LAMMPS Workshop https://www.lammps.org/workshops/Aug21/.

For machine learning (ML) modeling (MOD) in LAMMPS, we also developed a new package called USER-MLMOD to provide ways in SELM and other simulations to deploy machine learning models. This includes deep neural network representations for microstructure interactions and dynamics. This also includes functionality related to our VAE methods for learning non-linear dynamics. This package allows for our learned models to be used as (i) time-step integrators, (ii) interactions within LAMMPS, and (ii) to compute quantities-of-interest. This facilitates the practical use of our learned reduced-order models in application domain simulations. Our package is developed in C++ and interfaces with machine learning libraries. This work was presented at the 2021 LAMMPS Workshop.

**ADCME Library (Automatic Differentiation Library for Computational and Mathematical Engineering)**

New Version available (v0.5.1) for download at:

**ADCME.jl****AdFem.jl**: Inverse Modeling with the Finite Element Method**ADSeismic.jl**: Inverse Problems in Earthquake Location/Source-Time Function, FWI, Rupture Process**FwiFlow.jl**: Seismic Inversion, Two-Phase Flow, Coupled Seismic and Flow Equations

Documentation also available.

**GMLS-Nets: A Framework for Learning from Unstructured Data**

N. Trask, R. G. Patel, B. J. Gross, and P. J. Atzberger

**Additional Software Releases:**

**BBFMM**: Generalized Fast Multipole Method**cvPINNs****MOR-Physics****pyPCGA:**Python Library for Principal Component Geostatistical Approach**SinkhornSSL:**Software for Semi-Supervised Learning, Based on ICML paper*Sinkhorn Label Allocation: Semi-Supervised Classification via Annealed Self-Training***SpaND**: Fast Linear Solver for Large-Scale Sparse Linear Systems**TaskTorrent**: Parallel Runtime Library for Executing Concurrent Directed Acyclic Graphs of Computational Tasks with a Focus on a Very Low-Overhead when Executing Micro-Tasks

**Legacy software created through the PhILMs project:**

Visit the CM4 site for more legacy software.