SU2
Public Member Functions | Public Attributes | List of all members
CFreeFormDefBox Class Reference

Class for defining the free form FFDBox structure. More...

#include <grid_movement_structure.hpp>

Inheritance diagram for CFreeFormDefBox:
CGridMovement

Public Member Functions

 CFreeFormDefBox (void)
 Constructor of the class.
 
 CFreeFormDefBox (unsigned short Degree[], unsigned short BSplineOrder[], unsigned short kind_blending)
 
 ~CFreeFormDefBox (void)
 Destructor of the class.
 
void Set_Fix_IPlane (unsigned short val_plane)
 Define the I planes to to fix in a FFD box. More...
 
void Set_Fix_JPlane (unsigned short val_plane)
 Define the I planes to to fix in a FFD box. More...
 
void Set_Fix_KPlane (unsigned short val_plane)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_Fix_IPlane (unsigned short val_index)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_Fix_JPlane (unsigned short val_index)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_Fix_KPlane (unsigned short val_index)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_nFix_IPlane (void)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_nFix_JPlane (void)
 Define the I planes to to fix in a FFD box. More...
 
unsigned short Get_nFix_KPlane (void)
 Define the I planes to to fix in a FFD box. More...
 
void Set_MarkerIndex (unsigned short val_iMarker)
 Add to the vector of markers a new marker. More...
 
void Set_VertexIndex (unsigned long val_iVertex)
 Add to the vector of vertices a new vertex. More...
 
void Set_PointIndex (unsigned long val_iPoint)
 Add to the vector of points a new point. More...
 
void Set_CartesianCoord (su2double *val_coord)
 Add to the vector of cartesian coordinates a new coordinate. More...
 
void Set_ParametricCoord (su2double *val_coord)
 Add to the vector of parametric coordinates a new coordinate. More...
 
void SetParentFFDBox (string val_iParentFFDBox)
 Add to the vector of parent FFDBoxes a new FFD FFDBox. More...
 
void SetChildFFDBox (string val_iChildFFDBox)
 Add to the vector of child FFDBoxes a new FFD FFDBox. More...
 
void Set_CartesianCoord (su2double *val_coord, unsigned long val_iSurfacePoints)
 _______________. More...
 
void Set_ParametricCoord (su2double *val_coord, unsigned long val_iSurfacePoints)
 _______________. More...
 
unsigned short Get_MarkerIndex (unsigned long val_iSurfacePoints)
 _______________. More...
 
unsigned long Get_VertexIndex (unsigned long val_iSurfacePoints)
 _______________. More...
 
unsigned long Get_PointIndex (unsigned long val_iSurfacePoints)
 _______________. More...
 
su2double * Get_CartesianCoord (unsigned long val_iSurfacePoints)
 _______________. More...
 
su2double * Get_ParametricCoord (unsigned long val_iSurfacePoints)
 _______________. More...
 
unsigned long GetnSurfacePoint (void)
 _______________. More...
 
unsigned short GetnParentFFDBox (void)
 _______________. More...
 
unsigned short GetnChildFFDBox (void)
 _______________. More...
 
string GetParentFFDBoxTag (unsigned short val_ParentFFDBox)
 _______________. More...
 
string GetChildFFDBoxTag (unsigned short val_ChildFFDBox)
 _______________. More...
 
void SetSupportCPChange (CFreeFormDefBox *FFDBox)
 Change the the position of the corners of the unitary FFDBox, and find the position of the control points for the FFDBox. More...
 
void SetnCornerPoints (unsigned short val_ncornerpoints)
 Set the number of corner points. More...
 
unsigned short GetnCornerPoints (void)
 Get the number of corner points. More...
 
unsigned short GetnControlPoints (void)
 Get the number of control points. More...
 
void SetnControlPoints (void)
 Get the number of control points. More...
 
unsigned long GetnSurfacePoints (void)
 Get the number of numerical points on the surface. More...
 
void SetUnitCornerPoints (void)
 Set the corner point for the unitary FFDBox.
 
void SetCoordCornerPoints (su2double *val_coord, unsigned short val_icornerpoints)
 Set the coordinates of the corner points. More...
 
void SetCoordCornerPoints (su2double val_xcoord, su2double val_ycoord, su2double val_zcoord, unsigned short val_icornerpoints)
 
void SetCoordControlPoints (su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree)
 Set the coordinates of the control points. More...
 
void SetCoordControlPoints_Copy (su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree)
 Set the coordinates of the control points. More...
 
void SetParCoordControlPoints (su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree)
 Set the coordinates of the control points. More...
 
su2double GetCoordCornerPoints (unsigned short val_dim, unsigned short val_icornerpoints)
 Get the coordinates of the corner points. More...
 
su2double * GetCoordCornerPoints (unsigned short val_icornerpoints)
 Get the coordinates of the corner points. More...
 
su2double * GetCoordControlPoints (unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex)
 Get the coordinates of the control point. More...
 
su2double * GetParCoordControlPoints (unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex)
 Get the parametric coordinates of the control point. More...
 
void SetControlPoints_Parallelepiped (void)
 Set the control points in a parallelepiped (hexahedron).
 
