[][src]Struct shallow_water::spectral::Spectral

pub struct Spectral {
    pub hlap: Array2<f64>,
    pub glap: Array2<f64>,
    pub rlap: Array2<f64>,
    pub helm: Array2<f64>,
    pub c2g2: Array2<f64>,
    pub simp: Array2<f64>,
    pub rope: Array2<f64>,
    pub fope: Array2<f64>,
    pub filt: Array2<f64>,
    pub diss: Array2<f64>,
    pub opak: Array2<f64>,
    pub rdis: Array2<f64>,
    pub etdv: Array3<f64>,
    pub htdv: Array3<f64>,
    pub ap: Array2<f64>,
    pub etd1: Vec<f64>,
    pub htd1: Vec<f64>,
    pub theta: Vec<f64>,
    pub weight: Vec<f64>,
    pub hrkx: Vec<f64>,
    pub hrky: Vec<f64>,
    pub rk: Vec<f64>,
    pub d2fft: D2FFT,
    pub spmf: Vec<f64>,
    pub alk: Vec<f64>,
    pub kmag: Array2<usize>,
    pub kmax: usize,
    pub kmaxred: usize,
    pub ng: usize,
    pub nz: usize,
}

Fields

hlap: Array2<f64>glap: Array2<f64>rlap: Array2<f64>helm: Array2<f64>c2g2: Array2<f64>simp: Array2<f64>rope: Array2<f64>fope: Array2<f64>filt: Array2<f64>diss: Array2<f64>opak: Array2<f64>rdis: Array2<f64>etdv: Array3<f64>htdv: Array3<f64>ap: Array2<f64>etd1: Vec<f64>htd1: Vec<f64>theta: Vec<f64>weight: Vec<f64>hrkx: Vec<f64>hrky: Vec<f64>rk: Vec<f64>d2fft: D2FFTspmf: Vec<f64>alk: Vec<f64>kmag: Array2<usize>kmax: usizekmaxred: usizeng: usizenz: usize

Implementations

impl Spectral[src]

pub fn new(ng: usize, nz: usize) -> Self[src]

pub fn main_invert(
    &self,
    qs: ArrayView3<'_, f64>,
    ds: ArrayView3<'_, f64>,
    gs: ArrayView3<'_, f64>,
    r: ArrayViewMut3<'_, f64>,
    u: ArrayViewMut3<'_, f64>,
    v: ArrayViewMut3<'_, f64>,
    zeta: ArrayViewMut3<'_, f64>
)
[src]

Given the PV anomaly qs, divergence ds and acceleration divergence gs (all in spectral space), this routine computes the dimensionless layer thickness anomaly and horizontal velocity, as well as the relative vertical vorticity in physical space.

pub fn jacob(
    &self,
    aa: ArrayView2<'_, f64>,
    bb: ArrayView2<'_, f64>,
    cs: ArrayViewMut2<'_, f64>
)
[src]

Computes the (xy) Jacobian of aa and bb and returns it in cs. aa and bb are in physical space while cs is in spectral space

NOTE: aa and bb are assumed to be spectrally truncated (de-aliased).

pub fn divs(
    &self,
    aa: ArrayView2<'_, f64>,
    bb: ArrayView2<'_, f64>,
    cs: ArrayViewMut2<'_, f64>
)
[src]

Computes the divergence of (aa,bb) and returns it in cs. Both aa and bb in physical space but cs is in spectral space.

pub fn ptospc3d(
    &self,
    fp: ArrayView3<'_, f64>,
    fs: ArrayViewMut3<'_, f64>,
    izbeg: usize,
    izend: usize
)
[src]

Transforms a physical 3d field fp to spectral space (horizontally) as the array fs.

pub fn spctop3d(
    &self,
    fs: ArrayView3<'_, f64>,
    fp: ArrayViewMut3<'_, f64>,
    izbeg: usize,
    izend: usize
)
[src]

Transforms a spectral 3d field fs to physical space (horizontally) as the array fp.

pub fn deal3d(&self, fp: ArrayViewMut3<'_, f64>)[src]

Filters (horizontally) a physical 3d field fp (overwrites fp)

pub fn deal2d(&self, fp: ArrayViewMut2<'_, f64>)[src]

Filters (horizontally) a physical 2d field fp (overwrites fp)

pub fn spec1d(&self, ss: &[f64], spec: &mut [f64])[src]

Computes the 1d spectrum of a spectral field ss and returns the result in spec

Trait Implementations

impl Clone for Spectral[src]

impl Debug for Spectral[src]

impl<'de> Deserialize<'de> for Spectral[src]

impl PartialEq<Spectral> for Spectral[src]

impl Serialize for Spectral[src]

impl StructuralPartialEq for Spectral[src]

Auto Trait Implementations

impl RefUnwindSafe for Spectral

impl Send for Spectral

impl Sync for Spectral

impl Unpin for Spectral

impl UnwindSafe for Spectral

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.