Cytosim PI Cytoskeleton Simulator

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

List of all members | Public Member Functions
Mecable Class Referenceabstract

## Detailed Description

A Mecable is an Object made of points that can can be simulated in Meca.

Mecable defines an interface that is implemented in Bead and PointSet. Mecable is also a Buddy, and can thus be part of an Organizer.

Inheritance diagram for Mecable:

## Public Member Functions
| Mecable ()
| The constructor resets the pointers.
virtual | ~Mecable ()
| Destructor de-allocates memory.
virtual unsigned | nbPoints () const =0
| Number of points.
virtual Vector | posP (unsigned int P) const =0
| return position of point P
virtual void | putPoints (real[]) const =0
| copy current coordinates to provided array
virtual void | getPoints (const real[])=0
| replace current coordinates of points by values from the provided array
virtual Vector | netForceP (unsigned int p) const =0
| return Force on point p calculated at previous step by Brownian dynamics
virtual void | getForces (const real[])=0
| replace current forces by the ones provided
void | matIndex (Matrix::index_type index)
| Store the index where coordinates are located in Meca.
Matrix::index_type | matIndex () const
| Index in mB of the first point. the index in the vectors is DIM*matIndex() More...
bool | useBlock () const
| Tell Meca to use preconditionning on this object or not.
void | useBlock (bool b)
| change preconditionning flag
real * | allocateBlock (unsigned)
| Allocate a block of the requested size.
real * | block () const
| return allocated block
virtual void | setDragCoefficient ()=0
| Calculate the mobility coefficient.
virtual real | dragCoefficient () const =0
| The total drag coefficient of object ( force = drag * speed )
virtual void | prepareMecable ()=0
| prepare the Mecable to solve the mechanics in Meca::solve() More...
virtual real | addBrownianForces (real *rhs, real sc) const
| Add Brownian noise terms to a force vector (sc = kT / dt)
virtual void | addRigidity (const real *X, real *Y) const
| Add rigidity terms Y <- Y + Rigidity * X. More...
virtual void | addRigidityMatUp (Matrix &mB, int offset) const
| Add rigidity matrix elements (which should be symmetric) to provided matrix. More...
virtual void | setSpeedsFromForces (const real *X, real *Y, real sc=1.0, bool rhs=false) const =0
| Calculate speeds from given forces. More...
virtual void | makeProjectionDiff (const real *forces)
| set the terms obtained from the linearization of the Projection operator, from the given forces More...
virtual void | addProjectionDiff (const real *X, real *Y) const
| add terms from projection correction terms: Y <- Y + P' * X; More...
virtual void | setInteractions (Meca &) const
| add the interactions (for example due to confinements)
Public Member Functions inherited from Object
| Object ()
| constructor
virtual Tag | tag () const =0
| an ASCII character identifying the ObjectSet corresponding to this object
virtual const Property * | property () const =0
| Property associated with the Object.
virtual void | write (OutputWrapper &) const =0
| write Object data to file
virtual void | read (InputWrapper &, Simul &)=0
| read Object from file, within the Simul
std::string | reference () const
| concatenation of [ tag(), property()->index(), number() ] in plain ascii More...
void | writeReference (OutputWrapper &) const
| write a reference that identifies the Object uniquely More...
void | writeReference (OutputWrapper &, Tag tag) const
| write a reference, but using the provided Tag More...
int | mark () const
| birth mark value
void | mark (int m)
| set birth mark
int | fleck () const
| fleck value (not stored in trajectory files)
void | fleck (int f) const
| set fleck (the value is not stored in trajectory files)
Object * | next () const
| extends Node::next(), with a cast to preserve type
Object * | prev () const
| extends Node::prev(), with a cast to preserve type
Public Member Functions inherited from Node
| Node ()
| constructor set as unlinked
virtual | ~Node ()
| destructor More...
bool | linked () const
| true if Node is linked
Node * | next () const
| the next Node in the list, or zero if this is last
Node * | prev () const
| the previous Node in the list, or zero if this is first
NodeList * | list () const
| the list where the object is linked, or zero
ObjectSet * | objset () const
| return associated ObjectSet
Public Member Functions inherited from Inventoried
| Inventoried ()
| initialize (name=0)
| ~Inventoried ()
| destructor
void | number (Number n)
| change the serial number
Number | number () const
| serial number : a integer identifier, unique within each class
Public Member Functions inherited from Movable
| Movable ()
| constructor
virtual | ~Movable ()
| destructor
virtual Vector | position () const
| return the position in space of the object
virtual void | setPosition (Vector const &)
| move object to specified position More...
virtual bool | translatable () const
| true if object accepts translations (default=false)
virtual void | translate (Vector const &)
| move the object ( position += given vector ) More...
virtual bool | rotatable () const
| true if object accepts rotations (default=false)
virtual void | rotate (Rotation const &)
| rotate the object around the origin of coordinates More...
virtual void | rotateP (Rotation const &)
| rotate the object around its current position More...
virtual void | foldPosition (Modulo const *)
| perform modulo for periodic boundary conditions More...
Public Member Functions inherited from Buddy
virtual | ~Buddy ()
| upon destruction, goodbye is called for all buddies
void | hello (Buddy *b)
| will make this and b mutual buddies
virtual void | goodbye (Buddy *)
| this is called everytime a known buddy is destroyed
Buddy * | buddy (unsigned int ix) const
| return buddy at index ix
void | buddy (Buddy *b, unsigned int ix)
| replace the buddy that may have been at index ix

