Trait eom::ModelSpec

source ·
pub trait ModelSpec: Clone {
    type Scalar: Scalar;
    type Dim: Dimension;

    // Required method
    fn model_size(&self) -> <Self::Dim as Dimension>::Pattern;
}
Expand description

Model space, the linear space where the system state is represented.

For an ODE in a form $dx/dt = f(x)$, the linear space where $x$ belongs to is the model space. It is usually $\mathbb{R}^n$ or $\mathbb{C}^n$, but this crate allows it in multi-dimensional e.g. $\mathbb{C}^{N_x \times N_y}$ to support spectral methods for PDE whose state space is Fourier coefficients.

Required Associated Types§

source

type Scalar: Scalar

source

type Dim: Dimension

Required Methods§

source

fn model_size(&self) -> <Self::Dim as Dimension>::Pattern

Number of scalars to describe the system state.

Implementors§

source§

impl ModelSpec for GoyShell

§

type Scalar = Complex<f64>

§

type Dim = Dim<[usize; 1]>

source§

impl ModelSpec for Lorenz63

§

type Scalar = f64

§

type Dim = Dim<[usize; 1]>

source§

impl ModelSpec for Lorenz96

§

type Scalar = f64

§

type Dim = Dim<[usize; 1]>

source§

impl ModelSpec for Roessler

§

type Scalar = f64

§

type Dim = Dim<[usize; 1]>

source§

impl ModelSpec for KSE

§

type Scalar = Complex<f64>

§

type Dim = Dim<[usize; 1]>

source§

impl ModelSpec for SHE

§

type Scalar = Complex<f64>

§

type Dim = Dim<[usize; 1]>

source§

impl<F: Explicit> ModelSpec for Euler<F>

§

type Scalar = <F as ModelSpec>::Scalar

§

type Dim = <F as ModelSpec>::Dim

source§

impl<F: Explicit> ModelSpec for Heun<F>

§

type Scalar = <F as ModelSpec>::Scalar

§

type Dim = <F as ModelSpec>::Dim

source§

impl<F: Explicit> ModelSpec for RK4<F>

§

type Scalar = <F as ModelSpec>::Scalar

§

type Dim = <F as ModelSpec>::Dim

source§

impl<F: SemiImplicit> ModelSpec for DiagRK4<F>

§

type Scalar = <F as ModelSpec>::Scalar

§

type Dim = <F as ModelSpec>::Dim

source§

impl<F: SemiImplicit> ModelSpec for Diagonal<F>

§

type Scalar = <F as ModelSpec>::Scalar

§

type Dim = <F as ModelSpec>::Dim

source§

impl<TEO: TimeEvolution> ModelSpec for NStep<TEO>

§

type Scalar = <TEO as ModelSpec>::Scalar

§

type Dim = <TEO as ModelSpec>::Dim