void SetSupportCP (CFreeFormDefBox *FFDBox)
 Set the control points of the final chuck in a unitary hexahedron free form. More...
 
void SetControlPoints (unsigned short *val_index, su2double *movement)
 Set the new value of the coordinates of the control points. More...
 
void SetOriginalControlPoints (void)
 Set the original value of the control points.
 
void SetTecplot (CGeometry *geometry, unsigned short iFFDBox, bool original)
 Set the tecplot file of the FFD chuck structure. More...
 
void SetParaview (CGeometry *geometry, unsigned short iFFDBox, bool original)
 Set the paraview file of the FFD chuck structure. More...
 
void SetCyl2Cart_ControlPoints (CConfig *config)
 Set Cylindrical to Cartesians_ControlPoints. More...
 
void SetCart2Cyl_ControlPoints (CConfig *config)
 Set Cartesians to Cylindrical ControlPoints. More...
 
void SetCyl2Cart_CornerPoints (CConfig *config)
 Set Cylindrical to Cartesians_CornerPoints. More...
 
void SetCart2Cyl_CornerPoints (CConfig *config)
 Set Cartesians to Cylindrical CornerPoints. More...
 
void SetSphe2Cart_ControlPoints (CConfig *config)
 Set Spherical to Cartesians ControlPoints. More...
 
void SetCart2Sphe_ControlPoints (CConfig *config)
 SetCartesians to Spherical ControlPoints. More...
 
void SetSphe2Cart_CornerPoints (CConfig *config)
 Set Spherical to Cartesians_CornerPoints. More...
 
void SetCart2Sphe_CornerPoints (CConfig *config)
 Set Cartesians to Spherical Corner Points. More...
 
su2double * GetParametricCoord_Analytical (su2double *cart_coord)
 Set the cartesian coords of a point in R^3 and convert them to the parametric coords of our parametrization of a paralellepiped. More...
 
su2double * GetParametricCoord_Iterative (unsigned long iPoint, su2double *xyz, su2double *guess, CConfig *config)
 Iterative strategy for computing the parametric coordinates. More...
 
void CrossProduct (su2double *v1, su2double *v2, su2double *v3)
 Compute the cross product. More...
 
su2double DotProduct (su2double *v1, su2double *v2)
 Compute the doc product. More...
 
su2double * EvalCartesianCoord (su2double *ParamCoord)
 Here we take the parametric coords of a point in the box and we convert them to the physical cartesian coords by plugging the ParamCoords on the Bezier parameterization of our box. More...
 
unsigned short GetlOrder (void)
 Get the order in the l direction of the FFD FFDBox. More...
 
unsigned short GetmOrder (void)
 Get the order in the m direction of the FFD FFDBox. More...
 
unsigned short GetnOrder (void)
 Get the order in the n direction of the FFD FFDBox. More...
 
void SetlOrder (unsigned short val_lOrder)
 Get the order in the l direction of the FFD FFDBox. More...
 
void SetmOrder (unsigned short val_mOrder)
 Get the order in the m direction of the FFD FFDBox. More...
 
void SetnOrder (unsigned short val_nOrder)
 Get the order in the n direction of the FFD FFDBox. More...
 
bool GetPointFFD (CGeometry *geometry, CConfig *config, unsigned long iPoint)
 Set, at each vertex, the index of the free form FFDBox that contains the vertex. More...
 
void SetDeformationZone (CGeometry *geometry, CConfig *config, unsigned short iFFDBox)
 Set the zone of the computational domain that is going to be deformed. More...
 
su2double * GetFFDGradient (su2double *val_coord, su2double *xyz)
 The routine computes the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w). More...
 
void GetFFDHessian (su2double *uvw, su2double *xyz, su2double **val_Hessian)
 The routine that computes the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w) Input: (u, v, w), (x, y, z) Output: Hessian F (u, v, w). More...
 
su2double GetDerivative1 (su2double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn)
 An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)^2+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z)^2 Input: val_t, val_diff (to identify the index of the Bernstein polynomail we differentiate), the i, j, k , l, m, n E.G.: val_diff=2 => we differentiate w.r.t. w (val_diff=0,1, or 2) Output: d [B_i^l*B_j^m *B_k^n] / d val_diff (val_u, val_v, val_w). More...
 
su2double GetDerivative2 (su2double *uvw, unsigned short dim, su2double *xyz, unsigned short *lmn)
 An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)^2+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z)^2 Input: (u, v, w), dim , xyz=(x, y, z), l, m, n E.G.: dim=2 => we use the third coordinate of the control points, and the z-coordinate of xyz (0<=dim<=2) Output: 2* ( (Sum_{i, j, k}^l, m, n P_{ijk}[dim] B_i^l[u] B_j^m[v] B_k^n[w]) - xyz[dim]). More...
 
su2double GetDerivative3 (su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short *lmn)
 An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z) More...
 
