MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CaConcBase.h
Go to the documentation of this file.
1 /**********************************************************************
2 ** This program is part of 'MOOSE', the
3 ** Messaging Object Oriented Simulation Environment,
4 ** also known as GENESIS 3 base code.
5 ** copyright (C) 2003-2006 Upinder S. Bhalla. and NCBS
6 ** It is made available under the terms of the
7 ** GNU Lesser General Public License version 2.1
8 ** See the file COPYING.LIB for the full notice.
9 **********************************************************************/
10 
11 #ifndef _CA_CONC_BASE_H
12 #define _CA_CONC_BASE_H
13 
39 {
40  public:
41  CaConcBase();
43  // Message handling functions
45  void reinit( const Eref&, ProcPtr info );
46  void process( const Eref&, ProcPtr info );
47 
48  void current( const Eref& e, double I );
49  void currentFraction( const Eref& e, double I, double fraction );
50  void increase( const Eref& e, double I );
51  void decrease( const Eref& e, double I );
53  // Virtual Message handling functions
55  virtual void vReinit( const Eref&, ProcPtr info ) = 0;
56  virtual void vProcess( const Eref&, ProcPtr info ) = 0;
57 
58  virtual void vCurrent( const Eref& e, double I ) = 0;
59  virtual void vCurrentFraction( const Eref& e, double I, double fraction ) = 0;
60  virtual void vIncrease( const Eref& e, double I ) = 0;
61  virtual void vDecrease( const Eref& e, double I ) = 0;
63  // Field handling functions
65  void setCa( const Eref& e, double val );
66  double getCa( const Eref& e ) const;
67  void setCaBasal( const Eref& e, double val );
68  double getCaBasal( const Eref& e ) const;
69  void setTau( const Eref& e, double val );
70  double getTau( const Eref& e ) const;
71  void setB( const Eref& e, double val );
72  double getB( const Eref& e ) const;
73  void setCeiling( const Eref& e, double val );
74  double getCeiling( const Eref& e ) const;
75  void setFloor( const Eref& e, double val );
76  double getFloor( const Eref& e ) const;
77  void setThickness( const Eref& e, double val );
78  double getThickness( const Eref& e ) const;
79  void setLength( const Eref& e, double val );
80  double getLength( const Eref& e ) const;
81  void setDiameter( const Eref& e, double val );
82  double getDiameter( const Eref& e ) const;
84  // Virtual Field handling functions
86  virtual void vSetCa( const Eref& e, double val ) = 0;
87  virtual double vGetCa( const Eref& e ) const = 0;
88  virtual void vSetCaBasal( const Eref& e, double val ) = 0;
89  virtual double vGetCaBasal( const Eref& e ) const = 0;
90  virtual void vSetTau( const Eref& e, double val ) = 0;
91  virtual double vGetTau( const Eref& e ) const = 0;
92  virtual void vSetB( const Eref& e, double val ) = 0;
93  virtual double vGetB( const Eref& e ) const = 0;
94  virtual void vSetCeiling( const Eref& e, double val ) = 0;
95  virtual double vGetCeiling( const Eref& e ) const = 0;
96  virtual void vSetFloor( const Eref& e, double val ) = 0;
97  virtual double vGetFloor( const Eref& e ) const = 0;
98 
100  // Utility function in case length, dia or thickness is updated
101  void updateDimensions( const Eref& e );
102 
104  virtual void vSetSolver( const Eref& e, Id hsolve );
105 
109  static void zombify( Element* orig, const Cinfo* zClass,
110  Id hsolve );
111 
112  /*
113  * This Finfo is used to send out Ca concentration to channels.
114  *
115  * It is exposed here so that HSolve can also use it to send out
116  * Ca concentration to the recipients.
117  */
118  static SrcFinfo1< double >* concOut();
119 
120  static const Cinfo* initCinfo();
121  private:
122  double thickness_;
123  double diameter_;
124  double length_;
125 };
126 
127 
128 #endif // _CA_CONC_BASE_H
void increase(const Eref &e, double I)
Definition: CaConcBase.cpp:323
double diameter_
Definition: CaConcBase.h:123
double getLength(const Eref &e) const
Definition: CaConcBase.cpp:294
virtual void vSetFloor(const Eref &e, double val)=0
void setDiameter(const Eref &e, double val)
Definition: CaConcBase.cpp:278
double getCa(const Eref &e) const
Definition: CaConcBase.cpp:207
virtual void vSetCeiling(const Eref &e, double val)=0
double getThickness(const Eref &e) const
Definition: CaConcBase.cpp:273
void currentFraction(const Eref &e, double I, double fraction)
Definition: CaConcBase.cpp:318
virtual void vProcess(const Eref &, ProcPtr info)=0
virtual void vSetSolver(const Eref &e, Id hsolve)
Used to set up the solver. Dummy for regular classes.
Definition: CaConcBase.cpp:339
double getTau(const Eref &e) const
Definition: CaConcBase.cpp:225
virtual double vGetCa(const Eref &e) const =0
virtual void vSetCaBasal(const Eref &e, double val)=0
void setTau(const Eref &e, double val)
Definition: CaConcBase.cpp:221
void setCa(const Eref &e, double val)
Definition: CaConcBase.cpp:203
static void zombify(Element *orig, const Cinfo *zClass, Id hsolve)
Definition: CaConcBase.cpp:343
virtual double vGetCaBasal(const Eref &e) const =0
virtual double vGetFloor(const Eref &e) const =0
virtual double vGetB(const Eref &e) const =0
double getDiameter(const Eref &e) const
Definition: CaConcBase.cpp:284
void updateDimensions(const Eref &e)
Definition: CaConcBase.cpp:256
static SrcFinfo1< double > * concOut()
Definition: CaConcBase.cpp:25
virtual double vGetCeiling(const Eref &e) const =0
double getCaBasal(const Eref &e) const
Definition: CaConcBase.cpp:216
double getFloor(const Eref &e) const
Definition: CaConcBase.cpp:251
double thickness_
Definition: CaConcBase.h:122
virtual void vSetCa(const Eref &e, double val)=0
void setCaBasal(const Eref &e, double val)
Definition: CaConcBase.cpp:212
void setFloor(const Eref &e, double val)
Definition: CaConcBase.cpp:247
void setCeiling(const Eref &e, double val)
Definition: CaConcBase.cpp:238
virtual void vSetTau(const Eref &e, double val)=0
virtual void vIncrease(const Eref &e, double I)=0
void setLength(const Eref &e, double val)
Definition: CaConcBase.cpp:289
Definition: Eref.h:26
double length_
Definition: CaConcBase.h:124
virtual void vDecrease(const Eref &e, double I)=0
static const Cinfo * initCinfo()
Definition: CaConcBase.cpp:31
double getCeiling(const Eref &e) const
Definition: CaConcBase.cpp:242
virtual void vCurrent(const Eref &e, double I)=0
virtual void vCurrentFraction(const Eref &e, double I, double fraction)=0
void current(const Eref &e, double I)
Definition: CaConcBase.cpp:313
void setB(const Eref &e, double val)
Definition: CaConcBase.cpp:230
void reinit(const Eref &, ProcPtr info)
Definition: CaConcBase.cpp:303
virtual double vGetTau(const Eref &e) const =0
double getB(const Eref &e) const
Definition: CaConcBase.cpp:234
Definition: Id.h:17
void setThickness(const Eref &e, double val)
Definition: CaConcBase.cpp:267
virtual void vReinit(const Eref &, ProcPtr info)=0
Definition: Cinfo.h:18
void decrease(const Eref &e, double I)
Definition: CaConcBase.cpp:328
virtual void vSetB(const Eref &e, double val)=0
void process(const Eref &, ProcPtr info)
Definition: CaConcBase.cpp:308