hp2FEM
0.1
|
00001 #ifndef _MESHTOPOLOGY_H_ 00002 #define _MESHTOPOLOGY_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : MeshTopology.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 <cstring> 00038 #include "meshtopology/NodeElementTable.h" 00039 #include "meshtopology/NodeNodeTable.h" 00040 #include "meshtopology/NodeEquationTable.h" 00041 #include "meshtopology/HighOrder.h" 00042 #include "nurbs/BoundaryData.h" 00043 #include "geometrymesh/GeometryMesh.h" 00044 00045 00056 class MeshTopology 00057 { 00058 //#UBLK-BEG-CLASSDEF mm:2381a900-f742-11df-9a4b-85986e853626 00059 //#UBLK-END-CLASSDEF 00060 00061 public: 00062 00063 // METHOD=mm:0b117a69-f742-11df-9a4b-85986e853626 00064 MeshTopology(); 00065 00066 // METHOD=mm:86fa8df4-5ca6-11e0-82fc-b6dff0bcd154 00067 MeshTopology(MeshTopology& Instance); 00068 00069 // METHOD=mm:a4eda9c6-5bc0-11e0-86de-98639972ab8b 00070 ~MeshTopology(); 00071 00072 // METHOD=mm:5fcc75a1-5bc6-11e0-86de-98639972ab8b 00073 MeshTopology& operator=(MeshTopology& Instance); 00074 00075 // METHOD=mm:cc0aaf1b-5be5-11e0-86de-98639972ab8b 00076 operator NodeElementTable &(); 00077 00078 // METHOD=mm:e775bd09-5be5-11e0-86de-98639972ab8b 00079 operator NodeNodeTable &(); 00080 00081 // METHOD=mm:fceae191-5be5-11e0-86de-98639972ab8b 00082 operator ElementElementTable &(); 00083 00084 // METHOD=mm:070cd5cb-5be6-11e0-86de-98639972ab8b 00085 operator NodeEquationTable &(); 00086 00087 // METHOD=mm:8b34ca3e-f54f-4d88-b706-5f9be9406427 00088 operator HighOrder&(); 00089 00090 // METHOD=mm:0b117af8-f742-11df-9a4b-85986e853626 00091 void BuildAll(FEGroups& Groups, BoundaryData& BData, GeometryMesh& GeoMsh, unsigned long NumInputNodes, unsigned long Dimension); 00092 00093 // METHOD=mm:bd089307-6000-4c2d-9eb4-5967311d4fda 00094 void BuildAllElemElemSolver(FEGroups& Groups, BoundaryData& BData, GeometryMesh& GeoMsh, unsigned long NumInputNodes, unsigned long Dimension); 00095 00096 // METHOD=mm:0b117a6a-f742-11df-9a4b-85986e853626 00097 void Print(FILE* File, char* Message = ""); 00098 00099 // METHOD=mm:5b2cd8bd-5ca9-11e0-82fc-b6dff0bcd154 00100 void Save(char* Tabname, int Version, char* Filename); 00101 00102 // METHOD=mm:0b117a6b-f742-11df-9a4b-85986e853626 00103 void Save(FILE* File); 00104 00105 // METHOD=mm:b9f23f69-5ca9-11e0-82fc-b6dff0bcd154 00106 void Restore(char* Tabname, int Version, char* Filename); 00107 00108 // METHOD=mm:0b117a6c-f742-11df-9a4b-85986e853626 00109 void Restore(FILE* File); 00110 00111 // METHOD=mm:d96cb215-5e3a-11e0-8e9e-d80bb329630b 00112 void Free(); 00113 00114 00115 protected: 00116 00120 // attr=mm:b9f7a613-f7c6-11df-8693-cca4a5a4a04b 00121 NodeElementTable NoElemTabInputMesh; 00122 00126 // attr=mm:aedf981d-1017-4994-9ea8-7eb86d06039f 00127 NodeElementTable NoElemTabSoluMesh; 00128 00133 // attr=mm:be23c73f-f7c6-11df-8693-cca4a5a4a04b 00134 NodeNodeTable NoNoTab; 00135 00139 // attr=mm:c67c13f1-f7c6-11df-8693-cca4a5a4a04b 00140 ElementElementTable ElemElemTab; 00141 00145 // attr=mm:ce3b9d91-f7c6-11df-8693-cca4a5a4a04b 00146 NodeEquationTable NoEqTab; 00147 00151 // attr=mm:ddbaf2cb-f7c6-11df-8693-cca4a5a4a04b 00152 HighOrder HghOrdr; 00153 00154 00155 private: 00156 00157 //#UBLK-BEG-CLASSMEMB mm:2381a900-f742-11df-9a4b-85986e853626 00158 //#UBLK-END-CLASSMEMB 00159 }; 00160 00161 //#UBLK-BEG-GLOBALH 00162 //*** Removed methods: 13 Dec 2011 20:14 00163 //--- 00164 //uuid=mm:070cd5cb-5be6-11e0-86de-98639972ab8b 00165 // operator EquationEquationTable&(); 00166 00167 //*** Removed methods: 06 Apr 2012 23:00 00168 //--- 00169 //uuid=mm:6bd73103-6a74-4dde-95f8-7d42ce82be39 00170 // operator HighOrder&(); 00171 00172 //#UBLK-END-GLOBALH 00173 00174 00175 #endif // _MESHTOPOLOGY_H_