## Additional Inherited Members
Static Public Member Functions inherited from Object
static std::string | strReference (char, int, Number, int)
| build a string reference by concatenating (tag, property_index, number, mark) More...
static void | readReference (InputWrapper &, int &, Number &, int &, char pretag)
| read a reference (property_index, number, mark) from input More...
static void | writeNullReference (OutputWrapper &)
| write a reference that does not refer to any Object
Static Public Member Functions inherited from Movable
static Vector | readPrimitive (std::istream &, const Space *)
| read a position specified with primitives, such as 'circle 5', etc. More...
static Vector | readPosition (std::istream &, const Space *)
| read a position in space More...
static Vector | readDirection (std::istream &, const Vector &, const Space *)
| read an orientation, and return a normalized vector More...
static Rotation | readRotation (std::istream &, const Vector &, const Space *)
| read a rotation specified in is, at position pos More...
Static Public Attributes inherited from Object
static const Tag | TAG = 'v'
| Object::TAG = 'v' represents the 'void' pointer.
Protected Attributes inherited from Node
Node * | nNext
| the next Node in the list
Node * | nPrev
| the previous Node in the list
Protected Attributes inherited from Inventoried
Number | nNumber
| object identifier, unique within the class defined by tag()

## Member Function Documentation

virtual void addProjectionDiff | ( | const real * | X,
|  | real * | Y
| ) |  | const
| inline virtual

This is enabled by a keyword PROJECTION_DIFF in meca.cc

Reimplemented in RigidFiber.

virtual void addRigidity | ( | const real * | X,
|  | real * | Y
| ) |  | const
| inline virtual

Rigidity can be any force acting internally to the objects for example, the bending rigidity of Fibers. This version is used to calculate the Matrix * Vector in Meca.

Reimplemented in RigidFiber.

virtual void addRigidityMatUp | ( | Matrix & | mB,
|  | int | offset
| ) |  | const
| inline virtual

The function should add terms to the upper part of matrix mB, at indices starting from offset. It should fill at maximum the upper part of the diagonal block corresponding to indices [offset - offset+DIM*nbPoints()]. This version is used to build the preconditionner in Meca. It should be consistent with addRigidity(): add the same terms.

Reimplemented in RigidFiber.

virtual void makeProjectionDiff | ( | const real * | forces | ) |
| inline virtual

This is enabled by a keyword PROJECTION_DIFF in meca.cc

Reimplemented in RigidFiber.

Matrix::index_type matIndex | ( |  | ) | const
| inline

X1 is stored at DIM*matIndex(), Y1 at DIM*matIndex()+1, Z1 at DIM*matIndex()+2 then X2, Y2, Z2...

virtual void prepareMecable | ( |  | ) |
| pure virtual

This is called in Meca, before the system is solved, and it should prepare all the variables necessary for:

- addRigidity() -> set rigidity coefficients
- setSpeedsFromForces() -> call setDragCoefficient(),
- set matrix/variables necessary for constrained dynamics

Implemented in Bead, Solid, Sphere, and Fiber.

virtual void setSpeedsFromForces | ( | const real * | X,
|  | real * | Y,
|  | real | sc = `1.0`,
|  | bool | rhs = `false`
| ) |  | const
| pure virtual

The function should perform Y <- sc * mobility * X.

- X and Y are vectors of size DIM*nbPoints().
- sc is a provided scalar, and mobility is known by the object.
- if rhs==true, the call was made with X containing the true force in the system.

Implemented in Sphere, Bead, RigidFiber, and Solid.