#################################
## Error over params 64, R=1e3 ##
#################################

# U-Net
#  python scripts/train.py model=unet model.hidden_channels=[1,2,4,8,8] model.padding_mode=circular model.context_size=10 model.name=unet64_1-2-4-8-8_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[3,6,12,24,48] model.padding_mode=circular model.context_size=10 model.name=unet64_3-6-12-24-48_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[8,16,32,64,128] model.padding_mode=circular model.context_size=10 model.name=unet64_8-16-32-64-128_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[12,24,48,96,192] model.padding_mode=circular model.context_size=10 model.name=unet64_12-24-48-96-192_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.context_size=10 model.name=unet64_16-32-64-128-256_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[23,46,92,184,368] model.padding_mode=circular model.context_size=10 model.name=unet64_23-46-92-184-368_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[33,66,132,264,528] model.padding_mode=circular model.context_size=10 model.name=unet64_33-66-132-264-528_c10_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# ConvLSTM
#  python scripts/train.py model=convlstm model.hidden_sizes=[4,4,4,4] model.name=clstm64_4x4_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[13,13,13,13] model.name=clstm64_4x13_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[40,40,40,40] model.name=clstm64_4x40_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[57,57,57,57] model.name=clstm64_4x57_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[81,81,81,81] model.name=clstm64_4x81_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[114,114,114,114] model.name=clstm64_4x114_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=convlstm model.hidden_sizes=[162,162,162,162] model.name=clstm64_4x162_sl50_tf10_noise0 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# FNO3D
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d11_3-3-3_l1_sl50_tf10_cl40_noise0 training.batch_size=4 model.hidden_channels=11 model.lifting_channels=32 model.projection_channels=32 model.n_modes=[3,3,3] training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_3-3-3_l1_sl50_tf10_cl40_noise0 model.n_modes=[3,3,3] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_7-7-7_l1_sl50_tf10_cl40_noise0 model.n_modes=[7,7,7] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_10-10-10_l1_sl50_tf10_cl40_noise0 model.n_modes=[10,10,10] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=8 model.name=fno3d64_d32_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=16 model.name=fno3d64_d32_12-12-12_l16_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_3-3-3_l1_sl50_tf10_cl40_noise0 model.n_modes=[3,3,3] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_7-7-7_l1_sl50_tf10_cl40_noise0 model.n_modes=[7,7,7] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d11_3-3-3_l1_sl50_tf10_cl40_noise0 training.batch_size=4 model.hidden_channels=11 model.lifting_channels=32 model.projection_channels=32 model.n_modes=[3,3,3] training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_10-10-10_l1_sl50_tf10_cl40_noise0 model.n_modes=[10,10,10] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.name=tfno3d64_d32_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.name=tfno3d64_d32_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D 4-layers
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno3d64_d2_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno3d64_d8_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=11 model.name=tfno3d64_d11_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=16 model.name=tfno3d64_d16_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=22 model.name=tfno3d64_d22_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D 8M
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.hidden_channels=63 model.name=tfno3d64_d63_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.hidden_channels=45 model.name=tfno3d64_d45_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=32 model.name=tfno3d64_d32_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.hidden_channels=22 model.name=tfno3d64_d22_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D 16M
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.hidden_channels=89 model.name=tfno3d64_d89_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.hidden_channels=63 model.name=tfno3d64_d63_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=45 model.name=tfno3d64_d45_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.hidden_channels=32 model.name=tfno3d64_d32_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D 32M
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.hidden_channels=126 model.name=tfno3d64_d126_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.hidden_channels=89 model.name=tfno3d64_d89_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=63 model.name=tfno3d64_d63_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.hidden_channels=45 model.name=tfno3d64_d45_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D 64M
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.hidden_channels=178 model.name=tfno3d64_d178_12-12-12_l1_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.hidden_channels=126 model.name=tfno3d64_d126_12-12-12_l2_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=89 model.name=tfno3d64_d89_12-12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.hidden_channels=63 model.name=tfno3d64_d63_12-12-12_l8_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO3D rank 0.8, 0.4, 0.2, 0.1, 0.05
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_r80_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] +model.rank=0.8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_r40_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] +model.rank=0.4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_r20_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] +model.rank=0.2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_r10_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] +model.rank=0.1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_r05_sl50_tf10_cl40_noise0 model.n_modes=[12,12,12] +model.rank=0.05 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO2D
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno2d64_d2_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno2d64_d8_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=27 model.name=tfno2d64_d27_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=38 model.name=tfno2d64_d38_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=77 model.name=tfno2d64_d77_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=108 model.name=tfno2d64_d108_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=154 model.name=tfno2d64_d154_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=217 model.name=tfno2d64_d217_12-12_l4_sl50_tf10_cl40_noise0 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# TFNO2D 2M rank 0.8
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_tf10_cl40_noise0 +model.rank=0.8 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# MeshGraphNet
#  python scripts/train.py model=meshgraphnet model.name=mgn64_g2dn4_p2_l2_d32_sl50_tf10_clip_noise0 model.graph_type=grid_2d model.input_dim_edges=2 training.batch_size=1 training.learning_rate=1e-4 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=meshgraphnet model.name=mgn64_delau_p2_l2_d32_sl50_tf10_clip_noise0 model.graph_type=delaunay model.input_dim_edges=3 training.batch_size=1 training.learning_rate=1e-4 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=meshgraphnet model.name=mgn64_g2dn8_p2_l2_d32_sl50_tf10_clip_noise0 model.graph_type=grid_2d_8hop model.input_dim_edges=3 training.batch_size=1 training.learning_rate=1e-4 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# SWIN Transformer
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l1x1_h1x1_sl50_tf10_noise0 model.depths=[1] model.num_heads=[1] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l2x2_h2x4_sl50_tf10_noise0 model.depths=[2,2] model.num_heads=[4,4] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d40_l2x4_h2x4_sl50_tf10_noise0 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=40 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d20_l4x2_h4x4_sl50_tf10_noise0 model.depths=[2,2,2,2] model.num_heads=[4,4,4,4] model.embed_dim=20 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_sl50_tf10_noise0 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d88_l2x4_h2x4_sl50_tf10_noise0 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=88 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d40_l4x2_h4x4_sl50_tf10_noise0 model.depths=[2,2,2,2] model.num_heads=[4,4,4,4] model.embed_dim=40 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d56_l4x2_h4x4_sl50_tf10_noise0 model.depths=[2,2,2,2] model.num_heads=[4,4,4,4] model.embed_dim=56 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# FourCastNet p4x4
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb12_l1_c10_sl50_tf10_noise0 model.depth=1 model.embed_dim=12 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb64_l1_c10_sl50_tf10_noise0 model.depth=1 model.embed_dim=64 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb112_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=112 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb160_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=160 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb232_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=232 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb328_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=328 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps4x4_emb468_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=468 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# FourCastNet p1x1
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb1_l1_b1_c10_sl50_tf10_noise0 model.depth=1 model.embed_dim=1 model.patch_size=[1,1] model.num_blocks=1 model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb12_l1_c10_sl50_tf10_noise0 model.depth=1 model.embed_dim=12 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb72_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=72 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb120_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=120 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb184_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=184 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb280_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=280 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=fourcastnet model.name=fcnet64_ps1x1_emb416_l4_c10_sl50_tf10_noise0 model.depth=4 model.embed_dim=416 model.patch_size=[1,1] model.context_size=10 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3

