hp2FEM
0.1
|
00001 #ifndef _ELEMENTELEMENTTABLE_H_ 00002 #define _ELEMENTELEMENTTABLE_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : ElementElementTable.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 //#UBLK-END-HEADERH 00015 00016 /*================================================================================================= 00017 = = 00018 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00019 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00020 = = 00021 = Licensed under the Apache License, Version 2.0 (the "License"); = 00022 = you may not use this file except in compliance with the License. = 00023 = You may obtain a copy of the License at = 00024 = = 00025 = http://www.apache.org/licenses/LICENSE-2.0 = 00026 = = 00027 = Unless required by applicable law or agreed to in writing, software = 00028 = distributed under the License is distributed on an "AS IS" BASIS, = 00029 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00030 = See the License for the specific language governing permissions and = 00031 = limitations under the License. = 00032 = = 00033 =================================================================================================*/ 00034 00035 00036 #include <cstdio> 00037 #include <cstdlib> 00038 #include "acdp/acdp.h" 00039 #include "ds/Vector.h" 00040 #include "ds/BuiltInArray.h" 00041 #include "enumerations/MeshID_E.h" 00042 #include "fegroups/FEGroups.h" 00043 #include "meshtopology/NodeElementTable.h" 00044 00045 00053 class ElementElementTable 00054 { 00055 //#UBLK-BEG-CLASSDEF mm:2381a903-f742-11df-9a4b-85986e853626 00056 //#UBLK-END-CLASSDEF 00057 00058 public: 00059 00060 // METHOD=mm:a6dd7f2f-5ca5-11e0-82fc-b6dff0bcd154 00061 ElementElementTable(); 00062 00063 // METHOD=mm:0b117c33-f742-11df-9a4b-85986e853626 00064 ElementElementTable(unsigned long TotalNumberElements, unsigned long Dimension); 00065 00066 // METHOD=mm:fa04e959-5ca8-11e0-82fc-b6dff0bcd154 00067 ElementElementTable(ElementElementTable& Instance); 00068 00069 // METHOD=mm:b1980163-5ca5-11e0-82fc-b6dff0bcd154 00070 ~ElementElementTable(); 00071 00072 // METHOD=mm:fa4fbc43-5ca5-11e0-82fc-b6dff0bcd154 00073 ElementElementTable& operator=(ElementElementTable& Instance); 00074 00075 // METHOD=mm:0b117c38-f742-11df-9a4b-85986e853626 00076 void BuildElementElementTable(FEGroups& Groups, NodeElementTable& NoElemTable, unsigned long Dimension); 00077 00078 // METHOD=mm:0b117cce-f742-11df-9a4b-85986e853626 00079 unsigned long GetNumberNeighbours(unsigned long ElementGlobalNumber); 00080 00081 // METHOD=mm:0b117ccf-f742-11df-9a4b-85986e853626 00082 long*const GetNeighbourElements(unsigned long ElementGlobalNumber, unsigned long& NumberNeighbourElements); 00083 00084 // METHOD=mm:0b117c34-f742-11df-9a4b-85986e853626 00085 void Print(FILE* File, char* Message = ""); 00086 00087 // METHOD=mm:0b117c35-f742-11df-9a4b-85986e853626 00088 void Save(char* Tabname, int Version, char* Filename); 00089 00090 // METHOD=mm:e10442c3-5cb8-11e0-82fc-b6dff0bcd154 00091 void Save(FILE* File); 00092 00093 // METHOD=mm:173fcc17-5cb5-11e0-82fc-b6dff0bcd154 00094 void Restore(char* Tabname, int Version, char* Filename); 00095 00096 // METHOD=mm:0b117c36-f742-11df-9a4b-85986e853626 00097 void Restore(FILE* File); 00098 00099 // METHOD=mm:cfe33c73-5e3a-11e0-8e9e-d80bb329630b 00100 void Free(); 00101 00102 00103 protected: 00104 00108 // attr=mm:0b117c32-f742-11df-9a4b-85986e853626 00109 OneIndexTable<long> ElemElemTable; 00110 00111 00112 private: 00113 00114 //#UBLK-BEG-CLASSMEMB mm:2381a903-f742-11df-9a4b-85986e853626 00115 //#UBLK-END-CLASSMEMB 00116 }; 00117 00118 //#UBLK-BEG-GLOBALH 00119 //#UBLK-END-GLOBALH 00120 00121 00122 #endif // _ELEMENTELEMENTTABLE_H_