hp2FEM  0.1
include/meshtopology/ElementElementTable.h
00001 #ifndef _ELEMENTELEMENTTABLE_H_
00002 #define _ELEMENTELEMENTTABLE_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:25
00007 // file      : ElementElementTable.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 <cstdlib>
00038 #include "acdp/acdp.h"
00039 #include "ds/Vector.h"
00040 #include "ds/BuiltInArray.h"
00041 #include "enumerations/MeshID_E.h"
00042 #include "fegroups/FEGroups.h"
00043 #include "meshtopology/NodeElementTable.h"
00044 
00045 
00053 class ElementElementTable
00054 {
00055 //#UBLK-BEG-CLASSDEF mm:2381a903-f742-11df-9a4b-85986e853626
00056 //#UBLK-END-CLASSDEF
00057 
00058  public:
00059 
00060    // METHOD=mm:a6dd7f2f-5ca5-11e0-82fc-b6dff0bcd154
00061    ElementElementTable();
00062 
00063    // METHOD=mm:0b117c33-f742-11df-9a4b-85986e853626
00064    ElementElementTable(unsigned long TotalNumberElements, unsigned long Dimension);
00065 
00066    // METHOD=mm:fa04e959-5ca8-11e0-82fc-b6dff0bcd154
00067    ElementElementTable(ElementElementTable& Instance);
00068 
00069    // METHOD=mm:b1980163-5ca5-11e0-82fc-b6dff0bcd154
00070    ~ElementElementTable();
00071 
00072    // METHOD=mm:fa4fbc43-5ca5-11e0-82fc-b6dff0bcd154
00073    ElementElementTable& operator=(ElementElementTable& Instance);
00074 
00075    // METHOD=mm:0b117c38-f742-11df-9a4b-85986e853626
00076    void BuildElementElementTable(FEGroups& Groups, NodeElementTable& NoElemTable, unsigned long Dimension);
00077 
00078    // METHOD=mm:0b117cce-f742-11df-9a4b-85986e853626
00079    unsigned long GetNumberNeighbours(unsigned long ElementGlobalNumber);
00080 
00081    // METHOD=mm:0b117ccf-f742-11df-9a4b-85986e853626
00082    long*const GetNeighbourElements(unsigned long ElementGlobalNumber, unsigned long& NumberNeighbourElements);
00083 
00084    // METHOD=mm:0b117c34-f742-11df-9a4b-85986e853626
00085    void Print(FILE* File, char* Message = "");
00086 
00087    // METHOD=mm:0b117c35-f742-11df-9a4b-85986e853626
00088    void Save(char* Tabname, int Version, char* Filename);
00089 
00090    // METHOD=mm:e10442c3-5cb8-11e0-82fc-b6dff0bcd154
00091    void Save(FILE* File);
00092 
00093    // METHOD=mm:173fcc17-5cb5-11e0-82fc-b6dff0bcd154
00094    void Restore(char* Tabname, int Version, char* Filename);
00095 
00096    // METHOD=mm:0b117c36-f742-11df-9a4b-85986e853626
00097    void Restore(FILE* File);
00098 
00099    // METHOD=mm:cfe33c73-5e3a-11e0-8e9e-d80bb329630b
00100    void Free();
00101 
00102 
00103  protected:
00104 
00108    // attr=mm:0b117c32-f742-11df-9a4b-85986e853626
00109    OneIndexTable<long> ElemElemTable;
00110 
00111 
00112  private:
00113 
00114 //#UBLK-BEG-CLASSMEMB mm:2381a903-f742-11df-9a4b-85986e853626
00115 //#UBLK-END-CLASSMEMB
00116 };
00117 
00118 //#UBLK-BEG-GLOBALH
00119 //#UBLK-END-GLOBALH
00120 
00121 
00122 #endif // _ELEMENTELEMENTTABLE_H_
 All Classes Files Functions Variables Typedefs Friends Defines