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 | Public Attributes | Static Public Attributes
Sphere Class Reference

## Detailed Description

A PointSet representing a spherical object using:

- a radius,
- the position of the center (point index 0),
- fixed points on the surface to keep track of the orientation,
- mobile points on the surface.

nbRefPts 'fixed' points provide a reference frame on the surface of the sphere: nbRefPts=1 in 2D, nbRefPts=3 in 3D.

The sphere can move as a solid body by rotation and translation. In addition, the surface-points can move on the surface. This motion includes diffusion and force-induced drag and is characterized by a mobility scalar. Finally, a mobile point can also carry a Single.

This class was started by Dietrich Foethke in 2005 to simulate the nucleus of S.pombe. Related classes are Bead and Solid.

Inheritance diagram for Sphere:

## Public Member Functions
| Sphere (SphereProp const *p)
| create but do not initialize More...
| Sphere (SphereProp const *p, real radius)
| create and initialize following the specifications of SphereProp
virtual | ~Sphere ()
| destructor
void | setDragCoefficientPiston ()
| calculate mobility with piston effect More...
void | setDragCoefficientStokes ()
| calculate mobility with piston effect More...
void | setDragCoefficient ()
| calculate mobility
real | dragCoefficient () const
| total drag-coefficient of object (force = drag * speed)
void | prepareMecable ()
| calculate mobility and diffusion constant
Vector | position () const
| position of center of gravity (returns the center of the sphere)
real | radius () const
| radius of the sphere
void | resize (real)
| change radius
void | foldPosition (const Modulo *)
| modulo function for periodic space
void | setInteractions (Meca &) const
| add the interactions due to confinement
real | addBrownianForces (real *rhs, real sc) const
| add contribution of Brownian forces
void | reshape ()
| bring all surface points at distance spRadius from center, by moving them radially More...
void | getPoints (const real *x)
| set position
unsigned | addSurfacePoint (Vector const &)
| normalize point and add center
void | makeProjection ()
| prepare for constrained projection
void | setSpeedsFromForces (const real *X, real *Y, real, bool) const
| calculate speed of points in Y, for the forces given in X, scaled by sc
Sphere * | next () const
| a static_cast<> of Node::next()
Sphere * | prev () const
| a static_cast<> of Node::prev()
Tag | tag () const
| return unique character identifying the class
const Property * | property () const
| return Object Property
void | write (OutputWrapper &) const
| write to file
void | read (InputWrapper &, Simul &)
| read from file
Public Member Functions inherited from PointSet
| PointSet ()
| Constructor.
| PointSet (const PointSet &)
| Copy constructor.
PointSet & | operator= (const PointSet &)
| Assignement operator.
virtual | ~PointSet ()
| Destructor.
virtual void | deallocatePoints ()
| free memory allocated by allocatePoints()
unsigned int | nbPoints () const
| Number of points.
unsigned int | lastPoint () const
| Index of the last point = nbPoints - 1.
unsigned int | nbSegments () const
| Number of segments = nbPoints - 1.
unsigned int | lastSegment () const
| Index of the last segment = nbPoints - 2.
Vector | posP (const unsigned p) const
| Position of point 'p' of the object.
real const * | addr () const
| Address of point p.
real const * | addrPoint (const unsigned p) const
| Address of point p.
void | setPoint (unsigned p, Vector const &w)
| Set position of point p to w.
void | nbPoints (const unsigned n)
| Set the number of points in the array.
unsigned int | addPoint (Vector const &w)
| Add a point, returning the array index that was used.
void | removePoint (unsigned int p)
| Remove a point from the array psPos, returns number of points remaining.
virtual void | truncateM (unsigned int p)
| Remove all points with indices [ 0, p-1 ], keep [ p, nbPoints() ]. More...
virtual void | truncateP (unsigned int p)
| Keep points [ 0, p ], remove other points. More...
void | clearPoints ()
| Remove all points.
void | resetPoints ()
| Set all coordinates to zero (nicer for debug/testing)
void | addNoise (real amount)
| Add random noise uniformly to all coordinate (used for testing purposes)
virtual void | putPoints (real *) const
| copy current coordinates to argument
virtual void | getForces (const real *ptr)
| replace current forces by the ones provided
Vector | netForceP (const unsigned p) const
| Force on point p calculate by Brownian dynamics.
void | movePoint (const unsigned int p, Vector const &w)
| Shift point at index p by vector w.
Vector | diffPoints (const unsigned p) const
| Difference of two points = Q - P = vector PQ.
Vector | diffPoints (const unsigned int p, const unsigned int q) const
| Difference of two points = Q - P = vector PQ.
Vector | interpolatePoints (const unsigned int p, const unsigned int q, const real a) const
| Calculate intermediate position = P + a ( Q - P )
void | calculateMomentum (real[], bool divide=false)
| calculate first momentum of point coordinates More...
void | calculateMomentum (real[], real[], bool divide=false)
| calculate first and second momentum of point coordinates More...
virtual bool | translatable () const
| true if object accepts translations
virtual void | translate (Vector const &)
| Translate object (moves all the points by w)
virtual bool | rotatable () const
| true if object accepts translations
virtual void | rotate (Rotation const &)
| Rotate object by given rotation.
virtual void | foldPositionG (const Modulo *)
| Call modulo around the center of gravity.
Public Member Functions inherited from Mecable
| Mecable ()
| The constructor resets the pointers.
virtual | ~Mecable ()
| Destructor de-allocates memory.
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 | 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 | 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...
Public Member Functions inherited from Object
| Object ()
| constructor
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 void | setPosition (Vector const &)
| move object to specified position More...
virtual void | rotateP (Rotation const &)
| rotate the object around its current position 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

## Public Attributes
SphereProp const * | prop
| Property.

## Static Public Attributes
static const unsigned int | nbRefPts = DIM+(DIM==3)
| number of reference points, including center: 1, 2, 4 for DIM = 1, 2 and 3
static const Tag | TAG = 'o'
| a unique character identifying the class
Static Public Attributes inherited from Object
static const Tag | TAG = 'v'
| Object::TAG = 'v' represents the 'void' pointer.

## Additional Inherited Members
Static Public Member Functions inherited from PointSet
static Vector | diffPoints (const real *src, const unsigned p)
| Difference of two points = P+1 - P.
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...
Protected Attributes inherited from PointSet
real * | psPos
| psPos[] of size DIM*psAllocated contains DIM*psSize point-coordinates
real const * | psFor
| psFor[] of size DIM*psAllocated contains DIM*psSize force-coordinates
Vector | psCenter
| Center of gravity calculed in calculatePosition()
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()

## Constructor & Destructor Documentation

Sphere | ( | SphereProp const * | p | ) |

The Sphere is returned with no points

## Member Function Documentation

void reshape | ( |  | ) |

we get rid of finite-step errors but conserve the shape by projecting back onto the sphere, without changing the position of point zero (the center)

void setDragCoefficientPiston | ( |  | ) |

Expect higher friction due to flow around the sphere in a narrow tube. This is only valid if (r -a)/a << 1, where r = radius of the tube, and a = radius of the sphere.

The formula are taken from: The Motion of a Closely-Fitting Sphere in a Fluid-Filled Tube
P. Bungay and H. Brenner, Int. J. Multiphase Flow
Vol 1, pp. 25-56, 1973 (see 3.6, 4.68a and 5.11)

void setDragCoefficientStokes | ( |  | ) |

the mobility is that of a sphere in an infinite fluid (Stokes law)