hp2FEM  0.1
include/model/Model.h
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_
 All Classes Files Functions Variables Typedefs Friends Defines