VPTissue Reference Manual
SimPT_Sim Namespace Reference

Namespace for the core simulator. More...

Namespaces

 BoundaryType
 Namespace for Types of boundary cells.
 
 ClockMan
 Namespace for clock and timekeeping related classes.
 
 Color
 Namespace for color utilities.
 
 Container
 Namespace for container related classes.
 
 Event
 Namespace event types raised by the simulator.
 
 RandomEngineType
 Namespace for Types of random engines.
 
 Util
 Namespace for miscellaneous utilities.
 
 WallType
 Namespace for Types walls.
 

Classes

struct  AreaMoment
 Structure with functionality for calculations of the area moment of inertia. More...
 
class  AttributeContainer
 Manages attributes. More...
 
class  AttributeStore
 Store and manage attributes. More...
 
class  CBMBuilder
 The Copy-Based Mesh Builder directs the Mesh building process using another mesh. More...
 
class  Cell
 A cell contains walls and nodes. More...
 
class  CellAttributes
 Attributes of Cell. More...
 
class  CellChemistryTag
 Used in tag forwarding. More...
 
class  CellColorTag
 Used in tag forwarding. More...
 
class  CellDaughtersTag
 Used in tag forwarding. More...
 
class  CellDivider
 Class for handling cell division. More...
 
class  CellHousekeeper
 Class for handling maintenance of cell mechanics (cell housekeeping). More...
 
class  CellHousekeepTag
 Used in tag forwarding. More...
 
class  CellSplitTag
 Used in tag forwarding. More...
 
class  CellToCellTransportBoundaryTag
 Used in tag forwarding. More...
 
class  CellToCellTransportTag
 Used in tag forwarding. More...
 
class  ChainHull
 Compute the convex hull of a set of two-dimensional points. More...
 
class  ComponentFactoryBase
 Interface for ComponentFactory. More...
 
class  ComponentFactoryProxy
 Proxy for interaction with Component Factory of model families. More...
 
struct  ComponentTraits
 Primary template never gets instantiated. More...
 
struct  ComponentTraits< CellChemistryTag >
 Traits for CellChemistry components. More...
 
struct  ComponentTraits< CellColorTag >
 Traits for CellColor components. More...
 
struct  ComponentTraits< CellDaughtersTag >
 Traits for CellDaughters components. More...
 
struct  ComponentTraits< CellHousekeepTag >
 Traits for CellHousekeep components. More...
 
struct  ComponentTraits< CellSplitTag >
 Traits for CellSplit components. More...
 
struct  ComponentTraits< CellToCellTransportBoundaryTag >
 Traits for CellToCellTransportBoundaryTag components. More...
 
struct  ComponentTraits< CellToCellTransportTag >
 Traits for CellToCellTransport components. More...
 
struct  ComponentTraits< DeltaHamiltonianTag >
 Traits for DeltaHamiltonian components. More...
 
struct  ComponentTraits< HamiltonianTag >
 Traits for Hamiltonian components. More...
 
struct  ComponentTraits< MoveGeneratorTag >
 Traits for MoveGenerator components. More...
 
struct  ComponentTraits< TimeEvolverTag >
 Traits for TimeEvolver components. More...
 
struct  ComponentTraits< WallChemistryTag >
 Traits for WallChemistry components. More...
 
struct  CoreData
 Core data with mesh, parameters, random engine and time data. More...
 
class  CoupledSim
 Coupled Simulator: multiple simulators and couplers. More...
 
class  CouplerFactories
 A coupler factory map that is used to register names for these couplers. More...
 
struct  CSRMatrix
 Represents a binary matrix with n rows and m columns in a Compressed Sparse Row representation. More...
 
class  DeltaHamiltonianTag
 Used in tag forwarding. More...
 
class  DurstenfeldShuffle
 Generate a random permuted sequence of integers 0,1,..., n. More...
 
class  Edge
 An Edge connects two nodes and is ambidextrous. More...
 
class  ExchangeCoupler
 ExchangeCoupler. More...
 
struct  GeoData
 Plain data structure with cell geometric data (such as area). More...
 
class  Geom
 Provides geometric functions. More...
 
class  HamiltonianTag
 Used in tag forwarding. More...
 
class  ICoupler
 Interface for the classes coupling two parallel simulations. More...
 
class  MBMBuilder
 MBMBDirector directs the Mesh building process using a MeshState object. More...
 
