E3SM-Project / polaris

Testing and analysis for OMEGA, MPAS-Ocean, MALI and MPAS-Seaice
BSD 3-Clause "New" or "Revised" License
6 stars 13 forks source link

Add `ModelStep` class #20

Closed xylar closed 1 year ago

xylar commented 1 year ago

This merge adds the capability for steps to provide an args attribute that gets run instead of the run() method. The most common example of this is running an E3SM component. A new superclass ModelStep is also included in this merge to take over much of the functionality in Step that is specific to running a component (e.g. setting up namelists and streams files, partitioning the mesh, and updating namelist options for PIO).

Steps that run an E3SM component should always descend from ModelStep from now on. The cosine bell Forward step has been updated accordingly.

This merge includes some associated cleanup in the Developer's Guide.

This merge adds a cosine bell test suite with cached initial conditions that was missed in #18.

Checklist

xylar commented 1 year ago

Testing

I successfully ran the new cosine_bell_with_cached_init test suite on Chrysalis using this branch.

xylar commented 1 year ago

@cbegeman, @matthewhoffman and @trhille, I don't think it's a good use of your time to review this but I did want to make you aware of it. All test cases will need to be updated for these changes as they are ported over from compass.

I want to make a little more headway with task parallelism here before anymore tests get ported but I hope to bring over a bunch of examples before any of you need to worry about the details.