You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sfno/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Spatiotemporal Fourier Neural Operator
2
2
3
3
## Learning maps between Bochner spaces
4
-
-SFNO now can learn a `trajectory-to-trajectory` map that inputs arbitrary-length trajectory, and outputs arbitrary-lengthed trajectory (if length is not specified, then the output length is the same with the input).
4
+
SFNO now can learn a `trajectory-to-trajectory` map that inputs arbitrary-length trajectory, and outputs arbitrary-lengthed trajectory (if length is not specified, then the output length is the same with the input).
Copy file name to clipboardExpand all lines: sfno/sfno.py
+19-6Lines changed: 19 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -545,9 +545,8 @@ def __init__(
545
545
super().__init__()
546
546
547
547
"""
548
-
The overall network reimplemented for scalar field of NSE-like equations
549
-
550
-
It contains num_spectral_layers (=4 by default) layers of the Fourier layer.
548
+
The overall network reimplemented to model (2+1)D spatiotemporal PDEs of
549
+
a scalar field/vector fields of NSE-like equations.
551
550
552
551
Major architectural differences:
553
552
@@ -562,13 +561,27 @@ def __init__(
562
561
3. n layers of the integral operators u' = (W + K)(u).
563
562
W defined by self.w; K defined by self.conv.
564
563
565
-
Several key hyper-params that is different from FNO3d:
564
+
Hyper-params:
565
+
- mode_x, mode_y, mode_t: the number of Fourier modes in the x, y, t dimensions
566
+
- width: the number of channels in the latent space
567
+
- num_spectral_layers: the number of spectral conv layers, the first layer is in the lifting operator
568
+
- spatial_padding: the padding size in the spatial dimensions
569
+
- temporal_padding: whether to pad the temporal dimension, by default it is True, recommended to keep it True to avoid aliasing error
570
+
- out_steps: the number of output time steps, if None, it will be set to the temporal dimension of the input
571
+
- activation: the activation function, users provide string that directly pulls from nn. default: ReLU
572
+
- lift_activation: whether to use activation in the lifting operator
573
+
- spatial_random_feats: whether to use spatial random features in the lifting operator
574
+
- channel_expansion: the number of channels in the MLP, default: 128
575
+
576
+
Grid information:
577
+
- diam: the diameter of the domain, only used in the Helmholtz decomposition
578
+
- n_grid: the grid size of the training data, only needed for building the fft mesh for the Helmholtz decompostion, in the forward pass the size is arbitrary (if different from the n_grid, Helmholtz layer will re-build the fft mesh, which introduces a tiny overhead)
566
579
580
+
Several key hyper-params that is different from FNO3d:
567
581
- beta: the exponential scaling factor for the time PE, ideally it should match the a priori estimate the energy of the NSE
568
582
- delta: the strength of the final skip-connection.
569
583
- latent steps: the number of time steps in the hidden layers, this is independent of the input/output steps; chosing it >= 3/2 of input length is similar to zero padding of FFT to avoid aliasing due to non-periodic in the temporal dimension
570
-
- n_grid: the grid size of the training data, only needed for building the fft mesh for the Helmholtz decompostion, in the forward pass the size is arbitrary (if different from the n_grid, Helmholtz layer will re-build the fft mesh, which introduces a tiny overhead)
571
-
- dim_reduction: 1 for vorticity, 2 for velocity
584
+
- dim_reduction: 1 for scalar field such as vorticity, 2 for vector field such as velocity
0 commit comments