hp2FEM  0.1
include/interpolation/collocationpoints/HexaCollocationPoints.h
00001 #ifndef _HEXACOLLOCATIONPOINTS_H_
00002 #define _HEXACOLLOCATIONPOINTS_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : HexaCollocationPoints.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     : 28 Mar 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   28 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 "enumerations/QuadCollocType_E.h"
00047 #include "enumerations/ElementShape_E.h"
00048 #include "interpolation/collocationpoints/SquareCollocationPoints.h"
00049 #include "interpolation/collocationpoints/collocationPointsAttributes_S.h"
00050 
00051 
00052 using namespace std;
00053 
00054 
00063 class HexaCollocationPoints
00064 {
00065 //#UBLK-BEG-CLASSDEF mm:23ea553b-f649-11df-85b0-e9a34136af77
00066 //#UBLK-END-CLASSDEF
00067 
00068  public:
00069 
00070    // METHOD=mm:d3bfa399-f649-11df-85b0-e9a34136af77
00071    HexaCollocationPoints();
00072 
00073    // METHOD=mm:fb646e0d-02d7-11e0-89cb-b0660132333d
00074    HexaCollocationPoints(HexaCollocationPoints& Instance);
00075 
00076    // METHOD=mm:133c0fc7-02d8-11e0-89cb-b0660132333d
00077    ~HexaCollocationPoints();
00078 
00079    // METHOD=mm:bab44f14-434e-11e0-8507-c0021234afab
00080    HexaCollocationPoints& operator=(HexaCollocationPoints& Instance);
00081 
00082    // METHOD=mm:cb64f631-4f40-11e0-9e1f-d93cf71dd7f2
00083    operator SquareCollocationPoints &();
00084 
00085    // METHOD=mm:fa7b5e83-4f40-11e0-9e1f-d93cf71dd7f2
00086    operator LineCollocationPoints &();
00087 
00088    // METHOD=mm:03690927-4349-11e0-8507-c0021234afab
00089    void SetMaxPolyOrder(unsigned long MaxOrder);
00090 
00091    // METHOD=mm:285d7097-4349-11e0-8507-c0021234afab
00092    unsigned long GetMaxPolyOrder();
00093 
00094    // METHOD=mm:a6b3fa45-760a-4f7b-97ce-e58a761c76ba
00095    long GetCollocationPointsSetNumber(unsigned long PolyOrder);
00096 
00097    // METHOD=mm:5a9d4261-4121-44a0-862a-78c6a8b93c87
00098    unsigned long GetTotalNumberCollocationPoints();
00099 
00100    // METHOD=mm:e2214e47-509e-11e0-87c0-fa4560693228
00101    unsigned long GetNumberCollocationPoints(ElementShape_E EntityShape, unsigned long PolyOrder, long& CollocationPointsSetNumber);
00102 
00103    // METHOD=mm:e2b9e139-509e-11e0-87c0-fa4560693228
00104    unsigned long GetNumberCollocationPointsSets();
00105 
00106    // METHOD=mm:2482c8ef-f649-11df-85b0-e9a34136af77
00107    double*const GetCollocationPointsCoords(ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long& NumberPoints);
00108 
00109    // METHOD=mm:2482c856-f649-11df-85b0-e9a34136af77
00110    void RunCollocationPointsCoords(ElementShape_E EntityShape, collocationPointsAttributes_S& CPAttributes, OneIndexTable<unsigned long>& TensorIndices, BuiltInArray<unsigned long>& PolyOrder);
00111 
00112    // METHOD=mm:2482c8f2-f649-11df-85b0-e9a34136af77
00113    void Print(FILE* File, ElementShape_E Shape);
00114 
00115 
00116  protected:
00117 
00121    // attr=mm:8f0f5e2f-6218-11e0-8159-a04df7924cef
00122    LineCollocationPoints LineCP;
00123 
00127    // attr=mm:2482c720-f649-11df-85b0-e9a34136af77
00128    SquareCollocationPoints SquareCP;
00129 
00133    // attr=mm:2482c7b9-f649-11df-85b0-e9a34136af77
00134    OneIndexTable<double> Coords;
00135 
00139    // attr=mm:59898d37-4348-11e0-8507-c0021234afab
00140    unsigned long Pmax;
00141 
00142 
00143  private:
00144 
00145 //#UBLK-BEG-CLASSMEMB mm:23ea553b-f649-11df-85b0-e9a34136af77
00146 //#UBLK-END-CLASSMEMB
00147 };
00148 
00149 //#UBLK-BEG-GLOBALH
00150 //#UBLK-END-GLOBALH
00151 
00152 
00153 #endif // _HEXACOLLOCATIONPOINTS_H_
 All Classes Files Functions Variables Typedefs Friends Defines