su2double GetDerivative4 (su2double *uvw, unsigned short val_diff, unsigned short val_diff2, unsigned short *ijk, unsigned short *lmn)
 An auxiliary routine to help us compute the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z) Input: val_t, val_diff, val_diff2 (to identify the index of the Bernstein polynomials we differentiate), the i, j, k , l, m, n E.G.: val_diff=1, val_diff2=2 => we differentiate w.r.t. v and w (val_diff=0,1, or 2) E.G.: val_diff=0, val_diff2=0 => we differentiate w.r.t. u two times Output: [d [B_i^l*B_j^m *B_k^n]/d val_diff *d [B_i^l*B_j^m *B_k^n]/d val_diff2] (val_u, val_v, val_w) . More...
 
su2double GetDerivative5 (su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also, unsigned short *lmn)
 An auxiliary routine to help us compute the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z) Input: (u, v, w), dim , diff_this, diff_this_also, xyz=(x, y, z), l, m, n Output: Sum_{i, j, k}^{l, m, n} [two of them with -1, depending on diff_this, diff_this_also=0,1 or 2] P_{ijk}[dim] * (B_i^l[u] B_j^m[v] B_k^n[w])–one of them diffrentiated; which? diff_thiss will tell us ; E.G.: dim=2, diff_this=1 => we use the third coordinate of the control points, and derivate de v-Bersntein polynomial (use m-1 when summing!!). More...
 
su2double GetNorm (su2double *a)
 Euclidean norm of a vector. More...
 
void SetTag (string val_tag)
 Set the tag that identify a FFDBox. More...
 
string GetTag (void)
 Get the tag that identify a FFDBox. More...
 
void SetLevel (unsigned short val_level)
 Set the nested level of the FFDBox. More...
 
unsigned short GetLevel (void)
 Get the nested level of the FFDBox. More...
 
su2double Determinant_3x3 (su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22)
 Compute the determinant of a 3 by 3 matrix. More...
 
- Public Member Functions inherited from CGridMovement
 CGridMovement (void)
 Constructor of the class.
 
virtual ~CGridMovement (void)
 Destructor of the class.
 
virtual void SetSurface_Deformation (CGeometry *geometry, CConfig *config)
 A pure virtual member. More...
 

Public Attributes

unsigned short nDim
 Number of dimensions of the problem.
 
unsigned short nCornerPoints
 Number of corner points of the FFDBox.
 
unsigned short nControlPoints
 
unsigned short nControlPoints_Copy
 Number of control points of the FFDBox.
 
su2double ** Coord_Corner_Points
 Coordinates of the corner points.
 
su2double **** Coord_Control_Points
 Coordinates of the control points.
 
su2double **** ParCoord_Control_Points
 Coordinates of the control points.
 
su2double **** Coord_Control_Points_Copy
 Coordinates of the control points (copy).
 
su2double **** Coord_SupportCP
 Coordinates of the support control points.
 
unsigned short lOrder
 
unsigned short lOrder_Copy
 Order of the FFDBox in the i direction.
 
unsigned short mOrder
 
unsigned short mOrder_Copy
 Order of the FFDBox in the j direction.
 
unsigned short nOrder
 
unsigned short nOrder_Copy
 Order of the FFDBox in the k direction.
 
unsigned short lDegree
 
unsigned short lDegree_Copy
 Degree of the FFDBox in the i direction. (lOrder - 1)
 
unsigned short mDegree
 
unsigned short mDegree_Copy
 Degree of the FFDBox in the j direction. (mOrder - 1)
 
unsigned short nDegree
 
unsigned short nDegree_Copy
 Degree of the FFDBox in the k direction. (nOrder - 1)
 
su2double * ParamCoord
 
su2double * ParamCoord_
 Parametric coordinates of a point.
 
su2double * cart_coord
 
su2double * cart_coord_
 Cartesian coordinates of a point.
 
su2double ObjFunc
 Objective function of the point inversion process.
 
su2double * Gradient
 Gradient of the point inversion process.
 
su2double ** Hessian
 Hessian of the point inversion process.
 
su2double MaxCoord [3]
 Maximum coordinates of the FFDBox.
 
su2double MinCoord [3]
 Minimum coordinates of the FFDBox.
 
string Tag
 Tag to identify the FFDBox.
 
unsigned short Level
 Nested level of the FFD box.
 
vector< su2double > CartesianCoord [3]
 Vector with all the cartesian coordinates in the FFD FFDBox.
 
vector< su2double > ParametricCoord [3]
 Vector with all the parametrics coordinates in the FFD FFDBox.
 
vector< unsigned short > MarkerIndex
 Vector with all markers in the FFD FFDBox.
 
vector< unsigned long > VertexIndex
 Vector with all vertex index in the FFD FFDBox.
 
vector< unsigned long > PointIndex
 Vector with all points index in the FFD FFDBox.
 
unsigned long nSurfacePoint
 Number of surfaces in the FFD FFDBox.
 
vector< string > ParentFFDBox
 Vector with all the parent FFD FFDBox.
 
vector< string > ChildFFDBox
 Vector with all the child FFD FFDBox.
 
vector< unsigned short > Fix_IPlane
 Fix FFD I plane.
 
vector< unsigned short > Fix_JPlane
 Fix FFD J plane.
 
