pub enum SimulationError {
Show 15 variants
CalcError(CalcError),
DecomposeError(DecomposeError),
TimeError(TimeError),
ControllerError(ControllerError),
DivisionError(DivisionError),
DeathError(DeathError),
BoundaryError(BoundaryError),
DrawingError(DrawingError),
IndexError(IndexError),
SendError(String),
ReceiveError(RecvError),
StorageError(StorageError),
IoError(Error),
RngError(RngError),
OtherThreadError(String),
}
chili
only.Expand description
Covers all errors that can occur in this Simulation The errors are listed from very likely to be a user error from almost certainly an internal error.
§Categorization of errors
Some errors are more likely to be occurring due to an incorrect usage by an end user while others are highly likely to be due to some internal implementation problem. Independent of the exact reason, why they are occurring, some can be handled explicitly while others force an abort of the simulation. See also HandlingStrategy.
Variant | Concept Implementation | Engine-Fault | Time Increment |
---|---|---|---|
CalcError | 8/10 | 2/10 | 0/10 |
DecomposeError | 7/10 | 3/10 | 0/10 |
ControllerError | 8/10 | 1/10 | 1/10 |
DivisionError | 8/10 | 1/10 | 1/10 |
DeathError | 8/10 | 1/10 | 1/10 |
BoundaryError | 7/10 | 1/10 | 2/10 |
DrawingError | 9/10 | 1/10 | 0/10 |
IndexError | 6/10 | 2/10 | 2/10 |
SendError | 3/10 | 6/10 | 1/10 |
ReceiveError | 3/10 | 6/10 | 1/10 |
StorageError | 3/10 | 7/10 | 0/10 |
RngError | 1/10 | 8/10 | 1/10 |
IoError | 1/10 | 9/10 | 0/10 |
Variants§
CalcError(CalcError)
Occurs during calculations of any mathematical update steps such as Interaction between cells.
DecomposeError(DecomposeError)
Error associated to splitting up the simulation domain into chunks in order to effectively process it in parallel.
TimeError(TimeError)
Related to time-stepping events. See crate::time.
ControllerError(ControllerError)
Error-type specifically related to the Controller trait.
DivisionError(DivisionError)
An error specific to cell-division events by the
Cycle trait.
DeathError(DeathError)
Related to the PhasedDeath event. This error can only occcurr during the update_conditional_phased_death method.
BoundaryError(BoundaryError)
Enforcing boundary conditions on cells can exhibhit this boundary error.
DrawingError(DrawingError)
Plotting results. See also cellular_raza_concepts::PlotSelf and cellular_raza_concepts::CreatePlottingRoot.
IndexError(IndexError)
Mostly caused by trying to find a voxel by its index. This error can also occcurr when applying too large simulation-steps.
SendError(String)
Sending information between threads fails
ReceiveError(RecvError)
Receiving information from another thread fails
StorageError(StorageError)
Storing results fails
IoError(Error)
When writing to output files or reading from them. See std::io::Error
RngError(RngError)
Error related to random number generation by the rand_chacha::ChaCha8Rng struct.
OtherThreadError(String)
Only occurs when another thread returns an error
Trait Implementations§
Source§impl Debug for SimulationError
impl Debug for SimulationError
Source§impl Display for SimulationError
impl Display for SimulationError
Source§impl Error for SimulationError
impl Error for SimulationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<BoundaryError> for SimulationError
impl From<BoundaryError> for SimulationError
Source§fn from(err: BoundaryError) -> Self
fn from(err: BoundaryError) -> Self
Source§impl From<CalcError> for SimulationError
impl From<CalcError> for SimulationError
Source§impl From<ControllerError> for SimulationError
impl From<ControllerError> for SimulationError
Source§fn from(err: ControllerError) -> Self
fn from(err: ControllerError) -> Self
Source§impl From<DeathError> for SimulationError
impl From<DeathError> for SimulationError
Source§fn from(err: DeathError) -> Self
fn from(err: DeathError) -> Self
Source§impl From<DecomposeError> for SimulationError
impl From<DecomposeError> for SimulationError
Source§fn from(err: DecomposeError) -> Self
fn from(err: DecomposeError) -> Self
Source§impl From<DivisionError> for SimulationError
impl From<DivisionError> for SimulationError
Source§fn from(err: DivisionError) -> Self
fn from(err: DivisionError) -> Self
Source§impl From<DrawingError> for SimulationError
impl From<DrawingError> for SimulationError
Source§fn from(err: DrawingError) -> Self
fn from(err: DrawingError) -> Self
Source§impl From<Error> for SimulationError
impl From<Error> for SimulationError
Source§impl From<IndexError> for SimulationError
impl From<IndexError> for SimulationError
Source§fn from(err: IndexError) -> Self
fn from(err: IndexError) -> Self
Source§impl From<RecvError> for SimulationError
impl From<RecvError> for SimulationError
Source§impl From<RngError> for SimulationError
impl From<RngError> for SimulationError
Source§impl<T> From<SendError<T>> for SimulationError
impl<T> From<SendError<T>> for SimulationError
Source§impl From<SimulationError> for PyErr
impl From<SimulationError> for PyErr
Source§fn from(value: SimulationError) -> Self
fn from(value: SimulationError) -> Self
Source§impl From<StorageError> for SimulationError
impl From<StorageError> for SimulationError
Source§fn from(err: StorageError) -> Self
fn from(err: StorageError) -> Self
Auto Trait Implementations§
impl Freeze for SimulationError
impl !RefUnwindSafe for SimulationError
impl Send for SimulationError
impl Sync for SimulationError
impl Unpin for SimulationError
impl !UnwindSafe for SimulationError
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
§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>
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>
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