pygetm.operators module
- class pygetm.operators.Advection(grid: Grid, scheme: AdvectionScheme = AdvectionScheme.SUPERBEE, split_2d: AdvectionSplit = AdvectionSplit.HALF)[source]
Bases:
Advection- apply_3d(u: Array, v: Array, w: Array, timestep: float, var: Array, Ah_u: Array | None = None, Ah_v: Array | None = None, new_h: bool = False, skip_initial_halo_exchange: bool = False, w_var: Array | None = None)[source]
- apply_3d_batch(u: Array, v: Array, w: Array, timestep: float, vars: Iterable[Array], Ah_u: Array | None = None, Ah_v: Array | None = None, new_h: bool = False, skip_initial_halo_exchange: bool = False, get_w: Callable[[Array], Array] | None = None)[source]
- halo1
- halo2
- split_2d
- class pygetm.operators.AdvectionScheme(*values)[source]
Bases:
IntEnum- DEFAULT = 5
- HSIMT = 1
- MUSCL = 2
- P2_PDM = 3
- SPLMAX13 = 4
- SUPERBEE = 5
- UPSTREAM = 6
- class pygetm.operators.AdvectionSplit(*values)[source]
Bases:
Enum- FULL = 1
u-v in 2D, u-v-w in 3D
- Type:
full splitting (first order in time)
- HALF = 2
u/2-v-u/2 in 2D, u/2-v/2-w-v/2-u/2 in 3D
- Type:
Strang splitting (second order in time)
- HALF_ALWAYS = 3
u/2-v/2-v/2-u/2 in 2D, u/2-v/2-w-v/2-u/2 in 3D
- Type:
Strang splitting (second order in time)
- class pygetm.operators.VerticalAdvection(grid: Grid, scheme: AdvectionScheme = AdvectionScheme.SUPERBEE)[source]
Bases:
VerticalAdvection