src.dycore.physics.gas_dynamics.recovery#

Functions

do(Sol, flux, lmbda, ud, th, elem, ...)

Reconstruct the limited slopes at the cell interfaces.

get_conservatives(U, ud, th)

Get advected (conservative) quantities at the left and right of the cell interfaces.

limiters(limiter_type, al, ar)

Applies the limiter type specified in the initial conditions to recovery the slope.

slopes(Sol, Diffs, ud, elem)

Reconstruct the piecewise linear slopes in the cells from the piecewise constants in the cell and its neighbours.

src.dycore.physics.gas_dynamics.recovery.do(Sol, flux, lmbda, ud, th, elem, split_step, tag)#

Reconstruct the limited slopes at the cell interfaces.

Parameters#

Solmanagement.variable.Vars

Solution data container on cell centers.

fluxmanagement.variable.States

Flux data container on cell interfaces.

lmbdafloat

\(\frac{dt}{dx}\), where \(dx\) is the grid-size in the direction of the substep.

udinputs.user_data.UserDataInit

Class container for the initial condition.

thphysics.gas_dynamics.thermodynamic.init

Class container for the thermodynamical constants.

elemdiscretization.kgrid.ElemSpaceDiscr

Class container for the cell-grid.

split_stepint

Tracks the substep in the Strang-splitting.

tagNone or rk

Default is None which uses a second-order Strang-splitting. rk toggles a first-order Runge-Kutta update for the advection scheme.

Returns#

management.variable.States, management.variable.States

Lefts, Rights are containers for the advected quantities at to the left and the right of the cell interfaces.

src.dycore.physics.gas_dynamics.recovery.slopes(Sol, Diffs, ud, elem)#

Reconstruct the piecewise linear slopes in the cells from the piecewise constants in the cell and its neighbours.

Parameters#

Solmanagement.variable.Vars

Solution data container

Diffsmanagement.variable.States

Data container for the difference in the quantities between adjacent cells, (right - left).

udinputs.user_data.UserDataInit

Data container for the initial conditions

elemdiscretization.kgrid.ElemSpaceDiscr

Data container for the cell grid.

Returns#

management.variable.Characters

Reconstructed piecewise linear slopes in the cell.

src.dycore.physics.gas_dynamics.recovery.limiters(limiter_type, al, ar)#

Applies the limiter type specified in the initial conditions to recovery the slope.

Parameters#

limiter_typemanagement.enumerator.LimiterType

LimiterType list

almanagement.variable.States

Left indices of the Diffs array for the respective quantities.

armanagement.variable.States

Right indices of the Diffs array for the respective quantities.

Returns#

management.variable.States

The reconstructed slope in the cell

Attention#

For now, only the limiter type NONE is supported. This takes \(\frac{(al + ar)}{2}\).

src.dycore.physics.gas_dynamics.recovery.get_conservatives(U, ud, th)#

Get advected (conservative) quantities at the left and right of the cell interfaces.

Parameters#

Umanagement.variable.States

Lefts and Rights corresponding to the values at the cell interfaces.

udinputs.user_data.UserDataInit

Data container for the initial conditions

thphysics.gas_dynamics.thermodynamic.init

Class container for the thermodynamical constants.