vector< unsigned short > Fix_KPlane
 Fix FFD K plane.
 
CFreeFormBlending ** BlendingFunction
 

Detailed Description

Class for defining the free form FFDBox structure.

Author
F. Palacios & A. Galdran.
Version
5.0.0 "Raven"

Constructor & Destructor Documentation

§ CFreeFormDefBox()

CFreeFormDefBox::CFreeFormDefBox ( unsigned short  Degree[],
unsigned short  BSplineOrder[],
unsigned short  kind_blending 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]val_lDegree- Degree of the FFDBox in the i direction.
[in]val_mDegree- Degree of the FFDBox in the j direction.
[in]val_nDegree- Degree of the FFDBox in the k direction.

Member Function Documentation

§ CrossProduct()

void CFreeFormDefBox::CrossProduct ( su2double *  v1,
su2double *  v2,
su2double *  v3 
)
inline

Compute the cross product.

Parameters
[in]v1- First input vector.
[in]v2- Second input vector.
[out]v3- Output vector wuth the cross product.

§ Determinant_3x3()

su2double CFreeFormDefBox::Determinant_3x3 ( su2double  A00,
su2double  A01,
su2double  A02,
su2double  A10,
su2double  A11,
su2double  A12,
su2double  A20,
su2double  A21,
su2double  A22 
)
inline

Compute the determinant of a 3 by 3 matrix.

Parameters
[in]val_matrix3 by 3 matrix.
Returns
Determinant of the matrix

§ DotProduct()

su2double CFreeFormDefBox::DotProduct ( su2double *  v1,
su2double *  v2 
)
inline

Compute the doc product.

Parameters
[in]v1- First input vector.
[in]v2- Sencond input vector.
Returns
Dot product between v1, and v2.

§ EvalCartesianCoord()

su2double * CFreeFormDefBox::EvalCartesianCoord ( su2double *  ParamCoord)

Here we take the parametric coords of a point in the box and we convert them to the physical cartesian coords by plugging the ParamCoords on the Bezier parameterization of our box.

Parameters
[in]ParamCoord- Parametric coordinates of a point.
Returns
Pointer to the cartesian coordinates of a point.

§ Get_CartesianCoord()

su2double * CFreeFormDefBox::Get_CartesianCoord ( unsigned long  val_iSurfacePoints)
inline

_______________.

Parameters
[in]Get_CartesianCoord- _______________.
Returns
_______________.

§ Get_Fix_IPlane()

unsigned short CFreeFormDefBox::Get_Fix_IPlane ( unsigned short  val_index)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_Fix_JPlane()

unsigned short CFreeFormDefBox::Get_Fix_JPlane ( unsigned short  val_index)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_Fix_KPlane()

unsigned short CFreeFormDefBox::Get_Fix_KPlane ( unsigned short  val_index)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_MarkerIndex()

unsigned short CFreeFormDefBox::Get_MarkerIndex ( unsigned long  val_iSurfacePoints)
inline

_______________.

Parameters
[in]Get_MarkerIndex- _______________.
Returns
_______________.

§ Get_nFix_IPlane()

unsigned short CFreeFormDefBox::Get_nFix_IPlane ( void  )
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_nFix_JPlane()

unsigned short CFreeFormDefBox::Get_nFix_JPlane ( void  )
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_nFix_KPlane()

unsigned short CFreeFormDefBox::Get_nFix_KPlane ( void  )
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Get_ParametricCoord()

su2double * CFreeFormDefBox::Get_ParametricCoord ( unsigned long  val_iSurfacePoints)
inline

_______________.

Parameters
[in]Get_ParametricCoord- _______________.
Returns
_______________.

§ Get_PointIndex()

unsigned long CFreeFormDefBox::Get_PointIndex ( unsigned long  val_iSurfacePoints)
inline

_______________.

Parameters
[in]Get_PointIndex- _______________.
Returns
_______________.

§ Get_VertexIndex()

unsigned long CFreeFormDefBox::Get_VertexIndex ( unsigned long  val_iSurfacePoints)
inline

_______________.

Parameters
[in]Get_VertexIndex- _______________.
Returns
_______________.

§ GetChildFFDBoxTag()

string CFreeFormDefBox::GetChildFFDBoxTag ( unsigned short  val_ChildFFDBox)
inline

_______________.

Parameters
[in]val_ChildFFDBox- _______________.
Returns
_______________.

§ GetCoordControlPoints()

su2double * CFreeFormDefBox::GetCoordControlPoints ( unsigned short  val_iindex,
unsigned short  val_jindex,
unsigned short  val_kindex 
)
inline

Get the coordinates of the control point.

Parameters
[in]val_iindex- Value of the local i index of the control point.
[in]val_jindex- Value of the local j index of the control point.
[in]val_kindex- Value of the local k index of the control point.
Returns
Pointer to the coordinate vector of the control point with local index (i, j, k).

§ GetCoordCornerPoints() [1/2]

su2double CFreeFormDefBox::GetCoordCornerPoints ( unsigned short  val_dim,
unsigned short  val_icornerpoints 
)
inline

Get the coordinates of the corner points.

