MEDYAN.set_chemboundary!

Tuple{MEDYAN.Context}

set_chemboundary!(
    c::MEDYAN.Context;
    meshindex_as_chemboundary,
    kwargs...
) -> MEDYAN.Boundary

Set chemical boundary and update compartment volumes and diffusion rates. Note, the chemboundary should be outside the mechboundary so that it is rare for filaments to go outside the chemboundary

See also Boundary

Keywords

  • planes::Vector{SVector{4,Float64}} = []

Planes that make up the chemical boundary of the simulation

inside = signbit(pos ⋅ planes[bi][1:3] - planes[bi][4])

For example, a plane [1,0,0,3] is inside if x < 3 nm.

2.0*[1,0,0,3] is also inside if x < 3 nm.

  • capsules::Vector{SVector{8,Float64}} = []

Capsules that make up the chemical boundary of the simulation.

capsules[bi][1:3] is the starting point of the spine line segment (nm). capsules[bi][4:6] is the axis of the spine line segment (nm). capsules[bi][7] is the radius (nm). capsules[bi][8] is ignored.

if capsules[bi][4:6] is zero then the capsule is a sphere. Capsule boundaries can be combined with plane boundaries to create cylinder boundaries.

  • meshindex_as_chemboundary::Int = 0: Index of membrane mesh that further restricts the chem boundary. 0 for none.

The system geometry information must be up-to-date. This mesh index is not stored in the boundary object, but is directly set in the context.