hp2FEM  0.1
include/interpolation/numericalintegration/LineNumericalIntegration.h
00001 #ifndef _LINENUMERICALINTEGRATION_H_
00002 #define _LINENUMERICALINTEGRATION_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : LineNumericalIntegration.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/quadrature1d/Quadrature1D.h"
00050 #include "interpolation/numericalintegration/NumericalIntegrationAttributes_S.h"
00051 
00052 
00053 using namespace std;
00054 
00055 
00063 class LineNumericalIntegration
00064 {
00065 //#UBLK-BEG-CLASSDEF mm:b0f856a9-f249-11df-9284-bd0feebbfa73
00066 //#UBLK-END-CLASSDEF
00067 
00068  public:
00069 
00070    // METHOD=mm:37c73101-f27e-11df-9284-bd0feebbfa73
00071    LineNumericalIntegration();
00072 
00073    // METHOD=mm:f6cdded5-0465-11e0-8dd1-8aebdd73e214
00074    LineNumericalIntegration(LineNumericalIntegration& Instance);
00075 
00076    // METHOD=mm:0483540b-0466-11e0-8dd1-8aebdd73e214
00077    ~LineNumericalIntegration();
00078 
00079    // METHOD=mm:db16e195-0466-11e0-8dd1-8aebdd73e214
00080    LineNumericalIntegration& operator=(LineNumericalIntegration& Instance);
00081 
00082    // METHOD=mm:a342c9d8-f249-11df-9284-bd0feebbfa73
00083    void SetMaxPolyOrder(unsigned long MaxPolyOrder);
00084 
00085    // METHOD=mm:7835b740-71d1-11e0-88af-a96615e3269c
00086    void SetNumberCoordsWeights(unsigned long NumberRow, unsigned long NumberData);
00087 
00088    // METHOD=mm:f22154cb-9bae-11e0-9921-c037e02cca7f
00089    void SetNumberIntegrationPointsSets(NumericalIntegrationAttributes_S& NIAttributes, BuiltInArray<unsigned long>& PolyOrder);
00090 
00091    // METHOD=mm:a342ca6e-f249-11df-9284-bd0feebbfa73
00092    unsigned long GetMaxPolyOrder();
00093 
00094    // METHOD=mm:a4b4ce2f-4ff5-11e0-90ec-a62df0b89907
00095    unsigned long GetNumberIntegrationPointsSets();
00096 
00097    // METHOD=mm:adbce7cb-7d3b-40fc-9c8d-1a290152579b
00098    unsigned long GetMaxNumberIntegrationPoints();
00099 
00100    // METHOD=mm:444ee8c1-6068-11e0-8c00-dd53cdc87961
00101    unsigned long GetMaxNumberIntegrationPointsSets();
00102 
00103    // METHOD=mm:e328a78f-5ba3-11e0-9948-a5a3aa8c4071
00104    long GetIntegrationPointsSetNumber(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder);
00105 
00106    // METHOD=mm:5504c6c9-44fa-11e0-9711-cb145d0d686e
00107    unsigned long GetNumberIntegrationPoints(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder, long& IntegrationPointsSetNumber);
00108 
00109    // METHOD=mm:8f690401-6068-11e0-8c00-dd53cdc87961
00110    unsigned long GetNumberIntegrationPoints(long IPSetNumberIndex);
00111 
00112    // METHOD=mm:e8631b3b-3267-4c43-a270-ca7d9b298bed
00113    unsigned long GetNumberIntegPointsUsingSetNumber(long IPSetNumber);
00114 
00115    // METHOD=mm:d7cdf7ef-605b-11e0-8c00-dd53cdc87961
00116    unsigned long GetTotalNumberIntegrationPoints();
00117 
00118    // METHOD=mm:a342ca6f-f249-11df-9284-bd0feebbfa73
00119    double*const GetIntegrationPointsCoords(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder, unsigned long& NumberCoords);
00120 
00121    // METHOD=mm:76b5c14c-71cc-11e0-88af-a96615e3269c
00122    double* GetIntegrationPointsCoords(unsigned long& NumberCoords, unsigned long& NumberIndices, unsigned long** Indices);
00123 
00124    // METHOD=mm:ffcad0a3-65d6-11e0-8491-9a6c26cf8b1e
00125    double* GetIntegrationPointsCoordsBySets(unsigned long SetNumber, unsigned long& NumberIntegrationPoints);
00126 
00127    // METHOD=mm:a342ca70-f249-11df-9284-bd0feebbfa73
00128    double*const GetIntegrationPointsWeights(NumericalIntegrationAttributes_S& NIAttributes, unsigned long IntegrandOrder, unsigned long& NumberIntegrationPoints);
00129 
00130    // METHOD=mm:4ae6f866-71cd-11e0-88af-a96615e3269c
00131    double* GetIntegrationPointsWeights(unsigned long& NumberWeights, unsigned long& NumberIndices, unsigned long** Indices);
00132 
00133    // METHOD=mm:58d867eb-91ec-11e0-9e75-93f82ff5ac83
00134    double* GetIntegrationPointsWeightsBySets(unsigned long SetNumber, unsigned long& NumberIntegrationPoints);
00135 
00136    // METHOD=mm:167ecd14-434f-11e0-8507-c0021234afab
00137    void RunNumericalIntegration(NumericalIntegrationAttributes_S& NIAttributes, BuiltInArray<unsigned long>& PolyOrder);
00138 
00139    // METHOD=mm:00d0d57b-61eb-11e0-8159-a04df7924cef
00140    void Convert2NaturalCoordinates();
00141 
00142    // METHOD=mm:d52a7613-679c-11e0-8598-c81883b28fcd
00143    void Convert2LocalCoordinates();
00144 
00145    // METHOD=mm:a342ca72-f249-11df-9284-bd0feebbfa73
00146    void Print(FILE* File);
00147 
00148 
00149  protected:
00150 
00154    // attr=mm:a342c9ce-f249-11df-9284-bd0feebbfa73
00155    Quadrature1D Quad;
00156 
00160    // attr=mm:a342c9d2-f249-11df-9284-bd0feebbfa73
00161    OneIndexTable<double> Weights;
00162 
00166    // attr=mm:a342c9d3-f249-11df-9284-bd0feebbfa73
00167    OneIndexTable<double> Coords;
00168 
00173    // attr=mm:9b275f85-5086-11e0-90ec-a62df0b89907
00174    BuiltInArray<long> IPSets;
00175 
00179    // attr=mm:a38294d5-4ff3-11e0-90ec-a62df0b89907
00180    unsigned long NumbIPSets; //= 0;
00181 
00185    // attr=mm:a342c9d4-f249-11df-9284-bd0feebbfa73
00186    unsigned long Pmax;
00187 
00188 
00189  private:
00190 
00191 //#UBLK-BEG-CLASSMEMB mm:b0f856a9-f249-11df-9284-bd0feebbfa73
00192 //#UBLK-END-CLASSMEMB
00193 };
00194 
00195 //#UBLK-BEG-GLOBALH
00196 //*** Removed methods: 07 Abr 2011 14:52
00197 //---
00198 //uuid=mm:a342c9d5-f249-11df-9284-bd0feebbfa73
00199 //   LineNumericalIntegration(unsigned short MaxPolyOrder, pMesh_E pMeshFlag);
00200 //---
00201 //uuid=mm:dfd2687e-5fb3-11e0-89bf-82ea5c842841
00202 //   void SetpMesh(pMesh_E pMeshFlag);
00203 //---
00204 //uuid=mm:f678c0d0-5fb3-11e0-89bf-82ea5c842841
00205 //   pMesh_E GetpMesh();
00206 
00207 //*** Removed methods: 09 May 2011 11:02
00208 //---
00209 //uuid=mm:5b9a72b9-71d3-11e0-88af-a96615e3269c
00210 //   void SetNumberWeights(unsigned short NumberRow, unsigned short NumberData);
00211 
00212 //*** Removed methods: 21 Mar 2015 21:35
00213 //---
00214 //uuid=mm:2baff596-1ed2-4441-809a-2a45d4801379
00215 //   LineNumericalIntegration& operator=(LineNumericalIntegration& Instance);
00216 
00217 //#UBLK-END-GLOBALH
00218 
00219 
00220 #endif // _LINENUMERICALINTEGRATION_H_
 All Classes Files Functions Variables Typedefs Friends Defines