Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prioritized list of test cases to port to the new compass package #51

Open
xylar opened this issue Feb 3, 2021 · 25 comments
Open

Prioritized list of test cases to port to the new compass package #51

xylar opened this issue Feb 3, 2021 · 25 comments
Labels
question Further information is requested

Comments

@xylar
Copy link
Collaborator

xylar commented Feb 3, 2021

Here is a list of test cases from legacy COMPASS that could be ported to the new compass python package. I would like help putting them in order of priority.

A checked box below means the test case has already been ported. Strike-through means we don't plan to port them.

legacy COMPASS landice test cases to port:

  • landice/dome/2000m/smoketest (@xylar)
  • landice/dome/2000m/decomposition_test (@xylar)
  • landice/dome/2000m/restart_test (@xylar)
  • landice/dome/variable_resolution/smoketest (@xylar)
  • landice/dome/variable_resolution/decomposition_test (@xylar)
  • landice/dome/variable_resolution/restart_test (@xylar)
  • landice/enthalpy-benchmark/1m/A (@xylar)
  • landice/enthalpy-benchmark/1m/B (@xylar)
  • landice/EISMINT2/25000m/decomposition_test (@xylar)
  • landice/EISMINT2/25000m/enthalpy_decomposition_test (@xylar)
  • landice/EISMINT2/25000m/enthalpy_restart_test (@xylar)
  • landice/EISMINT2/25000m/restart_test (@xylar)
  • landice/greenland/20km/decomposition_test (@xylar)
  • landice/greenland/20km/restart_test (@xylar)
  • landice/greenland/20km/smoke_test (@xylar)
  • landice/hydro-radial/1000m/decomposition_test (@xylar)
  • landice/hydro-radial/1000m/restart_test (@xylar)
  • landice/hydro-radial/1000m/steady_state_drift_test
  • landice/dome/2000m/halfar_analytic_test

Land-ice tests not yet slated for porting:

  • landice/EISMINT2/25000m/standard_experiments
  • landice/hydro-radial/1000m/spinup_test
  • landice/EISMINT1/50000m/MovingMargin1
  • landice/MISMIP+/standard_resolution/restart_test
  • landice/MISMIP+/standard_resolution/standard_test
  • landice/MISMIP3D/full_width/Stnd
  • landice/MISMIP3D/minimal_width/Stnd
  • landice/Thwaites_variability/1km_varres_jigsaw/standard_configuration
  • landice/Thwaites_variability/4km_varres/restart_test
  • landice/Thwaites_variability/4km_varres/standard_configuration
  • landice/Thwaites_variability/uniform_resolution/resolution_testing_configuration
  • landice/antarctica/200to40km_AIS_jigsaw/standard_configuration
  • landice/antarctica/2km_ABUMIP_jigsaw/standard_configuration
  • landice/circular-shelf/1250m/decomposition_test
  • landice/circular-shelf/1250m/smoketest
  • landice/confined-shelf/5000m/decomposition_test
  • landice/confined-shelf/5000m/smoketest
  • landice/dome/2000m/ho_decomposition_test
  • landice/dome/2000m/ho_restart_test
  • landice/dome/2000m/ho_vs_sia_test
  • landice/dome/variable_resolution/halfar_analytic_test
  • landice/dome/variable_resolution/ho_decomposition_test
  • landice/dome/variable_resolution/ho_restart_test
  • landice/greenland/20km/ho_restart_test
  • landice/hydro-ramp/20000m/smoketest
  • landice/hydro-shmip/standard_resolution/experiment_A
  • landice/hydro-shmip/standard_resolution/experiment_B
  • landice/hydro-shmip/standard_resolution/experiment_C
  • landice/hydro-shmip/standard_resolution/experiment_D
  • landice/hydro-shmip/standard_resolution/experiment_E