# GraphCast
#  python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp8_sl50_tf10_clip_noise0 model.hidden_dim_processor=8 model.hidden_dim_node_encoder=8 model.hidden_dim_edge_encoder=8 model.hidden_dim_node_decoder=8 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp34_sl50_tf10_clip_noise0 model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp116_sl50_tf10_clip_noise0 model.hidden_dim_processor=116 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp164_sl50_tf10_clip_noise0 model.hidden_dim_processor=164 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp234_sl50_tf10_clip_noise0 model.hidden_dim_processor=234 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp331_sl50_tf10_clip_noise0 model.hidden_dim_processor=331 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3
# python scripts/train.py model=graphcast_ns model.name=gcast64_p4_hop2_l2_dp469_sl50_tf10_clip_noise0 model.hidden_dim_processor=469 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.context_size=10 training.batch_size=1 training.learning_rate=1e-4 validation.batch_size=1 training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 device=cuda:3


#################################
## Error over params 64, R=1e4 ##
#################################

# U-Net
# python scripts/train.py model=unet model.hidden_channels=[1,2,4,8,8] model.padding_mode=circular model.context_size=10 model.name=unet64_1-2-4-8-8_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[3,6,12,24,48] model.padding_mode=circular model.context_size=10 model.name=unet64_3-6-12-24-48_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[8,16,32,64,128] model.padding_mode=circular model.context_size=10 model.name=unet64_8-16-32-64-128_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[12,24,48,96,192] model.padding_mode=circular model.context_size=10 model.name=unet64_12-24-48-96-192_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.context_size=10 model.name=unet64_16-32-64-128-256_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[23,46,92,184,368] model.padding_mode=circular model.context_size=10 model.name=unet64_23-46-92-184-368_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[33,66,132,264,528] model.padding_mode=circular model.context_size=10 model.name=unet64_33-66-132-264-528_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3

