MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CaConc Class Reference

#include <CaConc.h>

+ Inheritance diagram for CaConc:
+ Collaboration diagram for CaConc:

Public Member Functions

 CaConc ()
 
void vCurrent (const Eref &e, double I)
 
void vCurrentFraction (const Eref &e, double I, double fraction)
 
void vDecrease (const Eref &e, double I)
 
double vGetB (const Eref &e) const
 
double vGetCa (const Eref &e) const
 
double vGetCaBasal (const Eref &e) const
 
double vGetCeiling (const Eref &e) const
 
double vGetFloor (const Eref &e) const
 
double vGetTau (const Eref &e) const
 
void vIncrease (const Eref &e, double I)
 
void vProcess (const Eref &, ProcPtr info)
 
void vReinit (const Eref &, ProcPtr info)
 
void vSetB (const Eref &e, double val)
 
void vSetCa (const Eref &e, double val)
 
void vSetCaBasal (const Eref &e, double val)
 
void vSetCeiling (const Eref &e, double val)
 
void vSetFloor (const Eref &e, double val)
 
void vSetTau (const Eref &e, double val)
 
- Public Member Functions inherited from CaConcBase
 CaConcBase ()
 
void current (const Eref &e, double I)
 
void currentFraction (const Eref &e, double I, double fraction)
 
void decrease (const Eref &e, double I)
 
double getB (const Eref &e) const
 
double getCa (const Eref &e) const
 
double getCaBasal (const Eref &e) const
 
double getCeiling (const Eref &e) const
 
double getDiameter (const Eref &e) const
 
double getFloor (const Eref &e) const
 
double getLength (const Eref &e) const
 
double getTau (const Eref &e) const
 
double getThickness (const Eref &e) const
 
void increase (const Eref &e, double I)
 
void process (const Eref &, ProcPtr info)
 
void reinit (const Eref &, ProcPtr info)
 
void setB (const Eref &e, double val)
 
void setCa (const Eref &e, double val)
 
void setCaBasal (const Eref &e, double val)
 
void setCeiling (const Eref &e, double val)
 
void setDiameter (const Eref &e, double val)
 
void setFloor (const Eref &e, double val)
 
void setLength (const Eref &e, double val)
 
void setTau (const Eref &e, double val)
 
void setThickness (const Eref &e, double val)
 
void updateDimensions (const Eref &e)
 
virtual void vSetSolver (const Eref &e, Id hsolve)
 Used to set up the solver. Dummy for regular classes. More...
 

Static Public Member Functions

static const CinfoinitCinfo ()
 
- Static Public Member Functions inherited from CaConcBase
static SrcFinfo1< double > * concOut ()
 
static const CinfoinitCinfo ()
 
static void zombify (Element *orig, const Cinfo *zClass, Id hsolve)
 

Private Attributes

double activation_
 
double B_
 
double c_
 
double Ca_
 
double CaBasal_
 
double ceiling_
 
double floor_
 
double tau_
 

Detailed Description

The CaConc object manages calcium dynamics in a single compartment without diffusion. It uses a simple exponential return of Ca to baseline, with influxes from ion channels. It solves the equation: dC/dt = B*Ik - C/tau where Ca = Ca_base + C.

From the GENESIS notes: In SI units, where concentration is moles/m^3 (milli-moles/liter) and current is in amperes, theory gives B = 5.2e-6/(shell volume). In practice, B is a parameter to be fitted or estimated from experiment, as buffering, non-uniform distribution of Ca, etc., will modify this value. If thick = 0, the readcell routine calculates B by dividing the "density" parameter in the cell parameter file by the volume of the compartment. Otherwise, it scales as a true shell, with the volume of a shell having thickness thick. A negative value of the "density" parameter may be used to indicate that it should be taken as an absolute value of B, without scaling.

Definition at line 36 of file CaConc.h.

Constructor & Destructor Documentation

CaConc::CaConc ( )

Definition at line 45 of file CaConc.cpp.

