MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <HSolveActive.h>
Public Member Functions | |
HSolveActive () | |
void | reinit (ProcPtr info) |
void | setup (Id seed, double dt) |
void | step (ProcPtr info) |
Equivalent to process. More... | |
![]() | |
void | setup (Id seed, double dt) |
void | solve () |
![]() | |
double | getA (unsigned int row, unsigned int col) const |
double | getB (unsigned int row) const |
unsigned int | getSize () const |
double | getVMid (unsigned int row) const |
HinesMatrix () | |
void | setup (const vector< TreeNodeStruct > &tree, double dt) |
Protected Attributes | |
vector< double > | ca_ |
Ca conc in each pool. More... | |
vector< double > | caActivation_ |
calcium pool More... | |
int | caAdvance_ |
vector< CaConcStruct > | caConc_ |
Ca pool info. More... | |
vector< Id > | caConcId_ |
calcium from difshells More... | |
vector< unsigned int > | caCount_ |
each compartment More... | |
vector< int > | caDependIndex_ |
depdt channel depend upon? More... | |
int | caDiv_ |
double | caMax_ |
double | caMin_ |
vector< LookupRow * > | caRow_ |
vector< LookupRow > | caRowCompt_ |
LookupTable | caTable_ |
vector< double * > | caTarget_ |
vector< unsigned int > | chan2compt_ |
vector< unsigned int > | chan2state_ |
a state index More... | |
vector< ChannelStruct > | channel_ |
to compartment: chan2compt More... | |
vector< int > | channelCount_ |
compartment More... | |
vector< Id > | channelId_ |
Used for localIndex-ing. More... | |
vector< LookupColumn > | column_ |
to lookup for this species More... | |
vector< CurrentStruct > | current_ |
Channel current. More... | |
vector< currentVecIter > | currentBoundary_ |
vector< double > | externalCalcium_ |
vector< double > | externalCurrent_ |
vector< Id > | gateId_ |
Used for localIndex-ing. More... | |
vector< bool > | gCaDepend_ |
depend on Ca conc? More... | |
vector< unsigned int > | outCa_ |
vector< unsigned int > | outIk_ |
vector< unsigned int > | outVm_ |
vector< SpikeGenStruct > | spikegen_ |
vector< double > | state_ |
Fraction of gates open. More... | |
vector< SynChanStruct > | synchan_ |
int | vDiv_ |
double | vMax_ |
double | vMin_ |
LookupTable | vTable_ |
![]() | |
vector< CompartmentStruct > | compartment_ |
vector< Id > | compartmentId_ |
map< unsigned int, InjectStruct > | inject_ |
vector< TreeNodeStruct > | tree_ |
vector< double > | V_ |
![]() | |
vector< vdIterator > | backOperand_ |
double | dt_ |
vector< double > | HJ_ |
vector< double > | HJCopy_ |
vector< double > | HS_ |
vector< JunctionStruct > | junction_ |
unsigned int | nCompt_ |
vector< vdIterator > | operand_ |
int | stage_ |
reached. Used in getA. More... | |
vector< double > | VMid_ |
middle of a time step. More... | |
Private Types | |
typedef vector< CurrentStruct > ::iterator | currentVecIter |
Private Member Functions | |
void | advanceCalcium () |
void | advanceChannels (double dt) |
void | advanceSynChans (ProcPtr info) |
void | backwardSubstitute () |
void | calculateChannelCurrents () |
void | cleanup () |
void | createLookupTables () |
void | forwardEliminate () |
void | manageOutgoingMessages () |
void | readCalcium () |
void | readExternalChannels () |
void | readGates () |
void | readHHChannels () |
void | readSynapses () |
void | reinitCalcium () |
void | reinitChannels () |
void | reinitCompartments () |
void | reinitSpikeGens (ProcPtr info) |
void | sendSpikes (ProcPtr info) |
void | sendValues (ProcPtr info) |
void | updateMatrix () |
Static Private Attributes | |
static const int | INSTANT_X = 1 |
static const int | INSTANT_Y = 2 |
static const int | INSTANT_Z = 4 |
Additional Inherited Members | |
![]() | |
typedef vector< double >::iterator | vdIterator |
![]() | |
void | backwardSubstitute () |
void | forwardEliminate () |
void | updateMatrix () |
Definition at line 29 of file HSolveActive.h.
|
private |
Definition at line 31 of file HSolveActive.h.
HSolveActive::HSolveActive | ( | ) |
Definition at line 33 of file HSolveActive.cpp.
|
private |
Definition at line 153 of file HSolveActive.cpp.
|
private |
Definition at line 218 of file HSolveActive.cpp.
References LookupRow::row.
|
private |
SynChans are currently not under solver's control
Definition at line 338 of file HSolveActive.cpp.
|
private |
|
private |
Integration: Defined in HSolveActive.cpp
Definition at line 69 of file HSolveActive.cpp.
|
private |
Definition at line 676 of file HSolveActiveSetup.cpp.
References caDependIndex_, and gCaDepend_.
Referenced by setup().
|
private |
Definition at line 339 of file HSolveActiveSetup.cpp.
References LookupTable::addColumns(), caCount_, caDependIndex_, caDiv_, caMax_, caMin_, caRow_, caRowCompt_, caTable_, channel_, LookupTable::column(), column_, gateId_, gCaDepend_, Field< A >::get(), HSolveUtils::rates(), HSolveUtils::Grid::size(), vDiv_, vMax_, vMin_, and vTable_.
Referenced by setup().
|
private |
|
private |
Definition at line 598 of file HSolveActiveSetup.cpp.
References caConcId_, channelId_, HSolvePassive::compartmentId_, outCa_, outIk_, outVm_, and HSolveUtils::targets().
Referenced by setup().
|
private |
Definition at line 252 of file HSolveActiveSetup.cpp.
References ca_, caActivation_, caConc_, caConcId_, caCount_, HSolveUtils::caDepend(), caDependIndex_, HSolveUtils::caTarget(), caTarget_, channel_, channelCount_, channelId_, HinesMatrix::dt_, externalCalcium_, Field< A >::get(), and HinesMatrix::nCompt_.
Referenced by setup().
|
private |
Definition at line 579 of file HSolveActiveSetup.cpp.
References HSolvePassive::compartmentId_, and externalCurrent_.
Referenced by setup().
|
private |
Definition at line 237 of file HSolveActiveSetup.cpp.
References channelId_, gateId_, HSolveUtils::gates(), gCaDepend_, and Field< A >::get().
Referenced by setup().
|
private |
Setting up of data structures: Defined in HSolveActiveSetup.cpp
Definition at line 162 of file HSolveActiveSetup.cpp.
References chan2compt_, chan2state_, channel_, channelCount_, channelId_, HSolvePassive::compartmentId_, current_, currentBoundary_, CurrentStruct::Ek, ChannelStruct::Gbar_, Field< A >::get(), HSolveUtils::hhchannels(), ChannelStruct::instant_, ChannelStruct::modulation_, HinesMatrix::nCompt_, ChannelStruct::setPowers(), and state_.
Referenced by setup().
|
private |
Reads in SynChans and SpikeGens.
Unlike Compartments, HHChannels, etc., neither of these are zombified. In other words, their fields are not managed by HSolve, and their "process" functions are invoked to do their calculations. For SynChans, the process calls are made by their respective clocks, and hence the process message is not dropped. On the other hand, we drop the SpikeGen process messages here, and explicitly call the SpikeGen process() from the HSolve via a pointer.
Definition at line 538 of file HSolveActiveSetup.cpp.
References ObjId::bad(), HSolvePassive::compartmentId_, SynChanStruct::compt_, Msg::deleteMsg(), SynChanStruct::elm_, Cinfo::findFinfo(), DestFinfo::getFid(), SpikeGen::initCinfo(), HinesMatrix::nCompt_, spikegen_, HSolveUtils::spikegens(), synchan_, HSolveUtils::synchans(), and HSolvePassive::V_.
Referenced by setup().
void HSolveActive::reinit | ( | ProcPtr | info | ) |
Definition at line 43 of file HSolveActiveSetup.cpp.
References externalCurrent_, reinitCalcium(), reinitChannels(), reinitCompartments(), reinitSpikeGens(), and sendValues().
Referenced by HSolve::reinit().
|
private |
Definition at line 67 of file HSolveActiveSetup.cpp.
References ca_, caActivation_, and caConc_.
Referenced by reinit().
|
private |
Definition at line 78 of file HSolveActiveSetup.cpp.
References ca_, caCount_, caRow_, caRowCompt_, caTable_, channel_, channelCount_, column_, externalCalcium_, LookupTable::lookup(), LookupTable::row(), state_, HSolvePassive::V_, and vTable_.
Referenced by reinit().
|
private |
Definition at line 61 of file HSolveActiveSetup.cpp.
References HinesMatrix::nCompt_, HSolvePassive::tree_, and HSolvePassive::V_.
Referenced by reinit().
|
private |
Reinit code: Defined in HSolveActiveSetup.cpp
Definition at line 54 of file HSolveActiveSetup.cpp.
References spikegen_.
Referenced by reinit().
|
private |
Definition at line 343 of file HSolveActive.cpp.
|
private |
This function dispatches state values via any source messages on biophysical objects which have been taken over.
Definition at line 355 of file HSolveActive.cpp.
References CaConcBase::concOut(), ChanBase::IkOut(), and moose::CompartmentBase::VmOut().
Referenced by reinit().
void HSolveActive::setup | ( | Id | seed, |
double | dt | ||
) |
Definition at line 17 of file HSolveActiveSetup.cpp.
References cleanup(), createLookupTables(), manageOutgoingMessages(), readCalcium(), readExternalChannels(), readGates(), readHHChannels(), readSynapses(), and HSolvePassive::setup().
Referenced by HSolve::setup().
void HSolveActive::step | ( | ProcPtr | info | ) |
Equivalent to process.
Definition at line 45 of file HSolveActive.cpp.
References HSolvePassive::backwardSubstitute(), ProcInfo::dt, and HSolvePassive::forwardEliminate().
Referenced by HSolve::process().
|
private |
Definition at line 86 of file HSolveActive.cpp.
References InjectStruct::injectBasal, InjectStruct::injectVarying, and value.
|
protected |
Ca conc in each pool.
Definition at line 81 of file HSolveActive.h.
Referenced by HSolve::getCa(), readCalcium(), reinitCalcium(), reinitChannels(), and HSolve::setCa().
|
protected |
calcium pool
Ca current entering each
Definition at line 82 of file HSolveActive.h.
Referenced by HSolve::iCa(), readCalcium(), and reinitCalcium().
|
protected |
Solver parameters: exposed as fields in MOOSE caAdvance_: This flag determines how current flowing into a calcium pool is computed. A value of 0 means that the membrane potential at the beginning of the time-step is used for the calculation. This is how GENESIS does its computations. A value of 1 means the membrane potential at the middle of the time-step is used. This is the correct way of integration, and is the default way.
Definition at line 53 of file HSolveActive.h.
Referenced by HSolve::getCaAdvance(), and HSolve::setCaAdvance().
|
protected |
Ca pool info.
Definition at line 80 of file HSolveActive.h.
Referenced by HSolve::getCa(), HSolve::getCaBasal(), HSolve::getCaCeiling(), HSolve::getCaFloor(), HSolve::iCa(), readCalcium(), reinitCalcium(), HSolve::setCa(), HSolve::setCaBasal(), HSolve::setCaCeiling(), HSolve::setCaFloor(), and HSolve::setTauB().
|
protected |
calcium from difshells
Used for localIndex-ing.
Definition at line 123 of file HSolveActive.h.
Referenced by manageOutgoingMessages(), HSolve::mapIds(), readCalcium(), HSolve::unzombify(), and HSolve::zombify().
|
protected |
each compartment
Number of calcium pools in
Definition at line 91 of file HSolveActive.h.
Referenced by createLookupTables(), readCalcium(), and reinitChannels().
|
protected |
depdt channel depend upon?
Which pool does each Ca
Definition at line 93 of file HSolveActive.h.
Referenced by cleanup(), createLookupTables(), and readCalcium().
|
protected |
Definition at line 68 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getCaDiv(), and HSolve::setCaDiv().
|
protected |
Definition at line 67 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getCaMax(), and HSolve::setCaMax().
|
protected |
Definition at line 66 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getCaMin(), and HSolve::setCaMin().
|
protected |
Points into caRowCompt. For each channel, points to the appropriate pool's LookupRow in the caRowCompt vector. This value is then used by the channel. Also happens in HSolveActive::advanceChannels
Definition at line 104 of file HSolveActive.h.
Referenced by createLookupTables(), and reinitChannels().
|
protected |
Lookup row buffer. For each compartment, the lookup rows for calcium dependent channels are loaded into this vector before being used. The vector is then reused for the next compartment. This vector therefore has a size equal to the maximum number of calcium pools across all compartments. This is done in HSolveActive::advanceChannels
Definition at line 97 of file HSolveActive.h.
Referenced by createLookupTables(), and reinitChannels().
|
protected |
Definition at line 88 of file HSolveActive.h.
Referenced by createLookupTables(), and reinitChannels().
|
protected |
For each channel, which calcium pool is being fed? Points into caActivation.
Definition at line 84 of file HSolveActive.h.
Referenced by readCalcium().
|
protected |
Index of the compt to which a given (index) channel belongs.
Definition at line 114 of file HSolveActive.h.
Referenced by HSolve::getIk(), and readHHChannels().
|
protected |
a state index
Converts a chnnel index to
Definition at line 117 of file HSolveActive.h.
Referenced by HSolve::getX(), HSolve::getY(), HSolve::getZ(), readHHChannels(), HSolve::setX(), HSolve::setY(), and HSolve::setZ().
|
protected |
to compartment: chan2compt
Vector of channels. Link
Definition at line 76 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getHHChannelGbar(), HSolve::getInstant(), HSolve::getX(), HSolve::getY(), HSolve::getZ(), readCalcium(), readHHChannels(), reinitChannels(), HSolve::setHHChannelGbar(), HSolve::setHHmodulation(), HSolve::setInstant(), HSolve::setPowers(), HSolve::setX(), HSolve::setY(), and HSolve::setZ().
|
protected |
compartment
Number of channels in each
Definition at line 109 of file HSolveActive.h.
Referenced by readCalcium(), readHHChannels(), and reinitChannels().
|
protected |
Used for localIndex-ing.
Definition at line 124 of file HSolveActive.h.
Referenced by manageOutgoingMessages(), HSolve::mapIds(), readCalcium(), readGates(), readHHChannels(), HSolve::unzombify(), and HSolve::zombify().
|
protected |
to lookup for this species
Which column in the table
Definition at line 95 of file HSolveActive.h.
Referenced by createLookupTables(), and reinitChannels().
|
protected |
Channel current.
Internal data structures. Will also be accessed in derived class HSolve.
Definition at line 73 of file HSolveActive.h.
Referenced by HSolve::getEk(), HSolve::getGk(), HSolve::getIk(), HSolve::getIm(), readHHChannels(), HSolve::setEk(), and HSolve::setGk().
|
protected |
Used to designate compt boundaries in the current_ vector.
Definition at line 111 of file HSolveActive.h.
Referenced by HSolve::getIm(), and readHHChannels().
|
protected |
Definition at line 122 of file HSolveActive.h.
Referenced by HSolve::addConc(), readCalcium(), and reinitChannels().
|
protected |
External currents from channels that HSolve cannot internalize.
Definition at line 119 of file HSolveActive.h.
Referenced by HSolve::addGkEk(), readExternalChannels(), and reinit().
|
protected |
Used for localIndex-ing.
Definition at line 125 of file HSolveActive.h.
Referenced by createLookupTables(), and readGates().
|
protected |
depend on Ca conc?
Does the conductance
Definition at line 89 of file HSolveActive.h.
Referenced by cleanup(), createLookupTables(), and readGates().
|
staticprivate |
Definition at line 172 of file HSolveActive.h.
|
staticprivate |
Definition at line 173 of file HSolveActive.h.
|
staticprivate |
Definition at line 174 of file HSolveActive.h.
|
protected |
concOut info. Tells you which compartments have external calcium-dependent channels so that you can send out Calcium concentrations in only those compartments.
Definition at line 131 of file HSolveActive.h.
Referenced by manageOutgoingMessages().
|
protected |
Definition at line 135 of file HSolveActive.h.
Referenced by manageOutgoingMessages().
|
protected |
VmOut info. Tells you which compartments have external voltage-dependent channels (if any), so that you can send out Vm values only in those places
Definition at line 127 of file HSolveActive.h.
Referenced by manageOutgoingMessages().
|
protected |
Definition at line 78 of file HSolveActive.h.
Referenced by readSynapses(), and reinitSpikeGens().
|
protected |
Fraction of gates open.
Definition at line 74 of file HSolveActive.h.
Referenced by HSolve::getX(), HSolve::getY(), HSolve::getZ(), readHHChannels(), reinitChannels(), HSolve::setX(), HSolve::setY(), and HSolve::setZ().
|
protected |
Definition at line 79 of file HSolveActive.h.
Referenced by readSynapses().
|
protected |
Definition at line 65 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getVDiv(), and HSolve::setVDiv().
|
protected |
Definition at line 64 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getVMax(), and HSolve::setVMax().
|
protected |
vMin_, vMax_, vDiv_, caMin_, caMax_, caDiv_:
These are the parameters for the lookup tables for rate constants. 'min' and 'max' are the boundaries within which the function is defined. 'div' is the number of divisions between min and max.
Definition at line 63 of file HSolveActive.h.
Referenced by createLookupTables(), HSolve::getVMin(), and HSolve::setVMin().
|
protected |
Definition at line 87 of file HSolveActive.h.
Referenced by createLookupTables(), and reinitChannels().