This repository implements DEQGAN, a generative adversarial network method for solving ordinary and partial differential equations. Our paper appeared at the AI4Science workshop at ICML 2022.
Using Anaconda:
conda env create -f environment_minimal.ymlconda activate denn_minimalpython setup.py develop
The minimal installation includes the dependencies required to reproduce the results of experiments. Additional dependencies include:
rayfor hyperparameter tuning (ray_tune.py)plotlyfor parallel plotsfenicsfor finite element methods
The full list of dependencies can be installed via the environment.yml file.
Substitute {key} with the appropriate problem key (e.g. exp, sho, nlo, etc.) and follow instructions for each method below. See the table below for the full list of problem keys.
DEQGAN:
python denn/experiments.py --pkey {key} --gan
L1 / L2 / Huber:
- Define PyTorch loss in
denn/config/{key}.yamlundertraining.loss_fn(L1=L1Loss, L2=MSELoss, Huber=SmoothL1Loss) python denn/experiments.py --pkey {key}
RK4 / FD:
python denn/traditional.py --pkey {key}
This table details the currently available differential equations and corresponding problem keys.
| Key | Equation | Class | Order | Linear |
|---|---|---|---|---|
exp |
Exponential Decay | ODE | 1st | Yes |
sho |
Simple Harmonic Oscillator | ODE | 2nd | Yes |
nlo |
Damped Nonlinear Oscillator | ODE | 2nd | No |
coo |
Coupled Oscillators | ODE | 1st | Yes |
sir |
SIR Epidemiological Model | ODE | 1st | No |
ham |
Hamiltonian System | ODE | 1st | No |
ein |
Einstein's Gravity System | ODE | 1st | No |
pos |
Poisson Equation | PDE | 2nd | Yes |
hea |
Heat Equation | PDE | 2nd | Yes |
wav |
Wave Equation | PDE | 2nd | Yes |
bur |
Burgers' Equation | PDE | 2nd | No |
aca |
Allen-Cahn Equation | PDE | 2nd | No |
If you would like to reference our work, please use the following BibTeX citation!
@misc{randle2020unsupervisedlearningsolutionsdifferential,
title={Unsupervised Learning of Solutions to Differential Equations with Generative Adversarial Networks},
author={Dylan Randle and Pavlos Protopapas and David Sondak},
year={2020},
eprint={2007.11133},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
@misc{bullwinkel2022deqgan,
title={DEQGAN: Learning the Loss Function for PINNs with Generative Adversarial Networks},
author={Blake Bullwinkel and Dylan Randle and Pavlos Protopapas and David Sondak},
year={2022},
eprint={2209.07081},
archivePrefix={arXiv},
primaryClass={cs.LG}
}