pub trait ExtracellularMechanics<Ind, Pos, ConcVec, ConcGradient, ConcTotal = ConcVec, ConcBoundary = ConcVec>:
Send
+ Sync
+ Clone
+ Serialize
+ for<'a> Deserialize<'a> {
// Required methods
fn get_extracellular_at_point(
&self,
pos: &Pos,
) -> Result<ConcVec, RequestError>;
fn get_total_extracellular(&self) -> ConcTotal;
fn update_extracellular_gradient(
&mut self,
boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)],
) -> Result<(), CalcError>;
fn get_extracellular_gradient_at_point(
&self,
pos: &Pos,
) -> Result<ConcGradient, RequestError>;
fn set_total_extracellular(
&mut self,
concentration_total: &ConcTotal,
) -> Result<(), CalcError>;
fn calculate_increment(
&self,
total_extracellular: &ConcTotal,
point_sources: &[(Pos, ConcVec)],
boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)],
) -> Result<ConcTotal, CalcError>;
fn boundary_condition_to_neighbor_voxel(
&self,
neighbor_index: &Ind,
) -> Result<BoundaryCondition<ConcBoundary>, IndexError>;
}Expand description
Required Methods§
Sourcefn get_extracellular_at_point(&self, pos: &Pos) -> Result<ConcVec, RequestError>
fn get_extracellular_at_point(&self, pos: &Pos) -> Result<ConcVec, RequestError>
Obtain the extracellular concentration at a specified point.
Sourcefn get_total_extracellular(&self) -> ConcTotal
fn get_total_extracellular(&self) -> ConcTotal
Obtain every concentration in the current voxel. This function is only relevant for the backend.
Sourcefn update_extracellular_gradient(
&mut self,
boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)],
) -> Result<(), CalcError>
fn update_extracellular_gradient( &mut self, boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)], ) -> Result<(), CalcError>
Update function to calculate the gradient of concentrations in this voxel.
Sourcefn get_extracellular_gradient_at_point(
&self,
pos: &Pos,
) -> Result<ConcGradient, RequestError>
fn get_extracellular_gradient_at_point( &self, pos: &Pos, ) -> Result<ConcGradient, RequestError>
Obtain the gradient at a certain point.
Sourcefn set_total_extracellular(
&mut self,
concentration_total: &ConcTotal,
) -> Result<(), CalcError>
fn set_total_extracellular( &mut self, concentration_total: &ConcTotal, ) -> Result<(), CalcError>
Simple setter function to specify concentrations after backend has updated values.
Sourcefn calculate_increment(
&self,
total_extracellular: &ConcTotal,
point_sources: &[(Pos, ConcVec)],
boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)],
) -> Result<ConcTotal, CalcError>
fn calculate_increment( &self, total_extracellular: &ConcTotal, point_sources: &[(Pos, ConcVec)], boundaries: &[(Ind, BoundaryCondition<ConcBoundary>)], ) -> Result<ConcTotal, CalcError>
Calculates the time-derivative of the function that increments the concentrations.
Sourcefn boundary_condition_to_neighbor_voxel(
&self,
neighbor_index: &Ind,
) -> Result<BoundaryCondition<ConcBoundary>, IndexError>
fn boundary_condition_to_neighbor_voxel( &self, neighbor_index: &Ind, ) -> Result<BoundaryCondition<ConcBoundary>, IndexError>
Gets the boundary to the specified neighboring voxel.
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.