class  Mesh
 Structure of cells; key data structure. More...
 
class  MeshCheck
 Checks mesh concistency. More...
 
class  MeshGeometry
 Helper functions for mesh geometry. More...
 
class  MeshState
 Contains the state of the whole Mesh at a given simulation step. More...
 
class  MeshTopology
 Helper functions for mesh topology. More...
 
class  MoveGeneratorTag
 Used in tag forwarding. More...
 
class  NeighborNodes
 Structure of neighboring nodes: two neighboring nodes from standpoint of a given cell with an ordering "first" and "second" that corresponds with the node traversal order in that cell. More...
 
class  Node
 Node in cell wall. More...
 
class  NodeAttributes
 Attributes associated with a node. More...
 
class  NodeInserter
 Insertion of nodes in existing edges (contributes to the cell mechanics). More...
 
class  NodeMover
 Cell mechanics by displacement and insertion of nodes. More...
 
class  OdeintFactories0Map
 Stores factory functions for odeint integrator. More...
 
class  OdeintFactories2Map
 Stores factory functions for odeint integrator algorithm. More...
 
class  OdeintFactory0
 Produces factory function for odeint integrator algorithm. More...
 
class  OdeintFactory2
 Produces factory function for odeint integrator algorithm. More...
 
class  OdeintTraits
 Contains an odeint system, a state and a solver for it. More...
 
class  PBMBuilder
 Class that directs ptree based mesh building process. More...
 
class  PtreeTissueBuilder
 Class directs ptree based tissue building process. More...
 
class  RandomEngine
 Creates a random generator based on a seed. More...
 
class  Sim
 Simulator: mesh & parameters, model & algorithms. More...
 
class  SimInterface
 Simulator interface. More...
 
class  SimState
 Contains the state of the whole Simulator at a given simulation step. More...
 
class  SimWrapper
 Interface exposing the simulator to Java, Python, and C++ programs. More...
 
struct  SimWrapperResult
 All exceptions must be dealt with internally, so each method returns an object of this type. More...
 
struct  SimWrapperResult< void >
 Specialization of SimWrapperResult template for type void. More...
 
struct  TimeData
 Time data: current simulated time, number of step in simulation history. More...
 
class  TimeEvolverTag
 Used in tag forwarding. More...
 
class  TimeSlicer
 Simulator: mesh & parameters, model & algorithms. More...
 
class  Tissue
 Tissue data with mesh, cell attributes, node attributes and wall attributes. More...
 
class  TransportEquations
 Equations for reaction and transport processes. More...
 
class  Wall
 A cell wall, runs between cell corner points and consists of wall elements. More...
 
class  WallAttributes
 Attributes associated with a wall. More...
 
class  WallChemistryTag
 Used in tag forwarding. More...
 

Typedefs

using CellChemistryComponent = std::function< void(Cell *, double *)>
 CellChemistry component interface.
 
using CellColorComponent = std::function< std::array< double, 3 >(Cell *)>
 CellColor component interface.
 
using CellDaughtersComponent = std::function< void(Cell *, Cell *)>
 CellDaughters component interface.
 
using CellHousekeepComponent = std::function< void(Cell *)>
 CellHousekeep component interface.
 
using CellSplitComponent = std::function< std::tuple< bool, bool, std::array< double, 3 >>(Cell *)>
 CellSplit component interface.
 
using CellToCellTransportBoundaryComponent = std::function< void(Wall *w, double *dchem_c1, double *dchem_c2)>
 CellToCellTransport boundary condition component interface.
 
using CellToCellTransportComponent = std::function< void(Wall *, double *, double *)>
 CellToCellTransport component interface.
 
using CellType = unsigned int
 We have a CellType, but for now it is is just an unsigned int.
 
using DeltaHamiltonianComponent = std::function< double(const NeighborNodes &, Node *, std::array< double, 3 >)>
 DeltaHamiltonian component interface.
 
using HamiltonianComponent = std::function< double(Cell *)>
 Hamiltonian component interface.
 
using MoveGeneratorComponent = std::function< std::array< double, 3 >()>
 MoveGenerator component interface.
 
using SimTimingTraits = ClockMan::ClockTraits< ClockMan::ClockCLib, std::chrono::milliseconds >
 
using TimeEvolverComponent = std::function< std::tuple< SimTimingTraits::CumulativeTimings, bool >(double, SimPhase)>
 Time Evolver component interface.
 
