ClimaCoupler.jl icon indicating copy to clipboard operation
ClimaCoupler.jl copied to clipboard

O5.1.x (coupler) Software Improvements for ClimaCoupler

Open juliasloan25 opened this issue 1 year ago • 1 comments

The Climate Modeling Alliance

Software Design Issue 📜

Purpose

We are planning an initial release of ClimaCoupler.jl v0.1.0, which will include some software revamps (see #358). There are additional improvements to our codebase that need to be made, but will be done after this release to break down the tasks we have into more manageable chunks. These are lower priority items, so there isn't a big focus on these.

Cost/Benefits/Risks

b: streamlining AMIP delivery, higher code quality c: developer time

People and Personnel

  • Lead: @juliasloan25
  • Collaborators:
  • Reviewers:

Components

  • clean up coupler interface
  • unify coupler/atmos interaction
  • performance improvements
  • use consistent conventions
  • misc. other tasks

Inputs

This SDI follows from #358 and will be worked on in parallel with #367 and #390

Results and Deliverables

  • clean coupling interface
  • remove hard coding in atmos/coupler interface

QA

  • performance should stay the same or improve (#323)

SDI Revision Log

Proposed Delivery Date

31 October 2024

CC

@tapios @cmbengue

### clean up coupler interface
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/335
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/331
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/336
### unify coupler/atmos interaction
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/445
- [ ] atmos: `set_precomputed_quantities` not called so EDMF breaks since it steps during init, unless hardcoded fluxes at t=0 [ask Dennis]
- [ ] atmos: `MoistNonEquil` surface thermo state is hardcoded now - want to be able to use other types
- [ ] atmos: need separation between flux inputs setting and calculation - want to be able to set atmos state, then calculate fluxes later (but atmos automatically calcs flux when setting IC)
- [ ] coupler: simplify the init and exchange of fields after Atmos interface revamp - init in 5 lines: 1) get integrator state of each model, 2) exchange all states, 3) compute misc aux (e.g., q_sfc - though also abstractable), 4) calculate fluxes, 5) exchange fluxes
### miscellaneous
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/406
### separate surface flux calculation from states
- [ ] https://github.com/CliMA/ClimaCoupler.jl/issues/479

juliasloan25 avatar Nov 21 '23 00:11 juliasloan25