00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _REAC_BASE_H
00011 #define _REAC_BASE_H
00012
00013 class ReacBase
00014 {
00015 public:
00016 ReacBase();
00017 virtual ~ReacBase();
00018
00019
00021
00023
00024 void setNumKf( const Eref&e, double v );
00025 double getNumKf( const Eref& e ) const;
00026 void setNumKb( const Eref&e, double v );
00027 double getNumKb( const Eref& e ) const;
00028
00030 void setConcKf( const Eref& e, double v );
00032 double getConcKf( const Eref& e ) const;
00033
00035 void setConcKb( const Eref& e, double v );
00037 double getConcKb( const Eref& e ) const;
00038
00040 unsigned int getNumSub( const Eref& e ) const;
00042 unsigned int getNumPrd( const Eref& e ) const;
00044
00045 virtual void vSetNumKf( const Eref&e, double v ) =0;
00046 virtual double vGetNumKf( const Eref& e ) const = 0;
00047 virtual void vSetNumKb( const Eref&e, double v ) =0;
00048 virtual double vGetNumKb( const Eref& e ) const = 0;
00049 virtual void vSetConcKf( const Eref& e, double v )
00050 =0;
00051 virtual double vGetConcKf( const Eref& e ) const = 0;
00052 virtual void vSetConcKb( const Eref& e, double v ) = 0;
00053 virtual double vGetConcKb( const Eref& e ) const = 0;
00054
00055
00056
00058
00061 static void zombify( Element* original, const Cinfo* zClass,
00062 Id solver );
00064 virtual void setSolver( Id solver, Id orig );
00065
00067
00069
00070 void process( const Eref& e, ProcPtr p );
00071 void reinit( const Eref& e, ProcPtr p );
00072 void sub( double v );
00073 void prd( double v );
00074 void remesh( const Eref& e );
00076
00077 virtual void vProcess( const Eref& e, ProcPtr p );
00078 virtual void vReinit( const Eref& e, ProcPtr p );
00079 virtual void vSub( double v );
00080 virtual void vPrd( double v );
00081 virtual void vRemesh( const Eref& e );
00083
00084 static const Cinfo* initCinfo();
00085 protected:
00086 double concKf_;
00087 double concKb_;
00088 };
00089
00090 #endif // REAC_BASE_H