-
Couldn't load subscription status.
- Fork 250
Reformulate hydrostatic model timestepping #4811
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
base: main
Are you sure you want to change the base?
Conversation
…ns.jl into ss/remove-matrix-solver
…/reformulate-hydrostatic-model-2
There are 115 files changed on this PR. Does it make sense to split up some of these objectives? It seems like the first objective ("clean up time-stepping") doesn't need to be part of a PR that implements new methods. Also, why wouldn't it make sense to implement each of the different time-stepping methods in a new PR? This would make it easier and faster to get the PR merged and finished. |
|
Yeah, I will definitely split the PR; however, most of the changes here are already in #4434. So, until that PR is merged, the scale of this one is not really reflected on the file changes |
…/Oceananigans.jl into ss/reformulate-hydrostatic-model-2
…/Oceananigans.jl into ss/reformulate-hydrostatic-model-2
…/Oceananigans.jl into ss/reformulate-hydrostatic-model-2
This is a work-in-progress PR that aims to reformulate the timestepping scheme of the
HydrostaticFreeSurfaceModeltomake sure that three numerical properties are satisfied:
This is easier to achieve with an explicit discretization of the free surface (
ExplicitFreeSurfaceandSplitExplicitFreeSurface) rather than an implicit free surface discretization and with RK3 rather than AB2.However, this PR reformulates much of the timestepping algorithm, so it will be a lengthy WIP that will need to be thoroughly validated for all combinations of barotropic and baroclinic timestepping schemes.
More changes are performed to correctly abstract the timestepping schemes, which, at the moment, are tailored specifically to the
NonhydrostaticModel(for example, the timesteppers include acompute_pressure_correction!or acorrect_velocitiesfunction, which are meaningful only for a non-hydrostatic Navier Stokes solver)Edit: another objective I have is to remove any timestepping from the
update_state!function. We should be able to callupdate_state!multiple times in a row without problems and timestepping insideupdate_state!negates this possibility.TODO:
Remove timestepping fromIn another PRupdate_state!DistributedGridsImplement a semi - conservative method for AB2In another PRAddress precision errors that tend to destroy conservation for constant fieldsIn another PR