hp2FEM
0.1
|
00001 #ifndef _POLYNOMIALS1D_H_ 00002 #define _POLYNOMIALS1D_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:23 00007 // file : Polynomials1D.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 : 17 Mar 2011 00019 //-------------------------------------------------------------- 00020 // Change history : 00021 // 17 Mar 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 "enumerations/PolynomialType_E.h" 00049 #include "enumerations/QuadCollocType_E.h" 00050 #include "interpolation/polynomials1d/LagrangeJacobi1D.h" 00051 #include "interpolation/polynomials1d/Jacobi1D.h" 00052 #include "interpolation/polynomials1d/Hermite1D.h" 00053 #include "interpolation/polynomials1d/StandardLagrange1D.h" 00054 #include "interpolation/polynomials1d/TruncatedLagrange1D.h" 00055 #include "interpolation/polynomials1d/Lobatto1D.h" 00056 00057 00066 class Polynomials1D 00067 { 00068 //#UBLK-BEG-CLASSDEF mm:2482c685-f649-11df-85b0-e9a34136af77 00069 //#UBLK-END-CLASSDEF 00070 00071 public: 00072 00073 // METHOD=mm:5a9b3c4b-091b-11e0-8caf-edcb777f4247 00074 Polynomials1D(); 00075 00076 // METHOD=mm:2482d8cd-f649-11df-85b0-e9a34136af77 00077 Polynomials1D(PolynomialType_E PolynomialType, unsigned long Alpha, unsigned long Beta); 00078 00079 // METHOD=mm:6a1a9225-091b-11e0-8caf-edcb777f4247 00080 Polynomials1D(Polynomials1D& Instance); 00081 00082 // METHOD=mm:933b0469-091b-11e0-8caf-edcb777f4247 00083 ~Polynomials1D(); 00084 00085 // METHOD=mm:b6a25605-50a6-11e0-87c0-fa4560693228 00086 Polynomials1D& operator=(Polynomials1D& Instance); 00087 00088 // METHOD=mm:6f8b85f8-65d4-11e0-8491-9a6c26cf8b1e 00089 void SetPolynomials1DAttributes(PolynomialType_E PolynomialType, unsigned long Alpha, unsigned long Beta); 00090 00091 // METHOD=mm:2482d8d1-f649-11df-85b0-e9a34136af77 00092 void GetPolynomialValue(unsigned long PolyOrder, QuadCollocType_E QuadratureType, unsigned long Alpha, unsigned long Beta, double*const CollocCoordinates, double*const Coordinates, unsigned long NumCoordinates, double* Phi); 00093 00094 // METHOD=mm:2482d96d-f649-11df-85b0-e9a34136af77 00095 void Get1stDerivative(unsigned long PolyOrder, QuadCollocType_E QuadratureType, unsigned long Alpha, unsigned long Beta, double*const CollocCoordinates, double*const Coordinates, unsigned long NumCoordinates, double* dPhi); 00096 00097 // METHOD=mm:3f957531-0486-11e0-8dd1-8aebdd73e214 00098 void Get2ndDerivative(unsigned long PolyOrder, QuadCollocType_E QuadratureType, unsigned long Alpha, unsigned long Beta, double*const CollocCoordinates, double*const Coordinates, unsigned long NumCoordinates, double* d2Phi); 00099 00100 00101 protected: 00102 00106 // attr=mm:2482d839-f649-11df-85b0-e9a34136af77 00107 PolynomialType_E PolyType; 00108 00112 // attr=mm:2482d83a-f649-11df-85b0-e9a34136af77 00113 unsigned long Alpha; 00114 00118 // attr=mm:2482d83b-f649-11df-85b0-e9a34136af77 00119 unsigned long Beta; 00120 00124 // attr=mm:2482d83c-f649-11df-85b0-e9a34136af77 00125 LagrangeJacobi1D LagJacPoly; 00126 00130 // attr=mm:2482d8c8-f649-11df-85b0-e9a34136af77 00131 Jacobi1D JacPoly; 00132 00136 // attr=mm:2482d8c9-f649-11df-85b0-e9a34136af77 00137 Hermite1D HermPoly; 00138 00142 // attr=mm:2482d8ca-f649-11df-85b0-e9a34136af77 00143 StandardLagrange1D StLagPoly; 00144 00148 // attr=mm:2482d8cb-f649-11df-85b0-e9a34136af77 00149 TruncatedLagrange1D TrLagPoly; 00150 00154 // attr=mm:2482d8cc-f649-11df-85b0-e9a34136af77 00155 Lobatto1D LobattoPoly; 00156 00157 00158 private: 00159 00160 //#UBLK-BEG-CLASSMEMB mm:2482c685-f649-11df-85b0-e9a34136af77 00161 //#UBLK-END-CLASSMEMB 00162 }; 00163 00164 //#UBLK-BEG-GLOBALH 00165 //#UBLK-END-GLOBALH 00166 00167 00168 #endif // _POLYNOMIALS1D_H_