TAPs 0.7.7.3
TAPsFEMMeshTetrahedraGen.hpp
Go to the documentation of this file.
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----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines