Unfortunately the case studies haven't been tested for a few months, and it now appears that the Skamarock-Klemp hydrostatic gravity wave test is broken. It crashes on the first timestep, having produced a ridiculous explicit forcing.
I am making a gusto issue rather than gusto_case_studies issue because this seems to be a gusto issue.
This test is a "vertical slice" but on a 3D mesh which is 1 cell wide in the y-direction, and involves the Coriolis force which should be balanced by an "extra forcing term" that we add. However, the crash seems to be caused by a stupidly large forcing in the y-direction, generating unphysically fast winds.
By process of elimination I have worked out that this wrong forcing is surprisingly coming from the pressure gradient term, and specifically this part:
jump(theta_v*w, n)*avg(exner)*dS_v_qp
I can break this into horizontal and vertical components and keep only the vertical:
wk = dot(w, domain.k)*domain.k
wh = w - wk
pressure_gradient_form = ...
+ jump(theta_v*wk, n)*avg(exner)*dS_v_qp
which seems to lead to sensible behaviour.
So why is jump(theta_v*wh, n)*avg(exner)*dS_v_qp not zero? I expect n to be vertical only but it seems to have some horizontal component... Has this changed for this kind of mesh without us noticing? I can't see a Gusto change that could explain this behaviour in the last few months.
Unfortunately the case studies haven't been tested for a few months, and it now appears that the Skamarock-Klemp hydrostatic gravity wave test is broken. It crashes on the first timestep, having produced a ridiculous explicit forcing.
I am making a
gustoissue rather thangusto_case_studiesissue because this seems to be agustoissue.This test is a "vertical slice" but on a 3D mesh which is 1 cell wide in the y-direction, and involves the Coriolis force which should be balanced by an "extra forcing term" that we add. However, the crash seems to be caused by a stupidly large forcing in the y-direction, generating unphysically fast winds.
By process of elimination I have worked out that this wrong forcing is surprisingly coming from the pressure gradient term, and specifically this part:
I can break this into horizontal and vertical components and keep only the vertical:
which seems to lead to sensible behaviour.
So why is
jump(theta_v*wh, n)*avg(exner)*dS_v_qpnot zero? I expectnto be vertical only but it seems to have some horizontal component... Has this changed for this kind of mesh without us noticing? I can't see a Gusto change that could explain this behaviour in the last few months.