MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <NeuroMesh.h>
Public Member Functions | |
void | buildNodeTree (const map< Id, unsigned int > &comptMap) |
void | buildStencil () |
Utility function to set up Stencil for diffusion in NeuroMesh. More... | |
double | extendedMeshEntryVolume (unsigned int fid) const |
Vol of all mesh Entries including abutting diff-coupled voxels. More... | |
bool | filterSpines (Id compt) |
double | getAdx (unsigned int curr, unsigned int &parentFid) const |
vector< double > | getCoordinates (unsigned int fid) const |
Virtual function to return coords of mesh Entry. More... | |
vector< unsigned int > | getDendVoxelsOnCompartment (ObjId compt) const |
double | getDiffLength () const |
vector< double > | getDiffusionArea (unsigned int fid) const |
Virtual function to return diffusion X-section area. More... | |
vector< double > | getDiffusionScaling (unsigned int fid) const |
Virtual function to return scale factor for diffusion. 1 here. More... | |
vector< Id > | getElecComptList () const |
vector< Id > | getElecComptMap () const |
vector< unsigned int > | getEndVoxelInCompt () const |
string | getGeometryPolicy () const |
unsigned int | getMeshDimensions (unsigned int fid) const |
Virtual function to return dimensions of specified entry. More... | |
double | getMeshEntryVolume (unsigned int fid) const |
Virtual function to return volume of mesh Entry. More... | |
unsigned int | getMeshType (unsigned int fid) const |
Virtual function to return MeshType of specified entry. More... | |
const vector< NeuroNode > & | getNodes () const |
unsigned int | getNumDiffCompts () const |
unsigned int | getNumSegments () const |
vector< unsigned int > | getParentVoxel () const |
bool | getSeparateSpines () const |
vector< int > | getSpineVoxelOnDendVoxel () const |
vector< unsigned int > | getSpineVoxelsOnCompartment (ObjId compt) const |
vector< unsigned int > | getStartVoxelInCompt () const |
vector< ObjId > | getSubTree (const Eref &e) const |
string | getSubTreePath (const Eref &e) const |
const vector< double > & | getVoxelArea () const |
const vector< double > & | getVoxelLength () const |
void | indexToSpace (unsigned int index, double &x, double &y, double &z) const |
void | innerBuildDefaultMesh (const Eref &e, double size, unsigned int numEntries) |
Virtual func to make a mesh with specified size and numEntries. More... | |
unsigned int | innerGetDimensions () const |
unsigned int | innerGetNumEntries () const |
void | innerHandleNodeInfo (const Eref &e, unsigned int numNodes, unsigned int numThreads) |
void | innerHandleRequestMeshStats (const Eref &e, const SrcFinfo2< unsigned int, vector< double > > *meshStatsFinfo) |
void | innerSetNumEntries (unsigned int n) |
Inherited virtual func. More... | |
void | insertDummyNodes () |
void | insertSingleDummy (unsigned int parent, unsigned int self, double x, double y, double z) |
void | matchCubeMeshEntries (const ChemCompt *other, vector< VoxelJunction > &ret) const |
void | matchMeshEntries (const ChemCompt *other, vector< VoxelJunction > &ret) const |
void | matchNeuroMeshEntries (const ChemCompt *other, vector< VoxelJunction > &ret) const |
double | nearest (double x, double y, double z, unsigned int &index) const |
NeuroMesh () | |
NeuroMesh (const NeuroMesh &other) | |
NeuroMesh & | operator= (const NeuroMesh &other) |
Id | putSomaAtStart (Id origSoma, unsigned int maxDiaIndex) |
This shuffles the nodes_ vector to put soma node at the start. More... | |
void | setDiffLength (double v) |
void | setGeometryPolicy (string v) |
void | setSeparateSpines (bool v) |
void | setSubTree (const Eref &e, vector< ObjId > compartments) |
void | setSubTreePath (const Eref &e, string path) |
void | transmitSpineInfo (const Eref &e) |
void | updateCoords () |
void | updateShaftParents () |
double | vGetEntireVolume () const |
const vector< double > & | vGetVoxelMidpoint () const |
Virtual func so that derived classes can return voxel midpoint. More... | |
const vector< double > & | vGetVoxelVolume () const |
Virtual func so that derived classes can pass voxel volume back. More... | |
bool | vSetVolumeNotRates (double volume) |
~NeuroMesh () | |
Public Member Functions inherited from MeshCompt | |
void | addRow (unsigned int index, const vector< double > &entry, const vector< unsigned int > &colIndex) |
void | clearExtendedMeshEntryVolume () |
Inherited virtual function to clear the vector of MeshEntryVolume. More... | |
void | extendStencil (const ChemCompt *other, const vector< VoxelJunction > &vj) |
Add boundary voxels to stencil for cross-solver junctions. More... | |
vector< unsigned int > | getNeighbors (unsigned int fid) const |
Looks up stencil to return vector of indices of coupled voxels. More... | |
const SparseMatrix< double > & | getStencil () const |
Returns entire sparse matrix of mesh. Used by diffusion solver. More... | |
unsigned int | getStencilRow (unsigned int meshIndex, const double **entry, const unsigned int **colIndex) const |
vector< double > | innerGetStencilRate (unsigned int row) const |
void | innerResetStencil () |
virtual func implemented here. More... | |
MeshCompt () | |
void | setStencilSize (unsigned int numRows, unsigned int numCols) |
~MeshCompt () | |
Public Member Functions inherited from ChemCompt | |
void | buildDefaultMesh (const Eref &e, double volume, unsigned int numEntries) |
void | buildJunction (ChemCompt *other, vector< VoxelJunction > &ret) |
ChemCompt () | |
void | flipRet (vector< VoxelJunction > &ret) const |
Utility function for swapping first and second in VoxelJunctions. More... | |
void | getChildConcs (const Eref &e, vector< double > &childConcs) const |
unsigned int | getDimensions () const |
double | getEntireVolume (const Eref &e) const |
bool | getIsMembraneBound () const |
string | getMethod () const |
unsigned int | getNumEntries () const |
double | getOneVoxelVolume (const Eref &e, unsigned int voxel) const |
vector< unsigned int > | getStencilIndex (unsigned int row) const |
vector< double > | getStencilRate (unsigned int row) const |
vector< double > | getVoxelMidpoint () const |
Returns vector of all voxel midpoints in compartment. More... | |
vector< double > | getVoxelVolume () const |
Returns vector of all voxel volumes in compartment. More... | |
void | handleNodeInfo (const Eref &e, unsigned int numNodes, unsigned int numThreads) |
MeshEntry * | lookupEntry (unsigned int index) |
void | resetStencil () |
unsigned int | setChildConcs (const Eref &e, const vector< double > &childConcs, unsigned int start) const |
void | setEntireVolume (const Eref &e, double volume) |
void | setIsMembraneBound (bool v) |
virtual void | setMeshEntryVolume (unsigned int fid, double volume) |
void | setMethod (string method) |
void | setNumEntries (unsigned int num) |
void | setOneVoxelVolume (const Eref &e, unsigned int voxel, double volume) |
void | setVolumeNotRates (double volume) |
virtual | ~ChemCompt () |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
Static Public Member Functions inherited from ChemCompt | |
static double | distance (double x, double y, double z) |
static const Cinfo * | initCinfo () |
static SrcFinfo1< vector < double > > * | voxelVolOut () |
Private Attributes | |
vector< double > | area_ |
double | diffLength_ |
string | geometryPolicy_ |
vector< Id > | head_ |
Id of shaft compartment. More... | |
vector< double > | length_ |
Pre-calculation of length of each MeshEntry. More... | |
vector< unsigned int > | nodeIndex_ |
vector< NeuroNode > | nodes_ |
vector< unsigned int > | parent_ |
Id of head compartment. More... | |
vector< unsigned int > | parentVoxel_ |
Index of parent voxel of spines. More... | |
bool | separateSpines_ |
Max permitted length constant for diffusion. More... | |
vector< Id > | shaft_ |
string | subTreePath_ |
double | surfaceGranularity_ |
vector< double > | vs_ |
The NeuroMesh represents sections of a neuron whose spatial attributes are obtained from a neuronal model. Like the CylMesh, this is pseudo-1 dimension: Only the axial dimension is considered for diffusion and subdivisions. Branching is also handled.
Dendritic spines typically contain different reaction systems from the dendrite, but each spine has the same reactions. So they deserve their own mesh: SpineMesh. The idea is the the SpineMesh has just the spine head compartment, which duplicate the same reactions, but does not diffuse to other spine heads. Instead it has an effective diffusion constant to the parent dendrite compartment, obtained by treating the spine neck as a diffusion barrier with zero volume.
Definition at line 31 of file NeuroMesh.h.
NeuroMesh::NeuroMesh | ( | ) |
Definition at line 287 of file NeuroMesh.cpp.
References diffLength_, and nodes_.
Referenced by initCinfo().
NeuroMesh::NeuroMesh | ( | const NeuroMesh & | other | ) |
Definition at line 306 of file NeuroMesh.cpp.
NeuroMesh::~NeuroMesh | ( | ) |
Definition at line 329 of file NeuroMesh.cpp.
void NeuroMesh::buildNodeTree | ( | const map< Id, unsigned int > & | comptMap | ) |
buildNodeTree: This connects up parent and child nodes and if needed inserts dummy nodes to build up the model tree.
void NeuroMesh::buildStencil | ( | ) |
Utility function to set up Stencil for diffusion in NeuroMesh.
Definition at line 1166 of file NeuroMesh.cpp.
References MeshCompt::addRow(), getAdx(), MeshCompt::innerResetStencil(), nodeIndex_, parentVoxel_, and MeshCompt::setStencilSize().
Referenced by updateCoords().
|
virtual |
Vol of all mesh Entries including abutting diff-coupled voxels.
Virtual function to return volume of mesh Entry, including for diffusively coupled voxels from other solvers.
Reimplemented from MeshCompt.
Definition at line 971 of file NeuroMesh.cpp.
References MeshCompt::extendedMeshEntryVolume(), getMeshEntryVolume(), and nodeIndex_.
bool NeuroMesh::filterSpines | ( | Id | compt | ) |
Returns true if it finds a compartment name that looks like it ought to be on a spine. It filters out the names "neck", "shaft", "spine" and "head". The latter two are classified into the head_ vector. The first two are classified into the shaft_ vector.
Definition at line 573 of file NeuroMesh.cpp.
References Id::element(), Element::getName(), head_, and shaft_.
double NeuroMesh::getAdx | ( | unsigned int | curr, |
unsigned int & | parentFid | ||
) | const |
Helper function for buildStencil, calculates diffusion term adx for rate between current compartment curr, and parent. By product: also passes back parent compartment index.
Definition at line 1126 of file NeuroMesh.cpp.
References CylBase::getDiffusionArea(), CylBase::getLength(), CylBase::getNumDivs(), NeuroNode::isDummyNode(), nodeIndex_, nodes_, NeuroNode::parent(), and NeuroNode::startFid().
Referenced by buildStencil().
|
virtual |
Virtual function to return coords of mesh Entry.
Virtual function to return coords of mesh Entry. For Cylindrical mesh, coords are x1y1z1 x2y2z2 r0 r1 phi0 phi1
Implements ChemCompt.
Definition at line 923 of file NeuroMesh.cpp.
References nodeIndex_, and nodes_.
vector< unsigned int > NeuroMesh::getDendVoxelsOnCompartment | ( | ObjId | compt | ) | const |
Definition at line 785 of file NeuroMesh.cpp.
References ObjId::id, and nodes_.
Referenced by initCinfo().
double NeuroMesh::getDiffLength | ( | ) | const |
Definition at line 405 of file NeuroMesh.cpp.
References diffLength_.
Referenced by initCinfo().
|
virtual |
Virtual function to return diffusion X-section area.
Virtual function to return diffusion X-section area for each neighbor.
Implements ChemCompt.
Definition at line 936 of file NeuroMesh.cpp.
References MeshCompt::getNeighbors(), nodeIndex_, and nodes_.
|
virtual |
Virtual function to return scale factor for diffusion. 1 here.
Virtual function to return scale factor for diffusion. I think all dendite tips need to return just one entry of 1.
Implements ChemCompt.
Definition at line 956 of file NeuroMesh.cpp.
vector< Id > NeuroMesh::getElecComptList | ( | ) | const |
Definition at line 738 of file NeuroMesh.cpp.
References nodes_.
Referenced by getSubTree(), and initCinfo().
vector< Id > NeuroMesh::getElecComptMap | ( | ) | const |
Definition at line 726 of file NeuroMesh.cpp.
References nodeIndex_, and nodes_.
Referenced by initCinfo().
vector< unsigned int > NeuroMesh::getEndVoxelInCompt | ( | ) | const |
Definition at line 762 of file NeuroMesh.cpp.
References nodes_.
Referenced by initCinfo().
string NeuroMesh::getGeometryPolicy | ( | ) | const |
Definition at line 436 of file NeuroMesh.cpp.
References geometryPolicy_.
Referenced by initCinfo().
|
virtual |
Virtual function to return dimensions of specified entry.
Implements ChemCompt.
Definition at line 900 of file NeuroMesh.cpp.
|
virtual |
Virtual function to return volume of mesh Entry.
Implements ChemCompt.
Definition at line 906 of file NeuroMesh.cpp.
References nodeIndex_, and nodes_.
Referenced by extendedMeshEntryVolume(), and SpineMesh::matchNeuroMeshEntries().
|
virtual |
Virtual function to return MeshType of specified entry.
Implements ChemCompt.
Definition at line 889 of file NeuroMesh.cpp.
References CYL, nodeIndex_, nodes_, and SPHERE_SHELL_SEG.
const vector< NeuroNode > & NeuroMesh::getNodes | ( | ) | const |
unsigned int NeuroMesh::getNumDiffCompts | ( | ) | const |
Definition at line 716 of file NeuroMesh.cpp.
References nodeIndex_.
Referenced by initCinfo().
unsigned int NeuroMesh::getNumSegments | ( | ) | const |
Definition at line 707 of file NeuroMesh.cpp.
References nodes_.
Referenced by initCinfo().
|
virtual |
Implements MeshCompt.
Definition at line 721 of file NeuroMesh.cpp.
References parentVoxel_.
Referenced by initCinfo().
bool NeuroMesh::getSeparateSpines | ( | ) | const |
Definition at line 702 of file NeuroMesh.cpp.
References separateSpines_.
Referenced by initCinfo().
vector< int > NeuroMesh::getSpineVoxelOnDendVoxel | ( | ) | const |
Definition at line 774 of file NeuroMesh.cpp.
References nodeIndex_, and parent_.
Referenced by initCinfo().
vector< unsigned int > NeuroMesh::getSpineVoxelsOnCompartment | ( | ObjId | compt | ) | const |
Definition at line 802 of file NeuroMesh.cpp.
References head_, ObjId::id, and shaft_.
Referenced by initCinfo().
vector< unsigned int > NeuroMesh::getStartVoxelInCompt | ( | ) | const |
Definition at line 750 of file NeuroMesh.cpp.
References nodes_.
Referenced by initCinfo().
Definition at line 670 of file NeuroMesh.cpp.
References getElecComptList().
Referenced by initCinfo().
string NeuroMesh::getSubTreePath | ( | const Eref & | e | ) | const |
Definition at line 688 of file NeuroMesh.cpp.
References subTreePath_.
Referenced by initCinfo().
|
virtual |
|
virtual |
Implements MeshCompt.
Definition at line 850 of file NeuroMesh.cpp.
References length_.
|
virtual |
Converts specified index to xyz coords of middle of voxel Values out of range return original xyz
Implements ChemCompt.
Definition at line 1283 of file NeuroMesh.cpp.
References Vec::a0(), Vec::a1(), Vec::a2(), CylBase::getNumDivs(), CylBase::getX(), CylBase::getY(), CylBase::getZ(), innerGetNumEntries(), nodeIndex_, nodes_, NeuroNode::parent(), Vec::pointOnLine(), and NeuroNode::startFid().
|
static |
Definition at line 66 of file NeuroMesh.cpp.
References getDendVoxelsOnCompartment(), getDiffLength(), getElecComptList(), getElecComptMap(), getEndVoxelInCompt(), getGeometryPolicy(), getNumDiffCompts(), getNumSegments(), getParentVoxel(), getSeparateSpines(), getSpineVoxelOnDendVoxel(), getSpineVoxelsOnCompartment(), getStartVoxelInCompt(), getSubTree(), getSubTreePath(), ChemCompt::initCinfo(), NeuroMesh(), neuroMeshCinfo, psdListOut(), setDiffLength(), setGeometryPolicy(), setSeparateSpines(), setSubTree(), setSubTreePath(), and spineListOut().
|
virtual |
Virtual func to make a mesh with specified size and numEntries.
This is a bit odd, effectively asks to build an imaginary neuron and then subdivide it. I'll make do with a ball-and-stick model: Soma with a single apical dendrite with reasonable diameter. I will interpret size as total length of neuron, not as volume. Soma will have a diameter of up to 20 microns, anything bigger than this is treated as soma of 20 microns + dendrite of (specified length - 10 microns) for radius of soma. This means we avoid having miniscule dendrites protruding from soma, the shortest one will be 10 microns.
Implements ChemCompt.
Definition at line 1078 of file NeuroMesh.cpp.
References diffLength_, dummy, nodeIndex_, nodes_, numEntries, and updateCoords().
|
virtual |
|
virtual |
Inherited virtual func. Returns number of MeshEntry in array
Implements ChemCompt.
Definition at line 1030 of file NeuroMesh.cpp.
References nodeIndex_.
Referenced by indexToSpace().
|
virtual |
void NeuroMesh::innerHandleRequestMeshStats | ( | const Eref & | e, |
const SrcFinfo2< unsigned int, vector< double > > * | meshStatsFinfo | ||
) |
|
virtual |
Inherited virtual func.
Inherited virtual func. Assigns number of MeshEntries. This one doesn't set exact number, because each compartment has to fit integral numbers of voxels.
Implements ChemCompt.
Definition at line 1040 of file NeuroMesh.cpp.
References diffLength_, nodes_, and updateCoords().
void NeuroMesh::insertDummyNodes | ( | ) |
Puts in all the required dummy nodes for the tree.
Definition at line 530 of file NeuroMesh.cpp.
References Field< A >::get(), insertSingleDummy(), and nodes_.
Referenced by setSubTree().
void NeuroMesh::insertSingleDummy | ( | unsigned int | parent, |
unsigned int | self, | ||
double | x, | ||
double | y, | ||
double | z | ||
) |
Puts in a dummy node between parent and self. Used to set up the correct size of proximal compartments.
Definition at line 503 of file NeuroMesh.cpp.
References NeuroNode::addChild(), NeuroNode::clearChildren(), doubleEq(), dummy, EPSILON, geometryPolicy_, nodes_, CylBase::setIsCylinder(), CylBase::setNumDivs(), NeuroNode::setParent(), CylBase::setX(), CylBase::setY(), and CylBase::setZ().
Referenced by insertDummyNodes().
void NeuroMesh::matchCubeMeshEntries | ( | const ChemCompt * | other, |
vector< VoxelJunction > & | ret | ||
) | const |
Definition at line 1329 of file NeuroMesh.cpp.
References NeuroNode::isDummyNode(), CylBase::matchCubeMeshEntries(), nodes_, NeuroNode::parent(), NeuroNode::startFid(), and surfaceGranularity_.
Referenced by matchMeshEntries().
|
virtual |
Returns the meshIndices (NOT spatial indices) of all adjacent mesh entry pairs on ether side of the (self, other) junction. meshIndices are the indices that look up entries in the vector of pools. spatialIndices are (iz * ny + iy) * nx + ix, that is, a linear conversion of cartesian spatial indices. So, for two touching cubes, the return vector is the paired meshIndices on either side of the plane of contact. If one mesh has a finer mesh than the other, or if there are more than one contact points from self to other (for example, at a corner), then we just have multiple pairs using the same meshIndex of the repeated voxel.
Implements ChemCompt.
Definition at line 1251 of file NeuroMesh.cpp.
References ChemCompt::flipRet(), matchCubeMeshEntries(), EndoMesh::matchMeshEntries(), SpineMesh::matchNeuroMeshEntries(), and matchNeuroMeshEntries().
void NeuroMesh::matchNeuroMeshEntries | ( | const ChemCompt * | other, |
vector< VoxelJunction > & | ret | ||
) | const |
Definition at line 1345 of file NeuroMesh.cpp.
Referenced by matchMeshEntries().
|
virtual |
This works a little different from other subclass versions of the function. It finds the index of the mesh entry whose centre is closest to the specified coords, and returns the distance to the centre. Doesn't worry about whether this distance is inside or outside cell.
Implements ChemCompt.
Definition at line 1299 of file NeuroMesh.cpp.
References CylBase::getNumDivs(), NeuroNode::isDummyNode(), CylBase::nearest(), nodes_, NeuroNode::parent(), and NeuroNode::startFid().
Definition at line 316 of file NeuroMesh.cpp.
References area_, diffLength_, geometryPolicy_, length_, nodeIndex_, nodes_, separateSpines_, and vs_.
This shuffles the nodes_ vector to put soma node at the start.
Definition at line 468 of file NeuroMesh.cpp.
References name, nodes_, and moose::strncasecmp().
void NeuroMesh::setDiffLength | ( | double | v | ) |
Definition at line 399 of file NeuroMesh.cpp.
References diffLength_, and updateCoords().
Referenced by initCinfo().
void NeuroMesh::setGeometryPolicy | ( | string | v | ) |
Definition at line 410 of file NeuroMesh.cpp.
References geometryPolicy_, and nodes_.
Referenced by initCinfo().
void NeuroMesh::setSeparateSpines | ( | bool | v | ) |
Flag. True if NeuroMesh should configure a separate SpineMesh. The process is that both the NeuroMesh and SpineMesh should have been created, and a spineList message sent from the NeuroMesh to the SpineMesh. This may cascade down to PsdMesh.
Definition at line 693 of file NeuroMesh.cpp.
References separateSpines_, and updateCoords().
Referenced by initCinfo().
The SubTree is a set of compartments to model. The first entry is the root of the tree, closest to the soma. The system does handle non-contiguous sets.
Definition at line 650 of file NeuroMesh.cpp.
References NeuroNode::buildSpinyTree(), NeuroNode::buildTree(), head_, insertDummyNodes(), nodes_, parent_, separateSpines_, shaft_, subTreePath_, transmitSpineInfo(), updateCoords(), and updateShaftParents().
Referenced by initCinfo(), and setSubTreePath().
void NeuroMesh::setSubTreePath | ( | const Eref & | e, |
string | path | ||
) |
This overloaded function sets up a presumed contiguous set of compartments, complains if they are not contiguous due to the check in NeuroNode::traverse.
The 'path' argument specifies a wildcard list of compartments, which can be also a comma-separated explicit list. Does not have to be in any particular order.
Definition at line 680 of file NeuroMesh.cpp.
References path, setSubTree(), subTreePath_, and wildcardFind().
Referenced by initCinfo().
void NeuroMesh::transmitSpineInfo | ( | const Eref & | e | ) |
Transmits the information about spines to SpineMesh and PsdMesh.
Definition at line 591 of file NeuroMesh.cpp.
References Eref::element(), Element::hasMsgs(), head_, parent_, SpineEntry::psdCoords(), psdListOut(), shaft_, and spineListOut().
Referenced by setSubTree().
void NeuroMesh::updateCoords | ( | ) |
Recomputes all local coordinate and meshing data following a change in any of the coord parameters
This assumes that lambda is the quantity to preserve, over numEntries. So when the compartment changes size, so does numEntries. Assumes that the soma node is at index 0.
Definition at line 343 of file NeuroMesh.cpp.
References area_, buildStencil(), diffLength_, CylBase::getMiddleArea(), CylBase::getNumDivs(), CylBase::getVoxelLength(), NeuroNode::isDummyNode(), length_, nodeIndex_, nodes_, NeuroNode::parent(), NeuroNode::startFid(), CylBase::voxelVolume(), and vs_.
Referenced by innerBuildDefaultMesh(), innerSetNumEntries(), setDiffLength(), setSeparateSpines(), and setSubTree().
void NeuroMesh::updateShaftParents | ( | ) |
converts the parents_ vector from identifying the parent NeuroNode to identifying the parent voxel, for each shaft entry.
Definition at line 620 of file NeuroMesh.cpp.
References Field< A >::get(), CylBase::getX(), CylBase::getY(), CylBase::getZ(), CylBase::nearest(), nodes_, NeuroNode::parent(), parent_, shaft_, and NeuroNode::startFid().
Referenced by setSubTree().
|
virtual |
Inherited virtual func. Returns volume of soma and whole dendritic tree of neuron, excluding spines. Any axonal compartments are also included.
Implements ChemCompt.
Definition at line 855 of file NeuroMesh.cpp.
References vs_.
|
virtual |
Virtual func so that derived classes can return voxel midpoint.
Implements ChemCompt.
Definition at line 819 of file NeuroMesh.cpp.
References CylBase::getCoordinates(), CylBase::getNumDivs(), NeuroNode::isDummyNode(), nodes_, NeuroNode::parent(), and vs_.
|
virtual |
Virtual func so that derived classes can pass voxel volume back.
Implements ChemCompt.
Definition at line 814 of file NeuroMesh.cpp.
References vs_.
|
virtual |
Inherited virtual func. In the NeuroMesh this carries out a rescaling on all dimensions. The length and diameter of each compartment are scaled by the same factor = volscale^(1/3) The rescaling carries through to the spines and PSDs, which are also updated. They are not permitted to change their own volumes.
Implements ChemCompt.
Definition at line 864 of file NeuroMesh.cpp.
References area_, diffLength_, CylBase::getDia(), CylBase::getLength(), length_, nodeIndex_, nodes_, parentVoxel_, CylBase::setDia(), CylBase::setLength(), CylBase::volume(), and vs_.
|
private |
Mesh junction area pre-calculations for each MeshEntry. This is the cross-section area of the middle of each voxel.
Definition at line 300 of file NeuroMesh.h.
Referenced by getVoxelArea(), operator=(), updateCoords(), and vSetVolumeNotRates().
|
private |
Definition at line 306 of file NeuroMesh.h.
Referenced by getDiffLength(), innerBuildDefaultMesh(), innerSetNumEntries(), NeuroMesh(), operator=(), setDiffLength(), updateCoords(), and vSetVolumeNotRates().
|
private |
Definition at line 316 of file NeuroMesh.h.
Referenced by getGeometryPolicy(), insertSingleDummy(), operator=(), and setGeometryPolicy().
|
private |
Id of shaft compartment.
Definition at line 330 of file NeuroMesh.h.
Referenced by filterSpines(), getSpineVoxelsOnCompartment(), setSubTree(), and transmitSpineInfo().
|
private |
Pre-calculation of length of each MeshEntry.
Definition at line 303 of file NeuroMesh.h.
Referenced by getVoxelLength(), operator=(), updateCoords(), and vSetVolumeNotRates().
|
private |
nodeIndex_[fid_for_MeshEntry]. Looks up index of NeuroNode from the fid of each MeshEntry. In other words, node# = nodeIndex_[ voxel# ]. This is needed because there are typically many voxels in each electrical compartment of the neuron. The nodes_ map closely to the electrical compartments.
Definition at line 287 of file NeuroMesh.h.
Referenced by buildStencil(), extendedMeshEntryVolume(), getAdx(), getCoordinates(), getDiffusionArea(), getElecComptMap(), getMeshEntryVolume(), getMeshType(), getNumDiffCompts(), getSpineVoxelOnDendVoxel(), indexToSpace(), innerBuildDefaultMesh(), innerGetNumEntries(), operator=(), updateCoords(), and vSetVolumeNotRates().
|
private |
Array of geometry specifiers for each segment of the neuronal model. Includes information equivalent to the CylMesh, as well as information to tie the node back to the original 'compartment' from the neuronal model.
Definition at line 270 of file NeuroMesh.h.
Referenced by getAdx(), getCoordinates(), getDendVoxelsOnCompartment(), getDiffusionArea(), getElecComptList(), getElecComptMap(), getEndVoxelInCompt(), getMeshEntryVolume(), getMeshType(), getNodes(), getNumSegments(), getStartVoxelInCompt(), indexToSpace(), innerBuildDefaultMesh(), innerSetNumEntries(), insertDummyNodes(), insertSingleDummy(), matchCubeMeshEntries(), nearest(), NeuroMesh(), operator=(), putSomaAtStart(), setGeometryPolicy(), setSubTree(), updateCoords(), updateShaftParents(), vGetVoxelMidpoint(), and vSetVolumeNotRates().
|
private |
Id of head compartment.
Definition at line 331 of file NeuroMesh.h.
Referenced by getSpineVoxelOnDendVoxel(), setSubTree(), transmitSpineInfo(), and updateShaftParents().
|
private |
Index of parent voxel of spines.
Index of parent voxel of each voxel. The root voxel has a parent of -1.
Definition at line 336 of file NeuroMesh.h.
Referenced by buildStencil(), getParentVoxel(), and vSetVolumeNotRates().
|
private |
Max permitted length constant for diffusion.
Flag. True if NeuroMesh should configure a separate SpineMesh. The process is that both the NeuroMesh and SpineMesh should have been created, and a spineList message sent from the NeuroMesh to the SpineMesh.
Definition at line 314 of file NeuroMesh.h.
Referenced by getSeparateSpines(), operator=(), setSeparateSpines(), and setSubTree().
|
private |
The shaft vector and the matching head vector track the dendritic spines. The parent is the voxel to which the spine is attached.
Definition at line 329 of file NeuroMesh.h.
Referenced by filterSpines(), getSpineVoxelsOnCompartment(), setSubTree(), transmitSpineInfo(), and updateShaftParents().
|
private |
Path of sub-tree used for the chemical model. This is undefined if the user assigns the subtree as a vector of objects, which is the case when using rdesigneur.
Definition at line 277 of file NeuroMesh.h.
Referenced by getSubTreePath(), setSubTree(), and setSubTreePath().
|
private |
Decides how finely to subdivide diffLength_ or radius or cubic mesh side when computing surfacearea of intersections with CubeMesh. Defaults to 0.1.
Definition at line 323 of file NeuroMesh.h.
Referenced by matchCubeMeshEntries().
|
private |
Volscale pre-calculations for each MeshEntry. vs = #molecules / vol where vol is expressed in m^3.
Definition at line 294 of file NeuroMesh.h.
Referenced by operator=(), updateCoords(), vGetEntireVolume(), vGetVoxelMidpoint(), vGetVoxelVolume(), and vSetVolumeNotRates().