Parameters
[in]val_dim- Index of the coordinate (x, y, z).
[in]val_icornerpoints- Index of the corner point.
Returns
Coordinate val_dim of the corner point val_icornerpoints.

§ GetCoordCornerPoints() [2/2]

su2double * CFreeFormDefBox::GetCoordCornerPoints ( unsigned short  val_icornerpoints)
inline

Get the coordinates of the corner points.

Parameters
[in]val_icornerpoints- Index of the corner point.
Returns
Pointer to the coordinate vector of the corner point val_icornerpoints.

§ GetDerivative1()

su2double CFreeFormDefBox::GetDerivative1 ( su2double *  uvw,
unsigned short  val_diff,
unsigned short *  ijk,
unsigned short *  lmn 
)

An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)^2+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z)^2 Input: val_t, val_diff (to identify the index of the Bernstein polynomail we differentiate), the i, j, k , l, m, n E.G.: val_diff=2 => we differentiate w.r.t. w (val_diff=0,1, or 2) Output: d [B_i^l*B_j^m *B_k^n] / d val_diff (val_u, val_v, val_w).

Parameters
[in]uvw- __________.
[in]val_diff- __________.
[in]ijk- __________.
[in]lmn- Degree of the FFD box.
Returns
__________.

§ GetDerivative2()

su2double CFreeFormDefBox::GetDerivative2 ( su2double *  uvw,
unsigned short  dim,
su2double *  xyz,
unsigned short *  lmn 
)

An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)^2+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z)^2 Input: (u, v, w), dim , xyz=(x, y, z), l, m, n E.G.: dim=2 => we use the third coordinate of the control points, and the z-coordinate of xyz (0<=dim<=2) Output: 2* ( (Sum_{i, j, k}^l, m, n P_{ijk}[dim] B_i^l[u] B_j^m[v] B_k^n[w]) - xyz[dim]).

Parameters
[in]uvw- __________.
[in]dim- __________.
[in]xyz- __________.
[in]lmn- Degree of the FFD box.
Returns
__________.

§ GetDerivative3()

su2double CFreeFormDefBox::GetDerivative3 ( su2double *  uvw,
unsigned short  dim,
unsigned short  diff_this,
unsigned short *  lmn 
)

An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z)

Parameters
[in]uvw- Parametric coordiates of the point.
[in]dim- Value of the coordinate to be differentiate.
[in]diff_this- Diferentiation with respect this coordinate.
[in]lmn- Degree of the FFD box.
Returns
Sum_{i, j, k}^{l, m, n} [one of them with -1, depending on diff_this=0,1 or 2] P_{ijk}[dim] * (B_i^l[u] B_j^m[v] B_k^n[w])–one of them diffrentiated; which? diff_thiss will tell us ; E.G.: dim=2, diff_this=1 => we use the third coordinate of the control points, and derivate de v-Bersntein polynomial (use m-1 when summing!!).

§ GetDerivative4()

su2double CFreeFormDefBox::GetDerivative4 ( su2double *  uvw,
unsigned short  val_diff,
unsigned short  val_diff2,
unsigned short *  ijk,
unsigned short *  lmn 
)

An auxiliary routine to help us compute the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z) Input: val_t, val_diff, val_diff2 (to identify the index of the Bernstein polynomials we differentiate), the i, j, k , l, m, n E.G.: val_diff=1, val_diff2=2 => we differentiate w.r.t. v and w (val_diff=0,1, or 2) E.G.: val_diff=0, val_diff2=0 => we differentiate w.r.t. u two times Output: [d [B_i^l*B_j^m *B_k^n]/d val_diff *d [B_i^l*B_j^m *B_k^n]/d val_diff2] (val_u, val_v, val_w) .

Parameters
[in]uvw- __________.
[in]val_diff- __________.
[in]val_diff2- __________.
[in]ijk- __________.
[in]lmn- Degree of the FFD box.
Returns
__________.

§ GetDerivative5()

su2double CFreeFormDefBox::GetDerivative5 ( su2double *  uvw,
unsigned short  dim,
unsigned short  diff_this,
unsigned short  diff_this_also,
unsigned short *  lmn 
)

An auxiliary routine to help us compute the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = (Sum_ijk^lmn P1_ijk Bi Bj Bk -x)^2+(Sum_ijk^lmn P2_ijk Bi Bj Bk -y)+(Sum_ijk^lmn P3_ijk Bi Bj Bk -z) Input: (u, v, w), dim , diff_this, diff_this_also, xyz=(x, y, z), l, m, n Output: Sum_{i, j, k}^{l, m, n} [two of them with -1, depending on diff_this, diff_this_also=0,1 or 2] P_{ijk}[dim] * (B_i^l[u] B_j^m[v] B_k^n[w])–one of them diffrentiated; which? diff_thiss will tell us ; E.G.: dim=2, diff_this=1 => we use the third coordinate of the control points, and derivate de v-Bersntein polynomial (use m-1 when summing!!).

Parameters
[in]uvw- __________.
[in]dim- __________.
[in]diff_this- __________.
[in]diff_this_also- __________.
[in]lmn- Degree of the FFD box.
Returns
__________.

