#include <AbstractTetrahedralElement.hpp>
Inherits AbstractElement< ELEMENT_DIM, SPACE_DIM >.
Inherited by BoundaryElement< ELEMENT_DIM, SPACE_DIM >, BoundaryElement< ELEM_DIM, SPACE_DIM >, and Element< 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 |
Protected Member Functions | |
void | RefreshJacobian (c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian) |
This abstract class defines a tetrahedral element for use in the Finite Element Method.
Definition at line 45 of file AbstractTetrahedralElement.hpp.
AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement | ( | unsigned | index, | |
const std::vector< Node< SPACE_DIM > * > & | rNodes | |||
) | [inline] |
Constructor which takes in a vector of nodes.
index | the index of the element in the mesh | |
rNodes | the nodes owned by the element |
Definition at line 56 of file AbstractTetrahedralElement.cpp.
References AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
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.
index | the index of the element in the mesh (defaults to INDEX_IS_NOT_USED) |
Definition at line 98 of file AbstractTetrahedralElement.cpp.
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.
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 191 of file AbstractTetrahedralElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
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.
rJacobian | the Jacobian matrix (output) | |
rJacobianDeterminant | the determinant of the Jacobian (output) | |
rInverseJacobian | the inverse Jacobian matrix (output) |
Definition at line 202 of file AbstractTetrahedralElement.cpp.
References AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), and Inverse().
Referenced by AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnCableElement(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CalculateOnElement(), Element< ELEMENT_DIM, SPACE_DIM >::CalculateQuality(), and Element< ELEMENT_DIM, SPACE_DIM >::CalculateXi().
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian | ( | c_matrix< double, SPACE_DIM, ELEMENT_DIM > & | rJacobian, | |
double & | rJacobianDeterminant | |||
) | [inline] |
Compute the Jacobian for this element.
rJacobian | the Jacobian matrix | |
rJacobianDeterminant | the determinant of the Jacobian |
Definition at line 103 of file AbstractTetrahedralElement.cpp.
References Determinant(), EXCEPTION, AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian().
Referenced by AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateInverseJacobian().
c_vector< double, SPACE_DIM > AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateNormal | ( | ) | [inline] |
Compute a unit vector normal to this element, if possible.
Definition at line 170 of file AbstractTetrahedralElement.cpp.
References AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection(), and EXCEPTION.
Referenced by IncompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement(), and CompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement().
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection | ( | c_vector< double, SPACE_DIM > & | rWeightedDirection, | |
double & | rJacobianDeterminant | |||
) | [inline] |
Compute the weighted direction for this element.
rWeightedDirection | the weighted direction vector | |
rJacobianDeterminant | the determinant of the Jacobian |
Definition at line 121 of file AbstractTetrahedralElement.cpp.
References EXCEPTION, NEVER_REACHED, AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian(), and SubDeterminant().
Referenced by AbstractTetrahedralElement< 0, SPACE_DIM >::AbstractTetrahedralElement(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement(), IncompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement(), CompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateNormal().
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.
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 236 of file AbstractTetrahedralElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex().
Referenced by AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DoAssemble(), and AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble().
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)
determinant | a pre-calculated Jacobian determinant for this element. |
Definition at line 213 of file AbstractTetrahedralElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted.
void AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian | ( | c_matrix< double, SPACE_DIM, ELEMENT_DIM > & | rJacobian | ) | [inline, protected] |
Refresh the Jacobian for this element.
rJacobian | the Jacobian matrix |
Definition at line 40 of file AbstractTetrahedralElement.cpp.
References EXCEPTION, AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted.
Referenced by AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateJacobian(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateWeightedDirection().