@@ -108,6 +108,13 @@ class CConfig {
108108 unsigned short FFD_Blending; /* !< \brief Kind of FFD Blending function. */
109109 su2double* FFD_BSpline_Order; /* !< \brief BSpline order in i,j,k direction. */
110110 su2double FFD_Tol; /* !< \brief Tolerance in the point inversion problem. */
111+ bool FFD_IntPrev; /* !< \brief Enables self-intersection prevention procedure within the FFD box. */
112+ unsigned short FFD_IntPrev_Iter; /* !< \brief Amount of iterations for FFD box self-intersection prevention procedure. */
113+ unsigned short FFD_IntPrev_Depth; /* !< \brief Maximum recursion depth for FFD box self-intersection procedure. */
114+ bool ConvexityCheck; /* !< \brief Enables convexity check on all mesh elements. */
115+ unsigned short ConvexityCheck_Iter; /* !< \brief Amount of iterations for convexity check in deformations. */
116+ unsigned short ConvexityCheck_Depth; /* !< \brief Maximum recursion depth for convexity check in deformations.*/
117+ su2double** TotalDeformation; /* !< \brief Total deformation of the design variables. */
111118 su2double Opt_RelaxFactor; /* !< \brief Scale factor for the line search. */
112119 su2double Opt_LineSearch_Bound; /* !< \brief Bounds for the line search. */
113120 su2double StartTime;
@@ -8171,6 +8178,72 @@ class CConfig {
81718178 */
81728179 su2double GetFFD_Tol (void ) const { return FFD_Tol; }
81738180
8181+ /* !
8182+ * \brief Get information about whether to do a check on self-intersections within the FFD box based on value of the Jacobian determinant.
8183+ * \return <code>TRUE</code> if FFD intersection prevention is active; otherwise <code>FALSE</code>.
8184+ */
8185+ bool GetFFD_IntPrev (void ) const { return FFD_IntPrev; }
8186+
8187+ /* !
8188+ * \brief Get the maximum number of iterations in the recursive convexity check procedure in deformation.
8189+ * \return Maximum number of iterations.
8190+ */
8191+ unsigned short GetFFD_IntPrev_Iter (void ) const { return FFD_IntPrev_Iter; }
8192+
8193+ /* !
8194+ * \brief Get the maximum recursion depth in the recursive convexity check procedure in deformation.
8195+ * \return Maximum recursion depth.
8196+ */
8197+ unsigned short GetFFD_IntPrev_Depth (void ) const { return FFD_IntPrev_Depth; }
8198+
8199+ /* !
8200+ * \brief Get information about whether to do a check on convexity of the mesh elements.
8201+ * \return <code>TRUE</code> if convexity check is active; otherwise <code>FALSE</code>.
8202+ */
8203+ bool GetConvexity_Check (void ) const { return ConvexityCheck; }
8204+
8205+ /* !
8206+ * \brief Get the maximum number of iterations in the recursive convexity check procedure in deformation.
8207+ * \return Maximum number of iterations.
8208+ */
8209+ unsigned short GetConvexityCheck_Iter (void ) const { return ConvexityCheck_Iter; }
8210+
8211+ /* !
8212+ * \brief Get the maximum recursion depth in the recursive convexity check procedure in deformation.
8213+ * \return Maximum recursion depth.
8214+ */
8215+ unsigned short GetConvexityCheck_Depth (void ) const { return ConvexityCheck_Depth; }
8216+
8217+ /* !
8218+ * \brief Set the initial values for the total deformation of the design variables.
8219+ * \param[in] totalDef - total deformation of all design variables
8220+ */
8221+ void Initialize_TotalDeformation (su2double** totalDef) { TotalDeformation = totalDef; }
8222+
8223+ /* !
8224+ * \brief Set the total deformation value of each design variable.
8225+ * \param[in] val_dv - design variable
8226+ * \param[in] val_ind - index of design variable
8227+ * \param[in] val - value of deformation magnitude
8228+ */
8229+ void SetTotalDeformation (unsigned short val_dv, unsigned short val_ind, su2double val) {TotalDeformation[val_dv][val_ind] = val; }
8230+
8231+ /* !
8232+ * \brief Add a value to the total deformation value of each design variable.
8233+ * \param[in] val_dv - design variable
8234+ * \param[in] val_ind - index of design variable
8235+ * \param[in] val - value of deformation magnitude that is added
8236+ */
8237+ void AddTotalDeformation (unsigned short val_dv, unsigned short val_ind, su2double val) {TotalDeformation[val_dv][val_ind] += val; }
8238+
8239+ /* !
8240+ * \brief Get information about the total deformation of the design variables.
8241+ * \param[in] val_dv - design variable number
8242+ * \param[in] val_val - design variable number
8243+ * \return Value of total deformation for one design variable.
8244+ */
8245+ su2double GetTotalDeformation (unsigned short val_dv, unsigned short val_val = 0 ) const { return TotalDeformation[val_dv][val_val]; }
8246+
81748247 /* !
81758248 * \brief Get the scale factor for the line search.
81768249 * \return Scale factor for the line search.
0 commit comments