Object-Rod binding¶
This is experimental.
-
class
ObjectRodBindingInteraction
: public mirheo::Interaction¶ Compute elastic interaction used to attach a rod to a RigidObjectVector entity.
Public Functions
-
ObjectRodBindingInteraction
(const MirState *state, std::string name, real torque, real3 relAnchor, real kBound)¶ Construct an ObjectRodBindingInteraction interaction.
- Parameters
state
: The global state of the systemname
: The name of the interactiontorque
: Torque applied from the rigid objet to the rodrelAnchor
: position of attachement with respect to the rigid objectkBound
: The elastic constant for the binding
-
void
setPrerequisites
(ParticleVector *pv1, ParticleVector *pv2, CellList *cl1, CellList *cl2)¶ Add needed properties to the given ParticleVectors for future interactions.
Must be called before any other method of this class.
- Parameters
pv1
: One ParticleVector of the interactionpv2
: The other ParticleVector of that will interactcl1
: CellList of pv1cl2
: CellList of pv2
-
void
local
(ParticleVector *pv1, ParticleVector *pv2, CellList *cl1, CellList *cl2, cudaStream_t stream)¶ Compute interactions between bulk particles.
The result of the interaction is
added to the corresponding channel of the ParticleVector. The order of pv1 and pv2 may change the performance of the interactions.- Parameters
pv1
: first interacting ParticleVectorpv2
: second interacting ParticleVector. If it is the same as the pv1, self interactions will be computed.cl1
: cell-list built for the appropriate cut-off radius for pv1cl2
: cell-list built for the appropriate cut-off radius for pv2stream
: Execution stream
-
void
halo
(ParticleVector *pv1, ParticleVector *pv2, CellList *cl1, CellList *cl2, cudaStream_t stream)¶ Compute interactions between bulk particles and halo particles.
The result of the interaction is
added to the corresponding channel of the ParticleVector. In general, the following interactions will be computed: pv1->halo() <> pv2->local() and pv2->halo() <> pv1->local().- Parameters
pv1
: first interacting ParticleVectorpv2
: second interacting ParticleVector. If it is the same as the pv1, self interactions will be computed.cl1
: cell-list built for the appropriate cut-off radius for pv1cl2
: cell-list built for the appropriate cut-off radius for pv2stream
: Execution stream
-