hp2FEM
0.1
|
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_