pub struct Model {
pub species: Vec<Species>,
pub exchange: Vec<Exchange>,
pub chemotaxis: Vec<Vec<f64>>,
pub width: usize,
pub height: usize,
pub depth: usize,
pub contact: Vec<f64>,
pub types: Vec<CellType>,
pub temperature: f64,
pub neighbour_order: u8,
pub seed: u64,
}Expand description
The whole model: what a Blueprint would state, in one struct.
Fields§
§species: Vec<Species>Diffusing species, in the order a description lists them.
exchange: Vec<Exchange>Secretion and uptake per cell type, index 0 the medium.
chemotaxis: Vec<Vec<f64>>Chemotactic sensitivity per cell type and species, index 0 the medium. Positive climbs a gradient.
width: usizeLattice width in sites.
height: usizeLattice height in sites.
depth: usizeLattice depth in sites. One is a plane, and every neighbourhood then drops its out-of-plane offsets.
contact: Vec<f64>Contact energies, row-major over (type_a, type_b), symmetric.
types: Vec<CellType>One entry per type, index 0 the medium.
temperature: f64Metropolis fluctuation amplitude, the Potts temperature.
neighbour_order: u81 for the four von Neumann neighbours, 2 for the eight Moore ones.
seed: u64Random seed.
Implementations§
Source§impl Model
impl Model
Sourcepub fn dimensions(&self) -> usize
pub fn dimensions(&self) -> usize
How many dimensions the lattice spans.
Sourcepub fn has_motility(&self) -> bool
pub fn has_motility(&self) -> bool
Whether any type keeps a memory of where it has been.
Sourcepub fn has_external_potential(&self) -> bool
pub fn has_external_potential(&self) -> bool
Whether any type drifts.
Sourcepub fn has_connectivity(&self) -> bool
pub fn has_connectivity(&self) -> bool
Whether any type refuses a copy that would pinch it.
Sourcepub fn has_length_constraint(&self) -> bool
pub fn has_length_constraint(&self) -> bool
Whether any type constrains its length, so a run without one skips the moment bookkeeping.
Sourcepub fn has_chemotaxis(&self) -> bool
pub fn has_chemotaxis(&self) -> bool
Whether any type follows a gradient.
Sourcepub fn has_population_events(&self) -> bool
pub fn has_population_events(&self) -> bool
Whether any type divides or dies, so a run without either skips the per-step scan over labels.
Sourcepub fn contact_energy(&self, a: u8, b: u8) -> f64
pub fn contact_energy(&self, a: u8, b: u8) -> f64
Contact energy between two types.