SU2
grid_movement_structure.hpp
Go to the documentation of this file.
1 
37 #pragma once
38 
39 #include "./mpi_structure.hpp"
40 
41 #include <iostream>
42 #include <cstdlib>
43 #include <fstream>
44 #include <cmath>
45 #include <ctime>
46 
47 #include "geometry_structure.hpp"
48 #include "config_structure.hpp"
49 #include "matrix_structure.hpp"
50 #include "vector_structure.hpp"
52 
53 using namespace std;
54 
63 public:
64 
68  CGridMovement(void);
69 
73  virtual ~CGridMovement(void);
74 
80  virtual void SetSurface_Deformation(CGeometry *geometry, CConfig *config);
81 
82 };
83 
91 
92 protected:
93  unsigned short Order,
94  Degree,
95  nControl;
97 public:
98 
103 
107  virtual ~CFreeFormBlending();
108 
114  virtual su2double GetBasis(short val_i, su2double val_t);
115 
122  virtual su2double GetDerivative(short val_i, su2double val_t, short val_order);
123 
129  virtual void SetOrder(short val_order, short n_controlpoints);
130 
134  su2double GetOrder();
135 
139  su2double GetDegree();
140 };
141 
149 
150 private:
151  vector<su2double> U;
152  vector<vector<su2double> > N;
153  unsigned short KnotSize;
155 public:
156 
160  CBSplineBlending(short val_order, short n_controlpoints);
161 
165  ~CBSplineBlending();
166 
172  su2double GetBasis(short val_i, su2double val_t);
173 
180  su2double GetDerivative(short val_i, su2double val_t, short val_order_der);
181 
187  void SetOrder(short val_order, short n_controlpoints);
188 
189 };
190 
198 
199 private:
200 
201  vector<su2double> binomial;
209  su2double GetBernstein(short val_n, short val_i, su2double val_t);
210 
218  su2double GetBernsteinDerivative(short val_n, short val_i, su2double val_t, short val_order_der);
219 
227  su2double Binomial(unsigned short n, unsigned short m);
228 
229 public:
230 
236  CBezierBlending(short val_order, short n_controlpoints);
237 
241  ~CBezierBlending();
242 
248  su2double GetBasis(short val_i, su2double val_t);
249 
256  su2double GetDerivative(short val_i, su2double val_t, short val_order_der);
257 
263  void SetOrder(short val_order, short n_controlpoints);
264 
265 };
266 
274 public:
275  unsigned short nDim;
276  unsigned short nCornerPoints,
277  nControlPoints, nControlPoints_Copy;
278  su2double **Coord_Corner_Points,
279  ****Coord_Control_Points,
281  ****Coord_Control_Points_Copy,
282  ****Coord_SupportCP;
283  unsigned short lOrder, lOrder_Copy,
284  mOrder, mOrder_Copy,
285  nOrder, nOrder_Copy;
286  unsigned short lDegree, lDegree_Copy,
287  mDegree, mDegree_Copy,
288  nDegree, nDegree_Copy;
289  su2double *ParamCoord, *ParamCoord_,
290  *cart_coord, *cart_coord_;
291  su2double ObjFunc;
292  su2double *Gradient;
293  su2double **Hessian;
294  su2double MaxCoord[3];
295  su2double MinCoord[3];
296  string Tag;
297  unsigned short Level;
298  vector<su2double> CartesianCoord[3];
299  vector<su2double> ParametricCoord[3];
300  vector<unsigned short> MarkerIndex;
301  vector<unsigned long> VertexIndex;
302  vector<unsigned long> PointIndex;
303  unsigned long nSurfacePoint;
304  vector<string> ParentFFDBox;
305  vector<string> ChildFFDBox;
306  vector<unsigned short> Fix_IPlane;
307  vector<unsigned short> Fix_JPlane;
308  vector<unsigned short> Fix_KPlane;
310  CFreeFormBlending** BlendingFunction;
311 
312 
313 public:
314 
318  CFreeFormDefBox(void);
319 
326  CFreeFormDefBox(unsigned short Degree[], unsigned short BSplineOrder[], unsigned short kind_blending);
327 
331  ~CFreeFormDefBox(void);
332 
337  void Set_Fix_IPlane(unsigned short val_plane);
338 
343  void Set_Fix_JPlane(unsigned short val_plane);
344 
349  void Set_Fix_KPlane(unsigned short val_plane);
350 
355  unsigned short Get_Fix_IPlane(unsigned short val_index);
356 
361  unsigned short Get_Fix_JPlane(unsigned short val_index);
362 
367  unsigned short Get_Fix_KPlane(unsigned short val_index);
368 
373  unsigned short Get_nFix_IPlane(void);
374 
379  unsigned short Get_nFix_JPlane(void);
380 
385  unsigned short Get_nFix_KPlane(void);
386 
391  void Set_MarkerIndex(unsigned short val_iMarker);
392 
397  void Set_VertexIndex(unsigned long val_iVertex);
398 
403  void Set_PointIndex(unsigned long val_iPoint);
404 
409  void Set_CartesianCoord(su2double *val_coord);
410 
415  void Set_ParametricCoord(su2double *val_coord);
416 
421  void SetParentFFDBox(string val_iParentFFDBox);
422 
427  void SetChildFFDBox(string val_iChildFFDBox);
428 
434  void Set_CartesianCoord(su2double *val_coord, unsigned long val_iSurfacePoints);
435 
441  void Set_ParametricCoord(su2double *val_coord, unsigned long val_iSurfacePoints);
442 
448  unsigned short Get_MarkerIndex(unsigned long val_iSurfacePoints);
449 
455  unsigned long Get_VertexIndex(unsigned long val_iSurfacePoints);
456 
462  unsigned long Get_PointIndex(unsigned long val_iSurfacePoints);
463 
469  su2double *Get_CartesianCoord(unsigned long val_iSurfacePoints);
470 
476  su2double *Get_ParametricCoord(unsigned long val_iSurfacePoints);
477 
483  unsigned long GetnSurfacePoint(void);
484 
490  unsigned short GetnParentFFDBox(void);
491 
497  unsigned short GetnChildFFDBox(void);
498 
504  string GetParentFFDBoxTag(unsigned short val_ParentFFDBox);
505 
511  string GetChildFFDBoxTag(unsigned short val_ChildFFDBox);
512 
518  void SetSupportCPChange(CFreeFormDefBox *FFDBox);
519 
524  void SetnCornerPoints(unsigned short val_ncornerpoints);
525 
530  unsigned short GetnCornerPoints(void);
531 
536  unsigned short GetnControlPoints(void);
537 
542  void SetnControlPoints(void);
543 
548  unsigned long GetnSurfacePoints(void);
549 
553  void SetUnitCornerPoints(void);
554 
560  void SetCoordCornerPoints(su2double *val_coord, unsigned short val_icornerpoints);
561 
569  void SetCoordCornerPoints(su2double val_xcoord, su2double val_ycoord, su2double val_zcoord, unsigned short val_icornerpoints);
570 
578  void SetCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree);
579 
587  void SetCoordControlPoints_Copy(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree);
588 
596  void SetParCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree);
597 
604  su2double GetCoordCornerPoints(unsigned short val_dim, unsigned short val_icornerpoints);
605 
611  su2double *GetCoordCornerPoints(unsigned short val_icornerpoints);
612 
620  su2double *GetCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex);
621 
629  su2double *GetParCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex);
630 
634  void SetControlPoints_Parallelepiped(void);
635 
640  void SetSupportCP(CFreeFormDefBox *FFDBox);
641 
647  void SetControlPoints(unsigned short *val_index, su2double *movement);
648 
652  void SetOriginalControlPoints(void);
653 
659  void SetTecplot(CGeometry *geometry, unsigned short iFFDBox, bool original);
660 
666  void SetParaview(CGeometry *geometry, unsigned short iFFDBox, bool original);
667 
672  void SetCyl2Cart_ControlPoints(CConfig *config);
673 
678  void SetCart2Cyl_ControlPoints(CConfig *config);
679 
684  void SetCyl2Cart_CornerPoints(CConfig *config);
685 
690  void SetCart2Cyl_CornerPoints(CConfig *config);
691 
696  void SetSphe2Cart_ControlPoints(CConfig *config);
697 
702  void SetCart2Sphe_ControlPoints(CConfig *config);
703 
708  void SetSphe2Cart_CornerPoints(CConfig *config);
709 
714  void SetCart2Sphe_CornerPoints(CConfig *config);
715 
722  su2double *GetParametricCoord_Analytical(su2double *cart_coord);
723 
732  su2double *GetParametricCoord_Iterative(unsigned long iPoint, su2double *xyz, su2double *guess, CConfig *config);
733 
740  void CrossProduct(su2double *v1, su2double *v2, su2double *v3);
741 
748  su2double DotProduct(su2double *v1, su2double *v2);
749 
756  su2double *EvalCartesianCoord(su2double *ParamCoord);
757 
762  unsigned short GetlOrder(void);
763 
768  unsigned short GetmOrder(void);
769 
774  unsigned short GetnOrder(void);
775 
780  void SetlOrder(unsigned short val_lOrder);
781 
786  void SetmOrder(unsigned short val_mOrder);
787 
792  void SetnOrder(unsigned short val_nOrder);
793 
800  bool GetPointFFD(CGeometry *geometry, CConfig *config, unsigned long iPoint);
801 
808  void SetDeformationZone(CGeometry *geometry, CConfig *config, unsigned short iFFDBox);
809 
817  su2double *GetFFDGradient(su2double *val_coord, su2double *xyz);
818 
827  void GetFFDHessian(su2double *uvw, su2double *xyz, su2double **val_Hessian);
828 
841  su2double GetDerivative1(su2double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn);
842 
855  su2double GetDerivative2(su2double *uvw, unsigned short dim, su2double *xyz, unsigned short *lmn);
856 
869  su2double GetDerivative3(su2double *uvw, unsigned short dim, unsigned short diff_this,
870  unsigned short *lmn);
871 
886  su2double GetDerivative4(su2double *uvw, unsigned short val_diff, unsigned short val_diff2,
887  unsigned short *ijk, unsigned short *lmn);
888 
905  su2double GetDerivative5(su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also,
906  unsigned short *lmn);
907 
913  su2double GetNorm(su2double *a);
914 
919  void SetTag(string val_tag);
920 
925  string GetTag(void);
926 
931  void SetLevel(unsigned short val_level);
932 
937  unsigned short GetLevel(void);
938 
944  su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11,
945  su2double A12, su2double A20, su2double A21, su2double A22);
946 
947 };
948 
956 protected:
957 
958  unsigned short nDim;
959  unsigned short nVar;
961  unsigned long nPoint;
962  unsigned long nPointDomain;
964  unsigned long nIterMesh;
967  CSysVector LinSysSol;
968  CSysVector LinSysRes;
969 
970 public:
971 
975  CVolumetricMovement(CGeometry *geometry, CConfig *config);
976 
980  ~CVolumetricMovement(void);
981 
987  void UpdateGridCoord(CGeometry *geometry, CConfig *config);
988 
994  void UpdateDualGrid(CGeometry *geometry, CConfig *config);
995 
1001  void UpdateMultiGrid(CGeometry **geometry, CConfig *config);
1002 
1009  su2double SetFEAMethodContributions_Elem(CGeometry *geometry, CConfig *config);
1010 
1021  void SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3],
1022  unsigned short nNodes, su2double ElemVolume, su2double ElemDistance);
1023 
1034  void SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3],
1035  unsigned short nNodes, su2double ElemVolume, su2double ElemDistance);
1036 
1045  su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1046 
1055  su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1056 
1065  su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1066 
1075  su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1076 
1084  su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1085 
1093  su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]);
1094 
1099  su2double GetHexa_Volume(su2double CoordCorners[8][3]);
1100 
1105  su2double GetTetra_Volume(su2double CoordCorners[8][3]);
1106 
1111  su2double GetPrism_Volume(su2double CoordCorners[8][3]);
1112 
1117  su2double GetPyram_Volume(su2double CoordCorners[8][3]);
1118 
1123  su2double GetTriangle_Area(su2double CoordCorners[8][3]);
1124 
1129  su2double GetQuadrilateral_Area(su2double CoordCorners[8][3]);
1130 
1138  void AddFEA_StiffMatrix(CGeometry *geometry, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes);
1139 
1144  void ComputeDeforming_Element_Volume(CGeometry *geometry, su2double &MinVolume, su2double &MaxVolume);
1145 
1146 
1152  void ComputeDeforming_Wall_Distance(CGeometry *geometry, CConfig *config, su2double &MinDistance, su2double &MaxDistance);
1153 
1159  void SetBoundaryDisplacements(CGeometry *geometry, CConfig *config);
1160 
1166  void SetDomainDisplacements(CGeometry *geometry, CConfig *config);
1167 
1175  void Rigid_Rotation(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1176 
1184  void Rigid_Pitching(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1185 
1193  void Rigid_Plunging(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1194 
1202  void Rigid_Translation(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1203 
1210  void SetVolume_Scaling(CGeometry *geometry, CConfig *config, bool UpdateGeo);
1211 
1218  void SetVolume_Translation(CGeometry *geometry, CConfig *config, bool UpdateGeo);
1219 
1226  void SetVolume_Rotation(CGeometry *geometry, CConfig *config, bool UpdateGeo);
1227 
1235  void SetVolume_Deformation(CGeometry *geometry, CConfig *config, bool UpdateGeo, bool Derivative = false);
1236 
1242  void SetBoundaryDerivatives(CGeometry *geometry, CConfig *config);
1243 
1249  void UpdateGridCoord_Derivatives(CGeometry *geometry, CConfig *config);
1250 
1265  su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22);
1266 
1267 
1272  void Set_nIterMesh(unsigned long val_nIterMesh);
1273 
1278  unsigned long Get_nIterMesh(void);
1279 };
1280 
1288 protected:
1290  unsigned short nFFDBox;
1291  unsigned short nLevel;
1293  vector<su2double> GlobalCoordX[MAX_NUMBER_FFD];
1294  vector<su2double> GlobalCoordY[MAX_NUMBER_FFD];
1295  vector<su2double> GlobalCoordZ[MAX_NUMBER_FFD];
1296  vector<string> GlobalTag[MAX_NUMBER_FFD];
1297  vector<unsigned long> GlobalPoint[MAX_NUMBER_FFD];
1298 
1299 public:
1300 
1304  CSurfaceMovement(void);
1305 
1309  ~CSurfaceMovement(void);
1310 
1318  void SetHicksHenne(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1319 
1327  void SetSurface_Bump(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1328 
1336  void SetAngleOfAttack(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1337 
1345  void SetCST(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1346 
1352  void SetNACA_4Digits(CGeometry *boundary, CConfig *config);
1353 
1359  void SetParabolic(CGeometry *boundary, CConfig *config);
1360 
1366  void SetAirfoil(CGeometry *boundary, CConfig *config);
1367 
1375  void SetRotation(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1376 
1384  void Moving_Walls(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1385 
1393  void Surface_Translating(CGeometry *geometry, CConfig *config,
1394  unsigned long iter, unsigned short iZone);
1395 
1403  void Surface_Plunging(CGeometry *geometry, CConfig *config,
1404  unsigned long iter, unsigned short iZone);
1405 
1413  void Surface_Pitching(CGeometry *geometry, CConfig *config,
1414  unsigned long iter, unsigned short iZone);
1415 
1423  void Surface_Rotating(CGeometry *geometry, CConfig *config,
1424  unsigned long iter, unsigned short iZone);
1425 
1433  void HTP_Rotation(CGeometry *geometry, CConfig *config,
1434  unsigned long iter, unsigned short iZone);
1435 
1445  void AeroelasticDeform(CGeometry *geometry, CConfig *config, unsigned long ExtIter, unsigned short iMarker, unsigned short iMarker_Monitoring, vector<su2double>& displacements);
1446 
1454  void SetBoundary_Flutter3D(CGeometry *geometry, CConfig *config,
1455  CFreeFormDefBox **FFDBox, unsigned long iter, unsigned short iZone);
1456 
1462  void SetCollective_Pitch(CGeometry *geometry, CConfig *config);
1463 
1471  void SetExternal_Deformation(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);
1472 
1480  void SetTranslation(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1481 
1489  void SetScale(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef);
1490 
1496  void CopyBoundary(CGeometry *geometry, CConfig *config);
1497 
1503  void SetSurface_Deformation(CGeometry *geometry, CConfig *config);
1504 
1512  void SetParametricCoord(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox);
1513 
1522  void UpdateParametricCoord(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox);
1523 
1531  void CheckFFDIntersections(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox);
1532 
1540  void CheckFFDDimension(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox);
1541 
1549  void SetParametricCoordCP(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBoxParent, CFreeFormDefBox *FFDBoxChild);
1550 
1558  void GetCartesianCoordCP(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBoxParent, CFreeFormDefBox *FFDBoxChild);
1559 
1567  void SetCartesianCoord(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox, bool ResetDef);
1568 
1577  bool SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1578 
1587  bool SetFFDCPChange(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1588 
1597  bool SetFFDGull(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1598 
1607  bool SetFFDNacelle(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1608 
1617  bool SetFFDCamber_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1618 
1627  bool SetFFDTwist_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1628 
1637  bool SetFFDThickness_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1638 
1647  bool SetFFDCamber(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1648 
1657  bool SetFFDThickness(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1658 
1667  void SetFFDAngleOfAttack(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1668 
1677  bool SetFFDTwist(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1678 
1687  bool SetFFDRotation(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox,CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1688 
1697  bool SetFFDControl_Surface(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, CFreeFormDefBox **ResetFFDBox, unsigned short iDV, bool ResetDef);
1698 
1708  void ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFormDefBox **FFDBox, string val_mesh_filename);
1709 
1718  void ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFormDefBox **FFDBox);
1719 
1726  void MergeFFDInfo(CGeometry *geometry, CConfig *config);
1727 
1734  void WriteFFDInfo(CGeometry *geometry, CConfig *config);
1735 
1741  bool GetFFDBoxDefinition(void);
1742 
1750  bool CheckFFDBoxDefinition(CConfig* config, unsigned short iDV);
1751 
1756  unsigned short GetnFFDBox(void);
1757 
1762  unsigned short GetnLevel(void);
1763 
1769  void SetSurface_Derivative(CGeometry *geometry, CConfig *config);
1770 };
1771 
1772 #include "grid_movement_structure.inl"
string Tag
Tag to identify the FFDBox.
Definition: grid_movement_structure.hpp:296
unsigned short Order
Order of the polynomial basis.
Definition: grid_movement_structure.hpp:93
unsigned short Level
Nested level of the FFD box.
Definition: grid_movement_structure.hpp:297
vector< unsigned short > Fix_IPlane
Fix FFD I plane.
Definition: grid_movement_structure.hpp:306
vector< unsigned short > MarkerIndex
Vector with all markers in the FFD FFDBox.
Definition: grid_movement_structure.hpp:300
Headers of the main subroutines for creating the geometrical structure. The subroutines and functions...
vector< unsigned long > PointIndex
Vector with all points index in the FFD FFDBox.
Definition: grid_movement_structure.hpp:302
Headers of the main subroutines for creating the sparse matrices-by-blocks. The subroutines and funct...
unsigned short nDim
Number of dimensions of the problem.
Definition: grid_movement_structure.hpp:275
In-Line subroutines of the grid_movement_structure.hpp file.
All the information about the definition of the physical problem. The subroutines and functions are i...
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition: geometry_structure.hpp:72
su2double * ParamCoord_
Parametric coordinates of a point.
Definition: grid_movement_structure.hpp:289
unsigned long nPointDomain
Number of points in the domain.
Definition: grid_movement_structure.hpp:962
unsigned short nOrder_Copy
Order of the FFDBox in the k direction.
Definition: grid_movement_structure.hpp:283
vector< string > ParentFFDBox
Vector with all the parent FFD FFDBox.
Definition: grid_movement_structure.hpp:304
double GetDerivative(const su2double &data)
Get the derivative value of the datatype (needs to be implemented for each new type).
Definition: codi_forward_structure.inl:44
Headers of the mpi interface for generalized datatypes. The subroutines and functions are in the mpi_...
vector< unsigned short > Fix_KPlane
Fix FFD K plane.
Definition: grid_movement_structure.hpp:308
unsigned long nIterMesh
Number of iterations in the mesh update. +.
Definition: grid_movement_structure.hpp:964
CSysMatrix StiffMatrix
Matrix to store the point-to-point stiffness.
Definition: grid_movement_structure.hpp:966
su2double ObjFunc
Objective function of the point inversion process.
Definition: grid_movement_structure.hpp:291
Class that defines the blending using Bernsteinpolynomials (Bezier Curves).
Definition: grid_movement_structure.hpp:197
vector< unsigned short > Fix_JPlane
Fix FFD J plane.
Definition: grid_movement_structure.hpp:307
Class for moving the surface numerical grid.
Definition: grid_movement_structure.hpp:1287
Class for moving the volumetric numerical grid.
Definition: grid_movement_structure.hpp:955
unsigned short nDegree_Copy
Degree of the FFDBox in the k direction. (nOrder - 1)
Definition: grid_movement_structure.hpp:286
unsigned short nLevel
Level of the FFD FFDBoxes (parent/child).
Definition: grid_movement_structure.hpp:1291
Class for defining the free form FFDBox structure.
Definition: grid_movement_structure.hpp:273
su2double ** Hessian
Hessian of the point inversion process.
Definition: grid_movement_structure.hpp:293
su2double **** ParCoord_Control_Points
Coordinates of the control points.
Definition: grid_movement_structure.hpp:278
Class for moving the surface and volumetric numerical grid (2D and 3D problems).
Definition: grid_movement_structure.hpp:62
Main class for defining sparse matrices-by-blocks with compressed row format.
Definition: matrix_structure.hpp:59
vector< unsigned long > VertexIndex
Vector with all vertex index in the FFD FFDBox.
Definition: grid_movement_structure.hpp:301
unsigned short nFFDBox
Number of FFD FFDBoxes.
Definition: grid_movement_structure.hpp:1290
vector< string > ChildFFDBox
Vector with all the child FFD FFDBox.
Definition: grid_movement_structure.hpp:305
su2double * Gradient
Gradient of the point inversion process.
Definition: grid_movement_structure.hpp:292
unsigned long nPoint
Number of points.
Definition: grid_movement_structure.hpp:961
Headers for the classes related to linear solvers (CG, FGMRES, etc) The subroutines and functions are...
Class for holding and manipulating vectors needed by linear solvers.
Definition: vector_structure.hpp:60
unsigned short nCornerPoints
Number of corner points of the FFDBox.
Definition: grid_movement_structure.hpp:276
bool FFDBoxDefinition
If the FFD FFDBox has been defined in the input file.
Definition: grid_movement_structure.hpp:1292
unsigned long nSurfacePoint
Number of surfaces in the FFD FFDBox.
Definition: grid_movement_structure.hpp:303
Class that defines the particular kind of blending function for the free form deformation.
Definition: grid_movement_structure.hpp:90
CFreeFormDefBox ** FFDBox
Definition of the Free Form Deformation Box.
Definition: grid_movement_structure.hpp:1289
Headers for the classes related to linear solvers (CG, FGMRES, etc) The subroutines and functions are...
Class that defines the blending using uniform BSplines.
Definition: grid_movement_structure.hpp:148
unsigned short nVar
Number of variables.
Definition: grid_movement_structure.hpp:959
Main class for defining the problem; basically this class reads the configuration file...
Definition: config_structure.hpp:68
const unsigned int MAX_NUMBER_FFD
Maximum number of FFDBoxes for the FFD.
Definition: option_structure.hpp:118
unsigned short nDim
Number of dimensions.
Definition: grid_movement_structure.hpp:958