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