-
Notifications
You must be signed in to change notification settings - Fork 12
State of the repository: end of December 2022
This document will give insights into the state of the repository by the end of December 2022:
- current structure and where to find features,
- known bugs and shortcomings,
- amelioration to implement,
- thoughts on extending this work.
More detailed can be found in two publications written in the course of the research: [TBD]
Pace was designed and implemented originally at AI2 in the course of 3 years of research.
Core team: Johann Dahm, Florian Deconinck, Oliver Elbert, Jeremy McGibbon, Tobias Wicky, Elynn Wu, Oliver Fuhrer, Eddie Davis,
Partners:
ETH's SPCL
ETH's CSCS
NOAA
GFDL
NASA
-
Dycore no longer takes state as init argument
- Or, at the least, raises exception if given the wrong state at call time or no longer has it as a call-time argument
-
Move Communicator out of DriverConfig, so it returns to being a serializable config class
-
Suppress RuntimeWarnings in grid generation (e.g. divide by zero)
-
Refactor “run mode” into a “disable compilation” and
cache_type: str(“default”, “9_ranks”) config setting, do stencil compilation with a length-zero run time- removes code coupling and some “magic” monkeypatching
- can use post_init to ensure compilation is disabled if using 9_ranks (no way to compile into a 9-rank cache while in parallel), but no need to check that we’re using 9_ranks if compilation is disabled as a user could write a full-rank cache to be run in disabled compilation mode
- also add documentation to all related classes
-
Write savepoint data from Python checkpointers
- delete the translate tests after
- (Merge regression data folders and data download)
-
Write an example “unit” regression test using checkpointers, automated thresholds, and re-written init-from-netcdf for the inputs
-
Decouple grid generation (which lives in pace.util and is more widely useful) from gt4py
-
Increase containerization of state in dycore to reduce arguments to functions
-
Re-organize Pace code to take advantage of information from walkthrough sessions
- moving temporaries off of DycoreState and onto objects
- refactor Delnflux out of fvtp2d, refactor delnfluxnosg out of delnflux, rename delnfluxnosg to some kind of “apply fluxes”, rename delnflux to some kind of “get diffusive flux”