src.monarchs.physics.Numba.solver

This module contains functions used to solve the various heat/surface energy balance equations, using the NumbaMinpack implementation. This is rather unwieldy, but allows us to select a solver conditionally, and do so both in the main model code using the relevant flag in model_setup.py, but also in our test suite. This is in part a tradeoff between usability of the model, and code clarity. This approach was chosen to maximise usability, so that the different solvers can be generated according to the value of a single Boolean.

Attributes

dev_eqn_cfunc

dev_eqnaddress

form_eqn_cfunc

form_eqnaddress

heq

heqfs

heqlid

sfc_energy_lid

sfc_energy_lid_address

sfc_energy_virtual_lid

sfc_energy_vlid_address

Functions

args_array(cell, dt, dz, LW_in, SW_in, T_air, p_air, ...)

Convert the variables from an instance of the IceShelf class into the

firn_heateqn_solver(x, args[, fixed_sfc])

Numba-compatible solver function to be used within the model.

lake_development_eqn(x, output, args)

Numba-compatible form of the lake development version of the surface temperature equation.

lake_formation_eqn(x, output, args)

Numba-compatible form of the lake formation version of the surface temperature equation.

lake_solver(x, args[, formation])

NumbaMinpack version of the lake solver.

lid_heateqn_solver(x, args)

NumbaMinpack version of the lid heat equation solver. Solves physics.Numba.heateqn.

lid_seb_solver(x, args[, v_lid])

NumbaMinpack version of the lid surface energy balance solver.

sfc_energy_lid

sfc_energy_virtual_lid

Module Contents

src.monarchs.physics.Numba.solver.dev_eqn_cfunc
src.monarchs.physics.Numba.solver.dev_eqnaddress
src.monarchs.physics.Numba.solver.form_eqn_cfunc
src.monarchs.physics.Numba.solver.form_eqnaddress
src.monarchs.physics.Numba.solver.heq
src.monarchs.physics.Numba.solver.heqfs
src.monarchs.physics.Numba.solver.heqlid
src.monarchs.physics.Numba.solver.sfc_energy_lid
src.monarchs.physics.Numba.solver.sfc_energy_lid_address
src.monarchs.physics.Numba.solver.sfc_energy_virtual_lid
src.monarchs.physics.Numba.solver.sfc_energy_vlid_address