PapillaryFibreCalculator Class Reference

#include <PapillaryFibreCalculator.hpp>

Collaboration diagram for PapillaryFibreCalculator:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 PapillaryFibreCalculator (TetrahedralMesh< 3, 3 > &rMesh)
std::vector< c_vector< double, 3 > > CalculateFibreOrientations ()

Private Member Functions

c_vector< double, 3 > GetRadiusVectorForOneElement (unsigned elementIndex)
void GetRadiusVectors ()
void ConstructStructureTensors ()
void SmoothStructureTensors ()

Private Attributes

TetrahedralMesh< 3, 3 > & mrMesh
std::vector< c_vector< double, 3 > > mRadiusVectors
std::vector< c_matrix< double, 3, 3 > > mStructureTensors
std::vector< c_matrix< double, 3, 3 > > mSmoothedStructureTensors

Friends

class TestPapillaryFibreCalculator


Detailed Description

Assigns fibre orientation vectors for papillary muscle structures. Vectors are assigned to be parallel to the direction of the axis of the muscle. To do this we use the "Structure Tensor" method.

Definition at line 39 of file PapillaryFibreCalculator.hpp.


Constructor & Destructor Documentation

PapillaryFibreCalculator::PapillaryFibreCalculator ( TetrahedralMesh< 3, 3 > &  rMesh  ) 

Constructor saves mesh and allocates memory

Parameters:
rMesh The mesh to calculate fibres on

Definition at line 106 of file PapillaryFibreCalculator.hpp.

References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), mRadiusVectors, mrMesh, mSmoothedStructureTensors, and mStructureTensors.


Member Function Documentation

c_vector< double, 3 > PapillaryFibreCalculator::GetRadiusVectorForOneElement ( unsigned  elementIndex  )  [private]

This method calculates the vector from the centroid of an element to all of the boundary nodes. It returns the shortest of the vectors.

Parameters:
elementIndex The index of the element we are calculating radial vectors for
Returns:
The shortest radial vector

Definition at line 133 of file PapillaryFibreCalculator.hpp.

References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorEnd(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), and mrMesh.

Referenced by GetRadiusVectors().

void PapillaryFibreCalculator::GetRadiusVectors (  )  [private]

void PapillaryFibreCalculator::ConstructStructureTensors (  )  [private]

This generates structure tensors from the radial vectors by taking

T = r.r'

Definition at line 176 of file PapillaryFibreCalculator.hpp.

References mRadiusVectors, and mStructureTensors.

Referenced by CalculateFibreOrientations().

void PapillaryFibreCalculator::SmoothStructureTensors (  )  [private]

Smoothes the structure tensor components for each papillary element by looping over all other papillary elements, calculating distance geometric distance between the two elements; if it is within a certain limit, include this in the Gaussian kernel

Here mStructureTensors[i] is the 'rough' tensor for each element and mSmoothedStructureTensors[i] is the smoothed tensor for each element

Definition at line 184 of file PapillaryFibreCalculator.hpp.

References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd(), mrMesh, mSmoothedStructureTensors, and mStructureTensors.

Referenced by CalculateFibreOrientations().

std::vector< c_vector< double, 3 > > PapillaryFibreCalculator::CalculateFibreOrientations (  ) 

Main method - calculate the fibre orientations

Returns:
A fibre vector for each element

Definition at line 114 of file PapillaryFibreCalculator.hpp.

References ConstructStructureTensors(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), GetRadiusVectors(), mrMesh, mSmoothedStructureTensors, and SmoothStructureTensors().


Member Data Documentation

std::vector< c_vector<double, 3> > PapillaryFibreCalculator::mRadiusVectors [private]

vectors from the centre of each element to the nearest boundary node

Definition at line 48 of file PapillaryFibreCalculator.hpp.

Referenced by ConstructStructureTensors(), GetRadiusVectors(), and PapillaryFibreCalculator().

std::vector< c_matrix<double,3,3> > PapillaryFibreCalculator::mStructureTensors [private]

Tensors created from mRadiusVectors

Definition at line 50 of file PapillaryFibreCalculator.hpp.

Referenced by ConstructStructureTensors(), PapillaryFibreCalculator(), and SmoothStructureTensors().

std::vector< c_matrix<double,3,3> > PapillaryFibreCalculator::mSmoothedStructureTensors [private]

Smoothed tensors created from mStructureTensors

Definition at line 52 of file PapillaryFibreCalculator.hpp.

Referenced by CalculateFibreOrientations(), PapillaryFibreCalculator(), and SmoothStructureTensors().


The documentation for this class was generated from the following file:

Generated on Mon Apr 18 11:37:42 2011 for Chaste by  doxygen 1.5.5