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 #include "MonodomainPde.hpp"
00030
00031 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00032 MonodomainPde<ELEM_DIM,SPACE_DIM>::MonodomainPde(
00033 AbstractCardiacCellFactory<ELEM_DIM,SPACE_DIM>* pCellFactory)
00034 : AbstractCardiacPde<ELEM_DIM, SPACE_DIM>(pCellFactory)
00035 {
00036 }
00037
00038 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00039 MonodomainPde<ELEM_DIM,SPACE_DIM>::MonodomainPde(std::vector<AbstractCardiacCell*> &rCellsDistributed)
00040 : AbstractCardiacPde<ELEM_DIM, SPACE_DIM>(rCellsDistributed)
00041 {
00042 }
00043
00044
00045
00046
00047 #define COVERAGE_IGNORE
00048 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00049 double MonodomainPde<ELEM_DIM,SPACE_DIM>::ComputeLinearSourceTerm(const ChastePoint<SPACE_DIM>& )
00050 {
00051 NEVER_REACHED;
00052 return 0.0;
00053 }
00054 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00055 double MonodomainPde<ELEM_DIM,SPACE_DIM>::ComputeNonlinearSourceTerm(const ChastePoint<SPACE_DIM>& , double )
00056 {
00057 NEVER_REACHED;
00058 return 0.0;
00059 }
00060 #undef COVERAGE_IGNORE
00061
00062
00063 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00064 c_matrix<double, SPACE_DIM, SPACE_DIM> MonodomainPde<ELEM_DIM,SPACE_DIM>::ComputeDiffusionTerm(
00065 const ChastePoint<SPACE_DIM>& ,
00066 Element<ELEM_DIM,SPACE_DIM>* pElement)
00067 {
00068 return (*this->mpIntracellularConductivityTensors)[pElement->GetIndex()];
00069 }
00070
00071
00072 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00073 double MonodomainPde<ELEM_DIM,SPACE_DIM>::ComputeNonlinearSourceTermAtNode(
00074 const Node<SPACE_DIM>& node,
00075 double )
00076 {
00077 unsigned index = node.GetIndex();
00078 return -(this->mpConfig->GetSurfaceAreaToVolumeRatio())*(this->mIionicCacheReplicated[index])
00079 - this->mIntracellularStimulusCacheReplicated[index];
00080 }
00081
00082
00083 template <unsigned ELEM_DIM,unsigned SPACE_DIM>
00084 double MonodomainPde<ELEM_DIM,SPACE_DIM>::ComputeDuDtCoefficientFunction(
00085 const ChastePoint<SPACE_DIM>& )
00086 {
00087 return (this->mpConfig->GetSurfaceAreaToVolumeRatio())*(this->mpConfig->GetCapacitance());
00088 }
00089
00090
00092
00094
00095 template class MonodomainPde<1,1>;
00096 template class MonodomainPde<1,2>;
00097 template class MonodomainPde<1,3>;
00098 template class MonodomainPde<2,2>;
00099 template class MonodomainPde<3,3>;