Chaste
Release::3.4
|
#include <Electrodes.hpp>
Public Member Functions | |
Electrodes (AbstractTetrahedralMesh< DIM, DIM > &rMesh) | |
boost::shared_ptr < BoundaryConditionsContainer < DIM, DIM, 2 > > | GetBoundaryConditionsContainer () |
bool | SwitchOff (double time) |
bool | SwitchOn (double time) |
double | GetSwitchOnTime () |
double | GetSwitchOffTime () |
bool | HasGroundedElectrode () |
Private Member Functions | |
void | ComputeElectrodesAreasAndCheckEquality (unsigned index, double lowerValue, double upperValue) |
template<class Archive > | |
void | save (Archive &archive, const unsigned int version) const |
template<class Archive > | |
void | load (Archive &archive, const unsigned int version) |
Electrodes () | |
Private Attributes | |
bool | mGroundSecondElectrode |
boost::shared_ptr < BoundaryConditionsContainer < DIM, DIM, 2 > > | mpBoundaryConditionsContainer |
double | mStartTime |
double | mEndTime |
bool | mAreActive |
AbstractTetrahedralMesh< DIM, DIM > * | mpMesh |
double | mLeftElectrodeArea |
double | mRightElectrodeArea |
Friends | |
class | TestBidomainWithBathProblem |
class | TestElectrodes |
class | boost::serialization::access |
A class for setting up the boundary conditions associated with electrodes. There are two modes: grounding the second electrode, in which case the first electrode has an input flux (Neumann boundary condition) of the specified magnitude, the extracellular potential is fixed on the second electrode; or not grounded, in which case the opposite electrode has an equal and opposite output flux.
This class assumes the given mesh is cuboid, and the electrodes are taken to be the specified opposite surfaces.
Note the class now includes a pointer to the mesh as a member variable, as this is required to archive (reconstruct) itself. Because boost is clever it will still only archive one copy of the mesh.
Definition at line 65 of file Electrodes.hpp.
|
inlineprivate |
Private default constructor for archiving only.
Definition at line 148 of file Electrodes.hpp.
Electrodes< DIM >::Electrodes | ( | AbstractTetrahedralMesh< DIM, DIM > & | rMesh | ) |
Constructor. Needs only a reference to a mesh. All other parameters from the HeartConfig class
rMesh | The mesh, assumed to be a cuboid. |
Definition at line 42 of file Electrodes.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), Electrodes< DIM >::ComputeElectrodesAreasAndCheckEquality(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorEnd(), HeartConfig::GetElectrodeParameters(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd(), HeartConfig::Instance(), Electrodes< DIM >::mAreActive, Electrodes< DIM >::mEndTime, Electrodes< DIM >::mGroundSecondElectrode, Electrodes< DIM >::mLeftElectrodeArea, Electrodes< DIM >::mpBoundaryConditionsContainer, Electrodes< DIM >::mpMesh, Electrodes< DIM >::mRightElectrodeArea, Electrodes< DIM >::mStartTime, ChasteCuboid< SPACE_DIM >::rGetLowerCorner(), and ChasteCuboid< SPACE_DIM >::rGetUpperCorner().
|
private |
Helper method to compute electrodes area and check they are equal. Throws if they are not.
index | The value i when applying the electrodes to x_i=a and x_i=b (a<b) |
lowerValue | The value a when applying the electrodes to x_i=a and x_i=b (a<b) (should be the minimum value of x_i for the given mesh) |
upperValue | The value b when applying the electrodes to x_i=a and x_i=b (a<b) (should be the maximum value of x_i for the given mesh) |
Definition at line 173 of file Electrodes.cpp.
References EXCEPTION, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin(), and UNUSED_OPT.
Referenced by Electrodes< DIM >::Electrodes().
boost::shared_ptr< BoundaryConditionsContainer< DIM, DIM, 2 > > Electrodes< DIM >::GetBoundaryConditionsContainer | ( | ) |
Definition at line 135 of file Electrodes.cpp.
|
inline |
Definition at line 193 of file Electrodes.hpp.
References Electrodes< DIM >::mEndTime.
|
inline |
Definition at line 187 of file Electrodes.hpp.
References Electrodes< DIM >::mStartTime.
|
inline |
Definition at line 199 of file Electrodes.hpp.
References Electrodes< DIM >::mGroundSecondElectrode.
|
inlineprivate |
Load the Electrodes class
archive | the archive |
version | the current version of this class |
Definition at line 130 of file Electrodes.hpp.
References ProcessSpecificArchive< Archive >::Get(), Electrodes< DIM >::mAreActive, Electrodes< DIM >::mEndTime, Electrodes< DIM >::mGroundSecondElectrode, Electrodes< DIM >::mpBoundaryConditionsContainer, Electrodes< DIM >::mpMesh, and Electrodes< DIM >::mStartTime.
|
inlineprivate |
Save the Electrodes class
archive | the archive |
version | the current version of this class |
Definition at line 114 of file Electrodes.hpp.
References ProcessSpecificArchive< Archive >::Get(), Electrodes< DIM >::mAreActive, Electrodes< DIM >::mEndTime, Electrodes< DIM >::mGroundSecondElectrode, Electrodes< DIM >::mpBoundaryConditionsContainer, Electrodes< DIM >::mpMesh, and Electrodes< DIM >::mStartTime.
bool Electrodes< DIM >::SwitchOff | ( | double | time | ) |
time | the current time |
Definition at line 143 of file Electrodes.cpp.
bool Electrodes< DIM >::SwitchOn | ( | double | time | ) |
time | the current time |
Definition at line 158 of file Electrodes.cpp.
|
friend |
Needed for serialization.
Definition at line 106 of file Electrodes.hpp.
|
private |
Whether the electrodes are currently switched on
Definition at line 80 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().
|
private |
The time the electrodes are switched off
Definition at line 78 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::GetSwitchOffTime(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().
|
private |
Whether the second electrode is grounded
Definition at line 72 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::HasGroundedElectrode(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().
|
private |
Left electrode area
Definition at line 89 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes().
|
private |
The created bcc, which BidomainProblem will use
Definition at line 74 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().
|
private |
This is needed for archiving: the boundary conditions refer to nodes and/or elements, so need the mesh to be archived, but don't have a pointer to the mesh itself.
Definition at line 86 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().
|
private |
Right electrode area
Definition at line 92 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes().
|
private |
The time the electrodes are switched on
Definition at line 76 of file Electrodes.hpp.
Referenced by Electrodes< DIM >::Electrodes(), Electrodes< DIM >::GetSwitchOnTime(), Electrodes< DIM >::load(), and Electrodes< DIM >::save().