hp2FEM  0.1
include/interpolation/numericalintegration/HexaNumericalIntegration.h
00001 #ifndef _HEXANUMERICALINTEGRATION_H_
00002 #define _HEXANUMERICALINTEGRATION_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : HexaNumericalIntegration.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     : 01 Abr 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   01 Abr 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 "ds/Matrix.h"
00047 #include "enumerations/QuadCollocType_E.h"
00048 #include "enumerations/ElementShape_E.h"
00049 #include "interpolation/numericalintegration/SquareNumericalIntegration.h"
00050 
00051 
00052 using namespace std;
00053 
00054 
00064 class HexaNumericalIntegration
00065 {
00066 //#UBLK-BEG-CLASSDEF mm:8f648b4e-f27c-11df-9284-bd0feebbfa73
00067 //#UBLK-END-CLASSDEF
00068 
00069  public:
00070 
00071    // METHOD=mm:714d6c21-f281-11df-9284-bd0feebbfa73
00072    HexaNumericalIntegration();
00073 
00074    // METHOD=mm:3a282fff-0466-11e0-8dd1-8aebdd73e214
00075    HexaNumericalIntegration(HexaNumericalIntegration& Instance);
00076 
00077    // METHOD=mm:3268a565-0466-11e0-8dd1-8aebdd73e214
00078    ~HexaNumericalIntegration();
00079 
00080    // METHOD=mm:20d3c3be-0467-11e0-8dd1-8aebdd73e214
00081    HexaNumericalIntegration& operator=(HexaNumericalIntegration& Instance);
00082 
00083    // METHOD=mm:08c75213-7740-11e0-9b8c-c071a750a625
00084    operator LineNumericalIntegration &();
00085 
00086    // METHOD=mm:a8504063-5005-11e0-90ec-a62df0b89907
00087    operator SquareNumericalIntegration &();
00088 
00089    // METHOD=mm:87a4ee29-f27c-11df-9284-bd0feebbfa73
00090    void SetMaxPolyOrder(unsigned long MaxPolyOrder);
00091 
00092    // METHOD=mm:bd990891-cfa8-4c8c-a0dd-f874e3b9a5f7
00093    void SetNumberCoordsWeights(unsigned long NumberRow, unsigned long NumberData);
00094 
00095    // METHOD=mm:87a4ee2a-f27c-11df-9284-bd0feebbfa73
00096    unsigned long GetMaxPolyOrder();
00097 
00098    // METHOD=mm:04a183ad-ce7e-11e0-8d94-bd74a4bae893
00099    LineNumericalIntegration& GetLineNumericalIntegration();
00100 
00101    // METHOD=mm:6247ac13-5006-11e0-90ec-a62df0b89907
00102    unsigned long GetNumberIntegrationPointsSets();
00103 
00104    // METHOD=mm:fcd9d315-8771-4a00-b4f8-a7e98a0873c3
00105    unsigned long GetMaxNumberIntegrationPointsSets();
00106 
00107    // METHOD=mm:2e26955b-7816-11e0-81d8-f37e89126ddd
00108    long GetIntegrationPointsSetNumber(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder);
00109 
00110    // METHOD=mm:79f94883-44fa-11e0-9711-cb145d0d686e
00111    unsigned long GetNumberIntegrationPoints(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, long& IntegrationPointsSetNumber);
00112 
00113    // METHOD=mm:a654cb38-6d35-4933-bbdc-f8a69f2b0ef4
00114    unsigned long GetNumberIntegrationPoints(ElementShape_E EntityShape, long IntegrationPointsSetNumber);
00115 
00116    // METHOD=mm:28847dcb-05ac-4ae7-a19b-cea3ff23eb87
00117    unsigned long GetTotalNumberIntegrationPoints();
00118 
00119    // METHOD=mm:87a4ee2b-f27c-11df-9284-bd0feebbfa73
00120    double*const GetIntegrationPointsCoords(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, unsigned long& NumberIntegrationPoints);
00121 
00122    // METHOD=mm:87a4ee2c-f27c-11df-9284-bd0feebbfa73
00123    double*const GetIntegrationPointsWeights(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, unsigned long& NumberIntegrationPoints);
00124 
00125    // METHOD=mm:87a4ee26-f27c-11df-9284-bd0feebbfa73
00126    unsigned long*const GetIndices(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder, unsigned long& NumIndices);
00127 
00128    // METHOD=mm:8681c2bf-65db-11e0-8491-9a6c26cf8b1e
00129    OneIndexTable<unsigned long>& GetIndices();
00130 
00131    // METHOD=mm:8568fc25-6b6c-11e0-9496-ab93ef007735
00132    unsigned long* GetIndicesBySet(unsigned long SetNumber, unsigned long& NumberIndices);
00133 
00134    // METHOD=mm:9c9b2a5b-434f-11e0-8507-c0021234afab
00135    void RunNumericalIntegration(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, BuiltInArray<unsigned long>& PolyOrder);
00136 
00137    // METHOD=mm:87a4ee2e-f27c-11df-9284-bd0feebbfa73
00138    void Print(FILE* File, ElementShape_E EntityShape);
00139 
00140 
00141  protected:
00142 
00146    // attr=mm:0533aa4d-608e-11e0-8c00-dd53cdc87961
00147    LineNumericalIntegration LineNI;
00148 
00152    // attr=mm:87a4ed87-f27c-11df-9284-bd0feebbfa73
00153    SquareNumericalIntegration SquareNI;
00154 
00158    // attr=mm:87a4ed8b-f27c-11df-9284-bd0feebbfa73
00159    OneIndexTable<double> Weights;
00160 
00164    // attr=mm:dba74ded-5fb5-11e0-89bf-82ea5c842841
00165    OneIndexTable<double> Coords;
00166 
00170    // attr=mm:87a4ed8d-f27c-11df-9284-bd0feebbfa73
00171    OneIndexTable<unsigned long> TensorIndices;
00172 
00176    // attr=mm:d451a137-4346-11e0-8507-c0021234afab
00177    unsigned long Pmax;
00178 
00179 
00180  private:
00181 
00182 //#UBLK-BEG-CLASSMEMB mm:8f648b4e-f27c-11df-9284-bd0feebbfa73
00183 //#UBLK-END-CLASSMEMB
00184 };
00185 
00186 //#UBLK-BEG-GLOBALH
00187 //*** Removed methods: 07 Abr 2011 14:52
00188 //---
00189 //uuid=mm:61e2c997-434a-11e0-8507-c0021234afab
00190 //   HexaNumericalIntegration(unsigned short MaxPolyOrder);
00191 
00192 //#UBLK-END-GLOBALH
00193 
00194 
00195 #endif // _HEXANUMERICALINTEGRATION_H_
 All Classes Files Functions Variables Typedefs Friends Defines