NODE-ONet (deep neural ordinary differential equation operator network) is a framework for learning solution operators of partial differential equations (PDEs). By integrating neural ODEs (NODEs) within an encoder-decoder architecture, the NODE-ONet framework effectively decouples spatial and temporal variables, aligning with traditional numerical methods for time-dependent PDEs. This repository provides a PyTorch implementation of NODE-ONet and compares its performance against DeepONet and MIONet on various simulation tasks. The source code is for the paper: Z. Li, K. Liu, Y. Song, H. Yue, E. Zuazua. Deep Neural ODE Operator Networks for PDEs, arXiv: 2510.15651, 2025
To get started, clone this repository and install the required dependencies. We recommend using a virtual environment. The required packages are written in requirements.txt file.
This repository includes several demo scripts to run experiments. Each demo can be executed directly and does not require additional configuration. The scripts will generate simulation data, train the models, and produce output metrics/plots. Use the following commands to run each experiment:
(1) A 1D nonlinear diffusion-reaction equation
-
Learn the source-to-solution operator
$\Psi_f^{\dagger}:f\mapsto u$ : Run1D_source.pyto train the NODE-ONet model to learn the source-to-solution operator$\Psi_f^\dagger: f\mapsto u$ . -
Learn the diffusion-to-solution operator
$\Psi_D^\dagger: D\mapsto u$ : Run1D_diffusion.pyto train the NODE-ONet model to learn the diffusion-to-solution operator$\Psi_D^\dagger: D\mapsto u$ . -
Learn the multi-input operator
$\Psi_m^\dagger: {D,f}\mapsto u$ : Run1D_multi_input.pyto train the NODE-ONet model to Learn the multi-input operator$\Psi_m^\dagger: {D,f}\mapsto u$ . -
Generalization capacity of
${\alpha}$ : Run1D_generalization.pyto train the NODE-ONet to learn the source-to-solution operator$\Psi_f^\dagger$ with$D=0.01, R=-0.01$ . Then learn the source-to-solution operator with$D=0.2$ ,$R=0$ by the NODE-ONet with the pre-trained neural network$N_{\theta_{\alpha}^*}$ . -
Prediction beyond the training time frame:
Run
1D_predict.pyto train the NODE-ONet to learn the source-to-solution operator $\Psi_f^$ and the multi-input operator $\Psi_m^$ with training time$[0,1]$ and testing time$[0,2]$ . -
Flexibility of encoder/decoder:
Run
1D_source_Fourier.pyto train the NODE-ONet to learn the source-to-solution operator$\Psi_f: f\mapsto u$ by Fourier basis functions.
(2) A 2D Navier-Stokes equation
Run 2D_NS.py to train the NODE-ONet to learn the following three operators:
-
The initial value-to-solution operator
$\Psi_i: u_0\mapsto u$ with the fixed source term$f(x_1,x_2)=0.1 \sin(2\pi(x_1 + x_2)) + 0.1 \cos(2\pi(x_1 + x_2))$ ; -
The source-to-solution operator
$\Psi_f: f\mapsto u$ with the fixed initial value$u_0(x_1,x_2)=0.1 \sin(2\pi(x_1 + x_2)) + 0.1 \cos(2\pi(x_1 + x_2))$ ; -
The solution operator with multi-input
$\Psi_m: {u_0,f}\mapsto u$ .
If you use this project in your research, please cite us using the following BibTeX entry:
@misc{li2025deepneuralodeoperator,
title={Deep Neural ODE Operator Networks for PDEs},
author={Ziqian Li and Kang Liu and Yongcun Song and Hangrui Yue and Enrique Zuazua},
year={2025},
eprint={2510.15651},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2510.15651},
}