using WallChemistryComponent = std::function< void(Wall *, double *, double *)>
 Wall chemistry component interface.
 

Enumerations

enum  BoundaryType { None, NoFlux, SourceSink, SAM }
 Enumerates cell boundary types.
 
enum  SimPhase {
  NONE, _1, _2, _3,
  _4, COUPLING
}
 
enum  SimWrapperStatus { SUCCESS, FAILURE }
 Shows whether a time step was a success or not.
 

Functions

template<>
std::map< std::string, std::vector< std::string > > & AttributeContainer::Attributes< std::string > ()
 
template<>
const std::map< std::string, std::vector< std::string > > & AttributeContainer::Attributes< std::string > () const
 
template<>
AttributeStore::MapType< std::string > & AttributeStore::IndexMap< std::string > ()
 
template<>
const AttributeStore::MapType< std::string > & AttributeStore::IndexMap< std::string > () const
 
GeoData ModifyForMove (const GeoData &old_geo, const std::array< double, 3 > &nb1_p, const std::array< double, 3 > &nb2_p, const std::array< double, 3 > &now_p, const std::array< double, 3 > &mov_p)
 
AreaMoment operator+ (const AreaMoment &i1, const AreaMoment &i2)
 
GeoData operator+ (const GeoData &i1, const GeoData &i2)
 
AreaMoment operator- (const AreaMoment &i1, const AreaMoment &i2)
 
GeoData operator- (const GeoData &i1, const GeoData &i2)
 
bool operator< (ChainHull::Point const &p1, ChainHull::Point const &p2)
 Required to sort points (e.g. More...
 
std::ostream & operator<< (std::ostream &os, BoundaryType b)
 
ostream & operator<< (std::ostream &os, const NeighborNodes &n)
 Insert Neighbor into output stream.
 
ostream & operator<< (ostream &os, Node const &n)
 
std::ostream & operator<< (std::ostream &os, const AreaMoment &i)
 
std::ostream & operator<< (std::ostream &os, const Edge &e)
 
ostream & operator<< (ostream &os, CellAttributes const &c)
 
ostream & operator<< (std::ostream &os, const AttributeStore &a)
 Insertion of text representation in ostream.
 
std::ostream & operator<< (std::ostream &os, const Node &n)
 
std::ostream & operator<< (std::ostream &os, const GeoData &c)
 
std::ostream & operator<< (std::ostream &os, Cell const &v)
 
ostream & operator<< (ostream &os, const Wall &w)
 
ostream & operator<< (ostream &os, const Cell &c)
 
std::istream & operator>> (std::istream &is, BoundaryType &b)
 
template<typename T >
void para_seed (std::vector< T > &rngs, const unsigned long seed)
 Seed a vector of random number generators and splits in 'n' parallel streams using the leapfrog scheme, where 'n' is the size of the vector 'rngs'. More...
 
template<typename T >
void para_seed (std::vector< T > &rngs, const std::string &state)
 Seed a vector of random number generators and splits in 'n' parallel streams using the leapfrog scheme, where 'n' is the size of the vector 'rngs'. More...
 
template<typename R >
ReduceCellWalls (Cell *cell, std::function< R(Cell *, Cell *, Wall *)> f)
 Traverse walls of cell and apply functor.
 

Detailed Description

Namespace for the core simulator.

Function Documentation

bool SimPT_Sim::operator< ( ChainHull::Point const &  p1,
ChainHull::Point const &  p2 
)

Required to sort points (e.g.

Qt's qSort()).

Definition at line 72 of file ChainHull.cpp.

template<typename T >
void SimPT_Sim::para_seed ( std::vector< T > &  rngs,
const unsigned long  seed 
)

Seed a vector of random number generators and splits in 'n' parallel streams using the leapfrog scheme, where 'n' is the size of the vector 'rngs'.

This function is used as a quick utility routine in RandomEngine::SetState and might be replaced in the future with a C++14 polymorphic lambda.

Definition at line 115 of file RandomEngine.cpp.

template<typename T >
void SimPT_Sim::para_seed ( std::vector< T > &  rngs,
const std::string &  state 
)

Seed a vector of random number generators and splits in 'n' parallel streams using the leapfrog scheme, where 'n' is the size of the vector 'rngs'.

This function is used as a quick utility routine in RandomEngine::SetState and might be replaced in the future with a C++14 polymorphic lambda.

Definition at line 152 of file RandomEngine.cpp.