ZeroNetChargeElectrodes.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 #ifndef ZERONETCHARGEELECTRODES_HPP_
00030 #define ZERONETCHARGEELECTRODES_HPP_
00031
00032 #include <boost/shared_ptr.hpp>
00033 #include "ChasteSerialization.hpp"
00034 #include <boost/serialization/split_member.hpp>
00035 #include <boost/serialization/shared_ptr.hpp>
00036
00037 #include "AbstractTetrahedralMesh.hpp"
00038 #include "DistributedVector.hpp"
00039 #include "ElectrodesStimulusFactory.hpp"
00040 #include "AbstractChasteRegion.hpp"
00041 #include "AbstractStimulusFactory.hpp"
00042 #include "LinearBasisFunction.hpp"
00043
00052 template<unsigned DIM>
00053 class ZeroNetChargeElectrodes : public ElectrodesStimulusFactory<DIM>
00054 {
00055
00056 public:
00057
00068 ZeroNetChargeElectrodes(std::vector<std::pair<AbstractChasteRegion<DIM>*, AbstractChasteRegion<DIM>*> >& rElectrodePairs,
00069 std::vector<double>& rStimulusMagnitudes,
00070 std::vector<double>& rDurations,
00071 std::vector<double>& rPeriods,
00072 std::vector<double>& rStarts,
00073 std::vector<double>& rEnds);
00074
00080 boost::shared_ptr<AbstractStimulusFunction> CreateStimulusForNode(unsigned nodeIndex);
00081
00085 ~ZeroNetChargeElectrodes();
00086
00087 };
00088
00089 #endif