hp2FEM  0.1
include/interpolation/polynomials1d/Polynomials1D.h
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_
 All Classes Files Functions Variables Typedefs Friends Defines