This is the repository containing the source code of the GrIND model paper GrIND: Grid Interpolation Network for Scattered observation.
GrIND is a novel deep learning architecture for learning from physical systems governed by differential equations. It can be used to smiulate sytsems such as climate, fluids, electormagnetic fields, etc.. The model consists of a Fourier Interpolation layer to increase the data density and transform the scattered nodes to a grid structure suitable for convolutions. A CNN is used as a solving algorithm to learn the spatial derivatives of the differential equations in the high resolution domain. Finally another Fourier Interpolation layer is used to transform the data back to the original nodes and update these according to the time-derivative.
The fourier layer is further visualised in the following graphic. Originally, a low resolution function is represented at single nodes. These are then interpolated to generate a more dense function which is better suited for the solving algorithm.
It is recommended to first create a virtual environment, for example:
python -m venv GrINDenv
source GrINDenv/bin/activate
You can then install all dependencies by running
python pip install -r requirements.txt
from the main project directory
To test the model execute the main file
python main.py
To configure the training process and the model, check the config files and adjust parameters to your liking.
The model is tested on the dynabench dataset for learning dynamical systems from low resolution data: Dynabench: A benchmark dataset for learning dynamical systems from low-resolution data.
Here ares some results of our model on the given equations. More results and comparisons with similar models can be found in the paper.
Equation | Advection | Burgers | Gas Dynamics | Kuramoto-Sivashinsky | Reaction-Diffusion | Wave |
---|---|---|---|---|---|---|
1 dt | 6.11e-3 | 1.03e-2 | 8.49e-2 | 1.23e-1 | 2.72e-2 | 4.74e-2 |
16 dt | 1.03e-1 | 2.24e-1 | 5.40e-1 | 1.00e0 | 2.95e-1 | 3.12e-1 |