Chaste  Release::2017.1
AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractTetrahedralElement.hpp>

+ Inheritance diagram for AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 AbstractTetrahedralElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
 AbstractTetrahedralElement (unsigned index=INDEX_IS_NOT_USED)
 
virtual ~AbstractTetrahedralElement ()
 
c_vector< double, SPACE_DIM > CalculateCentroid () const
 
void CalculateJacobian (c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian, double &rJacobianDeterminant)
 
void CalculateWeightedDirection (c_vector< double, SPACE_DIM > &rWeightedDirection, double &rJacobianDeterminant)
 
c_vector< double, SPACE_DIM > CalculateNormal ()
 
void CalculateInverseJacobian (c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian, double &rJacobianDeterminant, c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian)
 
double GetVolume (double determinant) const
 
void GetStiffnessMatrixGlobalIndices (unsigned problemDim, unsigned *pIndices) const
 
- Public Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
 AbstractElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
 AbstractElement (unsigned index=INDEX_IS_NOT_USED)
 
virtual ~AbstractElement ()
 
virtual void UpdateNode (const unsigned &rIndex, Node< SPACE_DIM > *pNode)=0
 
void ReplaceNode (Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
 
virtual void MarkAsDeleted ()=0
 
virtual void RegisterWithNodes ()=0
 
double GetNodeLocation (unsigned localIndex, unsigned dimension) const
 
c_vector< double, SPACE_DIM > GetNodeLocation (unsigned localIndex) const
 
unsigned GetNodeGlobalIndex (unsigned localIndex) const
 
Node< SPACE_DIM > * GetNode (unsigned localIndex) const
 
unsigned GetNumNodes () const
 
void AddNode (Node< SPACE_DIM > *pNode)
 
bool IsDeleted () const
 
unsigned GetIndex () const
 
void SetIndex (unsigned index)
 
bool GetOwnership () const
 
void SetOwnership (bool ownership)
 
void SetAttribute (double attribute)
 
double GetAttribute ()
 
unsigned GetUnsignedAttribute ()
 
void AddElementAttribute (double attribute)
 
std::vector< double > & rGetElementAttributes ()
 
unsigned GetNumElementAttributes ()
 

Protected Member Functions

void RefreshJacobian (c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian)
 
- Protected Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
void ConstructElementAttributes ()
 

Additional Inherited Members

- Protected Attributes inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
std::vector< Node< SPACE_DIM > * > mNodes
 
unsigned mIndex
 
bool mIsDeleted
 
bool mOwnership
 
ElementAttributes< ELEMENT_DIM, SPACE_DIM > * mpElementAttributes
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >

This abstract class defines a tetrahedral element for use in the Finite Element Method.

Definition at line 52 of file AbstractTetrahedralElement.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement ( unsigned  index,
const std::vector< Node< SPACE_DIM > * > &  rNodes 
)

Constructor which takes in a vector of nodes.

Parameters
indexthe index of the element in the mesh
rNodesthe nodes owned by the element

Definition at line 63 of file AbstractTetrahedralElement.cpp.

References AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement ( unsigned  index = INDEX_IS_NOT_USED)

Default constructor, which doesn't fill in any nodes. The nodes must be added later.

Parameters
indexthe index of the element in the mesh (defaults to INDEX_IS_NOT_USED)

Definition at line 104 of file AbstractTetrahedralElement.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateCentroid ( ) const
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateInverseJacobian ( c_matrix< double, SPACE_DIM, ELEMENT_DIM > &  rJacobian,
double rJacobianDeterminant,
c_matrix< double, ELEMENT_DIM, SPACE_DIM > &  rInverseJacobian 
)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection ( c_vector< double, SPACE_DIM > &  rWeightedDirection,
double rJacobianDeterminant 
)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetStiffnessMatrixGlobalIndices ( unsigned  problemDim,
unsigned pIndices 
) const
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetVolume ( double  determinant) const
Returns
the volume of an element (or area in 2d, or length in 1d)
Parameters
determinanta pre-calculated Jacobian determinant for this element.
Returns
volume (which is simply the determinant weighted by the SPACE_DIM)

Definition at line 240 of file AbstractTetrahedralElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted.

Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfCell(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralElement().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian ( c_matrix< double, SPACE_DIM, ELEMENT_DIM > &  rJacobian)
protected

Refresh the Jacobian for this element.

Parameters
rJacobianthe Jacobian matrix

Definition at line 47 of file AbstractTetrahedralElement.cpp.

References EXCEPTION.

Referenced by AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection().


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