legacy COMPASS ocean test cases to port:

  • ocean/baroclinic_channel/10km/decomp_test
  • ocean/baroclinic_channel/10km/default
  • ocean/baroclinic_channel/10km/restart_test
  • ocean/baroclinic_channel/10km/rpe_test
  • ocean/baroclinic_channel/10km/threads_test
  • ocean/baroclinic_channel/1km/rpe_test
  • ocean/baroclinic_channel/4km/rpe_test
  • ocean/global_ocean/EC60to30/build_mesh
  • ocean/global_ocean/EC60to30/files_for_e3sm
  • ocean/global_ocean/EC60to30/spin_up_EN4_1900
  • ocean/global_ocean/EC60to30/spin_up_PHC
  • ocean/global_ocean/EC60to30wISC/build_mesh
  • ocean/global_ocean/EC60to30wISC/files_for_e3sm
  • ocean/global_ocean/EC60to30wISC/spin_up_EN4_1900
  • ocean/global_ocean/EC60to30wISC/spin_up_phc
  • ocean/global_ocean/QU240/analysis_test
  • ocean/global_ocean/QU240/bgc_ecosys_test
  • ocean/global_ocean/QU240/daily_output_test
  • ocean/global_ocean/QU240/init
  • ocean/global_ocean/QU240/performance_test
  • ocean/global_ocean/QU240/restart_test
  • ocean/global_ocean/QU240/rk4_partition_test
  • ocean/global_ocean/QU240/rk4_thread_test
  • ocean/global_ocean/QU240/se_partition_test
  • ocean/global_ocean/QU240/thread_test
  • ocean/global_ocean/QU240wISC/init
  • ocean/sub_ice_shelf_2D/5km/iterative_init
  • ocean/sub_ice_shelf_2D/5km/restart_test
  • ocean/ziso/20km/default
  • ocean/ziso/20km/with_frazil
  • ocean/global_ocean/SOwISC12to60/files_for_e3sm (@xylar)
  • ocean/global_ocean/SOwISC12to60/init (@xylar)
  • ocean/global_ocean/SOwISC12to60/spin_up (@xylar)
  • ocean/global_ocean/WC14/init (@xylar)
  • ocean/global_ocean/WC14/spin_up (@xylar)
  • ocean/convergence_global/QU120/cosine_bell (@xylar)
  • ocean/convergence_global/QU150/cosine_bell (@xylar)
  • ocean/convergence_global/QU180/cosine_bell (@xylar)
  • ocean/convergence_global/QU210/cosine_bell (@xylar)
  • ocean/convergence_global/QU240/cosine_bell (@xylar)
  • ocean/convergence_global/QU60/cosine_bell (@xylar)
  • ocean/convergence_global/QU90/cosine_bell (@xylar)
  • ocean/convergence_global/analysis/cosine_bell (@xylar)
  • ocean/gotm/2.5km/default (@xylar)
  • ocean/isomip_plus/2km/Ocean0 (@xylar)
  • ocean/isomip_plus/2km/Ocean1 (@xylar)
  • ocean/isomip_plus/2km/Ocean2 (@xylar)
  • ocean/isomip_plus/5km/Ocean0 (@xylar)
  • ocean/isomip_plus/5km/Ocean1 (@xylar)
  • ocean/isomip_plus/5km/Ocean2 (@xylar)
  • ocean/internal_waves/5km/default (@cbegeman )
  • ocean/internal_waves/5km/rpe_test (@cbegeman )
  • ocean/internal_waves/5km/ten-day (@cbegeman )
  • ocean/isomip_plus/2km/time_varying_Ocean0 (@xylar)
  • ocean/soma/32km/default (@xylar and @ytakano3)
  • ocean/soma/16km/default (@xylar and @ytakano3)
  • ocean/soma/8km/default (@xylar and @ytakano3)
  • ocean/soma/4km/default (@xylar and @ytakano3)
  • ocean/soma/32km/3layer (@xylar and @ytakano3)
  • ocean/soma/16km/3layer (@xylar and @ytakano3)
  • ocean/soma/8km/3layer (@xylar and @ytakano3)
  • ocean/soma/4km/3layer (@xylar and @ytakano3)
  • ocean/soma/32km/surface_restoring (@xylar and @ytakano3)
  • ocean/soma/16km/surface_restoring (@xylar and @ytakano3)
  • ocean/soma/8km/surface_restoring (@xylar and @ytakano3)
  • ocean/soma/4km/surface_restoring (@xylar and @ytakano3)
  • ocean/ziso/10km/default (@xylar and @yariseidenbenz)
  • ocean/ziso/2.5km/default (@xylar and @yariseidenbenz)
  • ocean/ziso/5km/default (@xylar and @yariseidenbenz)
  • ocean/drying_slope/meshes/1km (@xylar and @cbegeman)
  • ocean/drying_slope/meshes/250m (@xylar and @cbegeman)
  • ocean/drying_slope/sigma/1km (@xylar and @cbegeman)
  • ocean/drying_slope/sigma/250m (@xylar and @cbegeman)
  • ocean/hurricane/USDEQU120at30cr10rr2/build_mesh (@sbrus89)
  • ocean/hurricane/USDEQU120at30cr10rr2/sandy (@sbrus89)
  • ocean/dam_break/default/004m @cbegeman
  • ocean/dam_break/default/012m @cbegeman
  • ocean/Redi_verification/SouthernOceanSlice40/all (@xylar)
  • ocean/Redi_verification/SouthernOceanSlice40/thread_test (@xylar)
  • ocean/Redi_verification/SouthernOceanSlice40/se_blocks_test (@xylar)
  • ocean/tendency_verification/all/Redi (@xylar)
  • ocean/single_column_model/planar/cvmix_test (@vanroekel)
  • ocean/single_column_model/sphere/cvmix_test (@vanroekel)
  • ocean/tides/USDEQU120at30cr10/build_mesh (@sbrus89)
  • ocean/tides/USDEQU120at30cr10/harmonic_analysis_test (@sbrus89)
  • ocean/hurricane/USDEQU120at30cr10rr2WD/build_mesh (@sbrus89)
  • ocean/hurricane/USDEQU120at30cr10rr2WD/sandy (@sbrus89)

