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

Add a year long global simulation to run 1x per week #688

Merged
merged 1 commit into from
Jul 15, 2024

Conversation

kmdeck
Copy link
Collaborator

@kmdeck kmdeck commented Jul 2, 2024

Purpose

Add a year long global simulation to run 1x per week

Note that to minimize NaNs, I have decreased the resolution at the surface from to 50cm (in reality, we want something like 2.5 cm), and increased ac_canopy by 10x (in reality, ~10^3). Once we resolve the NaNs in this simulation through future PRs, we can decrease both of these.

Example output after 7 days:
soil water content
slw 604800 0
gpp
gpp 604800 0

Content

Add a year long global simulation to run 1x per week [pipeline.yml, experiments/long_runs/land.jl, diagnostics code]

Use an updated set of soil parameters with the correct lat/lon and higher resolution [changes to richards_runoff.jl, Artifacts.toml, and soil params file name in land.jl]

Fix bug in bucket model which did not update drivers in callback [global_bucket_function.jl]

Update NEWS.md

To-do

This PR:

  • restore buildkite Manifest
  • review

Future PRs - summarizing Alexis' comment below and adding some -

  1. Figure out NaNs - (a) if we make ac_canopy larger, fewer NaNs. (b) if we make the thermal timescale for phase change longer, we get fewer NaNs (c) if we make the timestep smaller, we get fewer NaNs -> issue with timestepping? better implicit solver? One other question: why NaNs, and not domain errors?
  2. Improve/debug diagnostics - more variables, perhaps we want monthly averages
  3. Make better plots, maybe animations
  4. Use mask in diagnostics so we only get continents
  5. Use units that are reasonable for the community

Even later: in ClimaAnalysis, have a function to generate a local dashboard where we can use a slider to change time, a menu to change variables, maybe a play button for animations


  • I have read and checked the items on the review checklist.

@Sbozzolo
Copy link
Member

Sbozzolo commented Jul 3, 2024

I scheduled this run to on Mondays starting at 23.35

(It would be good to name Buildkite pipelines without spaces)

experiments/long_runs/land.jl Outdated Show resolved Hide resolved
experiments/long_runs/land.jl Outdated Show resolved Hide resolved
@AlexisRenchon AlexisRenchon self-assigned this Jul 3, 2024
@AlexisRenchon
Copy link
Member

I can fix the diagnostics on Friday the latest!
We can coordinate and I'd directly push my commit to this PR

@AlexisRenchon
Copy link
Member

AlexisRenchon commented Jul 5, 2024

Ok I made some changes and pushed my commits, GPP diagnostics is written, and plots are produced, it runs well on the cluster.

However, GPP becomes NaN progressively? (not sure if this is a simulation bug or a diagnostic writing bug?)

I think next step for this PR (or a next PR) is:

  • add other diagnostic variables (need to fix things a bit in src/diagnostics, e.g., I forgot a lot of ! at the end of compute function name)
  • make better plots, maybe animations?
  • fix the bugs (NaNs for examples) and make the simulation 1 year long

And for later, maybe in ClimaAnalysis, have a function to generate a local dashboard where we can use a slider to change time, a menu to change variables, maybe a play button for animations?

It would also help to express GPP in units we are familiar with

gpp 46800 0

experiments/long_runs/land.jl Outdated Show resolved Hide resolved
NEWS.md Outdated Show resolved Hide resolved
@kmdeck kmdeck marked this pull request as ready for review July 12, 2024 23:48
.buildkite/Manifest.toml Outdated Show resolved Hide resolved
Artifacts.toml Outdated Show resolved Hide resolved
@AlexisRenchon
Copy link
Member

Just a thought that eventually the weekly CI run of this could push a web dashboard to a server (the existing Microsoft Azure VM or another).

I think that would be very cool. We will always be able to interact with global outputs of latest run from the web, convenient for discussions etc. I might work on this with the viz students this summer...

@kmdeck kmdeck enabled auto-merge July 15, 2024 01:32
@kmdeck kmdeck merged commit 2c7efd9 into main Jul 15, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants