![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsFEMMeshHexahedraGen.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (02/18/2010) 00009 UPDATE (04/01/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_FEM_MESH_HEXAHEDRA_GEN_HPP 00012 #define TAPs_FEM_MESH_HEXAHEDRA_GEN_HPP 00013 00014 #include "TAPsFEMMeshHexahedra.hpp" 00015 #include "../CG/TAPsGridGenerator.hpp" 00016 00017 BEGIN_NAMESPACE_TAPs__FEM 00018 //============================================================================= 00019 template <typename T, typename DATA = unsigned char> 00020 class MeshHexahedraGen { 00021 //============================================================================= 00022 public: 00023 // Member Functions ------------------------------------------------------- 00024 00026 static void OneElementMesh ( MeshHexahedra<T> & rHexFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00027 00029 static void TwoElementMeshJoinByNode ( MeshHexahedra<T> & rHexFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00030 00032 static void TwoElementMeshJoinByEdge ( MeshHexahedra<T> & rHexFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00033 00035 static void TwoElementMeshJoinByFace ( MeshHexahedra<T> & rHexFemMesh, T mass = 1, T YoungsModulus = 96, T PoissonsRatio = 1.0/3.0 ); 00036 00038 static void MeshHexahedraGen<T,DATA>::Bar ( 00039 MeshHexahedra<T> & rHexFemMesh, 00040 unsigned int numOfElements, 00041 T width = 1, 00042 T height = 1, 00043 T depth = 10, 00044 T mass = 1, 00045 T YoungsModulus = 96, 00046 T PoissonsRatio = 1.0/3.0 00047 ); 00048 00051 00058 static bool MeshFromGridGenerator ( 00059 MeshHexahedra<T> & rHexFemMesh, 00060 GridGenerator<T,DATA> & rGridGen, 00061 T mass = 1, 00062 T YoungsModulus = 96, 00063 T PoissonsRatio = T(1)/T(3) 00064 ); 00065 00069 00076 static bool MeshFromGridGenerator ( 00077 MeshHexahedra<T> & rHexFemMesh, 00078 std::vector< HexBarycentricCoordsForVertexRef<T,DATA> > & rBaryCoords, 00079 //std::vector< unsigned int > & rElementID, //!< identify the element that the barycentric coordinates are embedded in 00080 GridGenerator<T,DATA> & rGridGen, 00081 T mass = 1, 00082 T YoungsModulus = 96, 00083 T PoissonsRatio = T(1)/T(3), 00084 bool bGenElementsInsideVolume = true, 00085 int *** pElementsGridLocations = NULL 00086 ); 00087 00088 // Data Members ----------------------------------------------------------- 00089 //============================================================================= 00090 protected: 00091 // Member Functions ------------------------------------------------------- 00092 // Data Members ----------------------------------------------------------- 00093 //============================================================================= 00094 private: 00095 // Member Functions ------------------------------------------------------- 00096 00098 //static void SetAccessors ( MeshHexahedra<T> & rHexFemMesh ); 00100 //static void ClearAccessors (); 00101 00102 // Data Members ----------------------------------------------------------- 00103 //static std::vector< Hexahedron<T> > * m_pListOfElements; //!< temp pointer to a list of elements 00104 //static std::vector< Vector3<T> > * m_pListOfDeformedMeshNodes; //!< temp pointer to a list of deformed mesh nodes 00105 //static std::vector< Vector3<T> > * m_pListOfUndeformedMeshNodes; //!< temp pointer to a list of undeformed mesh nodes 00106 //============================================================================= 00107 }; // END CLASS MeshHexahedraGen 00108 //============================================================================= 00109 END_NAMESPACE_TAPs__FEM 00110 //----------------------------------------------------------------------------- 00112 #include "TAPsFEMMeshHexahedraGen.cpp" 00113 00115 // Include definition if TAPs_USE_EXPORT is not defined 00116 //#if !defined( TAPs_USE_EXPORT ) 00117 // #include "TAPsFEMMeshHexahedraGen.cpp" 00118 //#endif 00119 //----------------------------------------------------------------------------- 00120 #endif 00121 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00122 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----