00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "NonCachedTetrahedralMesh.hpp"
00030 #include "Exception.hpp"
00031
00032 template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
00033 void NonCachedTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>::RefreshJacobianCachedData()
00034 {
00035
00036 }
00037
00038 template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
00039 void NonCachedTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>::GetJacobianForElement(unsigned elementIndex, c_matrix<double, SPACE_DIM, SPACE_DIM>& rJacobian, double& rJacobianDeterminant) const
00040 {
00041 EXCEPTION("Use GetInverseJacobianForElement to retrieve Jacobian data instead.");
00042 }
00043
00044
00045 template <unsigned ELEMENT_DIM, unsigned SPACE_DIM>
00046 void NonCachedTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>::GetInverseJacobianForElement(
00047 unsigned elementIndex,
00048 c_matrix<double, SPACE_DIM, ELEMENT_DIM>& rJacobian,
00049 double& rJacobianDeterminant,
00050 c_matrix<double, ELEMENT_DIM, SPACE_DIM>& rInverseJacobian) const
00051 {
00052 this->mElements[this->SolveElementMapping(elementIndex)]->CalculateInverseJacobian(rJacobian, rJacobianDeterminant, rInverseJacobian);
00053 }
00054
00055 template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
00056 void NonCachedTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>::GetWeightedDirectionForElement(unsigned elementIndex, c_vector<double, SPACE_DIM>& rWeightedDirection, double& rJacobianDeterminant) const
00057 {
00058
00059 EXCEPTION("Probably redundant method.");
00060 }
00061
00062 template <unsigned ELEMENT_DIM, unsigned SPACE_DIM>
00063 void NonCachedTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>::GetWeightedDirectionForBoundaryElement(
00064 unsigned elementIndex,
00065 c_vector<double, SPACE_DIM>& rWeightedDirection,
00066 double& rJacobianDeterminant) const
00067 {
00068 this->mBoundaryElements[this->SolveBoundaryElementMapping(elementIndex)]->CalculateWeightedDirection(rWeightedDirection, rJacobianDeterminant );
00069 }
00070
00071
00073
00075
00076 template class NonCachedTetrahedralMesh<3,3>;
00077 template class NonCachedTetrahedralMesh<2,2>;
00078 template class NonCachedTetrahedralMesh<1,1>;