-
Notifications
You must be signed in to change notification settings - Fork 222
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
Make RK3 time-stepping compatible with CATKE #4019
Conversation
…nto ss/rk3-for-catke
You could also update how CATKE works so that things are correct when you aren't using substepping. And then just only support substepping as time allows |
Sounds good. I have implemented this strategy for the moment (just revert to the standard tracer time stepping if |
const FlavorOfCATKE{TD} = Union{CATKEVD{TD}, CATKEVDArray{TD}} where TD | ||
const CATKEVD{TD} = CATKEVerticalDiffusivity{TD, <:Any, <:Any, DT} where {TD, DT} | ||
const CATKEVDArray{TD, DT} = AbstractArray{<:CATKEVD{TD, DT}} where {TD, DT} | ||
const FlavorOfCATKE{TD, DT} = Union{CATKEVD{TD, DT}, CATKEVDArray{TD, DT}} where TD, DT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's kind of a mess, is it worth it?
Right. It seems a bit complicated to make it work like this. |
This implementation may not be correct.
The sub stepping scheme is in principle different than the baroclinic stepping scheme so I am not extremely sure this method works. I ll think a bit more about it.
We actually need to implement it like we did for the
SplitExplicitFreeSurface
, by saving down the slow tendencies, and averaging them in the last step. All stages should go fromn
ton+1
.