§ GetFFDGradient()

su2double * CFreeFormDefBox::GetFFDGradient ( su2double *  val_coord,
su2double *  xyz 
)

The routine computes the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w).

Parameters
[in]val_coord- Parametric coordiates of the target point.
[in]xyz- Cartesians coordinates of the point.
[in]analytical- Compute the analytical gradient.
Returns
Value of the analytical gradient.

§ GetFFDHessian()

void CFreeFormDefBox::GetFFDHessian ( su2double *  uvw,
su2double *  xyz,
su2double **  val_Hessian 
)

The routine that computes the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w) Input: (u, v, w), (x, y, z) Output: Hessian F (u, v, w).

Parameters
[in]uvw- Current value of the parametrics coordinates.
[in]xyz- Cartesians coordinates of the target point to compose the functional.
[in]val_Hessian- Value of the hessian.

§ GetLevel()

unsigned short CFreeFormDefBox::GetLevel ( void  )
inline

Get the nested level of the FFDBox.

Returns
Value of the nested level of the the FFDBox.

§ GetlOrder()

unsigned short CFreeFormDefBox::GetlOrder ( void  )
inline

Get the order in the l direction of the FFD FFDBox.

Returns
Order in the l direction of the FFD FFDBox.

§ GetmOrder()

unsigned short CFreeFormDefBox::GetmOrder ( void  )
inline

Get the order in the m direction of the FFD FFDBox.

Returns
Order in the m direction of the FFD FFDBox.

§ GetnChildFFDBox()

unsigned short CFreeFormDefBox::GetnChildFFDBox ( void  )
inline

_______________.

Parameters
[in]GetnChildFFDBox- _______________.
Returns
_______________.

§ GetnControlPoints()

unsigned short CFreeFormDefBox::GetnControlPoints ( void  )
inline

Get the number of control points.

Returns
Number of control points.

§ GetnCornerPoints()

unsigned short CFreeFormDefBox::GetnCornerPoints ( void  )
inline

Get the number of corner points.

Returns
Number of corner points.

§ GetnOrder()

unsigned short CFreeFormDefBox::GetnOrder ( void  )
inline

Get the order in the n direction of the FFD FFDBox.

Returns
Order in the n direction of the FFD FFDBox.

§ GetNorm()

su2double CFreeFormDefBox::GetNorm ( su2double *  a)
inline

Euclidean norm of a vector.

Parameters
[in]a- _______.
Returns
__________.

§ GetnParentFFDBox()

unsigned short CFreeFormDefBox::GetnParentFFDBox ( void  )
inline

_______________.

Parameters
[in]GetnParentFFDBox- _______________.
Returns
_______________.

§ GetnSurfacePoint()

unsigned long CFreeFormDefBox::GetnSurfacePoint ( void  )
inline

_______________.

Parameters
[in]GetnSurfacePoint- _______________.
Returns
_______________.

§ GetnSurfacePoints()

unsigned long CFreeFormDefBox::GetnSurfacePoints ( void  )
inline

Get the number of numerical points on the surface.

Returns
Number of numerical points on the surface.

§ GetParametricCoord_Analytical()

su2double * CFreeFormDefBox::GetParametricCoord_Analytical ( su2double *  cart_coord)

Set the cartesian coords of a point in R^3 and convert them to the parametric coords of our parametrization of a paralellepiped.

Parameters
[in]cart_coord- Cartesian coordinates of a point.
Returns
Pointer to the parametric coordinates of a point.

§ GetParametricCoord_Iterative()

su2double * CFreeFormDefBox::GetParametricCoord_Iterative ( unsigned long  iPoint,
su2double *  xyz,
su2double *  guess,
CConfig config 
)

Iterative strategy for computing the parametric coordinates.

Parameters
[in]xyz- Cartesians coordinates of the target point.
[in]guess- Initial guess for doing the parametric coordinates search.
[in]tol- Level of convergence of the iterative method.
[in]it_max- Maximal number of iterations.
Returns
Parametric coordinates of the point.

§ GetParCoordControlPoints()

su2double * CFreeFormDefBox::GetParCoordControlPoints ( unsigned short  val_iindex,
unsigned short  val_jindex,
unsigned short  val_kindex 
)
inline

Get the parametric coordinates of the control point.

Parameters
[in]val_iindex- Value of the local i index of the control point.
[in]val_jindex- Value of the local j index of the control point.
[in]val_kindex- Value of the local k index of the control point.
Returns
Pointer to the coordinate vector of the control point with local index (i, j, k).

§ GetParentFFDBoxTag()

string CFreeFormDefBox::GetParentFFDBoxTag ( unsigned short  val_ParentFFDBox)
inline

_______________.

Parameters
[in]val_ParentFFDBox- _______________.
Returns
_______________.

§ GetPointFFD()

bool CFreeFormDefBox::GetPointFFD ( CGeometry geometry,
CConfig config,
unsigned long  iPoint 
)

Set, at each vertex, the index of the free form FFDBox that contains the vertex.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iFFDBox- Index of the FFDBox.

§ GetTag()

string CFreeFormDefBox::GetTag ( void  )
inline