Ocean tests not yet slated for porting:

  • ocean/Gaussian_hump/USDEQU120cr10rr2/build_mesh
  • ocean/Gaussian_hump/USDEQU120cr10rr2/delaware
  • ocean/coastal/USDEQU120cr10rr2/build_mesh
  • ocean/drying_slope/hybrid/1km
  • ocean/drying_slope/hybrid/250m
  • ocean/drying_slope/marsh_flooding/idealized_transect
  • ocean/drying_slope/meshes/idealized_transect
  • ocean/drying_slope/zstar/1km
  • ocean/drying_slope/zstar/250m
  • ocean/drying_slope/zstar_above_land/1km
  • ocean/drying_slope/zstar_variableCd/1km
  • ocean/drying_slope/zstar_variableManningn/1km
  • ocean/global_ocean/ARM60to10/init
  • ocean/isomip/10km/expt1.01
  • ocean/isomip/10km/expt2.01
  • ocean/lock_exchange/0.5km/default
  • ocean/lock_exchange/0.5km/rpe_test
  • ocean/lock_exchange/16km/default
  • ocean/overflow/10km/default
  • ocean/overflow/1km/rpe_test
  • ocean/sea_mount/6.7km/default
  • ocean/surface_waves/direct/1km
  • ocean/surface_waves/thickness_source/1km
  • ocean/surface_waves/variable_drag/1km

Ocean tests that will not be ported:

  • ocean/coastal/Maine/init
  • ocean/global_ocean/CA120to3/build_mesh
  • ocean/global_ocean/EC15to60/build_mesh
  • ocean/global_ocean/EC15to60/files_for_e3sm
  • ocean/global_ocean/EC15to60/spin_up_EN4_1900
  • ocean/global_ocean/EC15to60/spin_up_PHC
  • ocean/global_ocean/HI120to12/build_mesh
  • ocean/global_ocean/QU240/test
  • ocean/global_ocean/WC12/init
  • ocean/global_ocean/WC12/spin_up
  • ocean/periodic_planar/20km/default_light
  • ocean/periodic_planar/20km/region_reset_light_test
  • ocean/periodic_planar/20km/time_reset_light_test
  • ocean/soma/32km/time_varying_wind
  • ocean/sub_ice_shelf_2D/5km/Haney_number_init
  • ocean/sub_ice_shelf_2D/5km/Haney_number_iterative_init
  • ocean/sub_ice_shelf_2D/5km/default
  • ocean/sub_ice_shelf_2D/5km/with_frazil
  • test/basic_spherical/960km/default
  • ocean/hurricane/USDEQU120at30cr10rr2/synthetic_sandy
  • ocean/hurricane/USDEQU120at30cr10rr2WD_veg/build_mesh
  • ocean/hurricane/USDEQU120at30cr10rr2WD_veg/sandy
  • ocean/hurricane/USDEQU240at60cr20rr4/build_mesh
  • ocean/hurricane/USDEQU240at60cr20rr4/sandy
  • ocean/hurricane/USDEQU240at60cr20rr4/synthetic_sandy
  • ocean/hurricane/USDEQU240at60cr20rr4WD/build_mesh
  • ocean/hurricane/USDEQU240at60cr20rr4WD/sandy
  • ocean/hurricane/USDEQU240at60cr20rr4WD/synthetic_sandy
  • ocean/hurricane/USDEQU240at60cr20rr4WD_veg/build_mesh
  • ocean/hurricane/USDEQU240at60cr20rr4WD_veg/sandy
  • ocean/hurricane/USDEQU60at15cr5rr1/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr1/sandy
  • ocean/hurricane/USDEQU60at15cr5rr100WD/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr100WD/sandy
  • ocean/hurricane/USDEQU60at15cr5rr1WD/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr1WD/sandy
  • ocean/hurricane/USDEQU60at15cr5rr1WD_veg/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr1WD_veg/sandy
  • ocean/hurricane/USDEQU60at15cr5rr250WD/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr250WD/sandy
  • ocean/hurricane/USDEQU60at15cr5rr500WD/build_mesh
  • ocean/hurricane/USDEQU60at15cr5rr500WD/sandy
@xylar xylar added question Further information is requested python package DEPRECATED: PRs and Issues involving the python package (master branch) labels Feb 3, 2021
@xylar
Copy link
Collaborator Author

xylar commented Feb 3, 2021

@vanroekel, @matthewhoffman, @sbrus89, @mark-petersen, @milenaveneziani, @darincomeau, could you all help me prioritize these test cases. If you want to prioritize them, move them up the list either by dragging them or editing the comment. If you know a test case isn't needed (it will still be available in legacy COMPASS, it just won't be ported), please use ~~ to add strike-through.

Please @ anyone else whose feedback we also need.

@xylar
Copy link
Collaborator Author

xylar commented Feb 3, 2021

@trhille, you may also be a good person to give feedback on the landice list.

@vanroekel
Copy link
Collaborator

Thanks for making this list @xylar. I've made a few minor shifts. I've also bumped cvmix to the bottom as I'd like to take these on myself for porting to the new compass package.

@mark-petersen if you don't think the redi verification tests are particularly helpful to have for standard testing, please de prioritize those.

@xylar
Copy link
Collaborator Author

xylar commented Feb 3, 2021

@vanroekel, I've moved the cvmix test cases up in priority but put your username after them, I hope that's okay. This way we can kind of keep track of who's planning to do what.

@vanroekel
Copy link
Collaborator

great idea. Thanks for making that change.

@sbrus89
Copy link
Collaborator

sbrus89 commented Feb 4, 2021

@xylar, I'd like to take on the hurricane/tides cases (I'll mark them in the comment). That way I can learn the ins and outs of the new COMAPSS. It'll also be a good opportunity for me to possibly prune these as necessary when I go through them. Thanks again for doing all this!

@xylar
Copy link
Collaborator Author

xylar commented Feb 5, 2021

Thanks @sbrus89. I'm happy to help. I'd recommend holding off on starting your porting until #28 gets merged. Perhaps in a couple of weeks.

@sbrus89
Copy link
Collaborator

sbrus89 commented Feb 5, 2021

@xylar, sounds good. Thanks for the heads up. I'm excited to start using the new compass!

@matthewhoffman
Copy link
Member

@xylar , I've updated the landice lists. There may be additional round of decisions on what to port when (or at all), but this narrows things down a bit.

@xylar
Copy link
Collaborator Author

xylar commented Feb 5, 2021

Thanks @matthewhoffman, that's really helpful. I'll work my way through the ones with my name on them in the next week or 2.

@xylar
Copy link
Collaborator Author

xylar commented Feb 15, 2022

@cbegeman and @dengwirda, if it makes sense to port some of the ocean/dam_break and ocean/drying_slope test cases from legacy to master, please list the tests we want to port and I can move them to the "to do" kind of section above with some names (including mine).

@cbegeman
Copy link
Collaborator

@xylar Thanks. It doesn't appear that ocean/drying_slope was based on a standard test case but I think it could be made to resemble the simplest 1-d uniformly sloping basin test case from this paper https://doi.org/10.1016/S0378-3839(98)00015-5. It's worth considering the ocean/dam_break test case but let's make sure we can pass the simplest wetting-and-drying test case first.

@xylar
Copy link
Collaborator Author

xylar commented Feb 15, 2022

Okay, rather than trying to port anything from ocean/drying_slope, it might be best to start fresh with a new test-case name and such.

