AbstractPurkinjeCellFactory.hpp
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
00031
00032
00033
00034
00035
00036 #ifndef ABSTRACTPURKINJECELLFACTORY_HPP_
00037 #define ABSTRACTPURKINJECELLFACTORY_HPP_
00038
00039 #include "AbstractCardiacCellFactory.hpp"
00040 #include "MixedDimensionMesh.hpp"
00041 #include "FakeBathCell.hpp"
00048 template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
00049 class AbstractPurkinjeCellFactory : public AbstractCardiacCellFactory<ELEMENT_DIM,SPACE_DIM>
00050 {
00051 private:
00059 void ReadJunctionsFile();
00060
00061 protected:
00063 MixedDimensionMesh<ELEMENT_DIM,SPACE_DIM>* mpMixedDimensionMesh;
00064
00066 std::set<unsigned> mLocalPurkinjeNodes;
00067
00069 std::map<unsigned, double> mJunctionMap;
00070
00077 virtual AbstractCardiacCellInterface* CreatePurkinjeCellForTissueNode(Node<SPACE_DIM>* pNode,
00078 AbstractCardiacCellInterface* pCardiacCell)=0;
00079
00088 void CreateJunction(const Node<SPACE_DIM>* pNode,
00089 AbstractCardiacCellInterface* pPurkinjeCell,
00090 AbstractCardiacCellInterface* pCardiacCell,
00091 double resistance);
00092
00093
00103 void CreateJunctionFromFile(const Node<SPACE_DIM>* pNode,
00104 AbstractCardiacCellInterface* pPurkinjeCell,
00105 AbstractCardiacCellInterface* pCardiacCell);
00106
00107
00108 public:
00109
00110
00111 AbstractPurkinjeCellFactory();
00112
00113
00116 void SetMesh(AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* pMesh);
00117
00128 AbstractCardiacCellInterface* CreatePurkinjeCellForNode(Node<SPACE_DIM>* pNode,
00129 AbstractCardiacCellInterface* pCardiacCell);
00130
00139 virtual void FinalisePurkinjeCellCreation(std::vector< AbstractCardiacCellInterface* >* pPurkinjeCellsDistributed,
00140 unsigned lo, unsigned hi)
00141 {
00142 }
00143
00148 MixedDimensionMesh<ELEMENT_DIM,SPACE_DIM>* GetMixedDimensionMesh();
00149 };
00150
00151
00152
00153 #endif // ABSTRACTPURKINJECELLFACTORY_HPP_