hp2FEM  0.1
include/fegroups/ElementTopologicalIndices.h
00001 #ifndef _ELEMENTTOPOLOGICALINDICES_H_
00002 #define _ELEMENTTOPOLOGICALINDICES_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:22
00007 // file      : ElementTopologicalIndices.h
00008 // markers   : Full
00009 // language  : C++
00010 // generator : Metamill 6.0
00011 // ---------------------------------------------
00012 
00013 //#UBLK-BEG-HEADERH
00014 //==============================================================
00015 // Description : 
00016 //--------------------------------------------------------------
00017 // Author      : Gilberto Luis
00018 // Created     : 08 Jun 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   08 Jun 2011 (Gilberto Luis) Initial version generated
00022 //
00023 //==============================================================
00024 //#UBLK-END-HEADERH
00025 
00026 /*=================================================================================================
00027 =                                                                                                 =
00028 =       Copyright 2010-2015  Marco Lucio Bittencourt / Fabiano Fernandes Bargos                       =
00029 =                        Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias  =
00030 =                                                                                                 =
00031 =       Licensed under the Apache License, Version 2.0 (the "License");                               =
00032 =       you may not use this file except in compliance with the License.                              =
00033 =       You may obtain a copy of the License at                                                       =
00034 =                                                                                                 =
00035 =               http://www.apache.org/licenses/LICENSE-2.0                                                =
00036 =                                                                                                 =
00037 =       Unless required by applicable law or agreed to in writing, software                           =
00038 =       distributed under the License is distributed on an "AS IS" BASIS,                             =
00039 =       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.                      =
00040 =       See the License for the specific language governing permissions and                           =
00041 =       limitations under the License.                                                                =
00042 =                                                                                                 =
00043 =================================================================================================*/
00044 
00045 
00046 #include <cstdio>
00047 #include "ds/BuiltInArray.h"
00048 #include "ds/OneIndexTable.h"
00049 #include "ds/TwoIndexTable.h"
00050 #include "enumerations/ElementShape_E.h"
00051 
00052 
00061 class ElementTopologicalIndices
00062 {
00063 //#UBLK-BEG-CLASSDEF mm:2381a902-f742-11df-9a4b-85986e853626
00064 //#UBLK-END-CLASSDEF
00065 
00066  public:
00067 
00068    // METHOD=mm:0b117ba0-f742-11df-9a4b-85986e853626
00069    ElementTopologicalIndices();
00070 
00071    // METHOD=mm:fa199b6b-593c-11e0-8e1d-d62c684a44a5
00072    ElementTopologicalIndices(ElementShape_E ElemShape, unsigned long MaxPolyOrder, BuiltInArray<long>& PolyOrder);
00073 
00074    // METHOD=mm:85931e03-593d-11e0-8e1d-d62c684a44a5
00075    ElementTopologicalIndices(ElementTopologicalIndices& Instance);
00076 
00077    // METHOD=mm:f803fdc5-593d-11e0-8e1d-d62c684a44a5
00078    ~ElementTopologicalIndices();
00079 
00080    // METHOD=mm:0c47fca5-593e-11e0-8e1d-d62c684a44a5
00081    ElementTopologicalIndices& operator=(ElementTopologicalIndices& Instance);
00082 
00083    // METHOD=mm:cf3047d3-593e-11e0-8e1d-d62c684a44a5
00084    unsigned long* GetEdgeIndices(unsigned long PolyOrder, unsigned long EdgeNum, unsigned long& NumberIndices);
00085 
00086    // METHOD=mm:cfc8da07-593e-11e0-8e1d-d62c684a44a5
00087    unsigned long* GetFaceIndices(unsigned long PolyOrder, unsigned long FaceNum, unsigned long& NumberIndices);
00088 
00089    // METHOD=mm:c9567459-c45d-11e0-86e1-fa46c902ceb3
00090    unsigned long GetNumberElementNodes(unsigned long PolyOrder);
00091 
00092    // METHOD=mm:f7f9d1f7-f7d0-11df-8693-cca4a5a4a04b
00093    unsigned long GetNumberVertexIndices();
00094 
00095    // METHOD=mm:0ba52ba7-f7d1-11df-8693-cca4a5a4a04b
00096    unsigned long GetNumberEdgeIndices(unsigned long PolyOrder);
00097 
00098    // METHOD=mm:2e374407-f7d1-11df-8693-cca4a5a4a04b
00099    unsigned long GetNumberFaceIndices(unsigned long PolyOrder);
00100 
00101    // METHOD=mm:41e2be0f-f7d1-11df-8693-cca4a5a4a04b
00102    unsigned long GetNumberBodyIndices(unsigned long PolyOrder);
00103 
00104    // METHOD=mm:95b2789b-4560-4ee5-96d3-7ec743dbbb0b
00105    unsigned long GetNumberInternalFaceIndices(unsigned long PolyOrder);
00106 
00107    // METHOD=mm:bf0acc7e-c7cd-438b-a4bb-a931b03f3889
00108    unsigned long GetNumberVertices();
00109 
00110    // METHOD=mm:57c32616-a031-4b67-aa83-6d2b32883c7d
00111    unsigned long GetNumberEdges();
00112 
00113    // METHOD=mm:8afc5044-9ab9-4d5d-a99a-63d9bbc4fd65
00114    unsigned long GetNumberFaces();
00115 
00116    // METHOD=mm:515380d8-7f31-4c6b-92b0-52a77f651469
00117    unsigned long GetNumberBodies();
00118 
00119    // METHOD=mm:b46e8481-9d74-4691-b538-236209c2a28a
00120    void SetElementShape(ElementShape_E Element);
00121 
00122    // METHOD=mm:9d27b0ee-5ed1-4da9-a522-3b8f100eba9a
00123    void Save(FILE* File);
00124 
00125    // METHOD=mm:8dc14033-9e9b-402f-9c03-ddfc7916bdf0
00126    void Restore(FILE* File);
00127 
00128    // METHOD=mm:63dc3013-f7d1-11df-8693-cca4a5a4a04b
00129    void RunTopologicalIndices(ElementShape_E ElemShape, BuiltInArray<long>& PolyOrder, unsigned long MaxPolyOrder = 0);
00130 
00131    // METHOD=mm:1d3a18fb-f7d0-11df-8693-cca4a5a4a04b
00132    void Print(FILE* File);
00133 
00134    // METHOD=mm:b6da0233-595a-42aa-aa67-b9f2290fdb86
00135    void Free();
00136 
00137 
00141    // attr=mm:54feb2c9-593c-11e0-8e1d-d62c684a44a5
00142    unsigned long NumPolyOrderSets;
00143 
00147    // attr=mm:824b6c77-593c-11e0-8e1d-d62c684a44a5
00148    BuiltInArray<long> PolyOrderSets;
00149 
00153    // attr=mm:c351e29b-3452-11e0-835f-99a03fc24d59
00154    TwoIndexTable<unsigned long> FaceIndTable;
00155 
00159    // attr=mm:1b8f79b8-2ef6-4bc0-82e3-405722863f8c
00160    TwoIndexTable<unsigned long> EdgeIndTable;
00161 
00165    // attr=mm:d618862e-ab10-45a3-ae4a-fa39417a0ee6
00166    unsigned long NumberVertices;
00167 
00171    // attr=mm:d14d6ecd-4857-4a92-a50d-bd82f62ef429
00172    unsigned long NumberEdges;
00173 
00177    // attr=mm:2ba5cc54-59e9-4cfd-ad0a-0aaeec1dd955
00178    unsigned long NumberFaces;
00179 
00183    // attr=mm:d9661bc0-42f1-41c1-b58b-558cce194b8a
00184    unsigned long NumberBodies;
00185 
00189    // attr=mm:0707e867-1d10-4de9-a50b-c590fe3ec38b
00190    ElementShape_E ElementShape;
00191 
00192 
00193  protected:
00194 
00195  private:
00196 
00197 //#UBLK-BEG-CLASSMEMB mm:2381a902-f742-11df-9a4b-85986e853626
00198 //#UBLK-END-CLASSMEMB
00199 };
00200 
00201 //#UBLK-BEG-GLOBALH
00202 //*** Removed methods: 12 Dec 2011 17:49
00203 //---
00204 //uuid=mm:0b117ba2-f742-11df-9a4b-85986e853626
00205 //   unsigned short* GetVertexIndices(unsigned long PolyOrder, unsigned long& NumberIndices);
00206 //---
00207 //uuid=mm:d0617983-593e-11e0-8e1d-d62c684a44a5
00208 //   unsigned short* GetBodyIndices(unsigned long PolyOrder, unsigned long& NumberIndices);
00209 //---
00210 //uuid=mm:35b554cb-593f-11e0-8e1d-d62c684a44a5
00211 //   unsigned short* GetEdgeFaceIndices(unsigned long PolyOrder, unsigned long& NumberEdgeIndices, unsigned long& NumberFaceIndices);
00212 
00213 //#UBLK-END-GLOBALH
00214 
00215 
00216 #endif // _ELEMENTTOPOLOGICALINDICES_H_
 All Classes Files Functions Variables Typedefs Friends Defines