## The ADMM-PINNs Algorithmic Framework for Nonsmooth PDE-Constrained Optimization: A Deep Learning Approach

### Motivation

This post shows the source code from the paper “The ADMM-PINNs Algorithmic Framework for Nonsmooth PDE-Constrained Optimization: A Deep Learning Approach”. (See reference below)

We study the combination of the alternating direction method of multipliers (ADMM) with physics-informed neural networks (PINNs) for a general class of nonsmooth partial differential equation (PDE)-constrained optimization problems, where additional regularization can be employed for constraints on the control or design variables. The resulting ADMM-PINNs algorithmic framework substantially enlarges the applicable range of PINNs to nonsmooth cases of PDE-constrained optimization problems. The application of the ADMM makes it possible to untie the PDE constraints and the nonsmooth regularization terms for iterations. Accordingly, at each iteration, one of the resulting subproblems is a smooth PDE-constrained optimization which can be efficiently solved by PINNs, and the other is a simple nonsmooth optimization problem which usually has a closed-form solution or can be efficiently solved by various standard optimization algorithms or pre-trained neural networks. The ADMM-PINNs algorithmic framework does not require to solve PDEs repeatedly, and it is mesh-free, easy to implement, and scalable to different PDE settings. We validate the efficiency of the ADMM-PINNs algorithmic framework by different prototype applications, including inverse potential problems, source identification in elliptic equations, control constrained optimal control of the Burgers equation, and sparse optimal control of parabolic equations.

### GitHub Repository

Download resources from our FAU DCN-AvH GitHub, at: https://github.com/DCN-FAU-AvH/ADMM-PINNs

### Requirements

To run the code, you will need the following packages:

`1. Jupyter Notebook`

2. PyTorch

3. NumPy

4. SciPy

5. Plotly

6. Matplotlib

7. CUDA (Optional)

We recommend using `Conda`

to manage your packages.

### Demo

Each `.ipynb`

file in this repository can be executed in a `Jupyter`

Notebook, and its name corresponds to its functionality.

There are also several `.py`

files in the repository that serve as the foundation for implementing 2-dimensional finite element methods.

Additionally, there are `modelxx_norm.pth`

files that contain pre-trained denoisers of CNNs:

• These files can be generated using `generate_denoiser.ipynb`

, but you will need to download the BSD68 training set yourself.

• `generate_denoiser.ipynb`

is the `PyTorch`

version of the original code.

### Cases

The four cases included are:

`Inverse_Potential`

The source code for solving the Inverse Potential Problem.

`Burgers`

The source code for solving the Control Constrained Optimal Control of the Burgers Equation.

`SourceID`

The source code for Discontinuous Source Identification for Elliptic PDEs.

`L1Control`

The source code for solving Sparse Optimal Control of Parabolic Equations.

### Numerical results

### References

Yongcun Song, Xiaoming Yuan, Hangrui Yue. The ADMM-PINNs Algorithmic Framework for Nonsmooth PDE-Constrained Optimization: A Deep Learning Approach. https://doi.org/10.48550/arXiv.2302.08309