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 #ifndef ELECTRODES_HPP_
00030 #define ELECTRODES_HPP_
00031
00032 #include "TetrahedralMesh.hpp"
00033 #include "BoundaryConditionsContainer.hpp"
00034 #include "ConstBoundaryCondition.hpp"
00035
00036
00048 template<unsigned DIM>
00049 class Electrodes
00050 {
00051 friend class TestBidomainWithBathAssembler;
00052
00053 private:
00055 bool mGroundSecondElectrode;
00057 BoundaryConditionsContainer<DIM,DIM,2>* mpBoundaryConditionsContainer;
00059 double mEndTime;
00061 bool mAreActive;
00062
00063 public:
00075 Electrodes(TetrahedralMesh<DIM,DIM>& rMesh,
00076 bool groundSecondElectrode,
00077 unsigned index, double lowerValue, double upperValue,
00078 double magnitude, double duration);
00079
00083 ~Electrodes()
00084 {
00085 delete mpBoundaryConditionsContainer;
00086 }
00087
00093 BoundaryConditionsContainer<DIM,DIM,2>* GetBoundaryConditionsContainer()
00094 {
00095 assert(mAreActive);
00096 return mpBoundaryConditionsContainer;
00097 }
00098
00104 bool SwitchOff(double time)
00105 {
00106 if(mAreActive && time>mEndTime)
00107 {
00108 mAreActive = false;
00109 return true;
00110 }
00111
00112 return false;
00113 }
00114 };
00115
00116 #endif