State#
- class fridom.shallowwater.State(mset: ModelSettings, **kwargs: any)[source]#
Bases:
VectorFieldState vector of the 2D shallow water model.
Description#
The default scalar fields of the state vector are:
u: Velocity in the x-direction.
v: Velocity in the y-direction.
p: Pressure field, with \(p = g \eta\), where \(\eta\) is the
free surface elevation.
- __init__(mset: ModelSettings, **kwargs: any) None[source]#
Methods
__init__(mset, **kwargs)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
The CFL number.
Vertically integrated kinetic energy.
Vertically integrated kinetic energy.
The total energy.
field_listThe list of scalar fields.
fieldsThe dictionary of scalar fields.
gridThe grid object.
infoDictionary with information about the field.
is_constantFlag indicating whether the field is constant.
is_spectralFlag indicating whether the field is in spectral space.
Local Rossby number.
msetThe model settings.
Pressure \(p\).
Scaled potential vorticity field.
Relative vorticity.
Spectral kinetic energy density.
The tracer fields.
Velocity in the x-direction.
Velocity in the y-direction.
vector_dimThe vector dimension.
Velocity vector.
xrThe xarray representation of the field.
xrsConvert a slice of the field to an xarray object.
Examples using
fridom.shallowwater.State#- property u: ScalarField#
Velocity in the x-direction.
- property v: ScalarField#
Velocity in the y-direction.
- property p: ScalarField#
Pressure \(p\).
Description#
The pressure field is defined as
\[p = g \eta\]where \(\eta\) is the free surface elevation and \(g\) is the gravity acceleration.
- property velocity: VectorField#
Velocity vector.
- property tracers: VectorField#
The tracer fields.
- property ekin: ScalarField#
Vertically integrated kinetic energy.
\[E_{\text{kin}} = \frac{Ro^2}{2} h_{\text{full}} (u^2 + v^2)\]with
\[h_{\text{full}} = c^2 + Ro p\]- Note:
The energy is scaled with the gravity acceleration g.
- property epot: ScalarField#
Vertically integrated kinetic energy.
\[E_{\text{pot}} = \frac{1}{2} h_{\text{full}}^2\]with
\[h_{\text{full}} = c^2 + Ro p\]- Note:
The energy is scaled with the gravity acceleration g.
- property etot: ScalarField#
The total energy.
\[E_{tot} = E_{kin} + E_{pot}\]
- property spectral_ekin: ScalarField#
Spectral kinetic energy density.
\[S_{\text{kin}} = \frac{1}{2} (|\hat{u}|^2 + |\hat{v}|^2)\]
- property rel_vort: ScalarField#
Relative vorticity.
\[\zeta = \partial_x v - \partial_y u\]
- property pot_vort: ScalarField#
Scaled potential vorticity field.
\[Q = \frac{\zeta + f \right}{c^2 + Ro p}\]where \(f\) is the Coriolis parameter, and \(\zeta\) is the relative vorticity.
- property local_rossby_number: ScalarField#
Local Rossby number.
\[Ro_\text{local} = Ro \, \frac{\zeta_z}{f_0}\]where \(Ro\) is the Rossby number, \(\zeta_z\) is the vertical component of the relative vorticity, and \(f_0\) is the Coriolis parameter.
- property cfl: ScalarField#
The CFL number.
\[CFL = \max \left\{ \frac{u}{\Delta x}, \frac{v}{\Delta y} \right\} \Delta t\]where \(\Delta t\) is the time step and \(\Delta x\) is the grid spacing.