|
MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <HinesMatrix.h>
Inheritance diagram for HinesMatrix:
Collaboration diagram for HinesMatrix:Public Member Functions | |
| 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 Types | |
| typedef vector< double >::iterator | vdIterator |
Protected Attributes | |
| 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 Member Functions | |
| void | clear () |
| void | makeJunctions () |
| void | makeMatrix () |
| void | makeOperands () |
| elimination easier. More... | |
Private Attributes | |
| vector< vector< unsigned int > > | coupled_ |
| vector< double > | Ga_ |
| map< unsigned int, unsigned int > | groupNumber_ |
| map< unsigned int, vdIterator > | operandBase_ |
| const vector< TreeNodeStruct > * | tree_ |
| setup. More... | |
Definition at line 55 of file HinesMatrix.h.
|
protected |
Definition at line 68 of file HinesMatrix.h.
| HinesMatrix::HinesMatrix | ( | ) |
Definition at line 16 of file HinesMatrix.cpp.
|
private |
Definition at line 53 of file HinesMatrix.cpp.
References backOperand_, coupled_, dt_, Ga_, groupNumber_, HJ_, HJCopy_, HS_, junction_, nCompt_, operand_, operandBase_, stage_, tree_, and VMid_.
Referenced by setup().
Here is the caller graph for this function:| double HinesMatrix::getA | ( | unsigned int | row, |
| unsigned int | col | ||
| ) | const |
Definition at line 375 of file HinesMatrix.cpp.
References coupled_, group(), groupNumber_, HJ_, HS_, nCompt_, and stage_.
Referenced by operator<<().
Here is the call graph for this function:
Here is the caller graph for this function:| double HinesMatrix::getB | ( | unsigned int | row | ) | const |
Definition at line 436 of file HinesMatrix.cpp.
References HS_.
Referenced by operator<<().
Here is the caller graph for this function:| unsigned int HinesMatrix::getSize | ( | ) | const |
Definition at line 370 of file HinesMatrix.cpp.
References nCompt_.
Referenced by operator<<().
Here is the caller graph for this function:| double HinesMatrix::getVMid | ( | unsigned int | row | ) | const |
Definition at line 441 of file HinesMatrix.cpp.
References VMid_.
Referenced by operator<<().
Here is the caller graph for this function:
|
private |
This function creates junction structs to be stored in junction_. It does so by first looking through all compartments and finding those which have more than zero or one child. The zero-one child compts are left alone. coupled_ is populated with the rest of the compartments. Each element of coupled_ is sorted (they are all unsigned ints) and coupled_ itself is sorted by the first element in each element (groupCompare does this comparison in HinesMatrix.cpp). Note: the children themselves are unsigned ints that store the Hines index of the corresponding child compartment. So essentially, at each branch, a JunctionStruct is created for each child, which contains the hines index of that child and its rank, which is group-size() - childIndex - 1.
Definition at line 84 of file HinesMatrix.cpp.
References coupled_, group(), groupCompare(), groupNumber_, junction_, and nCompt_.
Referenced by setup().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Populates HS_ and HJ_. All of the electrical circuit analysis goes into this one single function (and updateMatrix, of course).
Definition at line 133 of file HinesMatrix.cpp.
References coupled_, dt_, Ga_, group(), HJ_, HJCopy_, HS_, junction_, nCompt_, operandBase_, and tree_.
Referenced by setup().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
elimination easier.
Makes operands in order to make forward
Definition at line 226 of file HinesMatrix.cpp.
References backOperand_, coupled_, group(), groupNumber_, HS_, junction_, nCompt_, operand_, operandBase_, and VMid_.
Referenced by setup().
Here is the call graph for this function:
Here is the caller graph for this function:| void HinesMatrix::setup | ( | const vector< TreeNodeStruct > & | tree, |
| double | dt | ||
| ) |
Definition at line 25 of file HinesMatrix.cpp.
References clear(), dt_, Ga_, makeJunctions(), makeMatrix(), makeOperands(), nCompt_, and tree_.
Referenced by HSolvePassive::setup().
Here is the call graph for this function:
Here is the caller graph for this function:
|
protected |
Definition at line 86 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), and makeOperands().
|
private |
Contains a list of all children of a given compt. Also contains the parent itself. i.e., for each compartment that has more than one child, coupled_ stores a vector containing the children of the compartment and the compartment itself. coupled_ is therefore a vector of such vectors.
Definition at line 115 of file HinesMatrix.h.
Referenced by clear(), getA(), makeJunctions(), makeMatrix(), and makeOperands().
|
protected |
Definition at line 71 of file HinesMatrix.h.
Referenced by HSolvePassive::clear(), clear(), HSolvePassive::initialize(), makeMatrix(), HSolveActive::readCalcium(), HSolvePassive::setup(), and setup().
|
private |
Definition at line 114 of file HinesMatrix.h.
Referenced by clear(), makeMatrix(), and setup().
|
private |
Tells you the index of a compartment's group within coupled_, given the compartment's Hines index.
Definition at line 124 of file HinesMatrix.h.
Referenced by clear(), getA(), makeJunctions(), and makeOperands().
|
protected |
Hines, junctions. Flattened array containing the off-diagonal elements of the Hines matrix
Definition at line 79 of file HinesMatrix.h.
Referenced by clear(), getA(), makeMatrix(), and HSolvePassive::updateMatrix().
|
protected |
Definition at line 82 of file HinesMatrix.h.
Referenced by clear(), makeMatrix(), and HSolvePassive::updateMatrix().
|
protected |
Hines, series. Flattened array containing the tridiagonal of the approximately tridiagonal Hines matrix, stacked against the column vector "b" that appears on the RHS of the equation that we're trying to solve: Ax=b.
Definition at line 74 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), HSolvePassive::forwardEliminate(), getA(), getB(), makeMatrix(), makeOperands(), and HSolvePassive::updateMatrix().
|
protected |
Definition at line 73 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), HSolvePassive::forwardEliminate(), makeJunctions(), makeMatrix(), and makeOperands().
|
protected |
Definition at line 70 of file HinesMatrix.h.
Referenced by HSolve::addInject(), HSolvePassive::backwardSubstitute(), clear(), HSolvePassive::forwardEliminate(), getA(), HSolve::getIm(), HSolve::getInject(), getSize(), HSolvePassive::initialize(), makeJunctions(), makeMatrix(), makeOperands(), HSolveActive::readCalcium(), HSolveActive::readHHChannels(), HSolveActive::readSynapses(), HSolveActive::reinitCompartments(), HSolve::setInject(), setup(), and HSolvePassive::storeTree().
|
protected |
Definition at line 85 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), HSolvePassive::forwardEliminate(), and makeOperands().
|
private |
Contains iterators into HJ_ demarcating where a child's neighbours begin. Used for iterating through HJ_ along with junction_.
Definition at line 121 of file HinesMatrix.h.
Referenced by clear(), makeMatrix(), and makeOperands().
|
protected |
reached. Used in getA.
Which stage the simulation has
Definition at line 87 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), HSolvePassive::forwardEliminate(), getA(), and HSolvePassive::updateMatrix().
|
private |
setup.
Stores compt info for
Definition at line 112 of file HinesMatrix.h.
Referenced by clear(), makeMatrix(), and setup().
|
protected |
middle of a time step.
Compartment voltage at the
Definition at line 83 of file HinesMatrix.h.
Referenced by HSolvePassive::backwardSubstitute(), clear(), getVMid(), and makeOperands().