-
Notifications
You must be signed in to change notification settings - Fork 388
Add sediment transport analysis member #387
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
Add sediment transport analysis member #387
Conversation
|
Thanks @caozd999, will review and work with you on this next week. @mark-petersen, please let me know how involved you'd like to be for now. This work is currently built in an analysis member and eventually will need to be transitioned to an answer-changing capability as it affects the ocean density. Thanks! |
|
@caozd999, thanks for your contribution. We will need a design document, which can be a simple write-up of your method, equations, and testing. Please also state on this PR how you tested this, and how you can make that test case available to others for future verification. Make sure to test with multiple compilers (typically gnu and intel) in both debug and optimized mode. |
|
@mark-petersen Ok, I will work on that to complete a full pull request. |
|
@caozd999, is what is being asked clear? Please ask questions of us to clarify goals on this first PR you are leading. For example, I'd pull out the specific parts of your existing design documents to address the additions here. Showing that this works can be accommodated by having a PR with tests and plots for each of the capabilities. Doing this in an "analysis" step that makes a png or pdf, like we did with the dam break case, is a good idea for instance. |
|
@pwolfram Yes I understand that this PR should include test cases for the functions it claims. I finished the design document and collected several test cases, now I need put all them within this PR to make them available. |
de17924 to
00f27fb
Compare
SedimentFluxIndex - I SedimentFluxIndex -I add the following files - Registry_sediment_flux_index.xml - mpas_con_sediment_flux_index.F sedimentFluxIndex - I update add four variables - sedimentFluxIndexVAX : Vertically-Averaged sFI in X-direction - sedimentFluxIndexVAY : Vertically-Averaged sFI in Y-direction - sedimentFluxIndexBX: Bottom sFI in X-direction - sedimentFluxIndexBY: Bottom sFI in Y-direction Adds sediment flux calculation calculate sediment fall velocity by Goldstein and Coco 2013 calculate ratio "a" of sediment flux Q and U3 by Grawe et al 2014 calculate vertically-averaged and close bottom sediment flux (kg/m/s) test the AM on the case ziso/2.5km/default Add Soulsby and Damgaard bedload transport formulae Goldstein and Coco's fall velocity equation seems to overestimate Ws, might be repaced by VanRijn [1989] or Zhu & Cheng [1993] in next commit
Add three bedload transport formulae and four sediment fall velocity formulae Bedload transport formulae - Soulbsy-Damgaard [2005] - Meyer-Peter-Meuller [1948] - Engelund-Hansen [1967] Sediment fall velocity formulae - Goldstein-Coco2013 - VanRijn1993 - Soulsby1997 - Cheng1997 Add Manning equation to calculate Chezy roughnes coefficient in Engelund-Hansen bedload formula. The Manning equaiton reads: Chezy = 1/Manning*(bottomDepth)^(1/6) Chezy value is manually restricted between [20 ,100] Add suspended sediment concentration (SSC) algorithms SSC is solved by bottom reference concentration and Rouse profile Bottom reference concentration is computed by one of the following formulae - Lee et al., 2004 - Goldstein et al., 2014 - Zyserman-Fredsoe 1997 Rouse profle assumes the eddy diffusivity to vary parabolically with height Fixed bugs in calculations of SSC and theta in sediment_transport.F Fixed two bugs in mpas_ocn_sediment_transport.F - Corrected SSC Rouse profile equation The old equation from Page 138 of Soulsby's book "Dynamics of Marine Snads" (1997) is wrong. The right equation(s) can be found in (1) van Rijn 1984: Sediment Transport, Phase II: Suspended Load Transport. J. Hydraul. Eng. (2) Wang 2012: Measuring and Modeling Suspended Sediment Concentration Profile in the Surf Zone. Marine Sedimentology - Corrected z-coordinate calculation The global variable zMid is zero at surface and negative downward. The water depth from bottom z was mistakely set to -zMid. Now the calculation is z=ssh+bottomDepth+zMid Fixed a bug in mpas_ocn_sediment_transport.F zMid is the distance from the mean surface layer, with positve upward. So for each vertical layer center, the distance above the sea bottom is bottomDepth+zMid, which was wrongly set as ssh+bottomDepth+zMid in the last commit. Replaced Rouse profile equation by van Rijn's equations; modified xml files to output ssh, mesh and velocity in sediment transport output file. Mannually set a maximum value for Rouse number to avoid "Float-point exception" error; fixed a bug in the implementation of 'Zyserman-Fredsoe1994' equation.
00f27fb to
09c87e9
Compare
|
@caozd999, please do the following:
|
|
To put the test back into the compass soma case: or better yet, you can set up a test case and change the namelist and streams file in the run directory to turn on your analysis member. |
|
Ran QU240 with both new analysis members on, running every step. Tested with gnu in debug. Runs without error. Time for AMs is small, |
|
Also tested QU240 with intel and debug, and both analysis members on. No error messages. Passes nightly regression suite, where new analysis members are off. |
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.
Passed necessary tests.
|
Design document |
This PR adds sediment transport analysis member (Phase I) to the model, with the following variables computed: - sediment settling velocity - sediment erosion flux - sediment bedload transport flux - suspended sediment concentration in water column
This PR adds sediment transport analysis member (Phase I) to the model, with the following variables computed: