yppm
YPiecewiseParabolic
Fortran name is yppm
__call__(q_in, c, q_mean_advected_through_y_interface)
Determine the mean value per area of q_in to be advected along y-interfaces.
This is done by integrating a piecewise-parabolic svbgrid reconstruction of q_in along the y-direction over the segment of gridcell which will be advected.
Multiplying this mean value by the area to be advected through the interface would give the flux of q through that interface.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
q_in
|
in
|
scalar to be integrated |
required |
c
|
in
|
Courant number (v*dt/dy) in y-direction defined on y-interfaces, indicates the fraction of the adjacent grid cell which will be advected through the interface in one timestep |
required |
q_mean_advected_through_y_interface
|
out
|
defined on y-interfaces. mean value of scalar within the segment of gridcell to be advected through that interface in one timestep, in units of q_in |
required |
apply_flux(courant, q, fx1, mask)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
courant
|
any value whose sign is the same as the sign of the y-wind on cell corners |
required | |
q
|
scalar being transported, on y-centers |
required | |
fx1
|
flux of q in units of q, on y-interfaces |
required | |
mask
|
fx1 is multiplied by this before being applied |
required |
compute_al(q, dya)
Interpolate q at interface.
Inputs
q: transported scalar centered along the y-direction dya: dy on A-grid (?)
Returns:
Type | Description |
---|---|
q interpolated to y-interfaces |
compute_y_flux(q, courant, dya, yflux)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
q
|
in
|
|
required |
courant
|
in
|
|
required |
dya
|
in
|
|
required |
yflux
|
out
|
|
required |
fx1_fn(courant, br, b0, bl)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
courant
|
courant number, v * dt / dy (unitless) |
required | |
br
|
??? |
required | |
b0
|
br + bl |
required | |
bl
|
??? |
required |