-
Notifications
You must be signed in to change notification settings - Fork 78
Bulk formula implementation #2053
Comments
The issue can be reproduced by calling Note - Since it is a 1D Anelastic SingleStack there are no soundwaves and time steps can be large (1sec). Thus I can easily run 0.5h simulation which I am showing here. After 0.5h I see a value of u=-200m/s. |
@akshaysridhar suggested raising the lower boundary to a nominal height (e.g., |
If I understand correctly this is a change in the manner in which the transfer coefficient 'C' is computed: but does it entail a change in of how 'τn' is computed as well: namely in this expression, where are 'normu_int⁻_tan' and 'u_int⁻_tan' computed? at the z=0 interior point or at the z>0 interior point? |
Both would be computed at the interface point (z=0, but we'd nominally interpret as, e.g., z=10 m). |
sounds like a good plan! I am happy to help if needed (@akshaysridhar). |
@akshaysridhar if you are changing the bulk formula notice that the same issues arises in the energy_bc.jl
and moisture_bc.jl
|
Description
In 'momentum_bc.jl' the bulk formula is operating on 'state_int⁻' which is the first DG point above z=0. The computed flux from the formula is applied however at the lower level 'state⁻'. This flux is too large for this point and this creating problems that are mostly evident if turbulence is shut off and +1m/s horizontal wind at the surface can turn into -200m/s winds within 30min simulation.
A consistent implementation as suggested by this branch
original bulk formula code
Consistent implementation (in consistent with the assumptions of bulk formula though)
See also
ClimateMachine.jl/src/Atmos/Model/bc_momentum.jl
Line 160 in 6c11bec
does ensure the vanishing of the horizontal velocities at the surface but is somewhat inconsistent with the approach of a bulk formula that should operate at some finite height above the surface.
The text was updated successfully, but these errors were encountered: