hp2FEM
0.1
|
00001 #ifndef _BOUNDARYDATA_H_ 00002 #define _BOUNDARYDATA_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : BoundaryData.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 //#UBLK-END-HEADERH 00015 00016 /*================================================================================================= 00017 = = 00018 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00019 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00020 = = 00021 = Licensed under the Apache License, Version 2.0 (the "License"); = 00022 = you may not use this file except in compliance with the License. = 00023 = You may obtain a copy of the License at = 00024 = = 00025 = http://www.apache.org/licenses/LICENSE-2.0 = 00026 = = 00027 = Unless required by applicable law or agreed to in writing, software = 00028 = distributed under the License is distributed on an "AS IS" BASIS, = 00029 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00030 = See the License for the specific language governing permissions and = 00031 = limitations under the License. = 00032 = = 00033 =================================================================================================*/ 00034 00035 00036 #include "model/Nodes.h" 00037 #include "interpolation/shapefunctions/SquareShapeFunctions.h" 00038 #include "interpolation/shapefunctions/ShapeFunctions.h" 00039 #include "interpolation/collocationpoints/SquareCollocationPoints.h" 00040 #include "geometrymesh/GeometryMesh.h" 00041 #include "fegroups/Mapping.h" 00042 #include "finiteelement/FiniteElement.h" 00043 #include "Parametric3DCurves.h" 00044 #include "Parametric3DPoints.h" 00045 #include "Parametric2DPoints.h" 00046 #include "ParametricSurfaces.h" 00047 #include "ParametricLines.h" 00048 #include "enumerations/Geo_Entities_E.h" 00049 #include "enumerations/Variable_Defs_E.h" 00050 00051 00055 class BoundaryData 00056 { 00057 //#UBLK-BEG-CLASSDEF mm:afbc2ac4-ba82-4f39-bfb5-eb88a867bcd1 00058 //#UBLK-END-CLASSDEF 00059 00060 public: 00061 00062 // METHOD=mm:c6e96080-011e-4fc9-9514-9b0554d79e3f 00063 BoundaryData(); 00064 00065 // METHOD=mm:5ab05843-3c3c-4c0d-a753-1498ed0db2da 00066 ~BoundaryData(); 00067 00068 // METHOD=mm:f3cd63ec-6e67-46ab-9e83-3d50c1ed74d6 00069 void Save(FILE* File); 00070 00071 // METHOD=mm:da7e13f3-5220-4f70-b904-5a52e5c09370 00072 void Restore(FILE* File); 00073 00074 // METHOD=mm:092a8396-2463-4641-ba4c-cc938f697489 00075 void Read(FILE* File); 00076 00077 // METHOD=mm:5ece6b39-473c-4e72-a360-48d39b22a397 00078 void Print(FILE* File = stdout); 00079 00080 // METHOD=mm:6e3367d9-cfeb-4da7-9c74-4039ab6a4f8d 00081 void Free(); 00082 00083 // METHOD=mm:38e32e81-3995-4306-ab44-d021e86506f6 00084 operator Parametric2DPoints * const(); 00085 00086 // METHOD=mm:e4b33611-20c9-4415-b641-53ee0ab2a8f1 00087 operator Parametric3DPoints * const(); 00088 00089 // METHOD=mm:93a8f805-42d6-46ab-a452-a2980499cadc 00090 operator Parametric3DCurves * const(); 00091 00092 // METHOD=mm:64eea02e-edf7-491e-b148-86a3ab245eed 00093 operator ParametricLines &(); 00094 00095 // METHOD=mm:a2cd87d7-9b1f-40c3-8010-5dd2ab7174bc 00096 operator ParametricSurfaces &(); 00097 00098 // METHOD=mm:2b30efb1-44d9-432b-b60a-16d8748bea03 00099 void SetNURBSParameters(BuiltInArray<long>& BoundaryNodes, BuiltInArray<long>& NumberOfBoundaryNodes, Nodes& NN); 00100 00101 // METHOD=mm:07499a6d-e40f-457a-90b1-924321c6b262 00102 long GetNumberOfHigherEntities(Geo_Entities_E Entity, long EntityNum); 00103 00104 // METHOD=mm:6376afab-8470-4b6f-8c02-f6eea910e682 00105 long GetHigherEntity(Geo_Entities_E Entity, long EntityNum, long Pos); 00106 00107 // METHOD=mm:d0b685ac-e3a6-4da7-8a10-193f729448b3 00108 void ResetNURBSParameters(); 00109 00110 // METHOD=mm:83c248b0-dfe1-4781-8b8b-19ce36ffb0a2 00111 void CPPosBoundaryVelocity(long EntityNum, long CPU, long card, double*const Velocity, BuiltInArray<long>& BoundaryNodes, BuiltInArray<long>& NumberOfBoundaryNodes); 00112 00113 // METHOD=mm:5134e2a9-b601-4af9-8799-0bf24a937876 00114 void CPPosBoundaryVelocity(long EntityNum, long CPU, long CPV, long card, double*const Velocity, BuiltInArray<long>& BoundaryNodes, BuiltInArray<long>& NumberOfBoundaryNodes); 00115 00116 // METHOD=mm:3a323252-32fa-4656-be57-986ab58d32ae 00117 void SetTableEntry(long EntityNum, long CPU, Variable_Defs_E VarType, double Value); 00118 00119 // METHOD=mm:6c076eed-f5fc-4094-91b7-3fe74a68d3ec 00120 void SetTableEntry(long EntityNum, long CPU, long CPV, Variable_Defs_E VarType, double Value); 00121 00122 00123 protected: 00124 00125 // METHOD=mm:f1192b5d-7075-4322-86be-d2f65f7e43f1 00126 void SetNURBSParameters(long EntityNum, BuiltInArray<long>& BoundaryNodes, BuiltInArray<long>& NumberOfBoundaryNodes, Nodes& NN); 00127 00128 00138 // attr=mm:bb855377-7133-4ee4-af55-1b586e9b24f5 00139 long Current; 00140 00146 // attr=mm:63b26c7c-2d2f-43ba-96af-3439a9446f0d 00147 int Dim; 00148 00155 // attr=mm:53ead866-a50d-4a49-b96c-1e891ace1fb3 00156 BuiltInArray<double> tau; 00157 00164 // attr=mm:1df5a4b0-8ab9-4e3b-b248-e5991adebce6 00165 BuiltInArray<long> NumberOfParametricNodes; 00166 00174 // attr=mm:c9d6675a-63f0-4a4f-a47d-5c35c9540abc 00175 Parametric3DPoints Points3D; 00176 00184 // attr=mm:cacc074a-8bb8-40b4-871b-6e6640539f62 00185 ParametricLines Curves2D; 00186 00194 // attr=mm:ebca5645-89b4-4725-8bc3-642b8b3e54d6 00195 ParametricSurfaces Surfaces; 00196 00204 // attr=mm:729d5e69-6851-4bcd-8e3b-18ce525444f8 00205 Parametric3DCurves Curves3D; 00206 00214 // attr=mm:725c20a0-e89c-4736-bfed-43f233517a39 00215 Parametric2DPoints Points2D; 00216 00217 00218 private: 00219 00220 //#UBLK-BEG-CLASSMEMB mm:afbc2ac4-ba82-4f39-bfb5-eb88a867bcd1 00221 //#UBLK-END-CLASSMEMB 00222 }; 00223 00224 //#UBLK-BEG-GLOBALH 00225 //#UBLK-END-GLOBALH 00226 00227 00228 #endif // _BOUNDARYDATA_H_