hp2FEM  0.1
include/meshtopology/MeshTopology.h
00001 #ifndef _MESHTOPOLOGY_H_
00002 #define _MESHTOPOLOGY_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:25
00007 // file      : MeshTopology.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 <cstring>
00038 #include "meshtopology/NodeElementTable.h"
00039 #include "meshtopology/NodeNodeTable.h"
00040 #include "meshtopology/NodeEquationTable.h"
00041 #include "meshtopology/HighOrder.h"
00042 #include "nurbs/BoundaryData.h"
00043 #include "geometrymesh/GeometryMesh.h"
00044 
00045 
00056 class MeshTopology
00057 {
00058 //#UBLK-BEG-CLASSDEF mm:2381a900-f742-11df-9a4b-85986e853626
00059 //#UBLK-END-CLASSDEF
00060 
00061  public:
00062 
00063    // METHOD=mm:0b117a69-f742-11df-9a4b-85986e853626
00064    MeshTopology();
00065 
00066    // METHOD=mm:86fa8df4-5ca6-11e0-82fc-b6dff0bcd154
00067    MeshTopology(MeshTopology& Instance);
00068 
00069    // METHOD=mm:a4eda9c6-5bc0-11e0-86de-98639972ab8b
00070    ~MeshTopology();
00071 
00072    // METHOD=mm:5fcc75a1-5bc6-11e0-86de-98639972ab8b
00073    MeshTopology& operator=(MeshTopology& Instance);
00074 
00075    // METHOD=mm:cc0aaf1b-5be5-11e0-86de-98639972ab8b
00076    operator NodeElementTable &();
00077 
00078    // METHOD=mm:e775bd09-5be5-11e0-86de-98639972ab8b
00079    operator NodeNodeTable &();
00080 
00081    // METHOD=mm:fceae191-5be5-11e0-86de-98639972ab8b
00082    operator ElementElementTable &();
00083 
00084    // METHOD=mm:070cd5cb-5be6-11e0-86de-98639972ab8b
00085    operator NodeEquationTable &();
00086 
00087    // METHOD=mm:8b34ca3e-f54f-4d88-b706-5f9be9406427
00088    operator HighOrder&();
00089 
00090    // METHOD=mm:0b117af8-f742-11df-9a4b-85986e853626
00091    void BuildAll(FEGroups& Groups, BoundaryData& BData, GeometryMesh& GeoMsh, unsigned long NumInputNodes, unsigned long Dimension);
00092 
00093    // METHOD=mm:bd089307-6000-4c2d-9eb4-5967311d4fda
00094    void BuildAllElemElemSolver(FEGroups& Groups, BoundaryData& BData, GeometryMesh& GeoMsh, unsigned long NumInputNodes, unsigned long Dimension);
00095 
00096    // METHOD=mm:0b117a6a-f742-11df-9a4b-85986e853626
00097    void Print(FILE* File, char* Message = "");
00098 
00099    // METHOD=mm:5b2cd8bd-5ca9-11e0-82fc-b6dff0bcd154
00100    void Save(char* Tabname, int Version, char* Filename);
00101 
00102    // METHOD=mm:0b117a6b-f742-11df-9a4b-85986e853626
00103    void Save(FILE* File);
00104 
00105    // METHOD=mm:b9f23f69-5ca9-11e0-82fc-b6dff0bcd154
00106    void Restore(char* Tabname, int Version, char* Filename);
00107 
00108    // METHOD=mm:0b117a6c-f742-11df-9a4b-85986e853626
00109    void Restore(FILE* File);
00110 
00111    // METHOD=mm:d96cb215-5e3a-11e0-8e9e-d80bb329630b
00112    void Free();
00113 
00114 
00115  protected:
00116 
00120    // attr=mm:b9f7a613-f7c6-11df-8693-cca4a5a4a04b
00121    NodeElementTable NoElemTabInputMesh;
00122 
00126    // attr=mm:aedf981d-1017-4994-9ea8-7eb86d06039f
00127    NodeElementTable NoElemTabSoluMesh;
00128 
00133    // attr=mm:be23c73f-f7c6-11df-8693-cca4a5a4a04b
00134    NodeNodeTable NoNoTab;
00135 
00139    // attr=mm:c67c13f1-f7c6-11df-8693-cca4a5a4a04b
00140    ElementElementTable ElemElemTab;
00141 
00145    // attr=mm:ce3b9d91-f7c6-11df-8693-cca4a5a4a04b
00146    NodeEquationTable NoEqTab;
00147 
00151    // attr=mm:ddbaf2cb-f7c6-11df-8693-cca4a5a4a04b
00152    HighOrder HghOrdr;
00153 
00154 
00155  private:
00156 
00157 //#UBLK-BEG-CLASSMEMB mm:2381a900-f742-11df-9a4b-85986e853626
00158 //#UBLK-END-CLASSMEMB
00159 };
00160 
00161 //#UBLK-BEG-GLOBALH
00162 //*** Removed methods: 13 Dec 2011 20:14
00163 //---
00164 //uuid=mm:070cd5cb-5be6-11e0-86de-98639972ab8b
00165 //   operator EquationEquationTable&();
00166 
00167 //*** Removed methods: 06 Apr 2012 23:00
00168 //---
00169 //uuid=mm:6bd73103-6a74-4dde-95f8-7d42ce82be39
00170 //   operator HighOrder&();
00171 
00172 //#UBLK-END-GLOBALH
00173 
00174 
00175 #endif // _MESHTOPOLOGY_H_
 All Classes Files Functions Variables Typedefs Friends Defines