MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
HSolveStruct.h
Go to the documentation of this file.
1 /**********************************************************************
2 ** This program is part of 'MOOSE', the
3 ** Messaging Object Oriented Simulation Environment.
4 ** copyright (C) 2003-2007 Upinder S. Bhalla, Niraj Dudani and NCBS
5 ** It is made available under the terms of the
6 ** GNU Lesser General Public License version 2.1
7 ** See the file COPYING.LIB for the full notice.
8 **********************************************************************/
9 
10 #ifndef _HSOLVE_STRUCT_H
11 #define _HSOLVE_STRUCT_H
12 
13 typedef double ( *PFDD )( double, double );
14 
16 {
17  double CmByDt;
18  double EmByRm;
19 };
20 
33 {
35  :
36  injectVarying( 0.0 ),
37  injectBasal( 0.0 )
38  { ; }
39 
40  double injectVarying;
41  double injectBasal;
42 };
43 
49 {
50  double Gk;
51  double Ek;
52 };
53 
56 {
57 public:
58  double Gbar_;
59  PFDD takeXpower_; // Some clever method of actually applying the
60  PFDD takeYpower_; // power on the fraction of gates.
62  double Xpower_; // Actual powers for each gate.
63  double Ypower_;
64  double Zpower_;
65 
71  int instant_;
72 
77  double modulation_;
78 
82  void setPowers( double Xpower, double Ypower, double Zpower );
83 
89  void process( double*& state, CurrentStruct& current );
90 
91 private:
92  static PFDD selectPower( double power );
93 
95  static double power1( double x, double p ) {
96  return x;
97  }
98  static double power2( double x, double p ) {
99  return x * x;
100  }
101  static double power3( double x, double p ) {
102  return x * x * x;
103  }
104  static double power4( double x, double p ) {
105  return power2( x * x, p );
106  }
107  static double powerN( double x, double p );
108 };
109 
115 {
116  SpikeGenStruct( double* Vm, Eref e )
117  :
118  Vm_( Vm ),
119  e_( e )
120  { ; }
121 
122  double* Vm_;
124 
126  void reinit( ProcPtr info );
127  void send( ProcPtr info );
128 };
129 
131 {
132  // Index of parent compartment
133  unsigned int compt_;
135 };
136 
138 {
139  double c_;
140  double CaBasal_;
141  double factor1_;
142  double factor2_;
143  double ceiling_;
144  double floor_;
145 
146  CaConcStruct();
147  CaConcStruct(
148  double Ca,
149  double CaBasal,
150  double tau,
151  double B,
152  double ceiling,
153  double floor,
154  double dt );
155 
156  void setCa( double Ca ); // c_ = Ca - CaBasal_
157 
159  void setCaBasal( double CaBasal );
160 
162  void setTauB( double tau, double B, double dt );
163 
168  double process( double activation );
169 };
170 
171 #endif // _HSOLVE_STRUCT_H
unsigned int compt_
Definition: HSolveStruct.h:133
double ceiling_
Definition: HSolveStruct.h:143
double Xpower_
Definition: HSolveStruct.h:62
static double power3(double x, double p)
Definition: HSolveStruct.h:101
void send(ProcPtr info)
double Zpower_
Definition: HSolveStruct.h:64
double injectBasal
Definition: HSolveStruct.h:41
void setCaBasal(double CaBasal)
double factor1_
Reference calcium concentration
Definition: HSolveStruct.h:141
static double power4(double x, double p)
Definition: HSolveStruct.h:104
static double power1(double x, double p)
Definition: HSolveStruct.h:95
static double powerN(double x, double p)
double process(double activation)
Definition: Eref.h:26
void setPowers(double Xpower, double Ypower, double Zpower)
double injectVarying
Definition: HSolveStruct.h:40
double floor_
Ceiling and floor for lookup tables
Definition: HSolveStruct.h:144
double(* PFDD)(double, double)
Definition: HSolveStruct.h:13
void setCa(double Ca)
static PFDD selectPower(double power)
Definition: Id.h:17
void reinit(ProcPtr info)
double CaBasal_
Dynamic calcium concentration, over CaBasal_
Definition: HSolveStruct.h:140
double Ypower_
Definition: HSolveStruct.h:63
double factor2_
Both these factors are functions of tau, B and dt.
Definition: HSolveStruct.h:142
void setTauB(double tau, double B, double dt)
static double power2(double x, double p)
Definition: HSolveStruct.h:98
SpikeGenStruct(double *Vm, Eref e)
Definition: HSolveStruct.h:116
void process(double *&state, CurrentStruct &current)
double modulation_
Definition: HSolveStruct.h:77