hp2FEM
0.1
|
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_