hp2FEM  0.1
include/fegroups/FEGroups.h
00001 #ifndef _FEGROUPS_H_
00002 #define _FEGROUPS_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:22
00007 // file      : FEGroups.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     : 30 May 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   30 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 <cmath>
00048 #include "ds/Array.h"
00049 #include "model/DOFs.h"
00050 #include "fegroups/FiniteElementGroup.h"
00051 #include "interpolation/shapefunctions/ShapeFunctions.h"
00052 #include "enumerations/PostProcessorProgram_E.h"
00053 
00054 
00065 class FEGroups
00066 {
00067 //#UBLK-BEG-CLASSDEF mm:6e8efab6-f98c-11df-8309-d7f93716487b
00068 //#UBLK-END-CLASSDEF
00069 
00070  public:
00071 
00072    // METHOD=mm:6b85b8cd-0133-11e0-8a8b-de0e0e40dc59
00073    FEGroups();
00074 
00075    // METHOD=mm:6cc530c2-f98c-11df-8309-d7f93716487b
00076    FEGroups(unsigned long TotalNumberElements, unsigned long NumberGroups, unsigned long MaxSolutionOrder, unsigned long MaxMappingOrder);
00077 
00078    // METHOD=mm:b81afc7b-02f9-11e0-89cb-b0660132333d
00079    FEGroups(FEGroups& Instance);
00080 
00081    // METHOD=mm:fc25ca91-015e-11e0-8a8b-de0e0e40dc59
00082    ~FEGroups();
00083 
00084    // METHOD=mm:5ed0e481-2ece-11e0-84ed-a641fe67a57a
00085    FEGroups& operator=(FEGroups& Instance);
00086 
00087    // METHOD=mm:7e6803bf-2ece-11e0-84ed-a641fe67a57a
00088    FiniteElementGroup& operator[](unsigned long GroupNumber);
00089 
00090    // METHOD=mm:6cc530c4-f98c-11df-8309-d7f93716487b
00091    unsigned long GetNumberFEGroups();
00092 
00093    // METHOD=mm:6cc530c5-f98c-11df-8309-d7f93716487b
00094    unsigned long GetTotalNumberElements();
00095 
00096    // METHOD=mm:d7ae06ac-faf1-4069-b4f6-9f7b14728c22
00097    unsigned long GetTotalNumberDOFs();
00098 
00099    // METHOD=mm:6cc530cc-f98c-11df-8309-d7f93716487b
00100    void SetMaxSolutionOrder(unsigned long MaxPolyOrder);
00101 
00102    // METHOD=mm:6cc530cd-f98c-11df-8309-d7f93716487b
00103    unsigned long GetMaxSolutionOrder();
00104 
00105    // METHOD=mm:9eedacf4-5948-11e0-8e1d-d62c684a44a5
00106    void SetMaxMappingOrder(unsigned long MaxPolyOrder);
00107 
00108    // METHOD=mm:bc22728b-5948-11e0-8e1d-d62c684a44a5
00109    unsigned long GetMaxMappingOrder();
00110 
00111    // METHOD=mm:4a175224-d43b-49c2-ab9b-ef4a4cbcba2e
00112    unsigned long GetMaxNumberDOFsGroup(unsigned short& MaxNumPrimDOFs);
00113 
00114    // METHOD=mm:6cc530c7-f98c-11df-8309-d7f93716487b
00115    unsigned long LocalToGlobalNumbering(unsigned long GroupNumber, unsigned long LocalNumber);
00116 
00117    // METHOD=mm:6cc530c6-f98c-11df-8309-d7f93716487b
00118    unsigned long GlobalToLocalNumbering(unsigned long GlobalNumber, unsigned long& GroupNumber);
00119 
00120    // METHOD=mm:bc69c1cd-a813-11e0-8674-c580764ee309
00121    unsigned long GetGroupNumber(unsigned long Element);
00122 
00123    // METHOD=mm:216c51aa-2ece-11e0-84ed-a641fe67a57a
00124    void Save(char* Tabname, int Version, char* Filename);
00125 
00126    // METHOD=mm:1c0f111e-2ece-11e0-84ed-a641fe67a57a
00127    void Save(FILE* File);
00128 
00129    // METHOD=mm:e10cec58-2ecd-11e0-84ed-a641fe67a57a
00130    void Restore(char* Tabname, int Version, char* Filename);
00131 
00132    // METHOD=mm:ccc8d111-2ecd-11e0-84ed-a641fe67a57a
00133    void Restore(FILE* File);
00134 
00135    // METHOD=mm:6cc53109-f98c-11df-8309-d7f93716487b
00136    void Read(FILE* FEMFile, FILE* DEFFile, DOFs& DOFsNames, unsigned long Dimension, unsigned long TheoSolIntegOrder = 0);
00137 
00138    // METHOD=mm:6cc53112-f98c-11df-8309-d7f93716487b
00139    void Print(FILE* File, char* Message = "");
00140 
00141    // METHOD=mm:6cc53113-f98c-11df-8309-d7f93716487b
00142    void Free();
00143 
00144 
00145    // asse=mm:3005af16-4bc0-4f27-8201-1d7e6dadac9c
00146    FiniteElementGroup * theFiniteElementGroup;
00147 
00148 
00149  protected:
00150 
00154    // attr=mm:6cc530ba-f98c-11df-8309-d7f93716487b
00155    Array< FiniteElementGroup > Groups;
00156 
00160    // attr=mm:6cc530bb-f98c-11df-8309-d7f93716487b
00161    unsigned long TotNumElem;
00162 
00166    // attr=mm:6cc530bc-f98c-11df-8309-d7f93716487b
00167    unsigned long NmbrGrps;
00168 
00172    // attr=mm:6cc530bd-f98c-11df-8309-d7f93716487b
00173    unsigned long MaxSolOrder;
00174 
00178    // attr=mm:7cef0091-2e3e-11e0-8f65-9f8d7c30bf70
00179    unsigned long MaxMapOrder;
00180 
00184    // attr=mm:bd60794c-d10c-46c2-9ac8-08442595854e
00185    PostProcessorProgram_E PostProcProgram;
00186 
00187 
00188  private:
00189 
00190 //#UBLK-BEG-CLASSMEMB mm:6e8efab6-f98c-11df-8309-d7f93716487b
00191 //#UBLK-END-CLASSMEMB
00192 };
00193 
00194 //#UBLK-BEG-GLOBALH
00195 //*** Removed methods: 13 Jun 2011 17:53
00196 //---
00197 //uuid=mm:23411b91-594b-11e0-8e1d-d62c684a44a5
00198 //   operator Mesh&();
00199 
00200 //*** Removed methods: 14 Jun 2011 14:40
00201 //---
00202 //uuid=mm:4660ceb3-2ece-11e0-84ed-a641fe67a57a
00203 //   void PrintTit(FILE* File);
00204 
00205 //#UBLK-END-GLOBALH
00206 
00207 
00208 #endif // _FEGROUPS_H_
 All Classes Files Functions Variables Typedefs Friends Defines