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