Get the tag that identify a FFDBox.

Returns
Value of the tag that identigy the FFDBox.

§ Set_CartesianCoord() [1/2]

void CFreeFormDefBox::Set_CartesianCoord ( su2double *  val_coord)
inline

Add to the vector of cartesian coordinates a new coordinate.

Parameters
[in]val_coord- New coordinate inside the FFD box.

§ Set_CartesianCoord() [2/2]

void CFreeFormDefBox::Set_CartesianCoord ( su2double *  val_coord,
unsigned long  val_iSurfacePoints 
)
inline

_______________.

Parameters
[in]val_coord- _______________.
[in]val_iSurfacePoints- _______________.

§ Set_Fix_IPlane()

void CFreeFormDefBox::Set_Fix_IPlane ( unsigned short  val_plane)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Set_Fix_JPlane()

void CFreeFormDefBox::Set_Fix_JPlane ( unsigned short  val_plane)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Set_Fix_KPlane()

void CFreeFormDefBox::Set_Fix_KPlane ( unsigned short  val_plane)
inline

Define the I planes to to fix in a FFD box.

Parameters
[in]val_plane- Index of the plane to fix.

§ Set_MarkerIndex()

void CFreeFormDefBox::Set_MarkerIndex ( unsigned short  val_iMarker)
inline

Add to the vector of markers a new marker.

Parameters
[in]val_iMarker- New marker inside the FFD box.

§ Set_ParametricCoord() [1/2]

void CFreeFormDefBox::Set_ParametricCoord ( su2double *  val_coord)
inline

Add to the vector of parametric coordinates a new coordinate.

Parameters
[in]val_coord- New coordinate inside the FFD box.

§ Set_ParametricCoord() [2/2]

void CFreeFormDefBox::Set_ParametricCoord ( su2double *  val_coord,
unsigned long  val_iSurfacePoints 
)
inline

_______________.

Parameters
[in]val_coord- _______________.
[in]val_iSurfacePoints- _______________.

§ Set_PointIndex()

void CFreeFormDefBox::Set_PointIndex ( unsigned long  val_iPoint)
inline

Add to the vector of points a new point.

Parameters
[in]val_iPoint- New point inside the FFD box.

§ Set_VertexIndex()

void CFreeFormDefBox::Set_VertexIndex ( unsigned long  val_iVertex)
inline

Add to the vector of vertices a new vertex.

Parameters
[in]val_iVertex- New vertex inside the FFD box.

§ SetCart2Cyl_ControlPoints()

void CFreeFormDefBox::SetCart2Cyl_ControlPoints ( CConfig config)

Set Cartesians to Cylindrical ControlPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetCart2Cyl_CornerPoints()

void CFreeFormDefBox::SetCart2Cyl_CornerPoints ( CConfig config)

Set Cartesians to Cylindrical CornerPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetCart2Sphe_ControlPoints()

void CFreeFormDefBox::SetCart2Sphe_ControlPoints ( CConfig config)

SetCartesians to Spherical ControlPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetCart2Sphe_CornerPoints()

void CFreeFormDefBox::SetCart2Sphe_CornerPoints ( CConfig config)

Set Cartesians to Spherical Corner Points.

Parameters
[in]config- Definition of the particular problem.

§ SetChildFFDBox()

void CFreeFormDefBox::SetChildFFDBox ( string  val_iChildFFDBox)
inline

Add to the vector of child FFDBoxes a new FFD FFDBox.

Parameters
[in]val_iChildFFDBox- New child FFDBox in the vector.

§ SetControlPoints()

void CFreeFormDefBox::SetControlPoints ( unsigned short *  val_index,
su2double *  movement 
)
inline

Set the new value of the coordinates of the control points.

Parameters
[in]val_index- Local index (i, j, k) of the control point.
[in]movement- Movement of the control point.

§ SetCoordControlPoints()

void CFreeFormDefBox::SetCoordControlPoints ( su2double *  val_coord,
unsigned short  iDegree,
unsigned short  jDegree,
unsigned short  kDegree 
)
inline

Set the coordinates of the control points.

Parameters
[in]val_coord- Coordinates of the control point.
[in]iDegree- Index of the FFDBox, i direction.
[in]jDegree- Index of the FFDBox, j direction.
[in]kDegree- Index of the FFDBox, k direction.

§ SetCoordControlPoints_Copy()

void CFreeFormDefBox::SetCoordControlPoints_Copy ( su2double *  val_coord,
unsigned short  iDegree,
unsigned short  jDegree,
unsigned short  kDegree 
)
inline

Set the coordinates of the control points.

Parameters
[in]val_coord- Coordinates of the control point.
[in]iDegree- Index of the FFDBox, i direction.
[in]jDegree- Index of the FFDBox, j direction.
[in]kDegree- Index of the FFDBox, k direction.

§ SetCoordCornerPoints() [1/2]

void CFreeFormDefBox::SetCoordCornerPoints ( su2double *  val_coord,
unsigned short  val_icornerpoints 
)
inline

Set the coordinates of the corner points.

Parameters
[in]val_coord- Coordinates of the corner point with index val_icornerpoints.
[in]val_icornerpoints- Index of the corner point.

