Struct BacteriaReactions
pub struct BacteriaReactions {
pub potential_strength: f64,
pub food_to_volume_conversion: f64,
pub lag_phase_active: bool,
pub species: Species,
pub cell_volume: f64,
pub uptake_rate: f64,
pub inhibition_production_rate: f64,
pub inhibition_coefficient: f64,
}
Expand description
Implementation of the [cellular_raza_concepts::CellularReactions] trait and cellular_raza_concepts::Interaction trait for Bacteria.
Fields§
§potential_strength: f64
Overall interaction strength for physical interaction
food_to_volume_conversion: f64
Conversion of the consumed food to cellular volume. In units $\frac{\text{volume}}{\text{food}}$.
lag_phase_active: bool
flag if the cell is still in lag phase
species: Species
Species of the cell. This determines if a cell will secrete inhibitor or be affected by it.
cell_volume: f64
Total current volume of the cell
uptake_rate: f64
Uptake rate of nutrients
inhibition_production_rate: f64
Production rate of inhibitor
inhibition_coefficient: f64
Inhibition rate of the growth of the cell
Implementations§
§impl BacteriaReactions
impl BacteriaReactions
pub fn new(
potential_strength: f64,
food_to_volume_conversion: f64,
lag_phase_active: bool,
species: Species,
cell_volume: f64,
uptake_rate: f64,
inhibition_production_rate: f64,
inhibition_coefficient: f64,
) -> BacteriaReactions
Available on crate feature cpu_os_threads
only.
pub fn new( potential_strength: f64, food_to_volume_conversion: f64, lag_phase_active: bool, species: Species, cell_volume: f64, uptake_rate: f64, inhibition_production_rate: f64, inhibition_coefficient: f64, ) -> BacteriaReactions
cpu_os_threads
only.Construct a new BacteriaReactions object
pub fn cell_radius(&self) -> f64
Available on crate feature cpu_os_threads
only.
pub fn cell_radius(&self) -> f64
cpu_os_threads
only.Obtain current cell radius
Trait Implementations§
§impl CellularReactions<f64, Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>> for BacteriaReactions
impl CellularReactions<f64, Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>> for BacteriaReactions
§fn calculate_intra_and_extracellular_reaction_increment(
&self,
_internal_concentration_vector: &f64,
external_concentration_vector: &Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>,
) -> Result<(f64, Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>), CalcError>
fn calculate_intra_and_extracellular_reaction_increment( &self, _internal_concentration_vector: &f64, external_concentration_vector: &Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>, ) -> Result<(f64, Matrix<f64, Const<cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}>, Const<1>, ArrayStorage<f64, cellular_raza_building_blocks::::cell_models::pool_bacteria::ReactionVector::{constant#0}, 1>>), CalcError>
Calculate the time-related change of the intracellular and extracellular concentrations.
This is not the increment itself (thus no parameter
dt
was specified) but rather the time-derivative.
Such an approach can be useful when designing addaptive solvers.§fn get_intracellular(&self) -> f64
fn get_intracellular(&self) -> f64
Retrieves the current intracellular concentration.
§fn set_intracellular(&mut self, new_volume: f64)
fn set_intracellular(&mut self, new_volume: f64)
Sets the intracellular concentration. This is used by the backend after values have been updated.
§impl Clone for BacteriaReactions
impl Clone for BacteriaReactions
§fn clone(&self) -> BacteriaReactions
fn clone(&self) -> BacteriaReactions
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl Debug for BacteriaReactions
impl Debug for BacteriaReactions
§impl<'de> Deserialize<'de> for BacteriaReactions
impl<'de> Deserialize<'de> for BacteriaReactions
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<BacteriaReactions, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<BacteriaReactions, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl Interaction<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>>, f64> for BacteriaReactions
impl Interaction<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>>, f64> for BacteriaReactions
§fn get_interaction_information(&self) -> f64
fn get_interaction_information(&self) -> f64
Get additional information of cellular properties (ie. for cell-specific interactions).
For now, this can also be used to get the mass of the other cell-agent.
In the future, we will probably provide a custom function for this.
§fn calculate_force_between(
&self,
own_pos: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
_own_vel: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
ext_pos: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
_ext_vel: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
ext_radius: &f64,
) -> Result<(Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>), CalcError>
fn calculate_force_between( &self, own_pos: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, _own_vel: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, ext_pos: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, _ext_vel: &Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, ext_radius: &f64, ) -> Result<(Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>), CalcError>
Calculates the forces (velocity-derivative) on the corresponding external position given
external velocity.
By providing velocities, we can calculate terms that are related to friction.
The function returns two forces, one acting on the current agent and the other on the
external agent.
§fn is_neighbor(
&self,
own_pos: &Pos,
ext_pos: &Pos,
ext_inf: &Inf,
) -> Result<bool, CalcError>
fn is_neighbor( &self, own_pos: &Pos, ext_pos: &Pos, ext_inf: &Inf, ) -> Result<bool, CalcError>
Checks if the other cell represented by position and information is a neighbor to the current one or not.
§fn react_to_neighbors(&mut self, neighbors: usize) -> Result<(), CalcError>
fn react_to_neighbors(&mut self, neighbors: usize) -> Result<(), CalcError>
Reacts to the results gathered by the Interaction::is_neighbor
method and changes the state of the cell.
§impl IntoPy<Py<PyAny>> for BacteriaReactions
impl IntoPy<Py<PyAny>> for BacteriaReactions
§impl<'py> IntoPyObject<'py> for BacteriaReactions
impl<'py> IntoPyObject<'py> for BacteriaReactions
§type Target = BacteriaReactions
type Target = BacteriaReactions
The Python output type
§type Output = Bound<'py, <BacteriaReactions as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BacteriaReactions as IntoPyObject<'py>>::Target>
The smart pointer type to use. Read more
§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<BacteriaReactions as IntoPyObject<'py>>::Output, <BacteriaReactions as IntoPyObject<'py>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<BacteriaReactions as IntoPyObject<'py>>::Output, <BacteriaReactions as IntoPyObject<'py>>::Error>
Performs the conversion.
§impl PyClass for BacteriaReactions
impl PyClass for BacteriaReactions
§impl PyTypeInfo for BacteriaReactions
impl PyTypeInfo for BacteriaReactions
§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::type_object
Deprecated name for [
PyTypeInfo::type_object
].§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type or a subclass of this type.§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::is_type_of
Deprecated name for [
PyTypeInfo::is_type_of
].§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type.§fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::is_exact_type_of
Deprecated name for [
PyTypeInfo::is_exact_type_of
].§impl Serialize for BacteriaReactions
impl Serialize for BacteriaReactions
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl DerefToPyAny for BacteriaReactions
Auto Trait Implementations§
impl Freeze for BacteriaReactions
impl RefUnwindSafe for BacteriaReactions
impl Send for BacteriaReactions
impl Sync for BacteriaReactions
impl Unpin for BacteriaReactions
impl UnwindSafe for BacteriaReactions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
§fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
§fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
Converts
self
into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
Converts
self
into an owned Python object, dropping type information and unbinding it
from the 'py
lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
Converts
self
into a Python object. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.