hp2FEM  0.1
include/nurbs/BoundaryData.h
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_
 All Classes Files Functions Variables Typedefs Friends Defines