Skip to content

Conversation

@andrewdnolan
Copy link
Collaborator

@andrewdnolan andrewdnolan commented Mar 7, 2025

The merry-go-round test group is used for testing the vertical advection scheme only using tracers. This PR ports the Default test case from the merry_go_round test group from compass. This PR also adds convergence tests in space and both space and time.

Checklist

  • User's Guide has been updated
  • Developer's Guide has been updated
  • API documentation in the Developer's Guide (api.md) has any new or modified class, method and/or functions listed
  • Documentation has been built locally and changes look as expected
  • Testing comment in the PR documents testing used to verify the changes
  • New tests have been added to a test suite

@andrewdnolan andrewdnolan added in progress This PR is not ready for review or merging ocean Related to the ocean component labels Mar 7, 2025
@cbegeman
Copy link
Collaborator

@andrewdnolan Looking great so far! Just a few minor suggestions

@andrewdnolan andrewdnolan self-assigned this May 9, 2025
@andrewdnolan
Copy link
Collaborator Author

Analysis task now works as of bd2fc01 and achieves a convergence of ~1.74:
convergence_tracer1

Not per se correct, but needed to that the area calculation for
error norm has correct dimensions.

Stopped computing converg. rates for tracers 2 & 3 following compass.
Needed for specifiying the culled mesh, as compared to the base
mesh as used in all the previous test cases.
The number of vertical layers, for the base resolution, is now
read from the config file. Then that's scaled by the refinement
factor.
Run the viz step first, so that even if convergence fail the viz
step is run. Usefull for diagnosing problems if not converged
@andrewdnolan
Copy link
Collaborator Author

Sorry about the delay in this. But I have now ported the documentation, which can be viewed here: https://portal.nersc.gov/cfs/fanssie/anolan/merry_go_round/html/test/index.html

@cbegeman you might be able to help with a better description of the vertical coordinate in the user guide. Sorry my description is so brief, I'm don't have the best grasp of the vertical coordinate details in mpas-ocean.

@andrewdnolan
Copy link
Collaborator Author

andrewdnolan commented Jun 20, 2025

Testing

Testing and development have been done on perlmutter:

polaris setup --clean -n 96 97 98 99 -w $PSCRATCH/merry_go_round

cd $PSCRATCH/merry_go_round
salloc --nodes 1 --qos interactive --time 00:30:00 --constraint cpu --account e3sm
source load_polaris_env.sh
polaris serial 

Output

polaris.log
ocean/planar/merry_go_round/default                                                                       
  * step: init_5m                                                                                         
          execution:        SUCCESS                                                                       
          runtime:          0:00:07                                                                       
  * step: forward_5m_360s                                                                                 
          execution:        SUCCESS                                                                       
          runtime:          0:00:03                                                                       
  * step: viz                                                                                             
          execution:        SUCCESS                                                                       
          runtime:          0:00:02                                                                       
  task execution:   SUCCESS                                                                               
  task runtime:     0:00:12         
ocean/planar/merry_go_round/convergence_space/
  * step: init_5m
          already completed
  * step: forward_5m_360s
          already completed
  * step: init_2.5m
          execution:        SUCCESS
          runtime:          0:00:02
  * step: forward_2.5m_360s
          execution:        SUCCESS
          runtime:          0:00:04
  * step: init_1.25m
          execution:        SUCCESS
          runtime:          0:00:03
  * step: forward_1.25m_360s
          execution:        SUCCESS
          runtime:          0:00:07
  * step: viz
          execution:        SUCCESS
          runtime:          0:00:10
  * step: analysis
          execution:        SUCCESS
          runtime:          0:00:01
  task execution:   SUCCESS
  task runtime:     0:00:27
ocean/planar/merry_go_round/convergence_time/
  * step: init_5m
          already completed
  * step: forward_5m_360s
          already completed
  * step: forward_5m_180s
          execution:        SUCCESS
          runtime:          0:00:04
  * step: forward_5m_90s
          execution:        SUCCESS
          runtime:          0:00:08
  * step: viz
          execution:        SUCCESS
          runtime:          0:00:04
  * step: analysis
          execution:        ERROR
  task execution:   ERROR
  see: case_outputs/ocean_planar_merry_go_round_convergence_time_.log
  task runtime:     0:00:17
ocean/planar/merry_go_round/convergence_both/
  * step: init_5m
          already completed
  * step: forward_5m_360s
          already completed
  * step: init_2.5m
          already completed
  * step: forward_2.5m_180s
          execution:        SUCCESS
          runtime:          0:00:07
  * step: init_1.25m
          already completed
  * step: forward_1.25m_90s
          execution:        SUCCESS
          runtime:          0:00:26
  * step: viz
          execution:        SUCCESS
          runtime:          0:00:09
  * step: analysis
          execution:        SUCCESS
          runtime:          0:00:01
  task execution:   SUCCESS
  task runtime:     0:00:43
Task Runtimes:
0:00:12 PASS ocean/planar/merry_go_round/default
0:00:27 PASS ocean/planar/merry_go_round/convergence_space/
0:00:17 FAIL ocean/planar/merry_go_round/convergence_time/
0:00:43 PASS ocean/planar/merry_go_round/convergence_both/
Total runtime: 0:01:46
FAIL: 1 task failed, see above.

@cbegeman I'm still unable to get convergence in just time, per the failure in the convergence_time.analysis step. I can't recall how we decided we wanted to deal with this?

@andrewdnolan andrewdnolan marked this pull request as ready for review June 20, 2025 16:01
@andrewdnolan andrewdnolan removed the in progress This PR is not ready for review or merging label Jun 20, 2025
Comment on lines 40 to 41
The mesh is planar and the resolution is specified by config option
`convergence:base_resolution`, which defaults to 5 m. The horizontal
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be confusing for folks that in order to change the resolution for the default task they need to change options in the convergence section. I would prefer that we have a new section merry_go_round_default that has any options that are used only by the default case (which may be just resolution).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for suggestion! I totally agree, that seems less confusing.

@cbegeman
Copy link
Collaborator

@cbegeman I'm still unable to get convergence in just time, per the failure in the convergence_time.analysis step. I can't recall how we decided we wanted to deal with this?

I don't think it's your responsibility to debug this. I think we just add only the tests that pass to the test suites. I think we minimally need the default test in the pr suite and the convergence_both test in the convergence suite.

@cbegeman
Copy link
Collaborator

Compass contained some x offsets in the function that defines the initial velocity. These led to artifacts:
image

I have changed the IC to remove those artifacts and receive much smaller errors:
bb60c5b
image

And convergence that is close to the theoretical value of 2:
image

Copy link
Collaborator

@cbegeman cbegeman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that the initial condition is fixed, this is ready to go in. Thanks for all your work on this @andrewdnolan!

@cbegeman cbegeman merged commit 08d929a into E3SM-Project:main Jul 28, 2025
5 checks passed
@cbegeman cbegeman added the enhancement New feature or request label Jul 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ocean Related to the ocean component

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants