hp2FEM
0.1
|
00001 #ifndef _DOFS_H_ 00002 #define _DOFS_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : DOFs.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 "model/Solver_defs.h" 00038 00039 00047 class DOFs 00048 { 00049 //#UBLK-BEG-CLASSDEF mm:4527a730-f997-11df-9ddc-963be5e4332b 00050 //#UBLK-END-CLASSDEF 00051 00052 public: 00053 00054 // METHOD=mm:3c36c2c2-f997-11df-9ddc-963be5e4332b 00055 DOFs(); 00056 00057 // METHOD=mm:71330aa9-0305-11e0-843e-b9717acb62a7 00058 DOFs(DOFs& Instance); 00059 00060 // METHOD=mm:7133121f-0305-11e0-843e-b9717acb62a7 00061 ~DOFs(); 00062 00063 // METHOD=mm:3c36c2c5-f997-11df-9ddc-963be5e4332b 00064 unsigned long GetNumberPrimaryDOF(); 00065 00066 // METHOD=mm:09d15b20-014b-11e0-9503-bdd33c3b382f 00067 unsigned long GetNumberMixedDOF(); 00068 00069 // METHOD=mm:3c36c35f-f997-11df-9ddc-963be5e4332b 00070 unsigned long GetNumberSecondaryGradientDOF(); 00071 00072 // METHOD=mm:3c36c364-f997-11df-9ddc-963be5e4332b 00073 unsigned long GetNumberSecondaryStressDOF(); 00074 00075 // METHOD=mm:3c36c3f9-f997-11df-9ddc-963be5e4332b 00076 unsigned long GetNumberExtraGradientDOF(); 00077 00078 // METHOD=mm:3c36c3f4-f997-11df-9ddc-963be5e4332b 00079 unsigned long GetNumberExtraStressDOF(); 00080 00081 // METHOD=mm:3c36c493-f997-11df-9ddc-963be5e4332b 00082 unsigned long GetNumberExtraGeneralDOF(); 00083 00084 // METHOD=mm:3c36c35c-f997-11df-9ddc-963be5e4332b 00085 char* GetPrimaryDOFName(unsigned long Cardinality); 00086 00087 // METHOD=mm:777d76a5-014b-11e0-9503-bdd33c3b382f 00088 char* GetMixedDOFName(unsigned long Cardinality); 00089 00090 // METHOD=mm:3c36c361-f997-11df-9ddc-963be5e4332b 00091 char* GetSecondaryGradientDOFName(unsigned long Cardinality); 00092 00093 // METHOD=mm:3c36c366-f997-11df-9ddc-963be5e4332b 00094 char* GetSecondaryStressDOFName(unsigned long Cardinality); 00095 00096 // METHOD=mm:3c36c3fb-f997-11df-9ddc-963be5e4332b 00097 char* GetNameExtraGradientDOF(unsigned long Cardinality); 00098 00099 // METHOD=mm:3c36c3f6-f997-11df-9ddc-963be5e4332b 00100 char* GetExtraStressDOFName(unsigned long Cardinality); 00101 00102 // METHOD=mm:3c36c495-f997-11df-9ddc-963be5e4332b 00103 char* GetExtraGeneralDOFName(unsigned long Cardinality); 00104 00105 // METHOD=mm:3c36c35d-f997-11df-9ddc-963be5e4332b 00106 unsigned long GetCardinalityPrimaryDOF(char* PrimaryDOFName); 00107 00108 // METHOD=mm:a0058f30-014b-11e0-9503-bdd33c3b382f 00109 unsigned long GetCardinalityMixedDOF(char* MixedDOFName); 00110 00111 // METHOD=mm:3c36c362-f997-11df-9ddc-963be5e4332b 00112 unsigned long GetCardinalitySecondaryGradientDOF(char* SecondaryGradientDOFName); 00113 00114 // METHOD=mm:3c36c3f2-f997-11df-9ddc-963be5e4332b 00115 unsigned long GetCardinalitySecondaryStressDOF(char* SecondaryStressDOFName); 00116 00117 // METHOD=mm:3c36c3fc-f997-11df-9ddc-963be5e4332b 00118 unsigned long GetCardinalityExtraGradientDOF(char* ExtraGradientDOFName); 00119 00120 // METHOD=mm:3c36c3f7-f997-11df-9ddc-963be5e4332b 00121 unsigned long GetCardinalityExtraStressDOF(char* ExtraStressDOFName); 00122 00123 // METHOD=mm:3c36c496-f997-11df-9ddc-963be5e4332b 00124 unsigned long GetCardinalityExtraGeneralDOF(char* ExtraGeneralDOFName); 00125 00126 // METHOD=mm:3c36c2c4-f997-11df-9ddc-963be5e4332b 00127 void SeNumberPrimaryDOF(unsigned long NumberPrimaryDOF); 00128 00129 // METHOD=mm:6c761437-014a-11e0-9503-bdd33c3b382f 00130 void SetNumberMixedDOF(unsigned long NumberMixedDOF); 00131 00132 // METHOD=mm:3c36c35e-f997-11df-9ddc-963be5e4332b 00133 void SetNumberSecondaryGradientDOF(unsigned long NumberSecondaryGradientDOF); 00134 00135 // METHOD=mm:3c36c363-f997-11df-9ddc-963be5e4332b 00136 void SetNumberSecondaryStressDOF(unsigned long NumberSecondaryStressDOF); 00137 00138 // METHOD=mm:3c36c3f8-f997-11df-9ddc-963be5e4332b 00139 void SetNumberExtraGradientDOF(unsigned long NumberExtraGradientDOF); 00140 00141 // METHOD=mm:3c36c3f3-f997-11df-9ddc-963be5e4332b 00142 void SetNumberExtraStressDOF(unsigned long NumberExtraStressDOF); 00143 00144 // METHOD=mm:3c36c492-f997-11df-9ddc-963be5e4332b 00145 void SetNumberExtraGeneralDOF(unsigned long NumberExtraGeneralDOF); 00146 00147 // METHOD=mm:3c36c2c6-f997-11df-9ddc-963be5e4332b 00148 void SetPrimaryDOFName(unsigned long Cardinality, char* PrimaryDOFName); 00149 00150 // METHOD=mm:d5857d3b-6ab6-11e0-97a7-e035795630c1 00151 void SetMixedDOFName(unsigned long Cardinality, char* MixedDOFName); 00152 00153 // METHOD=mm:3c36c360-f997-11df-9ddc-963be5e4332b 00154 void SetSecondaryGradientDOFName(unsigned long Cardinality, char* SecondaryGradientDOFName); 00155 00156 // METHOD=mm:3c36c365-f997-11df-9ddc-963be5e4332b 00157 void SetSecondaryStressDOFName(unsigned long Cardinality, char* SecondaryStressDOFName); 00158 00159 // METHOD=mm:3c36c3fa-f997-11df-9ddc-963be5e4332b 00160 void SetExtraGradientDOFName(unsigned long Cardinality, char* ExtraGradientDOFName); 00161 00162 // METHOD=mm:3c36c3f5-f997-11df-9ddc-963be5e4332b 00163 void SetExtraStressDOFName(unsigned long Cardinality, char* ExtraStressDOFName); 00164 00165 // METHOD=mm:3c36c494-f997-11df-9ddc-963be5e4332b 00166 void SetExtraGeneralDOFName(unsigned long Cardinality, char* ExtraGeneralDOFName); 00167 00168 // METHOD=mm:3c36c497-f997-11df-9ddc-963be5e4332b 00169 void Save(FILE* File); 00170 00171 // METHOD=mm:3c36c499-f997-11df-9ddc-963be5e4332b 00172 void Restore(FILE* File); 00173 00174 // METHOD=mm:3c36c49b-f997-11df-9ddc-963be5e4332b 00175 void Read(FILE* DEFFile); 00176 00177 // METHOD=mm:3c36c49c-f997-11df-9ddc-963be5e4332b 00178 void Print(FILE* File, char* Message = ""); 00179 00180 // METHOD=mm:3c36c532-f997-11df-9ddc-963be5e4332b 00181 void Free(); 00182 00183 00184 protected: 00185 00189 // attr=mm:e671d319-69fc-11e0-8a9a-d3a7a5a7b404 00190 unsigned long NumPrimFields; 00191 00195 // attr=mm:001307d9-69fd-11e0-8a9a-d3a7a5a7b404 00196 unsigned long NumMixFields; 00197 00201 // attr=mm:1620b85f-69fd-11e0-8a9a-d3a7a5a7b404 00202 unsigned long NumSecGradFields; 00203 00207 // attr=mm:2afd4f95-69fd-11e0-8a9a-d3a7a5a7b404 00208 unsigned long NumSecStressFields; 00209 00213 // attr=mm:3a7ca8e9-69fd-11e0-8a9a-d3a7a5a7b404 00214 unsigned long NumExGradFields; 00215 00219 // attr=mm:4b2d2cf9-69fd-11e0-8a9a-d3a7a5a7b404 00220 unsigned long NumExStressFields; 00221 00225 // attr=mm:5aac66a9-69fd-11e0-8a9a-d3a7a5a7b404 00226 unsigned long NumExGenFields; 00227 00235 // attr=mm:3c36c230-f997-11df-9ddc-963be5e4332b 00236 char PrimFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00237 00243 // attr=mm:3c36c2bc-f997-11df-9ddc-963be5e4332b 00244 char MixFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00245 00251 // attr=mm:3c36c2bd-f997-11df-9ddc-963be5e4332b 00252 char SecGradFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00253 00259 // attr=mm:3c36c2be-f997-11df-9ddc-963be5e4332b 00260 char SecStressFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00261 00267 // attr=mm:3c36c2bf-f997-11df-9ddc-963be5e4332b 00268 char ExGradFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00269 00275 // attr=mm:3c36c2c0-f997-11df-9ddc-963be5e4332b 00276 char ExStressFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00277 00283 // attr=mm:3c36c2c1-f997-11df-9ddc-963be5e4332b 00284 char ExGenFields[MAX_NUMBER_DIRS_DOFS][MAX_NAME_DIRS_DOFS]; 00285 00286 00287 private: 00288 00289 //#UBLK-BEG-CLASSMEMB mm:4527a730-f997-11df-9ddc-963be5e4332b 00290 //#UBLK-END-CLASSMEMB 00291 }; 00292 00293 //#UBLK-BEG-GLOBALH 00294 //#UBLK-END-GLOBALH 00295 00296 00297 #endif // _DOFS_H_