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

Coupler interface planning (WIP) #1065

Open
juliasloan25 opened this issue Nov 6, 2024 · 0 comments
Open

Coupler interface planning (WIP) #1065

juliasloan25 opened this issue Nov 6, 2024 · 0 comments

Comments

@juliasloan25
Copy link
Member

juliasloan25 commented Nov 6, 2024

Brainstorming/ideas to work towards a clean coupling interface

Changes to make

  • Add examples/ folder with stable, clean simulation setups
  • Config file should be optional
    • Maintain support for it, but also add examples without it
    • Config can override default values - support init either way
  • Specify space in ClimaCoupler drivers
    • boundary space or full space?
  • Separate AMIP, slabplanet drivers
    • this will eliminate the need to store the mode type in the CoupledSimulation; it only informs the model initialization, then we should be able to step each model with the same interface after initialization
    • alternatively, dispatch off of config_ID flag type to control differences for slabplanet, AMIP, etc (e.g. have init_x, call_callbacks, etc function that works differently for each cases)
  • Move prescribed data (CO2, SST, SIC) into relevant component models (atmos, ocean, sea ice) rather than having them as independent entities in CoupledSimulation.mode
    • only needs to be updated for AMIP (not slabplanet), so might be hard before driver split

Concrete To Dos

  • Allow < 4 component models
  • Go through existing component model adapter files
    • Can we use component model repo directly instead? E.g. remove ClimaAtmosSimulation type in coupler
    • Can we minimize code in these files?
  • Clean up/segment run_amip.jl driver as planned
  • Replace modename with config_ID

Questions

  • Should coupler specify just the boundary (surface) space, or all spaces (above surface, surface, subsurface)? Either way, need consistency with topography
  • Do we want to continue requiring 4 component models (atmos, ocean, land, ice), or allow 1 atmos + 1-3 surface models?
    • I think it's better to allow nothing for a surface model, rather than requiring it's defined and zeroing out the contributions/area fraction

Potential CoupledSimulation contents

CoupledSimulation
- models (atmos, ocean, land, seaice)
- clock (tspan, dt_cpl, time/iteration)
- space (exchange space)
- land/sea mask (think about resolution/space)
- callback
- diagnostics/output writers
- turbulent flux partition
- coupler exchange fields
- logging
- config ID
- job ID
- initialized/running flags
- preprocessing

With similar component Simulation objects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant