![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsFEMMeshTetrahedraGen.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (12/15/2009) 00009 UPDATE (04/01/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_FEM_MESH_TETRAHEDRA_GEN_HPP 00012 #define TAPs_FEM_MESH_TETRAHEDRA_GEN_HPP 00013 00014 #include "TAPsFEMMeshTetrahedra.hpp" 00015 #include "../CG/TAPsGridGenerator.hpp" 00016 00017 BEGIN_NAMESPACE_TAPs__FEM 00018 //============================================================================= 00019 template <typename T, typename DATA = unsigned char> 00020 class MeshTetrahedraGen { 00021 //============================================================================= 00022 public: 00023 // Member Functions ------------------------------------------------------- 00024 00026 static void OneElementMesh ( MeshTetrahedra<T> & rTetFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00027 00029 static void TwoElementMeshJoinByNode ( MeshTetrahedra<T> & rTetFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00030 00032 static void TwoElementMeshJoinByEdge ( MeshTetrahedra<T> & rTetFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00033 00035 static void TwoElementMeshJoinByFace ( MeshTetrahedra<T> & rTetFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00036 00038 static void SixTetrahedraSubFromHexahedron ( MeshTetrahedra<T> & rTetFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00039 00042 00049 static bool MeshFromGridGenerator ( 00050 MeshTetrahedra<T> & rTetFemMesh, 00051 GridGenerator<T,DATA> & rGridGen, 00052 T mass = 1, 00053 T YoungsModulus = 96, 00054 T PoissonsRatio = T(1)/T(3) 00055 ); 00056 00059 00066 static bool MeshFromGridGenerator ( 00067 MeshTetrahedra<T> & rTetFemMesh, 00068 std::vector< TetBarycentricCoordsForVertexRef<T> > & rBaryCoords, 00069 //std::vector< unsigned int > & r_ElementID, //!< identify the element that the barycentric coordinates are embedded in 00070 GridGenerator<T,DATA> & rGridGen, 00071 T mass = 1, 00072 T YoungsModulus = 96, 00073 T PoissonsRatio = T(1)/T(3), 00074 bool bGenElementsInsideVolume = true 00075 ); 00076 00077 // Data Members ----------------------------------------------------------- 00078 //============================================================================= 00079 protected: 00080 // Member Functions ------------------------------------------------------- 00081 // Data Members ----------------------------------------------------------- 00082 //============================================================================= 00083 private: 00084 // Member Functions ------------------------------------------------------- 00085 00087 // that the vertex is embedded inside (or on the boundary) 00088 static void FindAllBaryCoordsAndTheirLocInTheGrids ( 00089 std::vector< TetBarycentricCoordsForVertexRef<T> > & rBaryCoords, 00090 //std::vector< unsigned int > & r_ElementID, //!< identify the element that the barycentric coordinates are embedded in 00091 GridGenerator<T,DATA> & rGridGen, 00092 bool **** pValidElements 00093 ); 00094 00096 //static void SetAccessors ( MeshTetrahedra<T> & rTetFemMesh ); 00098 //static void ClearAccessors (); 00099 00100 // Data Members ----------------------------------------------------------- 00101 //static std::vector< Tetrahedron<T> > * m_pListOfElements; //!< temp pointer to a list of elements 00102 //static std::vector< Vector3<T> > * m_pListOfDeformedMeshNodes; //!< temp pointer to a list of deformed mesh nodes 00103 //static std::vector< Vector3<T> > * m_pListOfUndeformedMeshNodes; //!< temp pointer to a list of undeformed mesh nodes 00104 //============================================================================= 00105 }; // END CLASS MeshTetrahedraGen 00106 //============================================================================= 00107 END_NAMESPACE_TAPs__FEM 00108 //----------------------------------------------------------------------------- 00110 #include "TAPsFEMMeshTetrahedraGen.cpp" 00111 00113 // Include definition if TAPs_USE_EXPORT is not defined 00114 //#if !defined( TAPs_USE_EXPORT ) 00115 // #include "TAPsFEMMeshTetrahedraGen.cpp" 00116 //#endif 00117 //----------------------------------------------------------------------------- 00118 #endif 00119 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00120 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----