-
Notifications
You must be signed in to change notification settings - Fork 196
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
SplitExplicitFreeSurface
code improvements
#3873
Comments
What about the topologically aware operators PR? Should that come first? That seems to me to be the most significant improvement. Note there are some changes on #3867 to respect. |
agree!
This looks nice. I don't think a new module is necessary but it could be done. The NonhydrostaticModel is a bit cleaner because many of the solvers have been abstract as "Poisson solvers", but the hydrostatic model does not benefit from this. |
The Topologically aware operators PR #3268 is ready for review and should be ready to merge I believe! |
I want to propose a couple of improvements to the
SplitExplicitFreeSurface
code that might be useful for later extension of the time-stepping scheme.(1). The code for the SplitExplicitFreeSurface is very long and crammed into only two files, making it very difficult to navigate. I want to split it into more files to make it easier to target modifications, possibly giving it its own module that lives in the
HydrostaticFreeSurfaceModels
module.(2). At the moment the tendencies of the barotropic velocities are stored in a type called
SplitExplicitAuxiliaryFields
that is a field of theSplitExplicitFreeSurface
type.I want to remove this type because, after #3841 that removes the column depths, this type only stores the slow barotropic tendencies and the kernel parameters.
SplitExplicitAuxiliaryFields
timestepper
of theHydrostaticFreeSurfaceModel
). As a consequence of this,hydrostatic_prognostic_fields
should return also the barotropic velocities when using a split-explicit free surface.(3). I would like to flatten out the design of the
SplitExplicitFreeSurface
bySplitExplicitState
, and have the barotropic velocities and the mean fields part of the mainfree_surface
type and all the remaining fields required for specific timesteppers in thetimestepper
which at the moment is very simple but can be redesigned to contain all time-stepping specific informationSplitExplicitSettings
(I don't know why there is asettings_kwargs
there but it looks odd and it's probably a sign that this type is not well designed)This leads to a
SplitExplicitFreeSurface
which will look likeThese changes will not affect the performance nor the functioning of the algorithm, and (if there are none required) should not even affect the user interface.
The text was updated successfully, but these errors were encountered: