00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MONODOMAINPDE_HPP_
00031 #define MONODOMAINPDE_HPP_
00032
00033 #include <vector>
00034 #include "AbstractCardiacPde.hpp"
00035 #include "AbstractCardiacCellFactory.hpp"
00036 #include "AbstractLinearParabolicPde.hpp"
00037 #include "Node.hpp"
00038 #include "Element.hpp"
00039
00054 template <unsigned SPACE_DIM>
00055 class MonodomainPde : public virtual AbstractCardiacPde<SPACE_DIM>, public AbstractLinearParabolicPde<SPACE_DIM>
00056 {
00057 private:
00058 friend class TestMonodomainPde;
00059
00060 public:
00062 MonodomainPde(AbstractCardiacCellFactory<SPACE_DIM>* pCellFactory);
00063
00064
00065
00066 #define COVERAGE_IGNORE
00067
00071 double ComputeLinearSourceTerm(const ChastePoint<SPACE_DIM>& );
00072
00077 double ComputeNonlinearSourceTerm(const ChastePoint<SPACE_DIM>& , double );
00078 #undef COVERAGE_IGNORE
00079
00081 virtual c_matrix<double, SPACE_DIM, SPACE_DIM> ComputeDiffusionTerm(
00082 const ChastePoint<SPACE_DIM>& ,
00083 Element<SPACE_DIM,SPACE_DIM>* pElement);
00084
00085
00086 double ComputeNonlinearSourceTermAtNode(const Node<SPACE_DIM>& node, double );
00087
00088
00089 double ComputeDuDtCoefficientFunction(const ChastePoint<SPACE_DIM>& );
00090 };
00091
00092 #endif