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