46  : CaConcBase(),
47  Ca_( 0.0 ),
48  CaBasal_( 0.0 ),
49  tau_( 1.0 ),
50  B_( 1.0 ),
51  c_( 0.0 ),
52  activation_( 0.0 ),
53  ceiling_( 1.0e9 ),
54  floor_( 0.0 )
55 {;}
double activation_
Definition: CaConc.h:73
double c_
Definition: CaConc.h:72
double Ca_
Definition: CaConc.h:68
double tau_
Definition: CaConc.h:70
double floor_
Definition: CaConc.h:75
double B_
Definition: CaConc.h:71
double CaBasal_
Definition: CaConc.h:69
double ceiling_
Definition: CaConc.h:74

Member Function Documentation

const Cinfo * CaConc::initCinfo ( )
static

Definition at line 16 of file CaConc.cpp.

References CaConcBase::initCinfo().

Referenced by HSolve::unzombify().

17 {
18  static string doc[] =
19  {
20  "Name", "CaConc \n",
21  "Author", "Upinder S. Bhalla, 2014, NCBS \n",
22  "Description", "CaConc: Calcium concentration pool. Takes current from a \n"
23  "channel and keeps track of calcium buildup and depletion by a \n"
24  "single exponential process. \n",
25  };
26 
27  static Dinfo< CaConc > dinfo;
28 
29  static Cinfo CaConcCinfo(
30  "CaConc",
32  0,
33  0,
34  &dinfo,
35  doc,
36  sizeof(doc)/sizeof(string)
37  );
38 
39  return &CaConcCinfo;
40 }
Definition: Dinfo.h:60
static const Cinfo * initCinfo()
Definition: CaConcBase.cpp:31
Definition: Cinfo.h:18

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CaConc::vCurrent ( const Eref e,
double  I 
)
virtual

Implements CaConcBase.

Definition at line 141 of file CaConc.cpp.

References activation_.

142 {
143  activation_ += I;
144 }
double activation_
Definition: CaConc.h:73
void CaConc::vCurrentFraction ( const Eref e,
double  I,
double  fraction 
)
virtual

Implements CaConcBase.

Definition at line 146 of file CaConc.cpp.

References activation_.

147 {
148  activation_ += I * fraction;
149 }
double activation_
Definition: CaConc.h:73
void CaConc::vDecrease ( const Eref e,
double  I 
)
virtual

Implements CaConcBase.

Definition at line 156 of file CaConc.cpp.

References activation_.

157 {
158  activation_ -= fabs( I );
159 }
double activation_
Definition: CaConc.h:73
double CaConc::vGetB ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 92 of file CaConc.cpp.

References B_.

93 {
94  return B_;
95 }
double B_
Definition: CaConc.h:71
double CaConc::vGetCa ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 65 of file CaConc.cpp.

References Ca_.

66 {
67  return Ca_;
68 }
double Ca_
Definition: CaConc.h:68
double CaConc::vGetCaBasal ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 74 of file CaConc.cpp.

References CaBasal_.

75 {
76  return CaBasal_;
77 }
double CaBasal_
Definition: CaConc.h:69
double CaConc::vGetCeiling ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 100 of file CaConc.cpp.

References ceiling_.

101 {
102  return ceiling_;
103 }
double ceiling_
Definition: CaConc.h:74
double CaConc::vGetFloor ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 109 of file CaConc.cpp.

References floor_.

110 {
111  return floor_;
112 }
double floor_
Definition: CaConc.h:75
double CaConc::vGetTau ( const Eref e) const
virtual

Implements CaConcBase.

Definition at line 83 of file CaConc.cpp.

References tau_.

84 {
85  return tau_;
86 }
double tau_
Definition: CaConc.h:70
void CaConc::vIncrease ( const Eref e,
double  I 
)
virtual

Implements CaConcBase.

Definition at line 151 of file CaConc.cpp.

References activation_.

152 {
153  activation_ += fabs( I );
154 }
double activation_
Definition: CaConc.h:73
void CaConc::vProcess ( const Eref e,
ProcPtr  info 
)
virtual

Implements CaConcBase.

Definition at line 126 of file CaConc.cpp.

References activation_, B_, c_, Ca_, CaBasal_, ceiling_, CaConcBase::concOut(), ProcInfo::dt, floor_, and tau_.

127 {
128  double x = exp( -p->dt / tau_ );
129  Ca_ = CaBasal_ + c_ * x + ( B_ * activation_ * tau_ ) * (1.0 - x);
130  if ( ceiling_ > 0.0 && Ca_ > ceiling_ ) {
131  Ca_ = ceiling_;
132  } else if ( Ca_ < floor_ ){
133  Ca_ = floor_;
134  }
135  c_ = Ca_ - CaBasal_;
136  concOut()->send( e, Ca_ );
137  activation_ = 0;
138 }
double activation_
Definition: CaConc.h:73
double c_
Definition: CaConc.h:72
double Ca_
Definition: CaConc.h:68
static SrcFinfo1< double > * concOut()
Definition: CaConcBase.cpp:25
double tau_
Definition: CaConc.h:70
double floor_
Definition: CaConc.h:75
double B_
Definition: CaConc.h:71
double CaBasal_
Definition: CaConc.h:69
double ceiling_
Definition: CaConc.h:74

+ Here is the call graph for this function:

void CaConc::vReinit ( const Eref e,
ProcPtr  info 
)
virtual

Implements CaConcBase.

Definition at line 118 of file CaConc.cpp.

References activation_, c_, Ca_, CaBasal_, and CaConcBase::concOut().

119 {
120  activation_ = 0.0;
121  c_ = 0.0;
122  Ca_ = CaBasal_;
123  concOut()->send( e, Ca_ );
124 }
double activation_
Definition: CaConc.h:73
double c_
Definition: CaConc.h:72
double Ca_
Definition: CaConc.h:68
static SrcFinfo1< double > * concOut()
Definition: CaConcBase.cpp:25
double CaBasal_
Definition: CaConc.h:69

+ Here is the call graph for this function:

void CaConc::vSetB ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 88 of file CaConc.cpp.

References B_.

89 {
90  B_ = B;
91 }
double B_
Definition: CaConc.h:71
void CaConc::vSetCa ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 61 of file CaConc.cpp.

References Ca_.

62 {
63  Ca_ = Ca;
64 }
double Ca_
Definition: CaConc.h:68
void CaConc::vSetCaBasal ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 70 of file CaConc.cpp.

References CaBasal_.

71 {
72  CaBasal_ = CaBasal;
73 }
double CaBasal_
Definition: CaConc.h:69
void CaConc::vSetCeiling ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 96 of file CaConc.cpp.

References ceiling_.

97 {
98  ceiling_ = ceiling;
99 }
double ceiling_
Definition: CaConc.h:74
void CaConc::vSetFloor ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 105 of file CaConc.cpp.

References floor_.

106 {
107  floor_ = floor;
108 }
double floor_
Definition: CaConc.h:75
void CaConc::vSetTau ( const Eref e,
double  val 
)
virtual

Implements CaConcBase.

Definition at line 79 of file CaConc.cpp.

References tau_.

80 {
81  tau_ = tau;
82 }
double tau_
Definition: CaConc.h:70

Member Data Documentation

double CaConc::activation_
private

Definition at line 73 of file CaConc.h.

Referenced by vCurrent(), vCurrentFraction(), vDecrease(), vIncrease(), vProcess(), and vReinit().

double CaConc::B_
private

Definition at line 71 of file CaConc.h.

Referenced by vGetB(), vProcess(), and vSetB().

double CaConc::c_
private

Definition at line 72 of file CaConc.h.

Referenced by vProcess(), and vReinit().

double CaConc::Ca_
private

Definition at line 68 of file CaConc.h.

Referenced by vGetCa(), vProcess(), vReinit(), and vSetCa().

double CaConc::CaBasal_
private

Definition at line 69 of file CaConc.h.

Referenced by vGetCaBasal(), vProcess(), vReinit(), and vSetCaBasal().

double CaConc::ceiling_
private

Definition at line 74 of file CaConc.h.

Referenced by vGetCeiling(), vProcess(), and vSetCeiling().

double CaConc::floor_
private

Definition at line 75 of file CaConc.h.

Referenced by vGetFloor(), vProcess(), and vSetFloor().

double CaConc::tau_
private

Definition at line 70 of file CaConc.h.

Referenced by vGetTau(), vProcess(), and vSetTau().


The documentation for this class was generated from the following files: