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