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 implicit diffusion solver #2379

Merged
merged 1 commit into from
Nov 30, 2023
Merged

Add implicit diffusion solver #2379

merged 1 commit into from
Nov 30, 2023

Conversation

dennisYatunin
Copy link
Member

@dennisYatunin dennisYatunin commented Nov 21, 2023

Purpose

This PR adds an implicit solver for vertical diffusion, which will be extended to support diagnostic EDMF in a followup PR.

Content

  • Bump the compat entry for ClimaCore to 0.11.1, which gives us access to the new ApproximateBlockArrowheadIterativeSolve algorithm, and update all of the Manifest.toml files.
  • Add the new config option implicit_diffusion, which determines whether to include vertical diffusion in the implicit tendency (and whether to include its derivative in the Jacobian). The current default value is false, but we will change this to true after further testing.
  • Replace the BlockArrowheadSolve with an ApproximateBlockArrowheadIterativeSolve when implicit_diffusion is true.
  • Add a new example called sphere_baroclinic_wave_rhoe_equilmoist_impvdiff to the pipeline. This is a copy of sphere_baroclinic_wave_rhoe_equilmoist_expvdiff, but with implicit_diffusion set to true and dt increased to 400secs. In order for the simulation to produce reasonable results, the value of max_newton_iters_ode needs to be increased to 2. This example currently takes a while to compile (almost half an hour on the cluster), and it prints a long compiler warning about type inference. It should be possible to fix that with the changes in Fix implicit solver compilation issues ClimaCore.jl#1506, which I'll wrap up after we have some preliminary results with diagnostic EDMF.
  • Decrease dt for the sphere_baroclinic_wave_rhoe_equilmoist_expvdiff example to 20secs because using 40secs or 30secs causes the simulation to crash when t_end is set to 6days. Decrease t_end to 6hours so that this example does not slow down CI.

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

@dennisYatunin dennisYatunin force-pushed the dy/implicit_diffusion branch 7 times, most recently from b41603f to 2466d4f Compare November 29, 2023 23:48
@dennisYatunin dennisYatunin requested a review from szy21 November 30, 2023 00:08
@dennisYatunin dennisYatunin added this pull request to the merge queue Nov 30, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 30, 2023
@dennisYatunin dennisYatunin added this pull request to the merge queue Nov 30, 2023
Merged via the queue into main with commit a9a53d8 Nov 30, 2023
10 checks passed
@dennisYatunin dennisYatunin deleted the dy/implicit_diffusion branch November 30, 2023 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants