hp2FEM
0.1
|
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_