130 double volume,
unsigned int numEntries ) = 0;
142 unsigned int numNodes,
unsigned int numThreads );
145 unsigned int numNodes,
unsigned int numThreads ) = 0;
178 static double distance(
double x,
double y,
double z );
203 const vector< double >& childConcs,
unsigned int start )
const;
236 vector< VoxelJunction > & ret )
const = 0;
245 virtual double nearest(
double x,
double y,
double z,
246 unsigned int& index )
const = 0;
253 double& x,
double& y,
double& z )
const = 0;
256 void flipRet( vector< VoxelJunction >& ret )
const;
262 virtual unsigned int getMeshType(
unsigned int fid )
279 virtual vector< unsigned int >
getNeighbors(
unsigned int fid )
313 const double** entry,
const unsigned int** colIndex )
325 const ChemCompt* other,
const vector< VoxelJunction >& vj ) = 0;
369 vector< unsigned int>,
370 vector< vector< unsigned int > >,
371 vector< vector< unsigned int > >
374 #endif // _CHEM_COMPT_H
static const Cinfo * initCinfo()
void setIsMembraneBound(bool v)
vector< double > getVoxelMidpoint() const
Returns vector of all voxel midpoints in compartment.
virtual double nearest(double x, double y, double z, unsigned int &index) const =0
virtual bool vSetVolumeNotRates(double volume)=0
Virtual function for actually doing this.
virtual double extendedMeshEntryVolume(unsigned int fid) const =0
Volume of mesh Entry including abutting diff-coupled voxels.
virtual void innerHandleNodeInfo(const Eref &e, unsigned int numNodes, unsigned int numThreads)=0
void setVolumeNotRates(double volume)
MeshEntry * lookupEntry(unsigned int index)
vector< double > getVoxelVolume() const
Returns vector of all voxel volumes in compartment.
vector< double > getStencilRate(unsigned int row) const
vector< unsigned int > getStencilIndex(unsigned int row) const
void setEntireVolume(const Eref &e, double volume)
void setOneVoxelVolume(const Eref &e, unsigned int voxel, double volume)
double getEntireVolume(const Eref &e) const
double getOneVoxelVolume(const Eref &e, unsigned int voxel) const
void buildJunction(ChemCompt *other, vector< VoxelJunction > &ret)
virtual unsigned int getMeshDimensions(unsigned int fid) const =0
Virtual function to return dimensions of specified entry.
virtual vector< double > getCoordinates(unsigned int fid) const =0
Virtual function to return coords of mesh Entry.
virtual void innerResetStencil()=0
static SrcFinfo1< vector< double > > * voxelVolOut()
unsigned int getNumEntries() const
unsigned int getDimensions() const
virtual vector< double > innerGetStencilRate(unsigned int row) const =0
Virtual func for getting stencil rates for the derived classes.
virtual vector< unsigned int > getNeighbors(unsigned int fid) const =0
Virtual function to return info on Entries connected to this one.
virtual unsigned int innerGetDimensions() const =0
virtual double vGetEntireVolume() const =0
static double distance(double x, double y, double z)
void getChildConcs(const Eref &e, vector< double > &childConcs) const
virtual const vector< double > & vGetVoxelVolume() const =0
Virtual func so that derived classes can pass voxel volume back.
virtual unsigned int innerGetNumEntries() const =0
virtual vector< double > getDiffusionScaling(unsigned int fid) const =0
Virtual function to return scale factor for diffusion. 1 here.
virtual vector< double > getDiffusionArea(unsigned int fid) const =0
Virtual function to return diffusion X-section area per neighbor.
virtual void indexToSpace(unsigned int index, double &x, double &y, double &z) const =0
bool getIsMembraneBound() const
void buildDefaultMesh(const Eref &e, double volume, unsigned int numEntries)
void setMethod(string method)
virtual void extendStencil(const ChemCompt *other, const vector< VoxelJunction > &vj)=0
unsigned int setChildConcs(const Eref &e, const vector< double > &childConcs, unsigned int start) const
void setNumEntries(unsigned int num)
virtual void clearExtendedMeshEntryVolume()=0
clear out extended mesh entries for rebuilding.
static unsigned int numNodes
virtual void setMeshEntryVolume(unsigned int fid, double volume)
virtual unsigned int getStencilRow(unsigned int meshIndex, const double **entry, const unsigned int **colIndex) const =0
SrcFinfo5< double, vector< double >, vector< unsigned int >, vector< vector< unsigned int > >, vector< vector< unsigned int > > > * meshSplit()
virtual const vector< double > & vGetVoxelMidpoint() const =0
Virtual func so that derived classes can return voxel midpoint.
vector< Boundary > boundaries_
Wrapper for self ptr.
virtual void matchMeshEntries(const ChemCompt *other, vector< VoxelJunction > &ret) const =0
virtual unsigned int getMeshType(unsigned int fid) const =0
Virtual function to return MeshType of specified entry.
void handleNodeInfo(const Eref &e, unsigned int numNodes, unsigned int numThreads)
virtual double getMeshEntryVolume(unsigned int fid) const =0
Virtual function to return volume of mesh Entry.
void flipRet(vector< VoxelJunction > &ret) const
Utility function for swapping first and second in VoxelJunctions.
virtual void innerSetNumEntries(unsigned int n)=0
virtual void innerBuildDefaultMesh(const Eref &e, double volume, unsigned int numEntries)=0