00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _NEURO_STENCIL_H
00011 #define _NEURO_STENCIL_H
00012
00013 class NeuroStencil: public Stencil
00014 {
00015 public:
00016 NeuroStencil( const vector< NeuroNode >& nodes,
00017 const vector< unsigned int >& nodeIndex,
00018 const vector< double >& vs,
00019 const vector< double >& area);
00020 NeuroStencil();
00021
00022 ~NeuroStencil();
00023
00029 void addFlux( unsigned int meshIndex,
00030 vector< double >& f, const vector< vector< double > >& S,
00031 const vector< double >& diffConst ) const;
00032
00033 void addLinearFlux( unsigned int index,
00034 vector< double >& f,
00035 const vector< double >& tminus,
00036 const vector< double >& t0,
00037 const vector< double >& tplus,
00038 double aminus,
00039 double aplus,
00040 double vsminus,
00041 double vs0,
00042 double vsplus,
00043 double invSq,
00044 const vector< double >& diffConst ) const;
00045
00046 void addHalfFlux( unsigned int index,
00047 vector< double >& f,
00048 const vector< double >& t0,
00049 const vector< double >& tprime,
00050 double area,
00051 double vs0,
00052 double vsprime,
00053 double invSq,
00054 const vector< double >& diffConst ) const;
00055
00056 private:
00057 const vector< NeuroNode >& nodes_;
00058 const vector< unsigned int >& nodeIndex_;
00059 const vector< double >& vs_;
00060 const vector< double >& area_;
00061
00073 SparseMatrix< double > L_;
00074
00075 };
00076
00077 #endif // _NEURO_STENCIL_H