src/fe_model/base.rs

Tue, 25 Oct 2022 23:05:40 +0300

author
Tuomo Valkonen <tuomov@iki.fi>
date
Tue, 25 Oct 2022 23:05:40 +0300
changeset 6
d80b87b8acd0
parent 5
59dc4c5883f4
permissions
-rw-r--r--

Added NormExponent trait for exponents of norms

/*!
Base types for simple (finite) element models.
*/

/// A local function model that can be evaluated for value and differential.
pub trait LocalModel<Domain, Codomain> {
    /// Get the value of the model at `x`
    fn value(&self, x : &Domain) -> Codomain;
    /// Get the differential of the model at `x`
    fn differential(&self, x : &Domain) -> Domain;
}

/// A real local model is a minimisable [`LocalModel`].
pub trait RealLocalModel<S, Domain, Codomain> : LocalModel<Domain, Codomain> {
    /// Find a (minimum, minimiser) pair for he model within `el`, which is
    /// typically a simplex subset of `Domain`.
    fn minimise(&self, el : &S) -> (Domain, Codomain);
}

mercurial