VPTissue Reference Manual

Structure of cells; key data structure. More...
#include <Mesh.h>
Public Member Functions  
Mesh (unsigned int num_chemicals)  
Constructs empty Mesh.  
void  AddNodeToCell (Cell *c, Node *n, Node *nb1, Node *nb2) 
Add node to cell between existing neighbor nodes.  
Cell *  BuildBoundaryPolygon (const std::vector< unsigned int > &node_ids) 
Cell *  BuildCell () 
Cell *  BuildCell (const std::vector< unsigned int > &node_ids) 
Cell *  BuildCell (unsigned int id, const std::vector< unsigned int > &node_ids) 
Node *  BuildNode (const std::array< double, 3 > &vec, bool at_boundary) 
Node *  BuildNode (unsigned int id, const std::array< double, 3 > &vec, bool at_boundary) 
Wall *  BuildWall (Node *n1, Node *n2, Cell *c1, Cell *c2) 
Wall *  BuildWall (unsigned int id, Node *n1, Node *n2, Cell *c1, Cell *c2) 
void  ConstructNeighborList (Cell *cell) 
Constructs neighbor list by looping over walls and registering adjoining cell for that wall, and then eliminating all instances of boundary polygon. More...  
void  Derivatives (double *derivs) 
Constructs neighbor list by looping over walls and registering. More...  
Cell *  FindEdgeNeighbor (Cell *cell, Edge edge) const 
Find the neighbor to this cell with respect to the given edge. More...  
Wall *  FindWall (const Edge &edge) const 
Find the wall including the edge.  
Cell *  GetBoundaryPolygon () const 
Get the boundary polygon of the mesh.  
const std::vector< Cell * > &  GetCells () const 
The cells of this mesh, EXCLUDING the boundary polygon.  
std::vector< Cell * > &  GetCells () 
The cells of this mesh, EXCLUDING the boundary polygon.  
std::vector< NeighborNodes >  GetEdgeOwners (const Edge &edge) const 
Find the intersecting neighbors of the end points of the edge. More...  
std::list< Cell * > const &  GetNeighbors (Cell *c) const 
Get the adjacent cells to the given cell (i.e. sharing a wall).  
std::list< Cell * > &  GetNeighbors (Cell *c) 
Get the adjacent cells to the given cell (i.e. sharing a wall).  
std::list< NeighborNodes > &  GetNodeOwningNeighbors (Node *n) 
Get the neighbors associated with this node.  
const std::list< NeighborNodes > &  GetNodeOwningNeighbors (Node *n) const 
Get the neighbors associated with this node.  
std::list< Wall * > &  GetNodeOwningWalls (Node *n) 
The walls that contain the given node somewhere on the wall.  
const std::list< Wall * > &  GetNodeOwningWalls (Node *n) const 
The walls that contain the given node somewhere on the wall.  
const std::vector< Node * > &  GetNodes () const 
The nodes of the mesh.  
std::vector< Node * > &  GetNodes () 
The nodes of the mesh.  
unsigned int  GetNumChemicals () const 
MeshState  GetState () const 
The current state of the mesh as a selfcontained object.  
void  getValues (double *values) 
Used for interacting with ODEsolvers. More...  
const std::vector< Wall * > &  GetWalls () const 
The walls of this mesh.  
std::vector< Wall * > &  GetWalls () 
The walls of this mesh.  
bool  IsAtBoundary (const Edge *e) const 
True iff the edge is on the mesh boundary.  
bool  IsAtBoundary (Wall *w) const 
True iff one of cells owning the wall is the boundary polygon.  
bool  IsInBoundaryPolygon (Node *n) const 
True iff the node is one of the nodes of the boundary polygon.  
std::ostream &  Print (std::ostream &os) const 
Solely for debugging purposes.  
void  RemoveFromNeighborList (Cell *cell) 
Removes the cell from the neighbor list (only do this when deleting this cell).  
void  RemoveNodeFromOwnerLists (Node *node) 
Removes the node from the 'node owning neighbors' and 'node owning walls' lists. More...  
void  setValues (double x, double *y) 
Used for interacting with ODEsolvers.  
boost::property_tree::ptree  ToPtree () const 
Convert the mesh to a ptree.  
void  UpdateNodeOwningNeighbors (Cell *cell) 
Set ownerships of node <> cell or update them after cell division.  
void  UpdateNodeOwningWalls (Wall *wall) 
Set ownerships of node <> cell or update them after cell division. More...  
Friends  
class  CBMBuilder 
class  MeshCheck 
class  SimPT_Editor::EditableMesh 
Structure of cells; key data structure.
The mesh consists of nodes, walls and cells. For more information, see Node.h, Wall.h and Cell.h. There are some structures provided (that must be kept consistent) to increase efficiency.
void SimPT_Sim::Mesh::ConstructNeighborList  (  Cell *  cell  ) 
Constructs neighbor list by looping over walls and registering adjoining cell for that wall, and then eliminating all instances of boundary polygon.
Definition at line 252 of file Mesh.cpp.
References SimPT_Sim::Cell::GetWalls().
void SimPT_Sim::Mesh::Derivatives  (  double *  derivs  ) 
Constructs neighbor list by looping over walls and registering.
Calculate derivatives of all variables to pass to ODESolver.
Find the neighbor to this cell with respect to the given edge.
This neighbor can be the boundary polygon.
Definition at line 267 of file Mesh.cpp.
References SimPT_Sim::NeighborNodes::GetCell(), SimPT_Sim::Edge::GetFirst(), SimPT_Sim::Cell::GetIndex(), GetNodeOwningNeighbors(), SimPT_Sim::Edge::GetSecond(), SimPT_Sim::Container::make_const_circular(), and SimPT_Sim::Container::next().
vector< NeighborNodes > SimPT_Sim::Mesh::GetEdgeOwners  (  const Edge &  edge  )  const 
Find the intersecting neighbors of the end points of the edge.
Every edge has two neighbor cells, so there will be four of neighbors (two for every end point).
Definition at line 455 of file Mesh.cpp.
References SimPT_Sim::NeighborNodes::GetCell(), SimPT_Sim::Edge::GetFirst(), SimPT_Sim::Cell::GetIndex(), GetNodeOwningNeighbors(), and SimPT_Sim::Edge::GetSecond().
Referenced by SimPT_Sim::MeshCheck::CheckEdgeOwners(), and FindWall().
void SimPT_Sim::Mesh::getValues  (  double *  values  ) 
Used for interacting with ODEsolvers.
void SimPT_Sim::Mesh::RemoveNodeFromOwnerLists  (  Node *  node  ) 
void SimPT_Sim::Mesh::UpdateNodeOwningWalls  (  Wall *  wall  ) 
Set ownerships of node <> cell or update them after cell division.
Sets and/or corrects the list of node owning walls of the nodes on this wall. Completely corrects the node owning walls of the nodes in between of the end points. Removes wrong entries and adds this wall in the node owning wall list of the end points of the wall. (So if another wall isn't contained in the list of node owning walls of an end point, it won't be added)
Definition at line 829 of file Mesh.cpp.
References SimPT_Sim::Cell::GetNodes(), and SimPT_Sim::Container::make_circular().