# FNO3D
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d11_3-3-3_l1_sl30_tf10_cl40_noise0_r1e4 training.batch_size=4 model.hidden_channels=11 model.lifting_channels=32 model.projection_channels=32 model.n_modes=[3,3,3] training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_3-3-3_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[3,3,3] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_7-7-7_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[7,7,7] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_10-10-10_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[10,10,10] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=1 model.name=fno3d64_d32_12-12-12_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=8 model.name=fno3d64_d32_12-12-12_l8_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3

# TFNO3D 4-layers
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno3d64_d2_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno3d64_d8_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=11 model.name=tfno3d64_d11_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=16 model.name=tfno3d64_d16_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=22 model.name=tfno3d64_d22_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3

# TFNO3D 1-8-layers
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_12-12-12_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.name=tfno3d64_d32_12-12-12_l2_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.name=tfno3d64_d32_12-12-12_l8_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 device=cuda:3

# TFNO2D
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno2d64_d2_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno2d64_d8_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=27 model.name=tfno2d64_d27_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=38 model.name=tfno2d64_d38_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=77 model.name=tfno2d64_d77_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=108 model.name=tfno2d64_d108_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=154 model.name=tfno2d64_d154_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=217 model.name=tfno2d64_d217_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3

# SWIN Transformer
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l1x1_h1x1_sl30_tf10_noise0_r1e4 model.depths=[1] model.num_heads=[1] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l2x2_h2x4_sl30_tf10_noise0_r1e4 model.depths=[2,2] model.num_heads=[4,4] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d40_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=40 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d88_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=88 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 device=cuda:3


##################################
## Error over params 256, R=1e4 ##
##################################

# U-Net
# python scripts/train.py model=unet model.hidden_channels=[3,6,12,24,48] model.padding_mode=circular model.context_size=10 model.name=unet256_3-6-12-24-48_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=unet model.hidden_channels=[8,16,32,64,128] model.padding_mode=circular model.context_size=10 model.name=unet256_8-16-32-64-128_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=unet model.hidden_channels=[12,24,48,96,192] model.padding_mode=circular model.context_size=10 model.name=unett25612-24-48-96-192_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.context_size=10 model.name=unett25616-32-64-128-256_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=unet model.hidden_channels=[23,46,92,184,368] model.padding_mode=circular model.context_size=10 model.name=unett25623-46-92-184-368_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=unet model.hidden_channels=[33,66,132,264,528] model.padding_mode=circular model.context_size=10 model.name=unett25633-66-132-264-528_c10_sl30_tf10_noise0_r1e4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3

# FNO3D
# python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d256_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3

# TFNO3D
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d256_d32_12-12-12_l1_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.name=tfno3d256_d32_12-12-12_l2_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=11 model.name=tfno3d256_d11_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=16 model.name=tfno3d256_d16_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=22 model.name=tfno3d256_d22_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d256_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.name=tfno3d256_d32_12-12-12_l8_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s256_r1e4 device=cuda:3

# TFNO2D
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno2d256_d2_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno2d256_d8_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=27 model.name=tfno2d256_d27_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=38 model.name=tfno2d256_d38_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d256_d54_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=77 model.name=tfno2d256_d77_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=108 model.name=tfno2d256_d108_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# -python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=154 model.name=tfno2d256_d154_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# -python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=217 model.name=tfno2d256_d217_12-12_l4_sl30_tf10_cl40_noise0_r1e4 model.n_modes=[12,12] training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3

# SWIN Transformer
# python scripts/train.py model=swintransformer model.name=swint256_d8_l1x1_h1x1_sl30_tf10_noise0_r1e4 model.depths=[1] model.num_heads=[1] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=swintransformer model.name=swint256_d8_l2x2_h2x4_sl30_tf10_noise0_r1e4 model.depths=[2,2] model.num_heads=[4,4] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=swintransformer model.name=swint256_d40_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=40 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=swintransformer model.name=swint256_d60_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3
# python scripts/train.py model=swintransformer model.name=swint256_d88_l2x4_h2x4_sl30_tf10_noise0_r1e4 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=88 model.padding_mode=circular training.clip_gradients=False training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s256_r1e4 device=cuda:3


########################################
## Error over params 64, R=1e4, N=10k ##
########################################

# U-Net
#  python scripts/train.py model=unet model.hidden_channels=[3,6,12,24,48] model.padding_mode=circular model.context_size=10 model.name=unet64_3-6-12-24-48_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[8,16,32,64,128] model.padding_mode=circular model.context_size=10 model.name=unet64_8-16-32-64-128_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[12,24,48,96,192] model.padding_mode=circular model.context_size=10 model.name=unet64_12-24-48-96-192_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.context_size=10 model.name=unet64_16-32-64-128-256_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[23,46,92,184,368] model.padding_mode=circular model.context_size=10 model.name=unet64_23-46-92-184-368_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[33,66,132,264,528] model.padding_mode=circular model.context_size=10 model.name=unet64_33-66-132-264-528_c10_sl30_tf10_noise0_r1e4_n10k training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3

# FNO3D
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3

# TFNO3D 4-layers
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno3d64_d2_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno3d64_d8_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=11 model.name=tfno3d64_d11_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=16 model.name=tfno3d64_d16_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=22 model.name=tfno3d64_d22_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=32 model.name=tfno3d64_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.hidden_channels=45 model.name=tfno3d64_d45_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3

# TFNO3D 1-8-layers
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=1 model.name=tfno3d64_d32_12-12-12_l1_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=2 model.name=tfno3d64_d32_12-12-12_l2_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=4 model.name=tfno3d64_d32_12-12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=8 model.name=tfno3d64_d32_12-12-12_l8_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO3DModule model.n_layers=16 model.name=tfno3d64_d32_12-12-12_l16_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 validation.noise=0.0 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3

# TFNO2D
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=2 model.name=tfno2d64_d2_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=8 model.name=tfno2d64_d8_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=27 model.name=tfno2d64_d27_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=38 model.name=tfno2d64_d38_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=77 model.name=tfno2d64_d77_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=108 model.name=tfno2d64_d108_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=154 model.name=tfno2d64_d154_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
# -python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=217 model.name=tfno2d64_d217_12-12_l4_sl30_tf10_cl40_noise0_r1e4_n10k model.n_modes=[12,12] training.epochs=50 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3

# SWIN Transformer
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l1x1_h1x1_sl30_tf10_noise0_r1e4_n10k model.depths=[1] model.num_heads=[1] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.epochs=50 training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d8_l2x2_h2x4_sl30_tf10_noise0_r1e4_n10k model.depths=[2,2] model.num_heads=[4,4] model.embed_dim=8 model.padding_mode=circular training.clip_gradients=False training.epochs=50 training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d40_l2x4_h2x4_sl30_tf10_noise0_r1e4_n10k model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=40 model.padding_mode=circular training.clip_gradients=False training.epochs=50 training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_sl30_tf10_noise0_r1e4_n10k model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular training.clip_gradients=False training.epochs=50 training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d88_l2x4_h2x4_sl30_tf10_noise0_r1e4_n10k model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=88 model.padding_mode=circular training.clip_gradients=False training.epochs=50 training.batch_size=4 training.noise=0.0 validation.noise=0.0 training.sequence_length=30 validation.sequence_length=30 testing.sequence_length=30 data=navier-stokes_s64_r1e4 data.train_set_name=ns_r1e+04_n10000_t30_s64.nc device=cuda:3


####################
## Lag-resolution ##
####################

# FNO3D

# Originial resolution (64x64)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf1 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf1 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf1 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf1 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3

# Downsampling factor 2 (to 32x32)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl50_c1_noise0_dsf2 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl50_c2_noise0_dsf2 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl50_c4_noise0_dsf2 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=2 model.name=fno3d64_d32_12-12-12_l2_sl50_c8_noise0_dsf2 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3

# Downsampling factor 4 (to 16x16)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf4 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf4 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf4 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf4 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3

# Downsampling factor 8 (to 8x8)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf8 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf8 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf8 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf8 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3

# Downsampling factor 16 (to 4x4)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf16 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf16 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf16 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf16 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3

# Downsampling factor 32 (2x2)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf32 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf32 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf32 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf32 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3

