MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ReacBase.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-2010 Upinder S. Bhalla. 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 _REAC_BASE_H
11 #define _REAC_BASE_H
12 
13 class ReacBase
14 {
15  public:
16  ReacBase();
17  virtual ~ReacBase();
18 
19 
21  // Field assignment stuff
23 
24  void setNumKf( const Eref&e, double v );
25  double getNumKf( const Eref& e ) const;
26  void setNumKb( const Eref&e, double v );
27  double getNumKb( const Eref& e ) const;
28 
30  void setConcKf( const Eref& e, double v );
32  double getConcKf( const Eref& e ) const;
33 
35  void setConcKb( const Eref& e, double v );
37  double getConcKb( const Eref& e ) const;
38 
40  unsigned int getNumSub( const Eref& e ) const;
42  unsigned int getNumPrd( const Eref& e ) const;
44  // Inner virtual funcs for all the fields.
45  virtual void vSetNumKf( const Eref&e, double v ) =0;
46  virtual double vGetNumKf( const Eref& e ) const = 0;
47  virtual void vSetNumKb( const Eref&e, double v ) =0;
48  virtual double vGetNumKb( const Eref& e ) const = 0;
49  virtual void vSetConcKf( const Eref& e, double v )
50  =0;
51  virtual double vGetConcKf( const Eref& e ) const = 0;
52  virtual void vSetConcKb( const Eref& e, double v ) = 0;
53  virtual double vGetConcKb( const Eref& e ) const = 0;
54  // virtual unsigned int vGetNumSub( const Eref& e ) const = 0;
55  // virtual unsigned int vGetNumPrd( const Eref& e ) const = 0;
56 
58 
61  static void zombify( Element* original, const Cinfo* zClass,
62  Id solver );
64  virtual void setSolver( Id solver, Id orig );
65 
67  // Dest funcs
69 
70  void process( const Eref& e, ProcPtr p );
71  void reinit( const Eref& e, ProcPtr p );
72  void sub( double v );
73  void prd( double v );
74  void remesh( const Eref& e );
76  // Inner virtual funcs for the dest operations. Mostly do-nothing.
77  virtual void vProcess( const Eref& e, ProcPtr p );
78  virtual void vReinit( const Eref& e, ProcPtr p );
79  virtual void vSub( double v );
80  virtual void vPrd( double v );
81  virtual void vRemesh( const Eref& e );
83 
84  static const Cinfo* initCinfo();
85  protected:
86  double concKf_; // Kf in concentration and time units
87  double concKb_; // Kb in concentration and time units
88 };
89 
90 #endif // REAC_BASE_H
unsigned int getNumSub(const Eref &e) const
Get number of substrates.
Definition: ReacBase.cpp:278
double concKf_
Definition: ReacBase.h:86
void sub(double v)
Definition: ReacBase.cpp:177
virtual double vGetConcKf(const Eref &e) const =0
void setNumKb(const Eref &e, double v)
Definition: ReacBase.cpp:246
double getNumKb(const Eref &e) const
Definition: ReacBase.cpp:251
virtual double vGetNumKf(const Eref &e) const =0
void prd(double v)
Definition: ReacBase.cpp:182
void reinit(const Eref &e, ProcPtr p)
Definition: ReacBase.cpp:192
static void zombify(Element *original, const Cinfo *zClass, Id solver)
Definition: ReacBase.cpp:299
void remesh(const Eref &e)
Definition: ReacBase.cpp:197
double concKb_
Definition: ReacBase.h:87
virtual void vSub(double v)
Definition: ReacBase.cpp:207
void setConcKf(const Eref &e, double v)
set Kf in concentration units
Definition: ReacBase.cpp:258
virtual void vSetConcKf(const Eref &e, double v)=0
double getNumKf(const Eref &e) const
Definition: ReacBase.cpp:241
virtual void vProcess(const Eref &e, ProcPtr p)
Definition: ReacBase.cpp:217
void setConcKb(const Eref &e, double v)
set Kb in concentration units
Definition: ReacBase.cpp:268
virtual double vGetNumKb(const Eref &e) const =0
unsigned int getNumPrd(const Eref &e) const
Get number of products.
Definition: ReacBase.cpp:286
static const Cinfo * initCinfo()
Definition: ReacBase.cpp:33
virtual void vReinit(const Eref &e, ProcPtr p)
Definition: ReacBase.cpp:222
virtual void vRemesh(const Eref &e)
Definition: ReacBase.cpp:227
Definition: Eref.h:26
virtual void vSetConcKb(const Eref &e, double v)=0
double getConcKf(const Eref &e) const
get Kf in concentration units
Definition: ReacBase.cpp:263
virtual ~ReacBase()
Definition: ReacBase.cpp:170
virtual void vPrd(double v)
Definition: ReacBase.cpp:212
virtual void setSolver(Id solver, Id orig)
Assign solver info.
Definition: ReacBase.cpp:327
double getConcKb(const Eref &e) const
get Kb in concentration units
Definition: ReacBase.cpp:273
Definition: Id.h:17
virtual void vSetNumKb(const Eref &e, double v)=0
void process(const Eref &e, ProcPtr p)
Definition: ReacBase.cpp:187
virtual double vGetConcKb(const Eref &e) const =0
Definition: Cinfo.h:18
virtual void vSetNumKf(const Eref &e, double v)=0
void setNumKf(const Eref &e, double v)
Definition: ReacBase.cpp:236