src.dycore.physics.gas_dynamics.explicit#
Functions
|
Function that runs the advection routine with Strang-splitting. |
|
Function that runs the advection routine with a first-order Runge-Kutta update. |
|
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#
- Sol
management.variable.Vars
Solution data container.
- flux
management.variable.States
Fluxes data container
- dtfloat
Time-step size.
- elem
discretization.kgrid.ElemSpaceDiscr
Container for cell-grid properties.
- oddint
Is current step odd or even?
- ud
inputs.user_data.UserDataInit
Class container for initial conditions
- th
physics.gas_dynamics.thermodynamic.init
Class container for thermodynamic quantities.
- mpv
physics.low_mach.mpv.MPV
Container for Exner pressure.
- node
discretization.kgrid.NodeSpaceDiscr
Container for node-grid properties.
- labelstring
Tag label for the output array
- writer
management.io.io
, optional Writer class for I/O operations, by default None
- Sol
- 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#
- Sol
management.variable.Vars
Solution data container.
- flux
management.variable.States
Fluxes data container
- lmbdafloat
\(\frac{dt}{dx}\), where \(dx\) is the grid-size in the direction of the substep.
- elem
discretization.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.
- ud
inputs.user_data.UserDataInit
Class container for initial conditions
- th
physics.gas_dynamics.thermodynamic.init
Class container for thermodynamic quantities.
- mpv
physics.low_mach.mpv.MPV
Container for Exner pressure.
- writer
management.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.
- Sol
- 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#
- Sol
management.variable.Vars
Solution data container.
- flux
management.variable.States
Fluxes data container
- dtfloat
Time-step size.
- elem
discretization.kgrid.ElemSpaceDiscr
Container for cell-grid properties.
- oddint
Is current step odd or even?
- ud
inputs.user_data.UserDataInit
Class container for initial conditions
- th
physics.gas_dynamics.thermodynamic.init
Class container for thermodynamic quantities.
- mpv
physics.low_mach.mpv.MPV
Container for Exner pressure.
- node
discretization.kgrid.NodeSpaceDiscr
Container for node-grid properties.
- labelstring
Tag label for the output array
- writer
management.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.- Sol