Shards_CellTopologyData.h

00001 /*------------------------------------------------------------------------*/
00002 /*                shards : Shared Discretization Tools                    */
00003 /*                Copyright (2008) Sandia Corporation                     */
00004 /*                                                                        */
00005 /*  Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive   */
00006 /*  license for use of this work by or on behalf of the U.S. Government.  */
00007 /*                                                                        */
00008 /*  This library is free software; you can redistribute it and/or modify  */
00009 /*  it under the terms of the GNU Lesser General Public License as        */
00010 /*  published by the Free Software Foundation; either version 2.1 of the  */
00011 /*  License, or (at your option) any later version.                       */
00012 /*                                                                        */
00013 /*  This library is distributed in the hope that it will be useful,       */
00014 /*  but WITHOUT ANY WARRANTY; without even the implied warranty of        */
00015 /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     */
00016 /*  Lesser General Public License for more details.                       */
00017 /*                                                                        */
00018 /*  You should have received a copy of the GNU Lesser General Public      */
00019 /*  License along with this library; if not, write to the Free Software   */
00020 /*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307   */
00021 /*  USA                                                                   */
00022 /* Questions? Contact Pavel Bochev      (pbboche@sandia.gov)              */
00023 /*                    H. Carter Edwards (hcedwar@sandia.gov)              */
00024 /*                    Denis Ridzal      (dridzal@sandia.gov).             */
00025 /*------------------------------------------------------------------------*/
00026 
00027 #ifndef Shards_CellTopologyData_h
00028 #define Shards_CellTopologyData_h
00029 
00030 #if defined( __cplusplus )
00031 extern "C" {
00032 #endif
00033 
00038 /*----------------------------------------------------------------------*/
00039  
00040 struct CellTopologyData ;
00041 struct CellTopologyData_Subcell ;
00042 struct CellTopologyData_Permutation ;
00043 
00056 struct CellTopologyData {
00060   const struct CellTopologyData * base ;
00061 
00063   const char * name ;
00064 
00066   unsigned key ;
00067 
00069   unsigned dimension ;
00070 
00072   unsigned vertex_count ;
00073 
00078   unsigned node_count ;
00079 
00081   unsigned edge_count ;
00082 
00084   unsigned side_count ;
00085 
00087   unsigned permutation_count ;
00088 
00090   unsigned subcell_homogeneity[4] ;
00091 
00093   unsigned subcell_count[4] ;
00094 
00101   const struct CellTopologyData_Subcell * subcell[4] ;
00102 
00109   const struct CellTopologyData_Subcell * side ;
00110 
00117   const struct CellTopologyData_Subcell * edge ;
00118 
00135   const struct CellTopologyData_Permutation * permutation ;
00136   const struct CellTopologyData_Permutation * permutation_inverse ;
00137 };
00138 
00147 struct CellTopologyData_Subcell {
00149   const struct CellTopologyData * topology ;
00150 
00153   const unsigned * node ;
00154 };
00155 
00157 typedef struct CellTopologyData  CellTopologyData ;
00158 
00175 struct CellTopologyData_Permutation {
00176   const unsigned * node ;
00177   unsigned         polarity ;
00178 };
00179 
00181 enum {
00182   CELL_PERMUTATION_POLARITY_IRRELEVANT = 0 ,
00183   CELL_PERMUTATION_POLARITY_POSITIVE   = 1 ,
00184   CELL_PERMUTATION_POLARITY_NEGATIVE   = 2
00185 };
00186 
00190 extern
00191 int mapCellFaceEdge( const CellTopologyData * cell_topology ,
00192                      unsigned face_ordinal ,
00193                      unsigned face_edge_ordinal );
00194 
00197 #if defined( __cplusplus )
00198 } /* extern "C" */
00199 #endif
00200 
00201 #endif /* Shards_CellTopologyData_h */
00202 

Generated on Tue Oct 20 14:14:35 2009 for shards by  doxygen 1.6.1