src.dycore.physics.gas_dynamics.explicit#

Functions

advect(Sol, flux, dt, elem, odd, ud, th, ...)

Function that runs the advection routine with Strang-splitting.

advect_rk(Sol, flux, dt, elem, odd, ud, th, ...)

Function that runs the advection routine with a first-order Runge-Kutta update.

explicit_step_and_flux(Sol, flux, lmbda, ...)

For each advection substep, solve the advection problem.

src.dycore.physics.gas_dynamics.explicit.advect(Sol, flux, dt, elem, odd, ud, th, mpv, node, label, writer=None)#

Function that runs the advection routine with Strang-splitting. This function updates the Sol solution container with the advected solution in-place.

Parameters#

Solmanagement.variable.Vars

Solution data container.

fluxmanagement.variable.States

Fluxes data container

dtfloat

Time-step size.

elemdiscretization.kgrid.ElemSpaceDiscr

Container for cell-grid properties.

oddint

Is current step odd or even?

udinputs.user_data.UserDataInit

Class container for initial conditions

thphysics.gas_dynamics.thermodynamic.init

Class container for thermodynamic quantities.

mpvphysics.low_mach.mpv.MPV

Container for Exner pressure.

nodediscretization.kgrid.NodeSpaceDiscr

Container for node-grid properties.

labelstring

Tag label for the output array

writermanagement.io.io, optional

Writer class for I/O operations, by default None

src.dycore.physics.gas_dynamics.explicit.explicit_step_and_flux(Sol, flux, lmbda, elem, split_step, stage, ud, th, mpv, writer=None, tag=None)#

For each advection substep, solve the advection problem. For more details, see Advection routine. This function updates the solution Sol container in-place if a Strang-splitting is used, or returns the flux data container if a Runge-Kutta method is used.

Parameters#

Solmanagement.variable.Vars

Solution data container.

fluxmanagement.variable.States

Fluxes data container

lmbdafloat

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

elemdiscretization.kgrid.ElemSpaceDiscr

Container for cell-grid properties.

split_stepint

Tracks the substep in the Strang-splitting.

stageint

Tracks whether the substep order goes in x-y-z or z-y-x.

udinputs.user_data.UserDataInit

Class container for initial conditions

thphysics.gas_dynamics.thermodynamic.init

Class container for thermodynamic quantities.

mpvphysics.low_mach.mpv.MPV

Container for Exner pressure.

writermanagement.io.io, optional

Writer class for I/O operations, by default None

tagstr, optional

If rk then the advection routine is solved by means of a first-order Runge-Kutta method, by default None

Returns#

management.variable.States

flux data container.

src.dycore.physics.gas_dynamics.explicit.advect_rk(Sol, flux, dt, elem, odd, ud, th, mpv, node, label, writer=None)#

Function that runs the advection routine with a first-order Runge-Kutta update. This function updates the Sol solution container with the advected solution in-place.

Parameters#

Solmanagement.variable.Vars

Solution data container.

fluxmanagement.variable.States

Fluxes data container

dtfloat

Time-step size.

elemdiscretization.kgrid.ElemSpaceDiscr

Container for cell-grid properties.

oddint

Is current step odd or even?

udinputs.user_data.UserDataInit

Class container for initial conditions

thphysics.gas_dynamics.thermodynamic.init

Class container for thermodynamic quantities.

mpvphysics.low_mach.mpv.MPV

Container for Exner pressure.

nodediscretization.kgrid.NodeSpaceDiscr

Container for node-grid properties.

labelstring

Tag label for the output array

writermanagement.io.io, optional

Writer class for I/O operations, by default None

Attention#

This function is not usually called unless commented out in the management.data.time_update() routine.