## Expand description

## §cellular_raza - Building Blocks

Building blocks allow users to quickly construct complex cellular agents. The simplest approach is to use fully-defined cell models. However, users can also build their own complex models by combining existing ones.

To create your own agent with physical mechanics and interactions, we need to include the building blocks for them as fields of our agent struct.

```
struct MyAgent {
mechanics: NewtonDamped2D,
interaction: BoundLennardJones,
}
```

Furthermore, we can derive desired concepts by using the CellAgent derive macro.

```
#[derive(CellAgent)]
struct MyAgent {
#[Mechanics]
mechanics: NewtonDamped2D,
#[Interaction]
interaction: BoundLennardJones,
}
```

For technical reasons, we are required to also once more specify the types for position,
velocity and force when specifying which struct field to derive from.
The optional `Inf`

generic parameter of the Interaction trait was left out and thus defaults to `()`

.
It can and needs to also be specified when choosing interactions with non-trivial
interaction information.

## §Optional Features

Features guard implementations which introduce additional dependencies. To simplify usability, we enable commonly used features by default.

- pyo3 Rust bindings to the Python interpreter

## Modules§

- Contains deprecated cartesian cuboid implementations for an older vertex model
- Contains deprecated cartesian cuboid implementations
- pool_bacteria
`pyo3`

Objects and definitions surrounding the bacterial pool model

## Structs§

- Lennard-Jones interaction potential with numerical upper and lower limit.
- Identical to BoundLennardJones but for
`f32`

type. - Brownian motion of particles
- Brownian motion of particles
- Brownian motion of particles
- Brownian motion of particles
- Brownian motion of particles
- Brownian motion of particles
- A generic Domain with a cuboid layout.
- Cartesian cuboid in
`1D`

with float type`f64`

- Cartesian cuboid in
`1D`

with float type`f32`

- Cartesian cuboid in
`2D`

with float type`f64`

- Cartesian cuboid in
`2D`

with float type`f32`

- Cartesian cuboid in
`3D`

with float type`f64`

- Cartesian cuboid in
`3D`

with float type`f32`

- Subdomain corresponding to the CartesianCuboid struct.
- Subdomain of CartesianCuboid1New
- Subdomain of CartesianCuboid1NewF32
- Subdomain of CartesianCuboid2New
- Subdomain of CartesianCuboid2NewF32
- Subdomain of CartesianCuboid3New
- Subdomain of CartesianCuboid3NewF32
- Voxel of the CartesianSubDomain1
- Voxel of the CartesianSubDomain1F32
- Voxel of the CartesianSubDomain2
- Voxel of the CartesianSubDomain2F32
- Voxel of the CartesianSubDomain3
- Voxel of the CartesianSubDomain3F32
- Langevin dynamics
- Langevin dynamics
- Langevin dynamics
- Langevin dynamics
- Langevin dynamics
- Langevin dynamics
- Generalizeation of the BoundLennardJones potential for arbitrary floating point types.
- Superseded by the [CellAgent] derive macro.
- Famous Morse potential for diatomic molecules.
- Famous Morse potential for diatomic molecules.
- Newtonian dynamics governed by mass and damping.
- Newtonian dynamics governed by mass and damping.
- Newtonian dynamics governed by mass and damping.
- Newtonian dynamics governed by mass and damping.
- Newtonian dynamics governed by mass and damping.
- Newtonian dynamics governed by mass and damping.
- Do not model intracellular reactions at all.
- No cycle of the cell.
- Type which allows to simply not model gradients.
- No interaction of the cell with any other.
- Derives an interaction potential from a point-like potential.
- Mechanics model which represents cells as vertices with edges between them.

## Functions§

- Calculates the interaction strength behind the MorsePotential and MorsePotentialF32 structs.
- Calculate the point on a line which is closest to an external given point.
- Generalizes the nearest_point_from_point_to_line function for a collection of line segments.
- Implements the ray-casting algorithm to check if a ray intersects with a given line segment.
- Generate a vector corresponding to a wiener process.

## Type Aliases§

- Type alias used when not wanting to simulate any cellular reactions for example.