Grid#

class fridom.nonhydro.grid.cartesian.grid.Grid(N: list[int], L: list[float], periodic_bounds: list[bool] | None = None, domain_decomp: DomainDecomposition | None = None, diff_mod: DiffModule | None = None, interp_mod: InterpolationModule | None = None)[source]#

Bases: Grid

__init__(N: list[int], L: list[float], periodic_bounds: list[bool] | None = None, domain_decomp: DomainDecomposition | None = None, diff_mod: DiffModule | None = None, interp_mod: InterpolationModule | None = None) None[source]#

Methods

__init__(N, L[, periodic_bounds, ...])

create_array([pad, spectral, topo])

Create an array.

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

Create a random array.

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

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, axes])

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

omega(k[, use_discrete])

Compute the dispersion relation of the model.

pad(arr)

Add halo padding to an array.

setup(mset[, req_halo, fft_module])

Initialize the grid from the model settings.

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.

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.

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.

Examples using fridom.nonhydro.grid.cartesian.Grid#

Barotropic Jet

Barotropic Jet

Reflecting Wave Package

Reflecting Wave Package

Internal Gravity Wave Maker

Internal Gravity Wave Maker

Convection and Closures

Convection and Closures

Multiple Wave Makers

Multiple Wave Makers

Rayleigh-Taylor Instability

Rayleigh-Taylor Instability

Rayleigh-Bénard Convection

Rayleigh-Bénard Convection

Single Internal Wave

Single Internal Wave

Dancing Eddies

Dancing Eddies

Symmetric Instability

Symmetric Instability

Tracers and Eddies

Tracers and Eddies
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=True) 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#

StateBase

The eigenvector of the linear operator.

vec_p(s: int, use_discrete=True) 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#

StateBase

The projection vector of the linear operator.