hp2FEM  0.1
include/meshtopology/NodeElementTable.h
00001 #ifndef _NODEELEMENTTABLE_H_
00002 #define _NODEELEMENTTABLE_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:25
00007 // file      : NodeElementTable.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     : 18 Jul 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   18 Jul 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 <iostream>
00047 #include <cstdio>
00048 #include <cstdlib>
00049 #include "acdp/acdp.h"
00050 #include "ds/BuiltInArray.h"
00051 #include "fegroups/FEGroups.h"
00052 #include "enumerations/MeshID_E.h"
00053 
00054 
00064 class NodeElementTable
00065 {
00066 //#UBLK-BEG-CLASSDEF mm:2381a904-f742-11df-9a4b-85986e853626
00067 //#UBLK-END-CLASSDEF
00068 
00069  public:
00070 
00071    // METHOD=mm:0b117cd3-f742-11df-9a4b-85986e853626
00072    NodeElementTable();
00073 
00074    // METHOD=mm:31c75649-5cb8-11e0-82fc-b6dff0bcd154
00075    NodeElementTable(NodeElementTable& Instance);
00076 
00077    // METHOD=mm:23795103-5cb8-11e0-82fc-b6dff0bcd154
00078    ~NodeElementTable();
00079 
00080    // METHOD=mm:5e7b82a3-5cb8-11e0-82fc-b6dff0bcd154
00081    NodeElementTable& operator=(NodeElementTable& Instance);
00082 
00083    // METHOD=mm:0b117cd8-f742-11df-9a4b-85986e853626
00084    void BuildNodeElementTable(FEGroups& Groups, unsigned long TotalNumberNodes, MeshID_E MeshID);
00085 
00086    // METHOD=mm:480d0bdd-a736-11e0-8ea7-8465994a5919
00087    void BuildNodeElementTable(unsigned long GroupNumber, unsigned long TotalNumberNodes, FEGroups& Groups, MeshID_E MeshID);
00088 
00089    // METHOD=mm:0b117d70-f742-11df-9a4b-85986e853626
00090    unsigned long*const GetNeighbourElements(unsigned long NodeNumber, unsigned long& NumberNeighbourElements);
00091 
00092    // METHOD=mm:0b117d71-f742-11df-9a4b-85986e853626
00093    unsigned long GetNumberNeighbourElements(unsigned long NodeNumber);
00094 
00095    // METHOD=mm:1784afa6-b20d-11e0-9937-b90c2ede2270
00096    unsigned long* GetNodeElementTable(unsigned long& SizeNoElemTable);
00097 
00098    // METHOD=mm:ff1aa7a6-0d24-42b2-820d-6a1c93e9125f
00099    unsigned long GetNoElemTabIndexSize();
00100 
00101    // METHOD=mm:0b117cd4-f742-11df-9a4b-85986e853626
00102    void Print(FILE* File, char* Message = "");
00103 
00104    // METHOD=mm:0b117cd5-f742-11df-9a4b-85986e853626
00105    void Save(char* Tabname, int Version, char* Filename);
00106 
00107    // METHOD=mm:06915693-5cb9-11e0-82fc-b6dff0bcd154
00108    void Save(FILE* File);
00109 
00110    // METHOD=mm:1e68c0fd-5cb9-11e0-82fc-b6dff0bcd154
00111    void Restore(char* Tabname, int Version, char* Filename);
00112 
00113    // METHOD=mm:0b117cd6-f742-11df-9a4b-85986e853626
00114    void Restore(FILE* File);
00115 
00116    // METHOD=mm:c9ed4ba1-5e3a-11e0-8e9e-d80bb329630b
00117    void Free();
00118 
00119 
00120  protected:
00121 
00125    // attr=mm:0b117cd2-f742-11df-9a4b-85986e853626
00126    OneIndexTable<unsigned long> NoElemTable;
00127 
00128 
00129  private:
00130 
00131 //#UBLK-BEG-CLASSMEMB mm:2381a904-f742-11df-9a4b-85986e853626
00132 //#UBLK-END-CLASSMEMB
00133 };
00134 
00135 //#UBLK-BEG-GLOBALH
00136 //*** Removed methods: 19 Jul 2011 16:09
00137 //---
00138 //uuid=mm:dc7668eb-a734-11e0-8ea7-8465994a5919
00139 //   int Compare(const void * a, const void * b);
00140 
00141 //#UBLK-END-GLOBALH
00142 
00143 
00144 #endif // _NODEELEMENTTABLE_H_
 All Classes Files Functions Variables Typedefs Friends Defines