hp2FEM
0.1
|
00001 #ifndef _MODEL_H_ 00002 #define _MODEL_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : Model.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 : 27 May 2011 00019 //-------------------------------------------------------------- 00020 // Change history : 00021 // 27 May 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 <cstring> 00048 #include "enumerations/SolverType_E.h" 00049 #include "model/DOFs.h" 00050 #include "model/Nodes.h" 00051 #include "model/Equations.h" 00052 #include "fegroups/FEGroups.h" 00053 #include "loadsets/LoadSets.h" 00054 #include "boundaryconditions/BoundaryConditions.h" 00055 #include "geometrymesh/GeometryMesh.h" 00056 #include "meshtopology/MeshTopology.h" 00057 #include "nurbs/BoundaryData.h" 00058 00059 00067 class Model 00068 { 00069 //#UBLK-BEG-CLASSDEF mm:4527a72f-f997-11df-9ddc-963be5e4332b 00070 //#UBLK-END-CLASSDEF 00071 00072 public: 00073 00074 // METHOD=mm:149526b2-f99a-11df-9ddd-963be5e4332b 00075 Model(); 00076 00077 // METHOD=mm:ac810f85-0304-11e0-843e-b9717acb62a7 00078 Model(Model& Instance); 00079 00080 // METHOD=mm:ac8116bf-0304-11e0-843e-b9717acb62a7 00081 ~Model(); 00082 00083 // METHOD=mm:d12fea07-3a9c-11e0-87c1-fb85dddc7efb 00084 Model& operator =(Model& Instance); 00085 00086 // METHOD=mm:09cfe0dd-3a9d-11e0-87c1-fb85dddc7efb 00087 operator Nodes&(); 00088 00089 // METHOD=mm:4e0f9e1d-3a9e-11e0-87c1-fb85dddc7efb 00090 operator DOFs&(); 00091 00092 // METHOD=mm:96c76357-3a9e-11e0-87c1-fb85dddc7efb 00093 operator MeshTopology&(); 00094 00095 // METHOD=mm:c5ddd5bd-3a9e-11e0-87c1-fb85dddc7efb 00096 operator Equations&(); 00097 00098 // METHOD=mm:d5f5a63d-3a9e-11e0-87c1-fb85dddc7efb 00099 operator FEGroups&(); 00100 00101 // METHOD=mm:0b9a90cd-3a9f-11e0-87c1-fb85dddc7efb 00102 operator LoadSets&(); 00103 00104 // METHOD=mm:3684e24d-3a9f-11e0-87c1-fb85dddc7efb 00105 operator BoundaryConditions&(); 00106 00107 // METHOD=mm:4bfa00bd-3a9f-11e0-87c1-fb85dddc7efb 00108 operator GeometryMesh&(); 00109 00110 // METHOD=mm:21a08729-8f02-4aa1-9bc0-9dda1f0ca5db 00111 operator BoundaryData&(); 00112 00113 // METHOD=mm:3c36c228-f997-11df-9ddc-963be5e4332b 00114 unsigned long GetNumberNodes(); 00115 00116 // METHOD=mm:3c36c229-f997-11df-9ddc-963be5e4332b 00117 unsigned long GetNumberLoadSets(); 00118 00119 // METHOD=mm:3c36c22b-f997-11df-9ddc-963be5e4332b 00120 unsigned long GetNumberElements(); 00121 00122 // METHOD=mm:3c36c22c-f997-11df-9ddc-963be5e4332b 00123 unsigned long GetNumberFEGroups(); 00124 00125 // METHOD=mm:3c36c22d-f997-11df-9ddc-963be5e4332b 00126 unsigned long GetNumberEquations(); 00127 00128 // METHOD=mm:3c36c22e-f997-11df-9ddc-963be5e4332b 00129 unsigned long GetDimension(); 00130 00131 // METHOD=mm:3c36c18d-f997-11df-9ddc-963be5e4332b 00132 void Save(char* Tabname, int Version, char* Filename); 00133 00134 // METHOD=mm:3c36c18c-f997-11df-9ddc-963be5e4332b 00135 void Save(FILE* File); 00136 00137 // METHOD=mm:3c36c18f-f997-11df-9ddc-963be5e4332b 00138 void Restore(char* Tabname, int Version, char* Filename); 00139 00140 // METHOD=mm:3c36c18e-f997-11df-9ddc-963be5e4332b 00141 void Restore(FILE* File); 00142 00143 // METHOD=mm:3c36c190-f997-11df-9ddc-963be5e4332b 00144 void Read(FILE* FEMFile, FILE* DEFFile, FILE* LOGFile, SolverType_E SolverType, unsigned long TheoSoluIntOrder = 0); 00145 00146 // METHOD=mm:3c36c226-f997-11df-9ddc-963be5e4332b 00147 void Print(FILE* File, char* Message = ""); 00148 00149 // METHOD=mm:3c36c227-f997-11df-9ddc-963be5e4332b 00150 void Free(); 00151 00152 00156 // attr=mm:3c36c18a-f997-11df-9ddc-963be5e4332b 00157 char Tit[TITLE_SIZE]; 00158 00162 // attr=mm:e3b3eae3-f997-11df-9ddc-963be5e4332b 00163 DOFs DOFNames; 00164 00168 // attr=mm:3c839c63-f998-11df-9ddc-963be5e4332b 00169 Nodes Coords; 00170 00174 // attr=mm:781e4c23-f998-11df-9ddc-963be5e4332b 00175 MeshTopology MeshTopo; 00176 00180 // attr=mm:88362a6d-f998-11df-9ddc-963be5e4332b 00181 Equations Eqs; 00182 00186 // attr=mm:aa2fc2eb-f998-11df-9ddc-963be5e4332b 00187 FEGroups Groups; 00188 00194 // attr=mm:13173e8d-f999-11df-9ddc-963be5e4332b 00195 LoadSets LS; 00196 00200 // attr=mm:3641f565-f999-11df-9ddc-963be5e4332b 00201 BoundaryConditions BCs; 00202 00206 // attr=mm:288c532f-f999-11df-9ddd-963be5e4332b 00207 GeometryMesh GeoMsh; 00208 00212 // attr=mm:c967f870-aaa2-4941-bcbd-62fe844fcfb6 00213 BoundaryData BData; 00214 00218 // attr=mm:e4dcaf64-60d5-4e48-9a8d-0dc4353a9dcb 00219 unsigned long PosTotalNumberDOFs; 00220 00224 // attr=mm:1e0834f8-a7ce-4441-9e61-5b5e122c330c 00225 unsigned long SolTotalNumberDOFs; 00226 00227 00228 protected: 00229 00230 private: 00231 00232 //#UBLK-BEG-CLASSMEMB mm:4527a72f-f997-11df-9ddc-963be5e4332b 00233 //#UBLK-END-CLASSMEMB 00234 }; 00235 00236 //#UBLK-BEG-GLOBALH 00237 //*** Removed methods: 07 Aug 2011 22:30 00238 //--- 00239 //uuid=mm:96c76357-3a9e-11e0-87c1-fb85dddc7efb 00240 // operator MeshTopology&(); 00241 00242 //*** Removed methods: 08 Aug 2011 17:26 00243 //--- 00244 //uuid=mm:3caf7e67-c168-11e0-8d06-ccc16498b9ab 00245 // operator ElementTopologicalIndices&(); 00246 00247 //*** Removed methods: 09 Aug 2011 15:07 00248 //--- 00249 //uuid=mm:96c76357-3a9e-11e0-87c1-fb85dddc7efb 00250 // operator MeshTopology&(); 00251 00252 //*** Removed methods: 11 Aug 2011 15:30 00253 //--- 00254 //uuid=mm:96c76357-3a9e-11e0-87c1-fb85dddc7efb 00255 // operator MeshTopology&(); 00256 00257 //*** Removed methods: 25 Aug 2011 17:28 00258 //--- 00259 //uuid=mm:96c76357-3a9e-11e0-87c1-fb85dddc7efb 00260 // operator MeshTopology&(); 00261 00262 //*** Removed methods: 13 Dec 2011 20:45 00263 //--- 00264 //uuid=mm:8ec9b0bb-8c8c-11e0-8c5a-a1e3aa2d4422 00265 // operator Mesh&(); 00266 00267 //*** Removed methods: 29 Apr 2014 17:21 00268 //--- 00269 //uuid=mm:5393107f-26d3-40c2-83bf-65000d7e10e5 00270 // void SetParallelModel(FILE* LOGFile); 00271 00272 //#UBLK-END-GLOBALH 00273 00274 00275 #endif // _MODEL_H_