Skip to content

Xianzhiwang1/consistent-PINNs

 
 

Repository files navigation

Consistent Physics Informed Neural Networks

This repository contains a demonstration of the consistent PINNs methodology for solving PDEs using neural networks, which designs a loss function by discretizing the Sobolev norms appearing in the PDE regularity theory. A detailed description of this method can be found in the paper:

Elliptic PDEs

Consider the Poisson equation:

$-\Delta u = f$ on $\Omega$

$u = g$ on $\partial \Omega$

We solve this equation using a variety of loss functions in the PINNs formulation on three test problems in 2d. These experiments can be reproduced by running the Python script poisson-2d-nat-grad.py. The results of the experiments and a corresponding discussion can be found in the aforementioned paper.

The scripts poisson-2d-gd.py, poisson-3d-nat-grad.py, poisson-3d-gd.py contain additional experiments where different optimizers are used and three dimensional problems are considered, respectively.

Citation

@article{bonito2024convergence,
  title={Convergence and error control of consistent PINNs for elliptic PDEs}, 
  author={Andrea Bonito and Ronald DeVore and Guergana Petrova and Jonathan W. Siegel},
  journal={arXiv preprint arXiv:2406.09217},
  year={2024},
}

Natural Gradient Newton Optimizer

We use the natural newton optimizer to train the PINNs for each loss function in our experiments. This optimizer allows us to obtain the same solution accuracy much more efficiently using a much smaller network than gradient descent. The optimizer we have implemented is based upon the paper:

@inproceedings{muller2023achieving,
  title={Achieving high accuracy with PINNs via energy natural gradient descent},
  author={M{\"u}ller, Johannes and Zeinhofer, Marius},
  booktitle={International Conference on Machine Learning},
  pages={25471--25485},
  year={2023},
  organization={PMLR}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%