CoherentEddy

CoherentEddy#

class fridom.shallowwater.initial_conditions.coherent_eddy.CoherentEddy(mset: ModelSettings, pos_x: float = 0.5, pos_y: float = 0.5, width: float = 0.1, amplitude: float = 1, gauss_field: str = 'vorticity')[source]#

Bases: State

Coherent barotropic eddy with Gaussian shape.

Description#

There are two versions of the coherent eddy. In the first version, the streamfunction of the eddy is given by an gaussian function:

\[\psi = A \exp\left( -\frac{(x - p_x L_x)^2 + (y - p_y L_y)^2}{(\sigma L_x)^2}\right)\]

where \(A\) is the amplitude, \((p_x, p_y)\) is the relative position of the eddy, \((\sigma L_x)\) is the width of the eddy, and \(L_x, L_y\) are the domain sizes in the x and y directions. The velocity field is given by:

\[u = \partial_y \psi, \quad v = -\partial_x \psi\]

The second version of the coherent eddy prescribes the horizontal velocity as a gaussian function:

\[\zeta = A \exp\left( -\frac{(x - p_x L_x)^2 + (y - p_y L_y)^2}{(\sigma L_x)^2}\right)\]

Then the streamfunction is computed in spectral space:

\[\hat{\psi} = \frac{\hat{\zeta}}{k_x^2 + k_y^2}\]

Parameters#

msetModelSettings

The model settings.

pos_xfloat, optional (default=0.5)

The relative position of the eddy in the x-direction.

pos_yfloat, optional (default=0.5)

The relative position of the eddy in the y-direction.

widthfloat, optional (default=0.1)

The relative width of the eddy. (relative to the domain size in the x-direction)

amplitudefloat, optional (default=1)

The amplitude of the eddy. When the amplitude negative, the eddy rotates clockwise. Otherwise, it rotates counterclockwise.

gauss_fieldstr, optional (default=’vorticity’)

The field that is prescribed as a gaussian function. It can be either ‘vorticity’ or ‘streamfunction’.

__init__(mset: ModelSettings, pos_x: float = 0.5, pos_y: float = 0.5, width: float = 0.1, amplitude: float = 1, gauss_field: str = 'vorticity') None[source]#

Methods

__init__(mset[, pos_x, pos_y, width, ...])

abs()

Map the field by taking the absolute value (\(|f|\)).

apply_elementwise(vector_field, op)

Apply an operation elementwise to the vector field.

apply_water_mask()

Apply a water mask to the field.

conj()

Compute the complex conjugate.

cumulative_integral(axis[, direction])

Compute the cumulative integral along an axis.

diff(axis[, order])

Compute the partial derivative along an axis.

div()

Compute the divergence.

dot(other)

Compute the dot product with another field.

extend(topo)

Extend the field in the specified directions.

fft([padding])

Perform a Fast Fourier Transform (FFT) on the field.

from_netcdf(mset, path)

Create a field from a NetCDF file.

from_xarray(mset, ds)

Create a field from an xarray object.

grad([axes])

Compute the gradient.

has_nan()

Check if the field contains NaN values.

ifft([padding])

Perform an Inverse Fast Fourier Transform (IFFT) on the field.

integrate([axes])

Global integral of the Field in specified axes.

laplacian([axes])

Compute the Laplacian.

max([axes])

Maximum value of the Field over the whole domain.

mean([axes])

Global mean of the Field in specified axes.

min([axes])

Minimum value of the Field over the whole domain.

norm_l2()

Calculate the L2 norm of the field.

norm_of_diff(other)

Norm of difference between two vector fields.

project(p_vec, q_vec)

Project a Vector Field onto a (spectral) vector.

set_random([seed])

Set the field to random values.

sum([axes])

Sum of the Field over the whole domain in the specified axes.

sync()

Synchronize the field across all MPI ranks and apply boundary conditions.

to_netcdf(path)

Save the field to a NetCDF file.

Attributes

cfl

The CFL number.

ekin

Vertically integrated kinetic energy.

epot

Vertically integrated kinetic energy.

etot

The total energy.

field_list

The list of scalar fields.

fields

The dictionary of scalar fields.

grid

The grid object.

info

Dictionary with information about the field.

is_constant

Flag indicating whether the field is constant.

is_spectral

Flag indicating whether the field is in spectral space.

local_rossby_number

Local Rossby number.

mset

The model settings.

p

Pressure \(p\).

pot_vort

Scaled potential vorticity field.

rel_vort

Relative vorticity.

spectral_ekin

Spectral kinetic energy density.

tracers

The tracer fields.

u

Velocity in the x-direction.

v

Velocity in the y-direction.

vector_dim

The vector dimension.

velocity

Velocity vector.

xr

The xarray representation of the field.

xrs

Convert a slice of the field to an xarray object.