@sbrus89
Copy link
Collaborator

sbrus89 commented Feb 15, 2022

@xylar, the drying slope and dam break cases are both taken from this paper: Warner et al. 2013 which describes the wetting and drying implementation in ROMS. I believe both test cases use the ROMS data in the analysis steps for comparison. The MPAS results for these cases were published here: Cao et al. 2021

@sbrus89
Copy link
Collaborator

sbrus89 commented Feb 15, 2022

Which is to say that I think carrying these cases over (rather than starting fresh) is important. Of course, adding additional cases would be great too.

@sbrus89
Copy link
Collaborator

sbrus89 commented Feb 15, 2022

Also, I happened to be re-running the drying slope case the other day and noticed that it no longer behaves the way it originally did. My results from the other day look like this:
dryingslopecomparison

versus the result from the Cao et al. 2021 paper:
Screen Shot 2022-02-15 at 2 18 02 PM

Note that the 0.05 days result is way off in the top plot.

@dengwirda
Copy link
Contributor

@xylar @cbegeman I think another (new) test that could be useful as a wetting + drying verification is the oscillations-in-a-bowl case, similar to that described in this NEMO paper: Implementation and assessment of a flux limiter based wetting and drying scheme in NEMO. With repeated wetting + drying cycles, this should give us a way to test the symmetry of the scheme, and any spurious frictional losses over time.
A single-layer MPAS-O tides case (with small initial min.-depth) could also be a good 'do-no-harm' shallow-water case, to ensure wetting + drying doesn't degrade deep ocean response.

@cbegeman
Copy link
Collaborator

@sbrus89 Great! I'm happy to hear that both of these test cases derived from existing tests. Then they do seem worth bringing over.

@xylar Let me know how you'd like to share the work and @dengwirda whether you'd like to get your hands dirty with e.g. the bowl case.

@xylar
Copy link
Collaborator Author

xylar commented Feb 15, 2022

@sbrus89 and @cbegeman, could we check off which of these are priorities?

First round:

  • ocean/drying_slope/meshes/1km
  • ocean/drying_slope/meshes/250m
  • ocean/drying_slope/sigma/1km
  • ocean/drying_slope/sigma/250m

Second round:

  • ocean/drying_slope/hybrid/1km
  • ocean/drying_slope/hybrid/250m
  • ocean/drying_slope/zstar/1km
  • ocean/drying_slope/zstar/250m

Third round:

  • ocean/dam_break/default/004m
  • ocean/dam_break/default/012m

Later (if at all):

  • ocean/drying_slope/marsh_flooding/idealized_transect
  • ocean/drying_slope/meshes/idealized_transect
  • ocean/drying_slope/zstar_above_land/1km
  • ocean/drying_slope/zstar_variableCd/1km
  • ocean/drying_slope/zstar_variableManningn/1km

Do you have permission to check/uncheck these? If not, comment and I'll do it.

@xylar
Copy link
Collaborator Author

xylar commented Feb 15, 2022

To get the ball rolling, I have checked the ones I would be inclined to port. It's typically easy to handle multiple resolutions in one port. It shouldn't be too hard to handle multiple vertical coordinates in one port.

@cbegeman made clear that the dam-break test case would be a later priority because it's more rigorous and challenging.

@cbegeman
Copy link
Collaborator

@xylar I can't edit but I think what you've designated is fine. Since we're starting with only 1 vertical level, it's pretty low priority to handle multiple vertical coordinates.

@xylar
Copy link
Collaborator Author

xylar commented Feb 15, 2022

@cbegeman, good point. I'll prioritize sigma, since that seems like the most sensible coordinate for a single layer.

@xylar xylar removed the python package DEPRECATED: PRs and Issues involving the python package (master branch) label Apr 1, 2022
@xylar
Copy link
Collaborator Author

xylar commented Sep 13, 2022

@sbrus89, there are many Hurricane test cases slated for porting (see above) but I didn't see an exact match to the ones you created. Could you check off whichever ones you ported (or the closest matches). If you don't plan to port some of those tests after all should we move some to "won't port"?

@sbrus89
Copy link
Collaborator

sbrus89 commented Sep 13, 2022

@xylar, I just did what you suggested.

@xylar
Copy link
Collaborator Author

xylar commented Sep 14, 2022

Excellent, much appreciated @sbrus89!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants