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

Use OrdinaryDiffEq.jl for timestepping #473

Merged
merged 1 commit into from
Nov 10, 2021
Merged

Use OrdinaryDiffEq.jl for timestepping #473

merged 1 commit into from
Nov 10, 2021

Conversation

charleskawczynski
Copy link
Member

@charleskawczynski charleskawczynski commented Oct 28, 2021

Closes #270.

bors bot added a commit that referenced this pull request Oct 31, 2021
486: Make env diffusion explicit r=charleskawczynski a=charleskawczynski

This PR changes the environmental diffusion to be treated explicitly in time. Similar to #485, this should help the transition to using OrdinaryDiffEq.jl for timestepping. Also, this is helpful because it removes the (decomposed) spatial operators.

I've reduced the timestep in the drybubble case and rico. All of the results look good AFAICT, but the Hvar / QTVar prognostic variables look like they're severely diverging in ARM, Nieuwstadt, and DryBubble. We could further reduce the timestep (which I imagine would fix the problem), but I'm wondering if this is worthwhile since this doesn't technically affect our other results and we should (hopefully) go back to treating some terms implicitly once #473 merges.

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
552: Change update interface, rename to step r=charleskawczynski a=charleskawczynski

This is a prep PR for #473. This PR
 - renames `update` to `step!`
 - Changes the `step!` interface to be compatible with OrdinaryDiffEq.jl
 - Moves the `State` definition into TC.jl `src/`, so that we can pass its properties into a local struct and continue using the dycore API

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
552: Change update interface, rename to step r=charleskawczynski a=charleskawczynski

This is a prep PR for #473. This PR
 - renames `update` to `step!`
 - Changes the `step!` interface to be compatible with OrdinaryDiffEq.jl
 - Moves the `State` definition into TC.jl `src/`, so that we can pass its properties into a local struct and continue using the dycore API

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
552: Change update interface, rename to step r=charleskawczynski a=charleskawczynski

This is a prep PR for #473. This PR
 - renames `update` to `step!`
 - Changes the `step!` interface to be compatible with OrdinaryDiffEq.jl
 - Moves the `State` definition into TC.jl `src/`, so that we can pass its properties into a local struct and continue using the dycore API

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
554: Make diag dict field entry a state-accepting func r=charleskawczynski a=charleskawczynski

This is a peel-off from #473. Basically, this PR changes the diagnostics dict field entry from a reference to the input state to a function that accepts the state. As a result, `io_dictionary_diagnostics`,`io_dictionary_aux`, etc. do not need the input state, and the dict acts in a more functional way.

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
555: Performance patch r=charleskawczynski a=charleskawczynski

This is a peel off PR from #473. This PR adds a few ``@inbounds`` to some loops, and a performance patch for ClimaCore fields. See [ClimaCore.jl's 275](CliMA/ClimaCore.jl#275)

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
bors bot added a commit that referenced this pull request Nov 10, 2021
554: Make diag dict field entry a state-accepting func r=charleskawczynski a=charleskawczynski

This is a peel-off from #473. Basically, this PR changes the diagnostics dict field entry from a reference to the input state to a function that accepts the state. As a result, `io_dictionary_diagnostics`,`io_dictionary_aux`, etc. do not need the input state, and the dict acts in a more functional way.

Co-authored-by: Charles Kawczynski <kawczynski.charles@gmail.com>
@charleskawczynski
Copy link
Member Author

bors r+

@bors
Copy link
Contributor

bors bot commented Nov 10, 2021

Build succeeded:

@bors bors bot merged commit ed7e2a4 into main Nov 10, 2021
@bors bors bot deleted the ck/ode branch November 10, 2021 20:37
ilopezgp referenced this pull request Nov 17, 2021
570: Bump version to 0.6.0 r=ilopezgp a=ilopezgp



Co-authored-by: ilopezgp <ilopezgp@gmail.com>
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.

Use OrdinaryDiffEq.jl for timestepping
1 participant