# Downsampling factor 64 (1x1)
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c1_noise0_dsf64 model.n_modes=[12,12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c2_noise0_dsf64 model.n_modes=[12,12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c4_noise0_dsf64 model.n_modes=[12,12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=FNO3DModule model.n_layers=4 model.name=fno3d64_d32_12-12-12_l4_sl50_c8_noise0_dsf64 model.n_modes=[12,12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3

# TFNO2D

# Originial resolution (64x64)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down0 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down0 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down0 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down0 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=1 device=cuda:3

# Downsampling factor 2 (to 32x32)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down1 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down1 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down1 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down1 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3

# Downsampling factor 4 (to 16x16)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down2 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down2 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down2 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down2 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=4 device=cuda:3

# Downsampling factor 8 (to 8x8)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down4 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down4 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down4 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down4 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=8 device=cuda:3

# Downsampling factor 16 (to 4x4)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down8 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down8 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down8 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down8 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3

# Downsampling factor 32 (2x2)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down16 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down16 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down16 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down16 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=32 device=cuda:3

# Downsampling factor 64 (1x1)
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c1_noise0_down32 model.n_modes=[12,12] model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c2_noise0_down32 model.n_modes=[12,12] model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c4_noise0_down32 model.n_modes=[12,12] model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3
#  python scripts/train.py model=fno model.type=TFNO2DModule model.n_layers=4 model.hidden_channels=54 model.name=tfno2d64_d54_12-12_l4_sl50_c8_noise0_down32 model.n_modes=[12,12] model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=64 device=cuda:3

# U-Net (2M)

# Downsampling factor 2 (to 32x32)
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.name=unet64_16-32-64-128-256_c1_sl50_tf10_noise0_down1 model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.name=unet64_16-32-64-128-256_c2_sl50_tf10_noise0_down1 model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.name=unet64_16-32-64-128-256_c4_sl50_tf10_noise0_down1 model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[16,32,64,128,256] model.padding_mode=circular model.name=unet64_16-32-64-128-256_c8_sl50_tf10_noise0_down1 model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3

# Downsampling factor 16 (to 4x4)
#  python scripts/train.py model=unet model.hidden_channels=[128,256] model.padding_mode=circular model.name=unet64_128-256_c1_sl50_tf10_noise0_down8 model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[128,256] model.padding_mode=circular model.name=unet64_128-256_c2_sl50_tf10_noise0_down8 model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[128,256] model.padding_mode=circular model.name=unet64_128-256_c4_sl50_tf10_noise0_down8 model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=unet model.hidden_channels=[128,256] model.padding_mode=circular model.name=unet64_128-256_c8_sl50_tf10_noise0_down8 model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3

# SwinTransformer (1M)

# Downsampling factor 2 (to 32x32)
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c1_sl50_tf10_noise0_down1 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c2_sl50_tf10_noise0_down1 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c4_sl50_tf10_noise0_down1 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c8_sl50_tf10_noise0_down1 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3

# Downsampling factor 16 (to 4x4)
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l1x4_h1x4_c1_sl50_tf10_noise0_down8 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c2_sl50_tf10_noise0_down8 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c4_sl50_tf10_noise0_down8 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=swintransformer model.name=swint64_d60_l2x4_h2x4_c8_sl50_tf10_noise0_down8 model.depths=[4,4] model.num_heads=[4,4] model.embed_dim=60 model.padding_mode=circular model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=4 training.clip_gradients=False training.noise=0.0 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3

# MS MeshGraphNet (50M)

# Downsampling factor 2 (to 32x32)
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c1_sl50_tf10_noise0_down1 model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c2_sl50_tf10_noise0_down1 model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c4_sl50_tf10_noise0_down1 model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c8_sl50_tf10_noise0_down1 model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=2 device=cuda:3

# Downsampling factor 16 (to 4x4)
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c1_sl50_tf10_noise0_down8 model.context_size=1 training.teacher_forcing_steps=1 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c2_sl50_tf10_noise0_down8 model.context_size=2 training.teacher_forcing_steps=2 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c4_sl50_tf10_noise0_down8 model.context_size=4 training.teacher_forcing_steps=4 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
#  python scripts/train.py model=graphcast_ns model.hidden_dim_processor=34 model.processor_layers=4 model.num_layers_node_processor=2 model.num_layers_edge_processor=2 model.name=gcast64_p4_hop2_l2_dp34_c8_sl50_tf10_noise0_down8 model.context_size=8 training.teacher_forcing_steps=8 training.batch_size=1 training.noise=0.0 validation.batch_size=1 validation.noise=0.0 data=navier-stokes_s64 data.downscale_factor=16 device=cuda:3
