-
Notifications
You must be signed in to change notification settings - Fork 388
Adds boundary tidal forcing capability #206
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
Adds boundary tidal forcing capability #206
Conversation
|
Tested locally and on IC at |
This solves for a layer thickness tendency of the form M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness) where * M is a boundary condition mask for application of the tidal boundary * tidal_boundary is the value of the tide to be applied on the boundary * ssh is the sea surface height * tidal_tau is the time scale corresponding to application of the tendency * layerThickness is the iCell,k varying layerThickness variable * sum_k(layerThickness) is the depth-averaged layerThickness (total water thicknes)
7424a26 to
06455bc
Compare
|
@caozd999, here is the test case with tidal forcing you need for your sediment transport work as we discussed. |
|
Passes nightly regression, bfb with ocean/develop. Of course, that does not exercise the new code. @pwolfram or @caozd999, please compile with DEBUG=true and run with your standard test case to create the new initial condition for tidal forcing and run the forward model with |
|
@mark-petersen, thank you. I've compiled and run the case with DEBUG=true and it produces the output as expected. |
mark-petersen
left a comment
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.
Looks good thanks!
…ocean/coastal This allows restoring of the layerThickness to correspond to relaxation toward a tidally-enforced free-surface boundary condition. Note, this is tested for RK4. Split explicit was not as stable. This solves for a layer thickness tendency of the form M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness) where * M is a boundary condition mask for application of the tidal boundary * tidal_boundary is the value of the tide to be applied on the boundary * ssh is the sea surface height * tidal_tau is the time scale corresponding to application of the * tendency * layerThickness is the iCell,k varying layerThickness variable * sum_k(layerThickness) is the depth-averaged layerThickness (total * water thickness) The tendency is used to apply tidal forcing to the prognostic equations corresponding to a mask designating the location of the applied tidal boundary.
…g' into ocean/coastal This allows restoring of the layerThickness to correspond to relaxation toward a tidally-enforced free-surface boundary condition. Note, this is tested for RK4. Split explicit was not as stable. This solves for a layer thickness tendency of the form M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness) where * M is a boundary condition mask for application of the tidal boundary * tidal_boundary is the value of the tide to be applied on the boundary * ssh is the sea surface height * tidal_tau is the time scale corresponding to application of the * tendency * layerThickness is the iCell,k varying layerThickness variable * sum_k(layerThickness) is the depth-averaged layerThickness (total * water thickness) The tendency is used to apply tidal forcing to the prognostic equations corresponding to a mask designating the location of the applied tidal boundary.
…g' into ocean/coastal This allows restoring of the layerThickness to correspond to relaxation toward a tidally-enforced free-surface boundary condition. Note, this is tested for RK4. Split explicit was not as stable. This solves for a layer thickness tendency of the form M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness) where * M is a boundary condition mask for application of the tidal boundary * tidal_boundary is the value of the tide to be applied on the boundary * ssh is the sea surface height * tidal_tau is the time scale corresponding to application of the * tendency * layerThickness is the iCell,k varying layerThickness variable * sum_k(layerThickness) is the depth-averaged layerThickness (total * water thickness) The tendency is used to apply tidal forcing to the prognostic equations corresponding to a mask designating the location of the applied tidal boundary.
…g' into ocean/coastal This allows restoring of the layerThickness to correspond to relaxation toward a tidally-enforced free-surface boundary condition. Note, this is tested for RK4. Split explicit was not as stable. This solves for a layer thickness tendency of the form M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness) where * M is a boundary condition mask for application of the tidal boundary * tidal_boundary is the value of the tide to be applied on the boundary * ssh is the sea surface height * tidal_tau is the time scale corresponding to application of the * tendency * layerThickness is the iCell,k varying layerThickness variable * sum_k(layerThickness) is the depth-averaged layerThickness (total * water thickness) The tendency is used to apply tidal forcing to the prognostic equations corresponding to a mask designating the location of the applied tidal boundary.

This allows restoring of the layerThickness to correspond to relaxation toward a tidally-enforced free-surface boundary condition. Note, this is tested for RK4. Split explicit was not as stable.
This solves for a layer thickness tendency of the form
M*(tidal_boundary - ssh) / tidal_tau * layerThickness/sum_k(layerThickness)
where
The tendency is used to apply tidal forcing to the prognostic equations corresponding to a mask designating the location of the applied tidal boundary.