Skip to main content

Engine

Trait Engine 

Source
pub trait Engine<const N: usize> {
Show 13 methods // Required methods fn space(&self) -> &NodeSpace<N>; fn node_range(&self) -> Range<usize>; fn alloc<T: Default>(&self, len: usize) -> &mut [T]; fn value(&self, field: &[f64], vertex: [usize; N]) -> f64; fn derivative(&self, field: &[f64], axis: usize, vertex: [usize; N]) -> f64; fn second_derivative( &self, field: &[f64], axis: usize, vertex: [usize; N], ) -> f64; fn mixed_derivative( &self, field: &[f64], i: usize, j: usize, vertex: [usize; N], ) -> f64; fn dissipation(&self, field: &[f64], axis: usize, vertex: [usize; N]) -> f64; // Provided methods fn num_nodes(&self) -> usize { ... } fn vertex_size(&self) -> [usize; N] { ... } fn position(&self, vertex: [usize; N]) -> [f64; N] { ... } fn index_from_vertex(&self, vertex: [usize; N]) -> usize { ... } fn min_spacing(&self) -> f64 { ... }
}
Expand description

An interface for computing values, gradients, and hessians of fields.

Required Methods§

Source

fn space(&self) -> &NodeSpace<N>

Source

fn node_range(&self) -> Range<usize>

Source

fn alloc<T: Default>(&self, len: usize) -> &mut [T]

Source

fn value(&self, field: &[f64], vertex: [usize; N]) -> f64

Source

fn derivative(&self, field: &[f64], axis: usize, vertex: [usize; N]) -> f64

Source

fn second_derivative( &self, field: &[f64], axis: usize, vertex: [usize; N], ) -> f64

Source

fn mixed_derivative( &self, field: &[f64], i: usize, j: usize, vertex: [usize; N], ) -> f64

Source

fn dissipation(&self, field: &[f64], axis: usize, vertex: [usize; N]) -> f64

Provided Methods§

Source

fn num_nodes(&self) -> usize

Source

fn vertex_size(&self) -> [usize; N]

Source

fn position(&self, vertex: [usize; N]) -> [f64; N]

Source

fn index_from_vertex(&self, vertex: [usize; N]) -> usize

Source

fn min_spacing(&self) -> f64

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, const N: usize, E: Engine<N>> Engine<N> for IRef<'a, E>