hp2FEM
0.1
|
00001 #ifndef _LINESHAPEFUNCTIONS_H_ 00002 #define _LINESHAPEFUNCTIONS_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:24 00007 // file : LineShapeFunctions.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 : 11 Abr 2011 00019 //-------------------------------------------------------------- 00020 // Change history : 00021 // 11 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/Vector.h" 00047 #include "ds/Matrix.h" 00048 #include "ds/BuiltInArray.h" 00049 #include "ds/OneIndexTable.h" 00050 #include "ds/TwoIndexTable.h" 00051 #include "enumerations/QuadCollocType_E.h" 00052 #include "enumerations/ElementShape_E.h" 00053 #include "enumerations/PolynomialType_E.h" 00054 #include "enumerations/IPCP_E.h" 00055 #include "interpolation/collocationpoints/LineCollocationPoints.h" 00056 #include "interpolation/numericalintegration/LineNumericalIntegration.h" 00057 #include "interpolation/shapefunctions/ShapeFunctionsAttributes_S.h" 00058 #include "interpolation/polynomials1d/Polynomials1D.h" 00059 00060 00061 using namespace std; 00062 00063 00073 class LineShapeFunctions 00074 { 00075 //#UBLK-BEG-CLASSDEF mm:80ecc703-f3f3-11df-9959-9236c3ff6ea9 00076 //#UBLK-END-CLASSDEF 00077 00078 public: 00079 00080 // METHOD=mm:565b2bc9-f40c-11df-9959-9236c3ff6ea9 00081 LineShapeFunctions(); 00082 00083 // METHOD=mm:a0c22fc7-4345-11e0-8507-c0021234afab 00084 LineShapeFunctions(unsigned long MaxPolyOrder); 00085 00086 // METHOD=mm:35736e07-433b-11e0-8507-c0021234afab 00087 LineShapeFunctions(LineShapeFunctions& Instance); 00088 00089 // METHOD=mm:1cebea65-1e9e-11e0-9165-9fcf68b76eb1 00090 ~LineShapeFunctions(); 00091 00092 // METHOD=mm:80f53711-4372-11e0-8507-c0021234afab 00093 LineShapeFunctions& operator=(LineShapeFunctions& Instance); 00094 00095 // METHOD=mm:910c6b05-ce97-11e0-8d94-bd74a4bae893 00096 operator BuiltInArray<unsigned long>&(); 00097 00098 // METHOD=mm:0f4a7d9b-9a64-49bd-a668-f2df5b816aed 00099 operator Polynomials1D &(); 00100 00101 // METHOD=mm:b1c28b21-434c-11e0-8507-c0021234afab 00102 void SetMaxPolyOrder(unsigned long MaxPolyOrder); 00103 00104 // METHOD=mm:09f98551-434d-11e0-8507-c0021234afab 00105 unsigned long GetMaxPolyOrder(); 00106 00107 // METHOD=mm:848fc75d-780e-11e0-81d8-f37e89126ddd 00108 long GetShapeFunctionSetNumber(unsigned long PolyOrder); 00109 00110 // METHOD=mm:ace9981d-69f5-11e0-8503-f4f94fa41226 00111 unsigned long GetNumberSFPointsSets(); 00112 00113 // METHOD=mm:63e636b9-477c-4ed2-9297-ffe0c924c975 00114 BuiltInArray<unsigned long>& GetNumberIntegrationPoints(); 00115 00116 // METHOD=mm:aaab7031-4380-4e9d-a070-0c045a82e7f3 00117 BuiltInArray<unsigned long>& GetNumberCollocationPoints(); 00118 00119 // METHOD=mm:61558927-f3f3-11df-9959-9236c3ff6ea9 00120 double*const GetShapeFunctions(long SFSetNumber, long IPSetNumber, IPCP_E IPCPFlag, unsigned long& NumberSFValues); 00121 00122 // METHOD=mm:9b9ddaff-b87b-4017-adfd-edfbe73cce48 00123 double*const GetShapeFunctions(long SFSetNumber, long IPSetNumber, IPCP_E IPCPFlag, unsigned long& TotalNumberSFValues, unsigned long& NumberSFValues, unsigned long& NumberPoints); 00124 00125 // METHOD=mm:4b7dab81-67a2-11e0-8598-c81883b28fcd 00126 double*const GetdShapeFunctions(long SFSetNumber, long IPSetNumber, IPCP_E IPCPFlag, unsigned long& NumberSFValues); 00127 00128 // METHOD=mm:d05bf4e3-69ec-11e0-8503-f4f94fa41226 00129 unsigned long GetTotalNumberShapeFunctionsValues(IPCP_E IPCPFlags); 00130 00131 // METHOD=mm:61558926-f3f3-11df-9959-9236c3ff6ea9 00132 void RunShapeFunctions(ShapeFunctionsAttributes_S SFunctions, QuadCollocType_E QuadType, QuadCollocType_E CollocType, LineNumericalIntegration& LineNI, LineCollocationPoints& LineCP, BuiltInArray<unsigned long>& PolyOrder, char CoordType = 'x'); 00133 00134 // METHOD=mm:6155892e-f3f3-11df-9959-9236c3ff6ea9 00135 void Print(FILE* File); 00136 00137 00138 protected: 00139 00143 // attr=mm:61558887-f3f3-11df-9959-9236c3ff6ea9 00144 Polynomials1D Poly1D; 00145 00149 // attr=mm:61558885-f3f3-11df-9959-9236c3ff6ea9 00150 TwoIndexTable<double> SFIP; 00151 00155 // attr=mm:61558886-f3f3-11df-9959-9236c3ff6ea9 00156 TwoIndexTable<double> dSFIP; 00157 00161 // attr=mm:94da349f-4050-11e0-9dd5-8e5be057fed3 00162 TwoIndexTable<double> SFCP; 00163 00167 // attr=mm:a28faaf7-4050-11e0-9dd5-8e5be057fed3 00168 TwoIndexTable<double> dSFCP; 00169 00173 // attr=mm:e504fe97-434c-11e0-8507-c0021234afab 00174 unsigned long Pmax; 00175 00179 // attr=mm:d392593b-646a-11e0-9a48-cad1f54b35de 00180 unsigned long NumbSFSets; //= 0; 00181 00185 // attr=mm:f6e6e04c-e69b-4c47-a7fd-cd3c2ead9763 00186 BuiltInArray<unsigned long> NumbIntegPoints; 00187 00191 // attr=mm:f2fad6b3-9ab2-4613-9ec0-5438e10ce44f 00192 BuiltInArray<unsigned long> NumbCollocPoints; 00193 00197 // attr=mm:279d3253-646b-11e0-9a48-cad1f54b35de 00198 BuiltInArray<long> SFSets; 00199 00203 // attr=mm:0fb4ca11-ce97-11e0-8d94-bd74a4bae893 00204 BuiltInArray<unsigned long> ElemsOrder; 00205 00206 00207 private: 00208 00209 //#UBLK-BEG-CLASSMEMB mm:80ecc703-f3f3-11df-9959-9236c3ff6ea9 00210 //#UBLK-END-CLASSMEMB 00211 }; 00212 00213 //#UBLK-BEG-GLOBALH 00214 //*** Removed methods: 18 Abr 2011 15:41 00215 //--- 00216 //uuid=mm:61558929-f3f3-11df-9959-9236c3ff6ea9 00217 // double * const GetdShapeFunctions(unsigned short PolyOrder, unsigned short IPSetNumber, unsigned short CPSetNumber, IPCP_E IPCPFlag, unsigned short& NumberSFValues); 00218 00219 //*** Removed methods: 17 May 2011 15:00 00220 //--- 00221 //uuid=mm:cf7bb537-69f5-11e0-8503-f4f94fa41226 00222 // short GetSFPointsSetNumber(unsigned short PolyOrder); 00223 00224 //*** Removed methods: 24 Aug 2011 18:29 00225 //--- 00226 //uuid=mm:0d8a3f95-cdd5-11e0-993d-c2f620367c46 00227 // short GetNumberIntegrationPoints(unsigned short SetNumber, unsigned short IntegOrder, unsigned short& SFOrder, unsigned short& NumIP); 00228 00229 //*** Removed methods: 21 Mar 2015 21:35 00230 //--- 00231 //uuid=mm:149f46c3-492a-4c69-92a3-0755962925b4 00232 // operator Polynomials1D&(); 00233 00234 //#UBLK-END-GLOBALH 00235 00236 00237 #endif // _LINESHAPEFUNCTIONS_H_