hp2FEM
0.1
|
00001 #ifndef _EQUATIONS_H_ 00002 #define _EQUATIONS_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : Equations.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 00015 //============================================================== 00016 // Description : 00017 //-------------------------------------------------------------- 00018 // Author : Gilberto Luis 00019 // Created : 27 May 2011 00020 //-------------------------------------------------------------- 00021 // Change history : 00022 // 27 May 2011 (Gilberto Luis) Initial version generated 00023 // 00024 //============================================================== 00025 //#UBLK-END-HEADERH 00026 00027 /*================================================================================================= 00028 = = 00029 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00030 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00031 = = 00032 = Licensed under the Apache License, Version 2.0 (the "License"); = 00033 = you may not use this file except in compliance with the License. = 00034 = You may obtain a copy of the License at = 00035 = = 00036 = http://www.apache.org/licenses/LICENSE-2.0 = 00037 = = 00038 = Unless required by applicable law or agreed to in writing, software = 00039 = distributed under the License is distributed on an "AS IS" BASIS, = 00040 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00041 = See the License for the specific language governing permissions and = 00042 = limitations under the License. = 00043 = = 00044 =================================================================================================*/ 00045 00046 00047 #include <cstdio> 00048 #include "ds/Array.h" 00049 #include "ds/OneIndexTable.h" 00050 #include "loadsets/LoadIntensity.h" 00051 #include "model/DOFs.h" 00052 #include "model/Nodes.h" 00053 #include "boundaryconditions/BoundaryConditions.h" 00054 #include "fegroups/ElementTopologicalIndices.h" 00055 #include "fegroups/FEGroups.h" 00056 #include "geometrymesh/GeometryMesh.h" 00057 #include "enumerations/MeshID_E.h" 00058 #include "meshtopology/NodeElementTable.h" 00059 00060 00069 class Equations 00070 { 00071 //#UBLK-BEG-CLASSDEF mm:4527a72e-f997-11df-9ddc-963be5e4332b 00072 //#UBLK-END-CLASSDEF 00073 00074 public: 00075 00076 // METHOD=mm:bd52090a-ff17-11df-9503-bdd33c3b382f 00077 Equations(); 00078 00079 // METHOD=mm:f4079621-0304-11e0-843e-b9717acb62a7 00080 Equations(Equations& Instance); 00081 00082 // METHOD=mm:f4079e7d-0304-11e0-843e-b9717acb62a7 00083 ~Equations(); 00084 00085 // METHOD=mm:ce756b3a-6ae4-11e0-97a7-e035795630c1 00086 Equations& operator=(Equations& Instance); 00087 00088 // METHOD=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00089 void NumberingNodalDOF(FEGroups& Groups, unsigned long TotalNumberNodes, DOFs& DFs, BoundaryConditions& BCs, GeometryMesh& GeoMsh, NodeElementTable& NoElemTable, MeshID_E MeshID); 00090 00091 // METHOD=mm:3c36c0e8-f997-11df-9ddc-963be5e4332b 00092 unsigned long GetNumberNodalDOFs(unsigned long NodeNumber); 00093 00094 // METHOD=mm:3c36c0eb-f997-11df-9ddc-963be5e4332b 00095 unsigned long GetNodalDOFNumbers(unsigned long NodeNumber, unsigned long Cardinality); 00096 00097 // METHOD=mm:64d0baf5-ad7e-11e0-92b7-ede8da26d7bd 00098 unsigned long * const GetNodalDOFs(unsigned long NodeNumber, unsigned long& NumberDOFs); 00099 00100 // METHOD=mm:c34d9a8b-d910-4cec-94b4-662bc9f83f60 00101 OneIndexTable<unsigned long>& GetNodalDOFNumbers(); 00102 00103 // METHOD=mm:868cfeff-8895-11e0-9cfb-b44df1df334f 00104 unsigned long GetNumberEquations(); 00105 00106 // METHOD=mm:3c36c0e9-f997-11df-9ddc-963be5e4332b 00107 unsigned long GetTotalNumberFreeDOFs(); 00108 00109 // METHOD=mm:34b7ac3e-0143-11e0-9503-bdd33c3b382f 00110 unsigned long GetNumberHDBCRestrictedDOFs(); 00111 00112 // METHOD=mm:926f052f-c0a5-11e0-999c-937e2fe3c782 00113 unsigned long GetNumberNHDBCRestrictedDOFs(); 00114 00115 // METHOD=mm:59ac3059-0143-11e0-9503-bdd33c3b382f 00116 unsigned long GetTotalNumberDOFs(); 00117 00118 // METHOD=mm:75caa6f9-69fc-11e0-8a9a-d3a7a5a7b404 00119 unsigned long GetTotalNumberVertexDOFs(); 00120 00121 // METHOD=mm:972b9763-69fc-11e0-8a9a-d3a7a5a7b404 00122 unsigned long GetTotalNumberEdgeDOFs(); 00123 00124 // METHOD=mm:a1e63609-69fc-11e0-8a9a-d3a7a5a7b404 00125 unsigned long GetTotalNumberFaceDOFs(); 00126 00127 // METHOD=mm:aad6f1f9-69fc-11e0-8a9a-d3a7a5a7b404 00128 unsigned long GetTotalNumberBodyDOFs(); 00129 00130 // METHOD=mm:85aef431-c1f8-11e0-9e64-beb172d6823b 00131 void SetElementEquations(OneIndexTable<unsigned long>& ElementIncidence, OneIndexTable<unsigned long>& ElementEquations); 00132 00133 // METHOD=mm:3c36c057-f997-11df-9ddc-963be5e4332b 00134 void Save(char* Tabname, int Version, char* Filename); 00135 00136 // METHOD=mm:3c36c058-f997-11df-9ddc-963be5e4332b 00137 void Save(FILE* File); 00138 00139 // METHOD=mm:3c36c05a-f997-11df-9ddc-963be5e4332b 00140 void Restore(char* Tabname, int Version, char* Filename); 00141 00142 // METHOD=mm:3c36c059-f997-11df-9ddc-963be5e4332b 00143 void Restore(FILE* File); 00144 00145 // METHOD=mm:e1be9b1d-65f1-11e0-9d3f-f9bb146c9c1d 00146 void Print(FILE* File, char* Message = ""); 00147 00148 // METHOD=mm:3c36c0e7-f997-11df-9ddc-963be5e4332b 00149 void Free(); 00150 00151 00155 // attr=mm:6e1d074f-0236-11e0-9699-fe1341938431 00156 OneIndexTable<unsigned long> NodalDOFNumbers; 00157 00161 // attr=mm:6e1d1bef-0236-11e0-9699-fe1341938431 00162 unsigned long TotalNumDOFs; 00163 00167 // attr=mm:6e1d295f-0236-11e0-9699-fe1341938431 00168 unsigned long TotalNumFreeDOFs; 00169 00173 // attr=mm:6e1d22cf-0236-11e0-9699-fe1341938431 00174 unsigned long TotalNumHDBCRestrDOFs; 00175 00179 // attr=mm:91f09d45-ae56-11e0-9b50-a12690eb339c 00180 unsigned long TotalNumNHDBCRestrDOFs; 00181 00185 // attr=mm:6eb5a09f-0236-11e0-9699-fe1341938431 00186 unsigned long NumVertexEquations; 00187 00191 // attr=mm:bb99949d-0236-11e0-9699-fe1341938431 00192 unsigned long NumEdgeEquations; 00193 00197 // attr=mm:bc320efd-0236-11e0-9699-fe1341938431 00198 unsigned long NumFaceEquations; 00199 00203 // attr=mm:bc321d5d-0236-11e0-9699-fe1341938431 00204 unsigned long NumBodyEquations; 00205 00206 00207 protected: 00208 00209 private: 00210 00211 //#UBLK-BEG-CLASSMEMB mm:4527a72e-f997-11df-9ddc-963be5e4332b 00212 //#UBLK-END-CLASSMEMB 00213 }; 00214 00215 //#UBLK-BEG-GLOBALH 00216 00217 //*** Removed methods: 27 May 2011 11:27 00218 //--- 00219 //uuid=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00220 // void NumberingNodalDOF(FEGroups Groups, Nodes Nds, DOFs DFs, BCs BCs, GeometriyMesh GeoMsh, TopologicalIndices TopInd); 00221 00222 //*** Removed methods: 10 Aug 2011 11:46 00223 //--- 00224 //uuid=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00225 // void NumberingNodalDOF(FEGroups& Groups, Nodes& Nds, DOFs& DFs, BoundaryConditions& BCs, GeometryMesh& GeoMsh, MeshTopology& MeshTopo, MeshID_E MeshID); 00226 00227 //*** Removed methods: 25 Aug 2011 17:27 00228 //--- 00229 //uuid=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00230 // void NumberingNodalDOF(FEGroups& Groups, Nodes& Nds, DOFs& DFs, BoundaryConditions& BCs, GeometryMesh& GeoMsh, MeshTopology& MeshTopo, MeshID_E MeshID); 00231 00232 //*** Removed methods: 13 Dec 2011 15:14 00233 //--- 00234 //uuid=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00235 // void NumberingNodalDOF(FEGroups& Groups, Nodes& Nds, DOFs& DFs, BoundaryConditions& BCs, GeometryMesh& GeoMsh, MeshTopology& MeshTopo, MeshID_E MeshID); 00236 00237 //*** Removed methods: 17 Jan 2012 10:51 00238 //--- 00239 //uuid=mm:f5107e69-ff1e-11df-9503-bdd33c3b382f 00240 // void NumberingNodalDOF(FEGroups& Groups, Nodes& Nds, DOFs& DFs, BoundaryConditions& BCs, GeometryMesh& GeoMsh, MeshTopology& MeshTopo, MeshID_E MeshID); 00241 00242 //#UBLK-END-GLOBALH 00243 00244 00245 #endif // _EQUATIONS_H_