hp2FEM  0.1
include/interpolation/collocationpoints/collocationPoints.h
00001 #ifndef _COLLOCATIONPOINTS_H_
00002 #define _COLLOCATIONPOINTS_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : collocationPoints.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     : 23 Mar 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   23 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/collocationPointsAttributes_S.h"
00049 #include "interpolation/collocationpoints/HexaCollocationPoints.h"
00050 #include "interpolation/collocationpoints/LineCollocationPoints.h"
00051 #include "interpolation/collocationpoints/SquareCollocationPoints.h"
00052 #include "interpolation/collocationpoints/TetraCollocationPoints.h"
00053 #include "interpolation/collocationpoints/TriangleCollocationPoints.h"
00054 
00055 
00056 using namespace std;
00057 
00058 
00068 class collocationPoints
00069 {
00070 //#UBLK-BEG-CLASSDEF mm:23ea553f-f649-11df-85b0-e9a34136af77
00071 //#UBLK-END-CLASSDEF
00072 
00073  public:
00074 
00075    // METHOD=mm:614edd39-f649-11df-85b0-e9a34136af77
00076    collocationPoints();
00077 
00078    // METHOD=mm:2482cb65-f649-11df-85b0-e9a34136af77
00079    collocationPoints(ElementShape_E ElementShape, QuadCollocType_E CollocationType, unsigned long Alpha, unsigned long Beta, unsigned long MaxOrder);
00080 
00081    // METHOD=mm:80100384-440a-11e0-82ee-a7df8a6f9bcb
00082    collocationPoints(collocationPointsAttributes_S& CPAttrib);
00083 
00084    // METHOD=mm:c1936cbf-02d7-11e0-89cb-b0660132333d
00085    collocationPoints(collocationPoints& Instance);
00086 
00087    // METHOD=mm:31b2c831-7fcb-11e0-8ee8-bc841070a775
00088    collocationPointsAttributes_S& GetCollocationPointsAttributes();
00089 
00090    // METHOD=mm:2482cc9d-f649-11df-85b0-e9a34136af77
00091    double*const GetCollocationPointsCoords(ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long& NumberPoints);
00092 
00093    // METHOD=mm:c706468f-1fcb-426d-aba4-40b2556c2bab
00094    long GetCollocationPointsSetNumber(ElementShape_E ElemShape, ElementShape_E EntityShape, unsigned long PolyOrder);
00095 
00096    // METHOD=mm:e1672d9f-f679-4de6-b3a5-169e088a691c
00097    unsigned long GetMaxPolyOrder(ElementShape_E ElemShape);
00098 
00099    // METHOD=mm:c1a1c211-5097-11e0-87c0-fa4560693228
00100    unsigned long GetNumberCollocationPoints(ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, long& CollocationPointsSetNumber);
00101 
00102    // METHOD=mm:fdd62c44-5099-11e0-87c0-fa4560693228
00103    unsigned long GetNumberCollocationPointsSets(ElementShape_E ElementShape);
00104 
00105    // METHOD=mm:135fcff4-fcef-4995-a129-0cbe3451168b
00106    unsigned long GetTotalNumberCollocationPoints(ElementShape_E ElemShape);
00107 
00108    // METHOD=mm:f57bcff3-440a-11e0-82ee-a7df8a6f9bcb
00109    operator HexaCollocationPoints &();
00110 
00111    // METHOD=mm:b8afd2a9-440a-11e0-82ee-a7df8a6f9bcb
00112    operator LineCollocationPoints &();
00113 
00114    // METHOD=mm:0e75b181-65f8-11e0-8491-9a6c26cf8b1e
00115    operator QuadCollocType_E();
00116 
00117    // METHOD=mm:e85ec0c3-440a-11e0-82ee-a7df8a6f9bcb
00118    operator SquareCollocationPoints &();
00119 
00120    // METHOD=mm:fb719d43-440a-11e0-82ee-a7df8a6f9bcb
00121    operator TetraCollocationPoints &();
00122 
00123    // METHOD=mm:eeed51bb-440a-11e0-82ee-a7df8a6f9bcb
00124    operator TriangleCollocationPoints &();
00125 
00126    // METHOD=mm:7e80ff07-434e-11e0-8507-c0021234afab
00127    collocationPoints& operator=(collocationPoints& Instance);
00128 
00129    // METHOD=mm:2482cd30-f649-11df-85b0-e9a34136af77
00130    void Print(FILE* File, ElementShape_E ElementShape, ElementShape_E EntityShape);
00131 
00132    // METHOD=mm:2482cca1-f649-11df-85b0-e9a34136af77
00133    void Read(FILE* DefFile, unsigned long GroupNumber, ElementShape_E ElementShape, unsigned long MaxOrder);
00134 
00135    // METHOD=mm:2482cc99-f649-11df-85b0-e9a34136af77
00136    void RunCollocationPointsCoords(ElementShape_E ElementShape, ElementShape_E EntityShape, BuiltInArray<unsigned long>& PolyOrder, OneIndexTable<unsigned long>& Indices);
00137 
00138    // METHOD=mm:2ccd7232-4338-11e0-8507-c0021234afab
00139    void SetCollocationPointsAttributes(ElementShape_E ElementShape, QuadCollocType_E CollocationType, unsigned long Alpha, unsigned long Beta, unsigned long MaxOrder);
00140 
00141    // METHOD=mm:24922648-440b-11e0-82ee-a7df8a6f9bcb
00142    void SetCollocationPointsAttributes(collocationPointsAttributes_S& CPAttrib);
00143 
00144    // METHOD=mm:4fba7d79-7c14-483d-9329-328b31013a44
00145    void SetMaxPolyOrder(ElementShape_E ElemShape, unsigned long MaxOrder);
00146 
00147    // METHOD=mm:d4a64df9-02d7-11e0-89cb-b0660132333d
00148    ~collocationPoints();
00149 
00150 
00151  protected:
00152 
00156    // attr=mm:2482cacc-f649-11df-85b0-e9a34136af77
00157    collocationPointsAttributes_S CPAttributes;
00158 
00162    // attr=mm:f7c477d7-1d05-11e0-8803-bcc6159ba434
00163    HexaCollocationPoints* HexaCP;
00164 
00168    // attr=mm:e7140b41-1d05-11e0-8803-bcc6159ba434
00169    LineCollocationPoints* LineCP;
00170 
00174    // attr=mm:f72be201-1d05-11e0-8803-bcc6159ba434
00175    SquareCollocationPoints* SquareCP;
00176 
00180    // attr=mm:f85d0687-1d05-11e0-8803-bcc6159ba434
00181    TetraCollocationPoints* TetraCP;
00182 
00186    // attr=mm:f72bf3d1-1d05-11e0-8803-bcc6159ba434
00187    TriangleCollocationPoints* TriangleCP;
00188 
00189 
00190  private:
00191 
00192 //#UBLK-BEG-CLASSMEMB mm:23ea553f-f649-11df-85b0-e9a34136af77
00193 //#UBLK-END-CLASSMEMB
00194 };
00195 
00196 //#UBLK-BEG-GLOBALH
00197 //#UBLK-END-GLOBALH
00198 
00199 
00200 #endif // _COLLOCATIONPOINTS_H_
 All Classes Files Functions Variables Typedefs Friends Defines