Skip to content
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

strength of w'2 near the surface #8

Open
vanroekel opened this issue Mar 24, 2021 · 11 comments
Open

strength of w'2 near the surface #8

vanroekel opened this issue Mar 24, 2021 · 11 comments
Assignees

Comments

@vanroekel
Copy link
Owner

Currently, Amrapalli (@amrapallig) has found that w'2 in the first interface below the surface is too large, especially at high resolution. Looking through data, it doesn't appear to be related to a bug, but of course can't discount this. I wonder if this is related to missing the effect of "splat" events, where eddies are elongated into the horizontal, reducing w'2 -- see here as one example https://arxiv.org/pdf/1907.09904.pdf. This is in an atmosphere analog code to ADC. I believe this would have the desired effect of reducing w'2 near the surface and may be physical.

@vanroekel vanroekel self-assigned this Mar 24, 2021
@vanroekel
Copy link
Owner Author

pinging @BrodiePearson and @qingli411 and @katsmith133 for thoughts

Also @amrapallig can you add figures to illustrate?

@amrapallig
Copy link

amrapallig commented Mar 24, 2021

image

It does not seem bug with w2 profile. With tuning and debugging I see a similar profile for level k=2 as shown in the figure. Temperature and heat fluxes are well captured.

@qingli411
Copy link
Collaborator

Perhaps we can tune Cww_E and Cww_D?

@vanroekel
Copy link
Owner Author

Amrapalli tried that and it affects the entire OSBL. This seems like we are missing something near the surface.

@qingli411
Copy link
Collaborator

I remember we were getting reasonably shaped w2 profile before (not sure how long ago), right? What was the change?

@vanroekel
Copy link
Owner Author

that is a good point. I wonder if this was back when we had the u2w and v2w terms active and spread near surface u2 and v2 to reduce that growth in w2?

@amrapallig
Copy link

When w2 profile looked reasonable before few commits, w3 was way too big, skewness and area fraction was weird. Clipping sigma helped with w2 profile but not with w3. For example, this attached plot. Here I had used config_adc_Cmom_w3 =0.01 to reduce w3. I had reduced w3tend4 by a factor of 10 to check different tend terms and their effects. I don't remember what u2w and v2w were doing. I have to look for that commit and check.
image

@vanroekel
Copy link
Owner Author

so are you saying right answer (better w2) but the wrong reason?

@BrodiePearson
Copy link
Collaborator

@vanroekel I agree this could be due to 'splat' events, but I couldn't spot a parameterization for this effect in the paper you mentioned.

I feel like this splat effect is analogous to some Langmuir turbulence work (Harcourt 2015) where Ramsey added a 'wall-effect' pressure term which extracts a fraction f(z) of the explicit w2 production and redistributes it to u2 and v2 budgets, with f(0)=1 and f(-infinity)=0. That was only used to remove the Stokes production of w2 close to the surface, but it could also be reasonable to remove some of the buoyancy production with the same motivation.

@vanroekel
Copy link
Owner Author

True, I could only find a paper describing the events. The only parameterization I found was in CLUBB, in the source code only, with no refs, I'll paste here

       min_wp2_sfc_val &
       = max( w_tol_sqd, &
              wprtp_sfc**2 / ( rtp2_sfc * max_mag_correlation_flux**2 ), &
              wpthlp_sfc**2 / ( thlp2_sfc * max_mag_correlation_flux**2 ) )
       if ( wp2_sfc + tau_zm_sfc * wp2_splat_sfc < min_wp2_sfc_val ) then
                            ! splatting correction drives wp2_sfc to overly small value
         wp2_splat_sfc_correction = -wp2_sfc + min_wp2_sfc_val
         wp2_sfc = min_wp2_sfc_val
       else
         wp2_splat_sfc_correction = tau_zm_sfc * wp2_splat_sfc
         wp2_sfc = wp2_sfc + wp2_splat_sfc_correction
       end if
       usp2_sfc = usp2_sfc - 0.5_core_rknd * wp2_splat_sfc_correction
       vsp2_sfc = vsp2_sfc - 0.5_core_rknd * wp2_splat_sfc_correction

This is an atmospheric model so rt and thl are the buoyancy components (total water and liquid water potential temp)

@BrodiePearson
Copy link
Collaborator

@vanroekel I was just diving further into the CLUBB parameterization and found the splat function calculation (the one you found was only the surface value of this term). It has a little bit more explanation in its foreword (if this version isn't accessible to you I had to sign up through this website

https://github.com/larson-group/clubb_release/blob/796e47f38e20e95152bedcd03b9e80452d35a87b/src/CLUBB_core/advance_helper_module.F90#L829-L885

! Description:

! This subroutine computes the (negative) tendency of wp2 due
! to "splatting" of eddies, e.g., near the ground or a Sc inversion.
! term_splat is intended to be added to the right-hand side of
! the wp2 equation, and -0.5*term_splat is intended to be added to each
! of the up2 and vp2 equations. The functional form of term splat is
!
! term_splat \propto - w'2 * (turbulent time scale) * ( d/dz( sqrt(w'2) ) )^2

d_sqrt_wp2_dz = ddzt( sqrt( wp2_zt ) )
! The splatting term is clipped so that the incremental change doesn't exceed 5 times the
!   value of wp2 itself.  This prevents spikes in wp2 from being propagated to up2 and vp2.
!   However, it does introduce undesired dependence on the time step.
!   Someday we may wish to treat this term using a semi-implicit discretization.
wp2_splat = - wp2 * min( five/dt, C_wp2_splat * tau_zm * d_sqrt_wp2_dz**2 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants