Trait Mechanics

pub trait Mechanics<Pos, Vel, For, Float = f64> {
    // Required methods
    fn get_random_contribution(
        &self,
        rng: &mut ChaCha8Rng,
        dt: Float,
    ) -> Result<(Pos, Vel), RngError>;
    fn calculate_increment(&self, force: For) -> Result<(Pos, Vel), CalcError>;
}
Expand description

Describes the position of a cell-agent and allows to calculate increments and set/get information of the agent.

Required Methods§

fn get_random_contribution( &self, rng: &mut ChaCha8Rng, dt: Float, ) -> Result<(Pos, Vel), RngError>

Define a new random variable in case that the mechanics type contains a random aspect to its motion. By default this function does nothing.

fn calculate_increment(&self, force: For) -> Result<(Pos, Vel), CalcError>

Calculate the time-derivative of force and velocity given all the forces that act on the cell. Simple damping effects should be included in this trait if not explicitly given by the SubDomainForce trait.

Implementors§

§

impl Mechanics<Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, f32> for Brownian1DF32

§

impl Mechanics<Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, f32> for Langevin1DF32

§

impl Mechanics<Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, Matrix<f32, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>, f32> for NewtonDamped1DF32

§

impl Mechanics<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, f32> for Brownian2DF32

§

impl Mechanics<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, f32> for Langevin2DF32

§

impl Mechanics<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, f32> for NewtonDamped2DF32

§

impl Mechanics<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, f32> for Brownian3DF32

§

impl Mechanics<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, f32> for Langevin3DF32

§

impl Mechanics<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, f32> for NewtonDamped3DF32

§

impl Mechanics<Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>> for Brownian1D

§

impl Mechanics<Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>> for Langevin1D

§

impl Mechanics<Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>, Matrix<f64, Const<1>, Const<1>, ArrayStorage<f64, 1, 1>>> for NewtonDamped1D

§

impl Mechanics<Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>> for Brownian2D

§

impl Mechanics<Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>> for Langevin2D

§

impl Mechanics<Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>> for NewtonDamped2D

§

impl Mechanics<Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>> for Brownian3D

§

impl Mechanics<Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>> for Langevin3D

§

impl Mechanics<Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>> for NewtonDamped3D

§

impl<F, const D: usize> Mechanics<Matrix<F, Dyn, Const<D>, VecStorage<F, Dyn, Const<D>>>, Matrix<F, Dyn, Const<D>, VecStorage<F, Dyn, Const<D>>>, Matrix<F, Dyn, Const<D>, VecStorage<F, Dyn, Const<D>>>, F> for RodMechanics<F, D>
where F: RealField + Clone + Float, StandardNormal: Distribution<F>,

§

impl<Pos, Vel, For, Float, A> Mechanics<Pos, Vel, For, Float> for CellAgentBox<A>
where A: Mechanics<Pos, Vel, For, Float>,

§

impl<Pos, Vel, For, Float, Mec, Int, Cyc, React, IntExtracellular> Mechanics<Pos, Vel, For, Float> for ModularCell<Mec, Int, Cyc, React, IntExtracellular>
where Mec: Mechanics<Pos, Vel, For, Float>,

§

impl<__cr_private_Pos, __cr_private_Vel, __cr_private_For, __cr_private_Float> Mechanics<__cr_private_Pos, __cr_private_Vel, __cr_private_For, __cr_private_Float> for Bacteria
where NewtonDamped2D: Mechanics<__cr_private_Pos, __cr_private_Vel, __cr_private_For, __cr_private_Float>,

§

impl<const D: usize> Mechanics<Matrix<f64, Const<D>, Const<2>, ArrayStorage<f64, D, 2>>, Matrix<f64, Const<D>, Const<2>, ArrayStorage<f64, D, 2>>, Matrix<f64, Const<D>, Const<2>, ArrayStorage<f64, D, 2>>> for VertexMechanics2D<D>