hp2FEM  0.1
include/interpolation/collocationpoints/TetraCollocationPoints.h
00001 #ifndef _TETRACOLLOCATIONPOINTS_H_
00002 #define _TETRACOLLOCATIONPOINTS_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:23
00007 // file      : TetraCollocationPoints.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     : 25 Mar 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   25 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/TriangleCollocationPoints.h"
00049 
00050 
00051 using namespace std;
00052 
00053 
00061 class TetraCollocationPoints
00062 {
00063 //#UBLK-BEG-CLASSDEF mm:23ea55d1-f649-11df-85b0-e9a34136af77
00064 //#UBLK-END-CLASSDEF
00065 
00066  public:
00067 
00068    // METHOD=mm:e1296a69-f64a-11df-85b0-e9a34136af77
00069    TetraCollocationPoints();
00070 
00071    // METHOD=mm:4b9f1769-02f7-11e0-89cb-b0660132333d
00072    TetraCollocationPoints(TetraCollocationPoints& Instance);
00073 
00074    // METHOD=mm:4c378ea9-02f7-11e0-89cb-b0660132333d
00075    ~TetraCollocationPoints();
00076 
00077    // METHOD=mm:d3bcf881-434e-11e0-8507-c0021234afab
00078    TetraCollocationPoints& operator=(TetraCollocationPoints& Instance);
00079 
00080    // METHOD=mm:ae4a0d73-79db-11e0-84f1-f9e805de760d
00081    operator LineCollocationPoints &();
00082 
00083    // METHOD=mm:964a1ca3-ec76-407e-a64e-07c41715d785
00084    operator TriangleCollocationPoints &();
00085 
00086    // METHOD=mm:0b28b030-4349-11e0-8507-c0021234afab
00087    void SetMaxPolyOrder(unsigned long MaxOrder);
00088 
00089    // METHOD=mm:30b5b9a7-4349-11e0-8507-c0021234afab
00090    unsigned long GetMaxPolyOrder();
00091 
00092    // METHOD=mm:d3bbf604-946a-4ce9-bfe9-c3fb5a7b6611
00093    long GetCollocationPointsSetNumber(unsigned long PolyOrder);
00094 
00095    // METHOD=mm:78551587-408b-4ed6-837f-c2de0c9e2e2f
00096    unsigned long GetTotalNumberCollocationPoints();
00097 
00098    // METHOD=mm:3b3cb61b-509e-11e0-87c0-fa4560693228
00099    unsigned long GetNumberCollocationPoints(ElementShape_E EntityShape, unsigned long PolyOrder, long& CollocationPointsSetNumber);
00100 
00101    // METHOD=mm:3c6dde11-509e-11e0-87c0-fa4560693228
00102    unsigned long GetNumberCollocationPointsSets();
00103 
00104    // METHOD=mm:2482d0dc-f649-11df-85b0-e9a34136af77
00105    double*const GetCollocationPointsCoords(ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long& NumberPoints);
00106 
00107    // METHOD=mm:2482d04d-f649-11df-85b0-e9a34136af77
00108    void RunCollocationPointsCoords(ElementShape_E EntityShape, collocationPointsAttributes_S& CPAttributes, OneIndexTable<unsigned long>& TensorIndices, BuiltInArray<unsigned long>& PolyOrder);
00109 
00110    // METHOD=mm:2482d0df-f649-11df-85b0-e9a34136af77
00111    void Print(FILE* File, ElementShape_E EntityShape);
00112 
00113 
00114  protected:
00115 
00119    // attr=mm:2e2e6093-620d-11e0-8159-a04df7924cef
00120    LineCollocationPoints LineCP;
00121 
00125    // attr=mm:2482cf0d-f649-11df-85b0-e9a34136af77
00126    TriangleCollocationPoints TriangleCP;
00127 
00131    // attr=mm:2482cfa6-f649-11df-85b0-e9a34136af77
00132    OneIndexTable<double> Coords;
00133 
00138    // attr=mm:61492857-4348-11e0-8507-c0021234afab
00139    unsigned long Pmax;
00140 
00141 
00142  private:
00143 
00144    // METHOD=mm:6613265b-5c68-11e0-88c4-ef15af85152f
00145    unsigned long GetPointsNumber(unsigned long PolyOrder);
00146 
00147 
00148 //#UBLK-BEG-CLASSMEMB mm:23ea55d1-f649-11df-85b0-e9a34136af77
00149 //#UBLK-END-CLASSMEMB
00150 };
00151 
00152 //#UBLK-BEG-GLOBALH
00153 //#UBLK-END-GLOBALH
00154 
00155 
00156 #endif // _TETRACOLLOCATIONPOINTS_H_
 All Classes Files Functions Variables Typedefs Friends Defines