hp2FEM  0.1
include/interpolation/numericalintegration/SquareNumericalIntegration.h
00001 #ifndef _SQUARENUMERICALINTEGRATION_H_
00002 #define _SQUARENUMERICALINTEGRATION_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : SquareNumericalIntegration.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/OneIndexTable.h"
00047 #include "enumerations/QuadCollocType_E.h"
00048 #include "enumerations/ElementShape_E.h"
00049 #include "interpolation/numericalintegration/LineNumericalIntegration.h"
00050 
00051 
00052 using namespace std;
00053 
00054 
00064 class SquareNumericalIntegration
00065 {
00066 //#UBLK-BEG-CLASSDEF mm:8f648b4f-f27c-11df-9284-bd0feebbfa73
00067 //#UBLK-END-CLASSDEF
00068 
00069  public:
00070 
00071    // METHOD=mm:27af4f15-f27e-11df-9284-bd0feebbfa73
00072    SquareNumericalIntegration();
00073 
00074    // METHOD=mm:1f55d295-0466-11e0-8dd1-8aebdd73e214
00075    SquareNumericalIntegration(SquareNumericalIntegration& Instance);
00076 
00077    // METHOD=mm:1664e315-0466-11e0-8dd1-8aebdd73e214
00078    ~SquareNumericalIntegration();
00079 
00080    // METHOD=mm:feda4207-0466-11e0-8dd1-8aebdd73e214
00081    SquareNumericalIntegration& operator=(SquareNumericalIntegration& Instance);
00082 
00083    // METHOD=mm:4f2dd88b-4ff8-11e0-90ec-a62df0b89907
00084    operator LineNumericalIntegration &();
00085 
00086    // METHOD=mm:87a4ef5d-f27c-11df-9284-bd0feebbfa73
00087    void SetMaxPolyOrder(unsigned long MaxPolyOrder);
00088 
00089    // METHOD=mm:0597dc43-f960-4a3a-8987-a15341465f8f
00090    void SetNumberCoordsWeights(unsigned long NumberRow, unsigned long NumberData);
00091 
00092    // METHOD=mm:87a4ef5e-f27c-11df-9284-bd0feebbfa73
00093    unsigned long GetMaxPolyOrder();
00094 
00095    // METHOD=mm:de2efc1f-ce7c-11e0-8d94-bd74a4bae893
00096    LineNumericalIntegration& GetLineNumericalIntegration();
00097 
00098    // METHOD=mm:3d005e0d-4ff9-11e0-90ec-a62df0b89907
00099    unsigned long GetNumberIntegrationPointsSets();
00100 
00101    // METHOD=mm:e0142c89-23e0-49ff-9e16-be4d5d1f1d7b
00102    unsigned long GetMaxNumberIntegrationPointsSets();
00103 
00104    // METHOD=mm:2b6dc823-5c89-11e0-88c4-ef15af85152f
00105    long GetIntegrationPointsSetNumber(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder);
00106 
00107    // METHOD=mm:6057eda3-44fa-11e0-9711-cb145d0d686e
00108    unsigned long GetNumberIntegrationPoints(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, long& IntegrationPointsSetNumber);
00109 
00110    // METHOD=mm:1d8b8ca6-a9a9-4852-a5ae-35e7a96d4561
00111    unsigned long GetNumberIntegrationPoints(ElementShape_E EntityShape, long IntegrationPointsSetNumber);
00112 
00113    // METHOD=mm:3739e950-0823-4feb-bd7b-9780daa80684
00114    unsigned long GetTotalNumberIntegrationPoints();
00115 
00116    // METHOD=mm:87a4ef5f-f27c-11df-9284-bd0feebbfa73
00117    double*const GetIntegrationPointsCoords(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, unsigned long& NumberIntegrationPoints);
00118 
00119    // METHOD=mm:87a4ef60-f27c-11df-9284-bd0feebbfa73
00120    double*const GetIntegrationPointsWeights(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, unsigned long IntegrandOrder, unsigned long& NumberIntegrationPoints);
00121 
00122    // METHOD=mm:87a4eec5-f27c-11df-9284-bd0feebbfa73
00123    unsigned long*const GetIndices(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder, unsigned long& NumberIndices);
00124 
00125    // METHOD=mm:db710b1f-65da-11e0-8491-9a6c26cf8b1e
00126    OneIndexTable<unsigned long>& GetIndices();
00127 
00128    // METHOD=mm:d670e92b-6b5c-11e0-9496-ab93ef007735
00129    unsigned long* GetIndicesBySet(unsigned long SetNumber, unsigned long& NumberIndices);
00130 
00131    // METHOD=mm:2991acc9-434f-11e0-8507-c0021234afab
00132    void RunNumericalIntegration(NumericalIntegrationAttributes_S& NIAttributes, ElementShape_E EntityShape, BuiltInArray<unsigned long>& PolyOrder);
00133 
00134    // METHOD=mm:87a4ef62-f27c-11df-9284-bd0feebbfa73
00135    void Print(FILE* File, ElementShape_E EntityShape);
00136 
00137 
00138  protected:
00139 
00143    // attr=mm:87a4ee30-f27c-11df-9284-bd0feebbfa73
00144    LineNumericalIntegration LineNI;
00145 
00149    // attr=mm:87a4eebf-f27c-11df-9284-bd0feebbfa73
00150    OneIndexTable<double> Weights;
00151 
00155    // attr=mm:173e0575-5fae-11e0-89bf-82ea5c842841
00156    OneIndexTable<double> Coords;
00157 
00161    // attr=mm:e3479601-4661-11e0-81e9-a37f76cac6d8
00162    OneIndexTable<unsigned long> TensorIndices;
00163 
00167    // attr=mm:cb60defd-4346-11e0-8507-c0021234afab
00168    unsigned long Pmax;
00169 
00170 
00171  private:
00172 
00173 //#UBLK-BEG-CLASSMEMB mm:8f648b4f-f27c-11df-9284-bd0feebbfa73
00174 //#UBLK-END-CLASSMEMB
00175 };
00176 
00177 //#UBLK-BEG-GLOBALH
00178 //*** Removed methods: 06 Abr 2011 15:29
00179 //---
00180 //uuid=mm:37910b8b-434a-11e0-8507-c0021234afab
00181 //   SquareNumericalIntegration(unsigned short MaxPolyOrder);
00182 
00183 //#UBLK-END-GLOBALH
00184 
00185 
00186 #endif // _SQUARENUMERICALINTEGRATION_H_
 All Classes Files Functions Variables Typedefs Friends Defines