-
Notifications
You must be signed in to change notification settings - Fork 0
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
Clean-up wetting and drying routines #14
Clean-up wetting and drying routines #14
Conversation
@sbrus89, @dengwirda, @xylar I'm posting this draft of changes made to wetting and drying routines while our discussion today was still fresh. This has not been tested but will be when the wetting-and-drying test cases are available. |
8e41a23
to
0268bd8
Compare
This PR passes the compass PR test suite on anvil with intel compilers. |
@sbrus89 I had difficulty adding you as a reviewer but it would be great to get your feedback. |
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.
@cbegeman, this is great, much cleaner!
Just 2 small fixes to the code.
I ran the pr
test suite on Anvil with Intel and Intel-MPI. I used E3SM master
as a baseline and compared with a test merge of this branch with master
. All tests passed, including validation with the baseline.
Let me know if you'd like me to run other tests.
I think this is ready to move to an E3SM PR as soon as @sbrus89 and @dengwirda have had a look.
@sbrus89, I have tried to invite you to Joining the repo as a collaborator is a necessary first step to making you a reviewer here. |
@xylar, sorry about that. I just joined. |
0268bd8
to
e9019ba
Compare
@xylar Thanks for catching those! I fixed up the problem commit. |
8e0a7f6
to
f6ade09
Compare
As we discussed, I have added the ramp function for the damping factor on |
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.
Sorry, I lost track of this one. Perhaps @sbrus89 has, too. This looks good.
f6ade09
to
fd86b92
Compare
98078ab
to
ec28546
Compare
@sbrus89 Do you want to look this over so we can open up the PR in E3SM soon? |
@cbegeman - yes, I can do that. Would you mind rebasing to clear up the diffs? |
6e60242
to
d8c848f
Compare
@xylar Could you bring E3SM-Ocean-Discussion/master up to E3SM/master when you get a chance? Thanks! |
@cbegeman, done! |
d8c848f
to
8ff26b8
Compare
@sbrus89 Ready for your review |
Thank you! |
Hi all, I've retested this since the dam break fixes and it is still BFB with master (plus the dam break fix). @sbrus89 and @dengwirda, this is ready for review. Thanks! |
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.
@dengwirda How did your testing go? I don't think we need extensive testing from you at this point as it will undergo further testing when it is migrated to the main E3SM repo. |
@dengwirda I'm migrating this PR to E3SM. You are welcome to give feedback on it there. |
Yes, I agree. This has been here long enough and needs to move over to E3SM. |
Close in favor of E3SM-Project#5418 |
cee/15.0.0 with GPU MPI buffers can crash in a system lib like this: #4 0x00007fffe159e35b in (anonymous namespace)::do_free_with_callback(void*, void (*)(void*)) [clone .constprop.0] () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1 #5 0x00007fffe15a8f16 in tc_free () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1 #6 0x00007fffe99c2bcd in _dlerror_run () from /lib64/libdl.so.2 #7 0x00007fffe99c2481 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2 #8 0x00007fffea7bce42 in _ad_cray_lock_init () from /opt/cray/pe/lib64/libmpi_cray.so.12 #9 0x00007fffed7eb37a in call_init.part () from /lib64/ld-linux-x86-64.so.2 #10 0x00007fffed7eb496 in _dl_init () from /lib64/ld-linux-x86-64.so.2 #11 0x00007fffed7dc58a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 #12 0x0000000000000001 in ?? () #13 0x00007fffffff42e7 in ?? () #14 0x0000000000000000 in ?? () Work around this by using cee/14.0.3.
This PR utilizes a new variable
wettingVelocityFactor
, which replaceswettingVelocity
, to scale bothnormalVelocity
andnormalVelocityTend
in instances where thelayerThickness
is approaching a minimumlayerThickness
.We preserve the existing option where
config_zero_drying_velocity = True
, zeroing outnormalVelocity
andnormalVelocityTend
usingwettingVelocityFactor
in regions where the divergence out of a cell would bring thelayerThickness
within a tolerance of the minimum thickness.We remove an approach for setting
wettingVelocityFactor
between 0 and 1 whenconfig_zero_drying_velocity = False
because this code was never operational. Instead whenconfig_zero_drying_velocity = False
there is no velocity or tendency modification in drying cells. We intend to add a different approach for settingwettingVelocityFactor
between 0 and 1 in a subsequent PR.We add a ramping function for
wettingVelocityFactor
between 0 and 1 following O'Dea et al. (2020) that is a function of how close the total column thickness is to the thin film thickness. To turn on this feature, setconfig_zero_drying_velocity_ramp = .true.
andconfig_use_wetting_drying = .true.
.