hp-VPINN (Variational Physics-Informed Neural Network with h- and p-Refinement) trains a neural network using the variational weak form of a partial differential equation. Test functions impose integral constraints on the equation residual, while domain decomposition (h-refinement) and higher-order polynomial test functions (p-refinement) improve the representation and solution of complex fields.
This model package provides one- and two-dimensional Poisson equation examples.
hp-VPINN constructs its variational loss with Gauss–Lobatto–Jacobi quadrature and represents the equation solution with a fully connected network. The one-dimensional example supports piecewise integration domains, while the two-dimensional example supports non-square subdomain grids. The number of subdomains and the order of the test functions can be adjusted independently to study the effects of h- and p-refinement on solution quality.
Use Cases
Use Case
Description
One-dimensional Poisson equation
Constrain the weak-form residual using piecewise integration domains and higher-order test functions
Two-dimensional Poisson equation
Perform tensor-product quadrature on a two-dimensional domain-decomposition grid
h-refinement research
Vary the number of subdomains to compare spatial decomposition strategies
p-refinement research
Vary the test-function order to compare weak-form constraint capacity
Usage
1. OneCode
Use the online OneCode environment for an intelligent, one-click AI for Science (AI4S) programming experience:
Both the one- and two-dimensional Poisson examples construct source terms, boundary values, and evaluation data from analytical solutions, with no dependency on external data files. The numbers of subdomains, test functions, and quadrature points can be configured in conf/config.yaml.
Training
The training example is controlled by common.case in conf/config.yaml, which supports 1d, 2d, and all:
python scripts/train.py
Training weights are saved to the weight/ directory by default.
Model Weights
This repository provides weights trained on the one- and two-dimensional Poisson datasets in the weight/ directory.
Inference, Evaluation, and Visualization
The model package provides one-dimensional Poisson weights for validation. Run:
python scripts/inference.py
For the two-dimensional example, first train the corresponding weights, then set common.case to 2d or all before running inference. The script reports the relative L2 error and saves result plots to result/. Model, training, and inference parameters can all be modified in conf/config.yaml.
Kharazmi, E., Zhang, Z., and Karniadakis, G. E. hp-VPINNs: Variational physics-informed neural networks with domain decomposition. Computer Methods in Applied Mechanics and Engineering, 374, 113547, 2021.
This model package is released under the Apache-2.0 license and retains attribution to the original paper.