AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractTetrahedralElement.hpp>

Inheritance diagram for AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >:

Inheritance graph
[legend]
Collaboration diagram for AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >:

Collaboration graph
[legend]

List of all members.

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)
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

Protected Member Functions

void RefreshJacobian (c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian)


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 45 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 
) [inline]

Constructor which takes in a vector of nodes.

Parameters:
index the index of the element in the mesh
rNodes the nodes owned by the element

Definition at line 58 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  )  [inline]

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

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

Definition at line 100 of file AbstractTetrahedralElement.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralElement (  )  [inline, virtual]

Virtual destructor, since this class has virtual methods.

Definition at line 77 of file AbstractTetrahedralElement.hpp.


Member Function Documentation

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateCentroid (  )  const [inline]

Get the location of the centroid of the element.

Definition at line 172 of file AbstractTetrahedralElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian ( c_matrix< double, SPACE_DIM, ELEMENT_DIM > &  rJacobian,
double &  rJacobianDeterminant 
) [inline]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection ( c_vector< double, SPACE_DIM > &  rWeightedDirection,
double &  rJacobianDeterminant 
) [inline]

Compute the weighted direction for this element.

Parameters:
rWeightedDirection the weighted direction vector
rJacobianDeterminant the determinant of the Jacobian

Definition at line 125 of file AbstractTetrahedralElement.cpp.

References EXCEPTION, NEVER_REACHED, AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian(), and SubDeterminant().

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

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 
) [inline]

Compute the Jacobian and the inverse Jacobian for this element.

Parameters:
rJacobian the Jacobian matrix (output)
rJacobianDeterminant the determinant of the Jacobian (output)
rInverseJacobian the inverse Jacobian matrix (output)

Definition at line 183 of file AbstractTetrahedralElement.cpp.

References AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), and Inverse().

Referenced by AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CalculateOnElement(), Element< ELEMENT_DIM, SPACE_DIM >::CalculateQuality(), and Element< ELEMENT_DIM, SPACE_DIM >::CalculateXi().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetVolume ( double  determinant  )  const [inline]

Get the volume of an element (or area in 2d, or length in 1d)

Parameters:
determinant a pre-calculated Jacobian determinant for this element.
Returns:
volume (which is simply the determinant weighted by the SPACE_DIM)

Definition at line 194 of file AbstractTetrahedralElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetStiffnessMatrixGlobalIndices ( unsigned  problemDim,
unsigned *  pIndices 
) const [inline]

Place in the pIndices array, the global indices (within the stiffness matrix) of the degrees of freedom associated with this element.

Parameters:
problemDim the problem dimension e.g. 2 for Bidomain.
pIndices where to store results: an unsigned array with ELEMENT_DIM+1 entries.

Definition at line 217 of file AbstractTetrahedralElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex().

Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble().


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

Generated on Mon Nov 1 12:35:55 2010 for Chaste by  doxygen 1.5.5