MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <HinesMatrix.h>
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().
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<<().
double HinesMatrix::getB | ( | unsigned int | row | ) | const |
Definition at line 436 of file HinesMatrix.cpp.
References HS_.
Referenced by operator<<().
unsigned int HinesMatrix::getSize | ( | ) | const |
Definition at line 370 of file HinesMatrix.cpp.
References nCompt_.
Referenced by operator<<().
double HinesMatrix::getVMid | ( | unsigned int | row | ) | const |
Definition at line 441 of file HinesMatrix.cpp.
References VMid_.
Referenced by operator<<().
|
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().
|
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().
|
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().
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().
|
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().