#include <HeartGeometryInformation.hpp>

Public Member Functions | |
| HeartGeometryInformation (TetrahedralMesh< SPACE_DIM, SPACE_DIM > &rMesh, std::string mEpiFile, std::string mEndoFile) | |
| HeartGeometryInformation (TetrahedralMesh< SPACE_DIM, SPACE_DIM > &rMesh, std::string mEpiFile, std::string mLVFile, std::string mRVFile) | |
| HeartGeometryInformation (TetrahedralMesh< SPACE_DIM, SPACE_DIM > &rMesh, std::vector< unsigned > &rNodesAtEpi, std::vector< unsigned > &rNodesAtEndo) | |
| HeartGeometryInformation (TetrahedralMesh< SPACE_DIM, SPACE_DIM > &rMesh, std::vector< unsigned > &rNodesAtEpi, std::vector< unsigned > &rNodesAtLv, std::vector< unsigned > &rNodesAtRv) | |
| HeartRegionType | GetHeartRegion (unsigned nodeIndex) const |
| std::vector< double > & | rGetDistanceMapEpicardium () |
| std::vector< double > & | rGetDistanceMapEndocardium () |
| std::vector< double > & | rGetDistanceMapRightVentricle () |
| std::vector< double > & | rGetDistanceMapLeftVentricle () |
| const std::vector< unsigned > & | rGetNodesOnEpiSurface () |
| const std::vector< unsigned > & | rGetNodesOnEndoSurface () |
| const std::vector< unsigned > & | rGetNodesOnLVSurface () |
| const std::vector< unsigned > & | rGetNodesOnRVSurface () |
| const std::vector < HeartLayerType > & | rGetLayerForEachNode () |
| double | CalculateRelativeWallPosition (unsigned nodeIndex) |
| void | DetermineLayerForEachNode (double epiFraction, double endoFraction) |
| void | WriteLayerForEachNode (std::string outputDir, std::string file) |
Private Member Functions | |
| void | GetNodesAtSurface (const std::string &surfaceFile, std::vector< unsigned > &rSurfaceNodes) const |
| void | ProcessLine (const std::string &line, std::set< unsigned > &surfaceNodeIndexSet) const |
| double | GetDistanceToEndo (unsigned nodeIndex) |
| double | GetDistanceToEpi (unsigned nodeIndex) |
Private Attributes | |
| std::vector< unsigned > | mEpiSurface |
| std::vector< unsigned > | mEndoSurface |
| std::vector< unsigned > | mLVSurface |
| std::vector< unsigned > | mRVSurface |
| TetrahedralMesh< SPACE_DIM, SPACE_DIM > & | mrMesh |
| std::vector< double > | mDistMapEpicardium |
| std::vector< double > | mDistMapEndocardium |
| std::vector< double > | mDistMapRightVentricle |
| std::vector< double > | mDistMapLeftVentricle |
| unsigned | mNumberOfSurfacesProvided |
| std::vector< HeartLayerType > | mLayerForEachNode |
Static Private Attributes | |
| static const double | LEFT_SEPTUM_SIZE = 2.0/3.0 |
| static const double | RIGHT_SEPTUM_SIZE = 1.0/3.0 |
Definition at line 52 of file HeartGeometryInformation.hpp.
| HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation | ( | TetrahedralMesh< SPACE_DIM, SPACE_DIM > & | rMesh, | |
| std::string | mEpiFile, | |||
| std::string | mEndoFile | |||
| ) | [inline] |
Constructor for a two surface mesh
| rMesh,: | reference to the mesh | |
| mEpiFile,: | file of elements on the epicardial surface | |
| mEndoFile,: | file of elements on the endocardial surface |
Definition at line 47 of file HeartGeometryInformation.cpp.
References DistanceMapCalculator< SPACE_DIM >::ComputeDistanceMap(), HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface(), HeartGeometryInformation< SPACE_DIM >::mDistMapEndocardium, HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mEndoSurface, HeartGeometryInformation< SPACE_DIM >::mEpiSurface, HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, and HeartGeometryInformation< SPACE_DIM >::mrMesh.
| HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation | ( | TetrahedralMesh< SPACE_DIM, SPACE_DIM > & | rMesh, | |
| std::string | mEpiFile, | |||
| std::string | mLVFile, | |||
| std::string | mRVFile | |||
| ) | [inline] |
Constructor for a three surface mesh
| rMesh,: | reference to the mesh | |
| mEpiFile,: | file of elements on the epicardial surface | |
| mRVFile,: | file of elements on the endocardial right ventricular surface | |
| mLVFile,: | file of elements on the endocardial left ventricular surface |
Definition at line 66 of file HeartGeometryInformation.cpp.
References DistanceMapCalculator< SPACE_DIM >::ComputeDistanceMap(), HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface(), HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle, HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle, HeartGeometryInformation< SPACE_DIM >::mEpiSurface, HeartGeometryInformation< SPACE_DIM >::mLVSurface, HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, HeartGeometryInformation< SPACE_DIM >::mrMesh, and HeartGeometryInformation< SPACE_DIM >::mRVSurface.
| HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation | ( | TetrahedralMesh< SPACE_DIM, SPACE_DIM > & | rMesh, | |
| std::vector< unsigned > & | rNodesAtEpi, | |||
| std::vector< unsigned > & | rNodesAtEndo | |||
| ) | [inline] |
Constructor which takes in the nodes indices for each surface (mainly for testing or simple geometries) - 2 surface version
| rMesh,: | reference to the mesh | |
| rNodesAtEpi,: | indices of the nodes in the epicardial surface | |
| rNodesAtEndo,: | indices of the nodes in the endocardial surface |
Definition at line 88 of file HeartGeometryInformation.cpp.
References DistanceMapCalculator< SPACE_DIM >::ComputeDistanceMap(), HeartGeometryInformation< SPACE_DIM >::mDistMapEndocardium, HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, and HeartGeometryInformation< SPACE_DIM >::mrMesh.
| HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation | ( | TetrahedralMesh< SPACE_DIM, SPACE_DIM > & | rMesh, | |
| std::vector< unsigned > & | rNodesAtEpi, | |||
| std::vector< unsigned > & | rNodesAtLv, | |||
| std::vector< unsigned > & | rNodesAtRv | |||
| ) | [inline] |
Constructor which takes in the nodes indices for each surface (mainly for testing or simple geometries)
| rMesh,: | reference to the mesh | |
| rNodesAtEpi,: | indices of the nodes in the epicardial surface | |
| rNodesAtLv,: | indices of the nodes in the lv surface | |
| rNodesAtRv,: | indices of the nodes in the rv surface |
Definition at line 104 of file HeartGeometryInformation.cpp.
References DistanceMapCalculator< SPACE_DIM >::ComputeDistanceMap(), HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle, HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle, HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, and HeartGeometryInformation< SPACE_DIM >::mrMesh.
| void HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface | ( | const std::string & | surfaceFile, | |
| std::vector< unsigned > & | rSurfaceNodes | |||
| ) | const [inline, private] |
Takes in a file of all the surface elements on ONE PARTICULAR surface of the mesh (eg the right ventricular endo-cardial surface) and collects all the nodes on that surface in one vector
| surfaceFile | The surface file | |
| rSurfaceNodes | The returned vector of nodes indices on this surface |
Definition at line 146 of file HeartGeometryInformation.cpp.
References HeartGeometryInformation< SPACE_DIM >::ProcessLine().
Referenced by HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation().
| void HeartGeometryInformation< SPACE_DIM >::ProcessLine | ( | const std::string & | line, | |
| std::set< unsigned > & | surfaceNodeIndexSet | |||
| ) | const [inline, private] |
Helper function for GetNodesAtSurface
| line | A line in a surface file | |
| surfaceNodeIndexSet | The nodes in the element corresponding to this line |
Definition at line 121 of file HeartGeometryInformation.cpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface().
| double HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo | ( | unsigned | nodeIndex | ) | [inline, private] |
Helper method to calculate the distance between the node and the Endocardial surface as defined to be the closest surface to the node out of left ventricle and right ventricle.
| nodeIndex | is the index of the node in the mesh |
Definition at line 221 of file HeartGeometryInformation.cpp.
References HeartGeometryInformation< SPACE_DIM >::GetHeartRegion(), HeartRegionCode::LEFT_SEPTUM, HeartRegionCode::LEFT_VENTRICLE_SURFACE, HeartRegionCode::LEFT_VENTRICLE_WALL, HeartGeometryInformation< SPACE_DIM >::mDistMapEndocardium, HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle, HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle, HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, HeartRegionCode::RIGHT_SEPTUM, HeartRegionCode::RIGHT_VENTRICLE_SURFACE, HeartRegionCode::RIGHT_VENTRICLE_WALL, and HeartRegionCode::UNKNOWN.
Referenced by HeartGeometryInformation< SPACE_DIM >::CalculateRelativeWallPosition().
| double HeartGeometryInformation< SPACE_DIM >::GetDistanceToEpi | ( | unsigned | nodeIndex | ) | [inline, private] |
Helper method to calculate the distance between the node and the Epicardial surface
| nodeIndex | is the index of the node in the mesh |
\ to do: there needs to be the logic for the septum as in Streeter
Definition at line 276 of file HeartGeometryInformation.cpp.
References HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium.
Referenced by HeartGeometryInformation< SPACE_DIM >::CalculateRelativeWallPosition().
| HeartRegionType HeartGeometryInformation< SPACE_DIM >::GetHeartRegion | ( | unsigned | nodeIndex | ) | const [inline] |
| nodeIndex | index is the index of the node in the mesh |
Definition at line 188 of file HeartGeometryInformation.cpp.
References HeartRegionCode::LEFT_SEPTUM, HeartGeometryInformation< SPACE_DIM >::LEFT_SEPTUM_SIZE, HeartRegionCode::LEFT_VENTRICLE_WALL, HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium, HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle, HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle, HeartRegionCode::RIGHT_SEPTUM, HeartRegionCode::RIGHT_VENTRICLE_WALL, and HeartRegionCode::UNKNOWN.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo().
| std::vector<double>& HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapEpicardium | ( | ) | [inline] |
Definition at line 189 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium.
| std::vector<double>& HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapEndocardium | ( | ) | [inline] |
Definition at line 198 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mDistMapEndocardium, and HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided.
| std::vector<double>& HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapRightVentricle | ( | ) | [inline] |
Definition at line 208 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle, and HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided.
| std::vector<double>& HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapLeftVentricle | ( | ) | [inline] |
Definition at line 218 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle, and HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided.
| const std::vector<unsigned>& HeartGeometryInformation< SPACE_DIM >::rGetNodesOnEpiSurface | ( | ) | [inline] |
Get the nodes on the epicardial surface
Definition at line 225 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mEpiSurface.
| const std::vector<unsigned>& HeartGeometryInformation< SPACE_DIM >::rGetNodesOnEndoSurface | ( | ) | [inline] |
Get the nodes on the endocardial surface
Definition at line 232 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mEndoSurface, and HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided.
| const std::vector<unsigned>& HeartGeometryInformation< SPACE_DIM >::rGetNodesOnLVSurface | ( | ) | [inline] |
Get the nodes on the endocardial left ventricular surface
Definition at line 239 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mLVSurface, and HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided.
| const std::vector<unsigned>& HeartGeometryInformation< SPACE_DIM >::rGetNodesOnRVSurface | ( | ) | [inline] |
Get the nodes on the endocardial right ventricular surface
Definition at line 246 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided, and HeartGeometryInformation< SPACE_DIM >::mRVSurface.
| const std::vector<HeartLayerType>& HeartGeometryInformation< SPACE_DIM >::rGetLayerForEachNode | ( | ) | [inline] |
Get the layer for every node in the mesh.
Definition at line 255 of file HeartGeometryInformation.hpp.
References HeartGeometryInformation< SPACE_DIM >::mLayerForEachNode.
| double HeartGeometryInformation< SPACE_DIM >::CalculateRelativeWallPosition | ( | unsigned | nodeIndex | ) | [inline] |
Calculates the relative position within the wall thickness (normalised to [0,1])
| nodeIndex | index is the index of the node in the mesh |
Definition at line 283 of file HeartGeometryInformation.cpp.
References HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), and HeartGeometryInformation< SPACE_DIM >::GetDistanceToEpi().
Referenced by HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode().
| void HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode | ( | double | epiFraction, | |
| double | endoFraction | |||
| ) | [inline] |
Compute which layer (endocardial, midmyocardial or epicardial) each node is in
| epiFraction | is the fraction of wall designed to be epicardial layer | |
| endoFraction | is the fraction of wall designed to be endocardial layer |
Definition at line 307 of file HeartGeometryInformation.cpp.
References HeartGeometryInformation< SPACE_DIM >::CalculateRelativeWallPosition(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), HeartGeometryInformation< SPACE_DIM >::mLayerForEachNode, and HeartGeometryInformation< SPACE_DIM >::mrMesh.
| void HeartGeometryInformation< SPACE_DIM >::WriteLayerForEachNode | ( | std::string | outputDir, | |
| std::string | file | |||
| ) | [inline] |
Write the layer for each node. DetermineLayerForEachNode() must have been called first.
| outputDir | Output directory - note not cleaned | |
| file | Output file |
Definition at line 334 of file HeartGeometryInformation.cpp.
References PetscTools::AmMaster(), PetscTools::Barrier(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), HeartGeometryInformation< SPACE_DIM >::mLayerForEachNode, HeartGeometryInformation< SPACE_DIM >::mrMesh, and OutputFileHandler::OpenOutputFile().
const double HeartGeometryInformation< SPACE_DIM >::LEFT_SEPTUM_SIZE = 2.0/3.0 [inline, static, private] |
Area of the septum considered to belong to the left septum (relative to 1)
Definition at line 57 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetHeartRegion().
const double HeartGeometryInformation< SPACE_DIM >::RIGHT_SEPTUM_SIZE = 1.0/3.0 [inline, static, private] |
Area of the septum considered to belong to the right septum (relative to 1)
Definition at line 59 of file HeartGeometryInformation.hpp.
std::vector<unsigned> HeartGeometryInformation< SPACE_DIM >::mEpiSurface [private] |
The nodes on the epicardial surface
Definition at line 62 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetNodesOnEpiSurface().
std::vector<unsigned> HeartGeometryInformation< SPACE_DIM >::mEndoSurface [private] |
The nodes on the endocardial surface (only used in the 2 surface case)
Definition at line 65 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetNodesOnEndoSurface().
std::vector<unsigned> HeartGeometryInformation< SPACE_DIM >::mLVSurface [private] |
The nodes on the endocardial left ventricular surface (only used in the 3 surface case)
Definition at line 68 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetNodesOnLVSurface().
std::vector<unsigned> HeartGeometryInformation< SPACE_DIM >::mRVSurface [private] |
The nodes on the endocardial right ventricular surface (only used in the 3 surface case)
Definition at line 71 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetNodesOnRVSurface().
TetrahedralMesh<SPACE_DIM,SPACE_DIM>& HeartGeometryInformation< SPACE_DIM >::mrMesh [private] |
The mesh of the problem
Definition at line 108 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::WriteLayerForEachNode().
std::vector<double> HeartGeometryInformation< SPACE_DIM >::mDistMapEpicardium [private] |
Vector to store the distance map to epicardium
Definition at line 111 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), HeartGeometryInformation< SPACE_DIM >::GetDistanceToEpi(), HeartGeometryInformation< SPACE_DIM >::GetHeartRegion(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapEpicardium().
std::vector<double> HeartGeometryInformation< SPACE_DIM >::mDistMapEndocardium [private] |
Vector to store the distance map to endocardium
Definition at line 114 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapEndocardium().
std::vector<double> HeartGeometryInformation< SPACE_DIM >::mDistMapRightVentricle [private] |
Vector to store the distance map to the right ventricle surface
Definition at line 117 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), HeartGeometryInformation< SPACE_DIM >::GetHeartRegion(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapRightVentricle().
std::vector<double> HeartGeometryInformation< SPACE_DIM >::mDistMapLeftVentricle [private] |
Vector to store the distance map to the left ventricle surface
Definition at line 120 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), HeartGeometryInformation< SPACE_DIM >::GetHeartRegion(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), and HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapLeftVentricle().
unsigned HeartGeometryInformation< SPACE_DIM >::mNumberOfSurfacesProvided [private] |
Flag used to tell the methods whether two or three surfaces have been supplied
Definition at line 123 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetDistanceToEndo(), HeartGeometryInformation< SPACE_DIM >::HeartGeometryInformation(), HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapEndocardium(), HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapLeftVentricle(), HeartGeometryInformation< SPACE_DIM >::rGetDistanceMapRightVentricle(), HeartGeometryInformation< SPACE_DIM >::rGetNodesOnEndoSurface(), HeartGeometryInformation< SPACE_DIM >::rGetNodesOnLVSurface(), and HeartGeometryInformation< SPACE_DIM >::rGetNodesOnRVSurface().
std::vector<HeartLayerType> HeartGeometryInformation< SPACE_DIM >::mLayerForEachNode [private] |
Vector to store the layer for each node
Definition at line 126 of file HeartGeometryInformation.hpp.
Referenced by HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode(), HeartGeometryInformation< SPACE_DIM >::rGetLayerForEachNode(), and HeartGeometryInformation< SPACE_DIM >::WriteLayerForEachNode().
1.5.5