LinearTendency#

class fridom.shallowwater.modules.linear_tendency.LinearTendency[source]#

Bases: Module

Computes the linear tendency of the shallow water model.

The linear tendency is given by:

\[\partial_t \boldsymbol{u} = f \underset{\neg}{\boldsymbol{v}} - \nabla p ~, \quad \partial_t p = -c^2 \nabla \cdot \boldsymbol{u}\]
__init__()[source]#

Methods

__init__()

disable()

Enabling the module means that it will be executed at each time step.

enable()

Enabling the module means that it will be executed at each time step.

is_enabled()

Return whether the module is enabled or not.

linear_tendency(z, dz)

Compute the linear tendency term.

reset()

Stop and start the module.

setup(mset)

Start the module

start()

Start the module

stop()

Stop the module

update(mz)

Update the module

Attributes

diff_module

The differentiation module to be used by this module.

grid

The grid of the model settings

info

Return a dictionary with information about the time stepper.

interp_module

The interpolation module to be used by this module.

mset

The model settings

name

required_halo

name = 'Linear Tendency'#
setup(mset: ModelSettings) None[source]#

Start the module

Description#

This method is called by the ModelSettings.setup() and sets the ModelSettings as well as the differentiation and interpolation modules.

update(mz: ModelState) ModelState[source]#

Update the module

Description#

This method is called by the model at each time step. Child classes should overwrite this method to update the module. Make sure to decorate the method with the @module_method decorator.

Parameters#

mzfr.ModelState

The model state at the current time step.

Returns#

fr.ModelState

The updated model state.

linear_tendency(z: State, dz: State) State[source]#

Compute the linear tendency term.