Default cases
VVMex ships ready-to-run cases under rundata/. Copy the closest case, verify
its input and output paths, and change one part at a time.
Choose a starting case
| Goal | Suggested case |
|---|---|
| Smallest dynamics check | advection_u.json |
| Warm-bubble dynamics | 2dbubble.json |
| P3 microphysics | p3_bubble_shear.json |
| Radiative-convective equilibrium | rcemip.json |
| Land and terrain physics | sea_grass_mountain.json |
| Large Taiwan workflow | taiwanvvm_2048.json |
Each JSON refers to matching input files:
| Directory | Contents |
|---|---|
rundata/input_configs/default_cases/ |
Runtime JSON configurations |
rundata/initial_conditions/profiles/default_cases/ |
One-dimensional sounding profiles |
rundata/initial_conditions/spatial/default_cases/ |
Spatial NetCDF inputs; regenerate them with tools/generate_init_nc.py |
Run a sample case
From the project root:
cd $VVM_ROOT
./submit.py --local --preset <your_preset_name> -c ./rundata/input_configs/default_cases/advection_u.json --compute 1
For a larger local or SLURM run, keep the same -c path and change the resource options:
./submit.py --preset <your_preset_name> -c ./rundata/input_configs/default_cases/sea_grass_mountain.json --compute 16 --nodes 1 --gpus 16
If you copy a default case before editing, keep paths relative to the project root unless you also change your launch directory. If you do not know which values to provide to the wrapper, run ./submit.py and answer the prompts step by step.
For local runs on specific GPUs, set VVM_GPU_LIST before the command:
VVM_GPU_LIST=0,1,2,3,4,5,6,7 ./submit.py --local \
-c "rundata/input_configs/default_cases/taiwanvvm_2048.json" \
--preset blaze \
--compute 8 \
--nodes 1
Available cases
| Case config | Type | Profile | Spatial input |
|---|---|---|---|
2dbubble.json |
Idealized dynamics, idealized_test = 2dbubble |
profile_dry.txt |
init_regression_test.nc |
advection_u.json |
Idealized dynamics, idealized_test = advection_u |
profile_dry.txt |
init_regression_test.nc |
advection_v.json |
Idealized dynamics, idealized_test = advection_v |
profile_dry.txt |
init_regression_test.nc |
advection_w.json |
Idealized dynamics, idealized_test = advection_w |
profile_dry.txt |
init_regression_test.nc |
stretching.json |
Idealized dynamics, idealized_test = stretching |
profile_dry.txt |
init_regression_test.nc |
twisting.json |
Idealized dynamics, idealized_test = twisting |
profile_dry.txt |
init_regression_test.nc |
p3_bubble_shear.json |
Moist bubble / P3-oriented sample | p3_bubble_shear.txt |
p3_bubble_shear.nc |
rcemip.json |
RCEMIP-style radiative-convective equilibrium | RCEMIP_VVM_300k_init.txt |
rcemip.nc |
grass.json |
Full-physics land sample over grass surface | tpe_20240717i.txt |
grass.nc |
evergreen.json |
Full-physics land sample over evergreen surface | tpe_20240717i.txt |
evergreen.nc |
urban.json |
Full-physics land sample over urban surface | tpe_20240717i.txt |
urban.nc |
sea_grass_mountain.json |
Mixed sea, grass, and mountain sample | TNNUA.txt |
sea_grass_mountain.nc |
sea_urban_mountain.json |
Mixed sea, urban, and mountain sample | TNNUA.txt |
sea_urban_mountain.nc |
taiwanvvm_2048.json |
Large TaiwanVVM-style case | tpe_20120819_at004.txt |
taiwanvvm_2048.nc |
Before running large or machine-specific cases, check output.output_dir, grid, and resource settings. For example, taiwanvvm_2048.json is a large configuration and may use an output path that should be changed for your system.
Regenerate spatial NetCDF inputs
The files under rundata/initial_conditions/spatial/default_cases/ can be generated with tools/generate_init_nc.py. The script reads the JSON selected by CONFIG_PATH and writes the NetCDF file named by that config's netcdf_reader.source_file.
Typical workflow:
- Set
VVM_ROOTand install the Python dependencies used by the tool (netCDF4,numpy,xarray,scipy). - Edit
CONFIG_PATHnear the top oftools/generate_init_nc.py, for example:
- Set
USE_TAIWAN_TOPOfor the desired input mode.Truecoarsens Taiwan topography fromrundata/land/topolsm_TW.nc;Falseuses the idealized terrain and land-type helper functions in the script. - Run the tool from anywhere after
VVM_ROOTis set:
When generating an idealized land case, adjust the helper functions in the script (get_ideal_vegtype_data, get_ideal_soiltype_data, get_albedo_data, and related fields) so the generated surface pattern matches the selected default-case JSON.