|
SU2
|
Class for defining the free form FFDBox structure. More...
#include <grid_movement_structure.hpp>
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 |
Class for defining the free form FFDBox structure.
| 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.
| [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. |
|
inline |
Compute the cross product.
| [in] | v1 | - First input vector. |
| [in] | v2 | - Second input vector. |
| [out] | v3 | - Output vector wuth the cross product. |
|
inline |
Compute the determinant of a 3 by 3 matrix.
| [in] | val_matrix | 3 by 3 matrix. |
|
inline |
Compute the doc product.
| [in] | v1 | - First input vector. |
| [in] | v2 | - Sencond input vector. |
| 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.
| [in] | ParamCoord | - Parametric coordinates of a point. |
|
inline |
_______________.
| [in] | Get_CartesianCoord | - _______________. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
_______________.
| [in] | Get_MarkerIndex | - _______________. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
_______________.
| [in] | Get_ParametricCoord | - _______________. |
|
inline |
_______________.
| [in] | Get_PointIndex | - _______________. |
|
inline |
_______________.
| [in] | Get_VertexIndex | - _______________. |
|
inline |
_______________.
| [in] | val_ChildFFDBox | - _______________. |
|
inline |
Get the coordinates of the control point.
| [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. |
|
inline |
Get the coordinates of the corner points.
| [in] | val_dim | - Index of the coordinate (x, y, z). |
| [in] | val_icornerpoints | - Index of the corner point. |
|
inline |
Get the coordinates of the corner points.
| [in] | val_icornerpoints | - Index of the corner point. |
| 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).
| [in] | uvw | - __________. |
| [in] | val_diff | - __________. |
| [in] | ijk | - __________. |
| [in] | lmn | - Degree of the FFD box. |
| 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]).
| [in] | uvw | - __________. |
| [in] | dim | - __________. |
| [in] | xyz | - __________. |
| [in] | lmn | - Degree of the FFD box. |
| 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)
| [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. |
| 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) .
| [in] | uvw | - __________. |
| [in] | val_diff | - __________. |
| [in] | val_diff2 | - __________. |
| [in] | ijk | - __________. |
| [in] | lmn | - Degree of the FFD box. |
| 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!!).
| [in] | uvw | - __________. |
| [in] | dim | - __________. |
| [in] | diff_this | - __________. |
| [in] | diff_this_also | - __________. |
| [in] | lmn | - Degree of the FFD box. |
| 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).
| [in] | val_coord | - Parametric coordiates of the target point. |
| [in] | xyz | - Cartesians coordinates of the point. |
| [in] | analytical | - Compute the analytical gradient. |
| 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).
| [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. |
|
inline |
Get the nested level of the FFDBox.
|
inline |
Get the order in the l direction of the FFD FFDBox.
|
inline |
Get the order in the m direction of the FFD FFDBox.
|
inline |
_______________.
| [in] | GetnChildFFDBox | - _______________. |
|
inline |
Get the number of control points.
|
inline |
Get the number of corner points.
|
inline |
Get the order in the n direction of the FFD FFDBox.
|
inline |
Euclidean norm of a vector.
| [in] | a | - _______. |
|
inline |
_______________.
| [in] | GetnParentFFDBox | - _______________. |
|
inline |
_______________.
| [in] | GetnSurfacePoint | - _______________. |
|
inline |
Get the number of numerical points on the surface.
| 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.
| [in] | cart_coord | - Cartesian coordinates of a point. |
| su2double * CFreeFormDefBox::GetParametricCoord_Iterative | ( | unsigned long | iPoint, |
| su2double * | xyz, | ||
| su2double * | guess, | ||
| CConfig * | config | ||
| ) |
Iterative strategy for computing the parametric coordinates.
| [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. |
|
inline |
Get the parametric coordinates of the control point.
| [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. |
|
inline |
_______________.
| [in] | val_ParentFFDBox | - _______________. |
Set, at each vertex, the index of the free form FFDBox that contains the vertex.
| [in] | geometry | - Geometrical definition of the problem. |
| [in] | config | - Definition of the particular problem. |
| [in] | iFFDBox | - Index of the FFDBox. |
|
inline |
Get the tag that identify a FFDBox.
|
inline |
Add to the vector of cartesian coordinates a new coordinate.
| [in] | val_coord | - New coordinate inside the FFD box. |
|
inline |
_______________.
| [in] | val_coord | - _______________. |
| [in] | val_iSurfacePoints | - _______________. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Define the I planes to to fix in a FFD box.
| [in] | val_plane | - Index of the plane to fix. |
|
inline |
Add to the vector of markers a new marker.
| [in] | val_iMarker | - New marker inside the FFD box. |
|
inline |
Add to the vector of parametric coordinates a new coordinate.
| [in] | val_coord | - New coordinate inside the FFD box. |
|
inline |
_______________.
| [in] | val_coord | - _______________. |
| [in] | val_iSurfacePoints | - _______________. |
|
inline |
Add to the vector of points a new point.
| [in] | val_iPoint | - New point inside the FFD box. |
|
inline |
Add to the vector of vertices a new vertex.
| [in] | val_iVertex | - New vertex inside the FFD box. |
| void CFreeFormDefBox::SetCart2Cyl_ControlPoints | ( | CConfig * | config | ) |
Set Cartesians to Cylindrical ControlPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetCart2Cyl_CornerPoints | ( | CConfig * | config | ) |
Set Cartesians to Cylindrical CornerPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetCart2Sphe_ControlPoints | ( | CConfig * | config | ) |
SetCartesians to Spherical ControlPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetCart2Sphe_CornerPoints | ( | CConfig * | config | ) |
Set Cartesians to Spherical Corner Points.
| [in] | config | - Definition of the particular problem. |
|
inline |
Add to the vector of child FFDBoxes a new FFD FFDBox.
| [in] | val_iChildFFDBox | - New child FFDBox in the vector. |
|
inline |
Set the new value of the coordinates of the control points.
| [in] | val_index | - Local index (i, j, k) of the control point. |
| [in] | movement | - Movement of the control point. |
|
inline |
Set the coordinates of the control points.
| [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. |
|
inline |
Set the coordinates of the control points.
| [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. |
|
inline |
Set the coordinates of the corner points.
| [in] | val_coord | - Coordinates of the corner point with index val_icornerpoints. |
| [in] | val_icornerpoints | - Index of the corner point. |
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| [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. |
| void CFreeFormDefBox::SetCyl2Cart_ControlPoints | ( | CConfig * | config | ) |
Set Cylindrical to Cartesians_ControlPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetCyl2Cart_CornerPoints | ( | CConfig * | config | ) |
Set Cylindrical to Cartesians_CornerPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetDeformationZone | ( | CGeometry * | geometry, |
| CConfig * | config, | ||
| unsigned short | iFFDBox | ||
| ) |
Set the zone of the computational domain that is going to be deformed.
| [in] | geometry | - Geometrical definition of the problem. |
| [in] | config | - Definition of the particular problem. |
| [in] | iFFDBox | - Index of the FFDBox. |
|
inline |
Set the nested level of the FFDBox.
| [in] | val_level | - value of the level. |
|
inline |
Get the order in the l direction of the FFD FFDBox.
|
inline |
Get the order in the m direction of the FFD FFDBox.
|
inline |
Get the number of control points.
|
inline |
Set the number of corner points.
| [in] | val_ncornerpoints | - Number of corner points. |
|
inline |
Get the order in the n direction of the FFD FFDBox.
| void CFreeFormDefBox::SetParaview | ( | CGeometry * | geometry, |
| unsigned short | iFFDBox, | ||
| bool | original | ||
| ) |
Set the paraview file of the FFD chuck structure.
| [in] | iFFDBox | - Index of the FFD box. |
| [in] | original | - Original box (before deformation). |
|
inline |
Set the coordinates of the control points.
| [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. |
|
inline |
Add to the vector of parent FFDBoxes a new FFD FFDBox.
| [in] | val_iParentFFDBox | - New parent FFDBox in the vector. |
| void CFreeFormDefBox::SetSphe2Cart_ControlPoints | ( | CConfig * | config | ) |
Set Spherical to Cartesians ControlPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetSphe2Cart_CornerPoints | ( | CConfig * | config | ) |
Set Spherical to Cartesians_CornerPoints.
| [in] | config | - Definition of the particular problem. |
| void CFreeFormDefBox::SetSupportCP | ( | CFreeFormDefBox * | FFDBox | ) |
Set the control points of the final chuck in a unitary hexahedron free form.
| [in] | FFDBox | - Original FFDBox where we want to compute the control points. |
| 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.
| [in] | FFDBox | - Original FFDBox where we want to compute the control points. |
|
inline |
Set the tag that identify a FFDBox.
| [in] | val_tag | - value of the tag. |
| void CFreeFormDefBox::SetTecplot | ( | CGeometry * | geometry, |
| unsigned short | iFFDBox, | ||
| bool | original | ||
| ) |
Set the tecplot file of the FFD chuck structure.
| [in] | iFFDBox | - Index of the FFD box. |
| [in] | original | - Original box (before deformation). |
1.8.12