Grid#

class fridom.shallowwater.grid.spectral.grid.Grid(N: list[int], L: list[int], *args: any, **kwargs: dict)[source]#

Bases: Grid

__init__(N: list[int], L: list[int], *args: any, **kwargs: dict) None[source]#

Methods

__init__(N, L, *args, **kwargs)

create_array([pad, spectral, topo])

Create an array.

create_random_array([seed, pad, spectral, topo])

Create a random array.

cumulative_integral(field, axis[, direction])

Compute the cumulative integral of a field along a given axis.

fft(arr[, padding, bc_types, positions])

Perform a (fast) fourier transform on the input array.

get_mesh([position, spectral])

Get the meshgrid of the grid points.

ifft(arr[, padding, bc_types, positions])

Perform an inverse (fast) fourier transform on the input array.

integrate(field[, axes])

Integrate a scalar field over a given domain.

max(field[, axes])

Compute the maximum of a field over the given axes.

min(field[, axes])

Compute the minimum of a field over the given axes.

omega(k[, use_discrete])

Compute the dispersion relation of the model.

pad(arr)

Add halo padding to an array.

setup(mset)

Initialize the grid from the model settings.

sum(field[, axes])

Sum a field over the given axes.

sync(arr[, flat_axes])

Synchronize the halo (boundary) points of an array across all MPI ranks.

sync_multi(arrs)

Synchronize the halo (boundary) points of multiple arrays across all MPI ranks.

unpad(arr)

Remove the halo padding from an array.

vec_p(s[, use_discrete])

Computes the projection vector of the linear operator of the mode s.

vec_q(s[, use_discrete])

Computes the eigenvector of the linear operator of the mode s.

Attributes

K

Spectral meshgrid on the local domain.

L

Domain size in each direction.

N

Grid points in each direction.

X

The meshgrid of the grid points.

cell_center

The position of the cell centers.

characteristic_function

The characteristic function of the grid (1 inside the domain, 0 outside).

dV

The volume element of the grid.

diff_module

The differential operator module.

domain_decomp

The domain decomposition object.

dx

The grid spacing in each dimension.

fourier_transform_available

Indicates whether the grid supports fast fourier transforms.

halo

The halo size of the grid.

info

Return a dictionary with information about the grid.

interp_module

The interpolation operator module.

k_global

Global spectral k-vectors.

k_local

Spectral k-vectors on the local domain.

mpi_available

Indicates whether the grid supports MPI parallelization.

mset

The model settings object.

n_dims

The number of dimensions of the grid.

omega_analytical

Analytical dispersion relation.

omega_space_discrete

Dispersion relation with space-discretization effects.

omega_time_discrete

Dispersion relation with space-time-discretization effects.

periodic_bounds

A tuple of booleans indicating whether the grid is periodic in each dimension.

spectral_grid

Indicates whether the grid is a spectral grid.

total_grid_points

The total number of grid points in the grid.

water_mask

Get the water mask.

x_global

The x-vector of the global grid points.

omega(k: tuple[float] | tuple[ndarray], use_discrete: bool = False) ndarray[source]#

Compute the dispersion relation of the model.

Parameters#

ktuple[float] | tuple[ndarray]

The wave numbers

use_discretebool (default: False)

Whether to include space-discretization effects.

Returns#

ndarray

The dispersion relation (omega(k)).

vec_q(s: int, use_discrete=False) State[source]#

Computes the eigenvector of the linear operator of the mode s.

Parameters#

sint

The mode (which eigenvalue / eigenvector to compute).

use_discretebool (default: True)

Whether to include space-discretization effects.

Returns#

fr.VectorField

The eigenvector of the linear operator.

vec_p(s: int, use_discrete=False) State[source]#

Computes the projection vector of the linear operator of the mode s.

Parameters#

sint

The mode (which eigenvalue / eigenvector to compute).

use_discretebool (default: True)

Whether to include space-discretization effects.

Returns#

fr.VectorField

The projection vector of the linear operator.