§ SetCoordCornerPoints() [2/2]

void CFreeFormDefBox::SetCoordCornerPoints ( su2double  val_xcoord,
su2double  val_ycoord,
su2double  val_zcoord,
unsigned short  val_icornerpoints 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]val_xcoord- X coordinate of the corner point with index val_icornerpoints.
[in]val_ycoord- Y coordinate of the corner point with index val_icornerpoints.
[in]val_zcoord- Z coordinate of the corner point with index val_icornerpoints.
[in]val_icornerpoints- Index of the corner point.

§ SetCyl2Cart_ControlPoints()

void CFreeFormDefBox::SetCyl2Cart_ControlPoints ( CConfig config)

Set Cylindrical to Cartesians_ControlPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetCyl2Cart_CornerPoints()

void CFreeFormDefBox::SetCyl2Cart_CornerPoints ( CConfig config)

Set Cylindrical to Cartesians_CornerPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetDeformationZone()

void CFreeFormDefBox::SetDeformationZone ( CGeometry geometry,
CConfig config,
unsigned short  iFFDBox 
)

Set the zone of the computational domain that is going to be deformed.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iFFDBox- Index of the FFDBox.

§ SetLevel()

void CFreeFormDefBox::SetLevel ( unsigned short  val_level)
inline

Set the nested level of the FFDBox.

Parameters
[in]val_level- value of the level.

§ SetlOrder()

void CFreeFormDefBox::SetlOrder ( unsigned short  val_lOrder)
inline

Get the order in the l direction of the FFD FFDBox.

Returns
Order in the l direction of the FFD FFDBox.

§ SetmOrder()

void CFreeFormDefBox::SetmOrder ( unsigned short  val_mOrder)
inline

Get the order in the m direction of the FFD FFDBox.

Returns
Order in the m direction of the FFD FFDBox.

§ SetnControlPoints()

void CFreeFormDefBox::SetnControlPoints ( void  )
inline

Get the number of control points.

Returns
Number of control points.

§ SetnCornerPoints()

void CFreeFormDefBox::SetnCornerPoints ( unsigned short  val_ncornerpoints)
inline

Set the number of corner points.

Parameters
[in]val_ncornerpoints- Number of corner points.

§ SetnOrder()

void CFreeFormDefBox::SetnOrder ( unsigned short  val_nOrder)
inline

Get the order in the n direction of the FFD FFDBox.

Returns
Order in the n direction of the FFD FFDBox.

§ SetParaview()

void CFreeFormDefBox::SetParaview ( CGeometry geometry,
unsigned short  iFFDBox,
bool  original 
)

Set the paraview file of the FFD chuck structure.

Parameters
[in]iFFDBox- Index of the FFD box.
[in]original- Original box (before deformation).

§ SetParCoordControlPoints()

void CFreeFormDefBox::SetParCoordControlPoints ( su2double *  val_coord,
unsigned short  iDegree,
unsigned short  jDegree,
unsigned short  kDegree 
)
inline

Set the coordinates of the control points.

Parameters
[in]val_coord- Coordinates of the control point.
[in]iDegree- Index of the FFDBox, i direction.
[in]jDegree- Index of the FFDBox, j direction.
[in]kDegree- Index of the FFDBox, k direction.

§ SetParentFFDBox()

void CFreeFormDefBox::SetParentFFDBox ( string  val_iParentFFDBox)
inline

Add to the vector of parent FFDBoxes a new FFD FFDBox.

Parameters
[in]val_iParentFFDBox- New parent FFDBox in the vector.

§ SetSphe2Cart_ControlPoints()

void CFreeFormDefBox::SetSphe2Cart_ControlPoints ( CConfig config)

Set Spherical to Cartesians ControlPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetSphe2Cart_CornerPoints()

void CFreeFormDefBox::SetSphe2Cart_CornerPoints ( CConfig config)

Set Spherical to Cartesians_CornerPoints.

Parameters
[in]config- Definition of the particular problem.

§ SetSupportCP()

void CFreeFormDefBox::SetSupportCP ( CFreeFormDefBox FFDBox)

Set the control points of the final chuck in a unitary hexahedron free form.

Parameters
[in]FFDBox- Original FFDBox where we want to compute the control points.

§ SetSupportCPChange()

void CFreeFormDefBox::SetSupportCPChange ( CFreeFormDefBox FFDBox)

Change the the position of the corners of the unitary FFDBox, and find the position of the control points for the FFDBox.

Parameters
[in]FFDBox- Original FFDBox where we want to compute the control points.

§ SetTag()

void CFreeFormDefBox::SetTag ( string  val_tag)
inline

Set the tag that identify a FFDBox.

Parameters
[in]val_tag- value of the tag.

§ SetTecplot()

void CFreeFormDefBox::SetTecplot ( CGeometry geometry,
unsigned short  iFFDBox,
bool  original 
)

Set the tecplot file of the FFD chuck structure.

Parameters
[in]iFFDBox- Index of the FFD box.
[in]original- Original box (before deformation).

The documentation for this class was generated from the following files: