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

#include <ConcChan.h>

+ Collaboration diagram for ConcChan:

Public Member Functions

 ConcChan ()
 
double flux (double inConc, double outConc, double dt)
 
double getFlux () const
 
double getNumChan () const
 
double getPermeability () const
 
void inPool (double conc)
 
void outPool (double conc)
 
void process (const Eref &e, ProcPtr p)
 
void reinit (const Eref &e, ProcPtr p)
 
void setNumChan (double v)
 
void setPermeability (double v)
 
 ~ConcChan ()
 

Static Public Member Functions

static const CinfoinitCinfo ()
 

Protected Attributes

double charge_
 Flux of molecule through channel. More...
 
double flux_
 Number of molecules of channel. More...
 
double n_
 permeability in vol/(#.s) units. More...
 
double permeability_
 
double Vm_
 Later: for including Nernst calculations. More...
 

Detailed Description

Definition at line 13 of file ConcChan.h.

Constructor & Destructor Documentation

ConcChan::ConcChan ( )

Definition at line 135 of file ConcChan.cpp.

136  : permeability_( 0.1 ),
137  n_( 0.0 ),
138  flux_( 0.0 ),
139  charge_( 0.0 ),
140  Vm_( 0.0 )
141 {
142  ;
143 }
double charge_
Flux of molecule through channel.
Definition: ConcChan.h:48
double Vm_
Later: for including Nernst calculations.
Definition: ConcChan.h:49
double flux_
Number of molecules of channel.
Definition: ConcChan.h:47
double permeability_
Definition: ConcChan.h:45
double n_
permeability in vol/(#.s) units.
Definition: ConcChan.h:46
ConcChan::~ConcChan ( )

Definition at line 145 of file ConcChan.cpp.

146 {;}

Member Function Documentation

double ConcChan::flux ( double  inConc,
double  outConc,
double  dt 
)

Definition at line 201 of file ConcChan.cpp.

References n_, and permeability_.

Referenced by initCinfo().

202 {
203  return permeability_ * n_ * ( outConc - inConc ) * dt;
204  // Later add stuff for voltage dependence.
205  // Also use exp Euler
206 }
double permeability_
Definition: ConcChan.h:45
double n_
permeability in vol/(#.s) units.
Definition: ConcChan.h:46

+ Here is the caller graph for this function:

double ConcChan::getFlux ( ) const

Definition at line 193 of file ConcChan.cpp.

References flux_.

Referenced by initCinfo().

194 {
195  return flux_;
196 }
double flux_
Number of molecules of channel.
Definition: ConcChan.h:47

+ Here is the caller graph for this function:

double ConcChan::getNumChan ( ) const

Definition at line 188 of file ConcChan.cpp.

References n_.

Referenced by initCinfo().

189 {
190  return n_;
191 }
double n_
permeability in vol/(#.s) units.
Definition: ConcChan.h:46

+ Here is the caller graph for this function:

double ConcChan::getPermeability ( ) const

Definition at line 178 of file ConcChan.cpp.

References permeability_.

Referenced by initCinfo().

179 {
180  return permeability_;
181 }
double permeability_
Definition: ConcChan.h:45

+ Here is the caller graph for this function:

const Cinfo * ConcChan::initCinfo ( )
static

Definition at line 29 of file ConcChan.cpp.

References concChanCinfo, flux(), getFlux(), getNumChan(), getPermeability(), Neutral::initCinfo(), inPool(), inPoolOut(), outPool(), outPoolOut(), process(), reinit(), setNumChan(), and setPermeability().

30 {
32  // Field Definitions
34  static ValueFinfo< ConcChan, double > permeability(
35  "permeability",
36  "Permability, in units of vol/(#s) i.e., 1/(numconc.s) "
37  "Flux (#/s) = permeability * N * (#out/vol_out - #in/vol_in)",
40  );
41  static ValueFinfo< ConcChan, double > numChan(
42  "numChan",
43  "numChan is the number of molecules of the channel.",
46  );
48  "flux",
49  "Flux of molecules through channel, in units of #/s ",
51  );
52 
54  // MsgDest Definitions
56  static DestFinfo process( "process",
57  "Handles process call",
59  static DestFinfo reinit( "reinit",
60  "Handles reinit call",
62 
64  // Shared Msg Definitions
66 
67  static DestFinfo inPool( "inPool",
68  "Handles # of molecules of pool inside membrane",
70  static DestFinfo outPool( "outPool",
71  "Handles # of molecules of pool outside membrane",
73  static Finfo* inShared[] = {
74  inPoolOut(), &inPool
75  };
76  static Finfo* outShared[] = {
78  };
79  static SharedFinfo in( "in",
80  "Connects to pool on inside",
81  inShared, sizeof( inShared ) / sizeof( const Finfo* )
82  );
83  static SharedFinfo out( "out",
84  "Connects to pool on outside",
85  outShared, sizeof( outShared ) / sizeof( const Finfo* )
86  );
87  static Finfo* procShared[] = {
88  &process, &reinit
89  };
90  static SharedFinfo proc( "proc",
91  "Shared message for process and reinit",
92  procShared, sizeof( procShared ) / sizeof( const Finfo* )
93  );
94 
95 
96  static Finfo* concChanFinfos[] = {
97  &permeability, // Value
98  &numChan, // Value
99  &flux, // ReadOnlyValue
100  &in, // SharedFinfo
101  &out, // SharedFinfo
102  &proc, // SharedFinfo
103  };
104 
105  static string doc[] =
106  {
107  "Name", "ConcChan",
108  "Author", "Upinder S. Bhalla, 2018, NCBS",
109  "Description", "Channel for molecular flow between cellular "
110  "compartments. Need not be ions, and the flux is not a current, "
111  "but number of molecules/sec. ",
112  };
113 
114  static Dinfo< ConcChan > dinfo;
115  static Cinfo concChanCinfo (
116  "ConcChan",
118  concChanFinfos,
119  sizeof( concChanFinfos ) / sizeof ( Finfo* ),
120  &dinfo,
121  doc,
122  sizeof( doc ) / sizeof( string )
123  );
124 
125  return &concChanCinfo;
126 }
double getFlux() const
Definition: ConcChan.cpp:193
Definition: Dinfo.h:60
void inPool(double conc)
Definition: ConcChan.cpp:161
double getPermeability() const
Definition: ConcChan.cpp:178
void setNumChan(double v)
Definition: ConcChan.cpp:183
static SrcFinfo2< double, double > * inPoolOut()
Definition: ConcChan.cpp:13
double flux(double inConc, double outConc, double dt)
Definition: ConcChan.cpp:201
void outPool(double conc)
Definition: ConcChan.cpp:165
Definition: OpFunc.h:27
void process(const Eref &e, ProcPtr p)
Definition: ConcChan.cpp:153
void setPermeability(double v)
Definition: ConcChan.cpp:173
static const Cinfo * initCinfo()
Definition: Neutral.cpp:16
static SrcFinfo2< double, double > * outPoolOut()
Definition: ConcChan.cpp:21
static const Cinfo * concChanCinfo
Definition: ConcChan.cpp:128
void reinit(const Eref &e, ProcPtr p)
Definition: ConcChan.cpp:157
Definition: Cinfo.h:18
Definition: Finfo.h:12
double getNumChan() const
Definition: ConcChan.cpp:188

+ Here is the call graph for this function:

void ConcChan::inPool ( double  conc)

Definition at line 161 of file ConcChan.cpp.

Referenced by initCinfo().

162 {
163 }

+ Here is the caller graph for this function:

void ConcChan::outPool ( double  conc)

Definition at line 165 of file ConcChan.cpp.

Referenced by initCinfo().

166 {
167 }

+ Here is the caller graph for this function:

void ConcChan::process ( const Eref e,
ProcPtr  p 
)

Definition at line 153 of file ConcChan.cpp.

Referenced by initCinfo().

154 {
155 }

+ Here is the caller graph for this function:

void ConcChan::reinit ( const Eref e,
ProcPtr  p 
)

Definition at line 157 of file ConcChan.cpp.

Referenced by initCinfo().

158 {
159 }

+ Here is the caller graph for this function:

void ConcChan::setNumChan ( double  v)

Definition at line 183 of file ConcChan.cpp.

References n_.

Referenced by initCinfo().

184 {
185  n_ = v;
186 }
double n_
permeability in vol/(#.s) units.
Definition: ConcChan.h:46

+ Here is the caller graph for this function:

void ConcChan::setPermeability ( double  v)

Definition at line 173 of file ConcChan.cpp.

References permeability_.

Referenced by initCinfo().

174 {
175  permeability_ = v;
176 }
double permeability_
Definition: ConcChan.h:45

+ Here is the caller graph for this function:

Member Data Documentation

double ConcChan::charge_
protected

Flux of molecule through channel.

Definition at line 48 of file ConcChan.h.

double ConcChan::flux_
protected

Number of molecules of channel.

Definition at line 47 of file ConcChan.h.

Referenced by getFlux().

double ConcChan::n_
protected

permeability in vol/(#.s) units.

Definition at line 46 of file ConcChan.h.

Referenced by flux(), getNumChan(), and setNumChan().

double ConcChan::permeability_
protected

Definition at line 45 of file ConcChan.h.

Referenced by flux(), getPermeability(), and setPermeability().

double ConcChan::Vm_
protected

Later: for including Nernst calculations.

Definition at line 49 of file ConcChan.h.


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