This repository contains codes accompanying the paper [1], introducing Latent Dynamics Network (LDNets), a scientific machine learning method capable of uncovering low-dimensional intrinsic dynamics in systems exhibiting a spatio-temporal behavior in response to external stimuli. LDNets automatically discover a low-dimensional manifold while learning the system dynamics, eliminating the need for training an auto-encoder and avoiding operations in the high-dimensional space. They predict the evolution, even in time-extrapolation scenarios, of space-dependent fields without relying on predetermined grids, thus enabling weight-sharing across query-points. Lightweight and easy-to-train, LDNets demonstrate superior accuracy (normalized error 5 times smaller) in highly-nonlinear problems, with significantly fewer trainable parameters (more than 10 times fewer) compared to state-of-the-art methods.
To run these codes, you need Python (version 3.9) with the modules listed in the file requirements.txt
. If you are using pip
, you can install them by running:
pip install -r requirements.txt
To replicate the results presented in the paper [1], the necessary training and testing data have been organized in a dedicated Zenodo repository. Follow the steps below to incorporate the data into your local repository:
-
Navigate to this Zenodo repository.
-
Download the
data.zip
file from the repository. -
Extract the contents of
data.zip
to the root level of your local copy of this repository. This will generate a new folder nameddata
.
You can also achieve this by running this script:
curl https://zenodo.org/records/10436827/files/data.zip -o data.zip
unzip data.zip -d data
rm data.zip
[1] F. Regazzoni, S. Pagani, M. Salvador, L. Dede', A. Quarteroni, "Learning the intrinsic dynamics of spatio-temporal processes through Latent Dynamics Networks" Nature Communications (2024) 15, 1834