48.1. The Adjoint Solver

An adjoint solver is a specialized tool that extends the scope of the analysis provided by a conventional flow solver by providing detailed sensitivity data for the performance of a fluid system.

In order to perform a simulation using the Ansys Fluent standard flow solvers, a user supplies system geometry in the form of a computational mesh, specifies material properties and physics models, and configures boundary conditions of various types. The conventional flow solver, once converged, provides a detailed data set that describes the flow state governed by the flow physics that are being modeled. Various postprocessing steps can be taken to assess the performance of the system.

If a change is made to any of the data that defines the problem, then the results of the calculation can change. The degree to which the solution changes depends on how sensitive the flow is to the particular parameter that is being adjusted. Indeed, the derivative of the solution data with respect to that parameter quantifies this sensitivity to first order. Determining these derivatives is the domain of sensitivity analysis.

There is a large collection of derivative data that can be computed for a fluid system, given the extensive set of input data that is required, and the extensive flow data that is produced. The matrix of derivatives of output data with respect to input data can be vast. Depending upon the goal of the analysis only a portion of this derivative data may be needed for engineering analysis and decision-making.

The adjoint solver accomplishes the remarkable feat of calculating the derivative of a single engineering observation with respect to a very large number of input parameters simultaneously via a single computation. The engineering observation could be a measure of the system performance, such as the lift or drag on an airfoil, or the total pressure drop through a system. Most importantly, the derivatives with respect to the geometric shape of the system are found.

Understanding such sensitivities in a fluid system can provide extremely valuable engineering insight. A system that is highly sensitive may exhibit strong variability in performance due to small variations in manufacturing or variations in the environment in which it is operating. Alternatively, high-sensitivity may be leveraged for fluid control, with a small actuator being able to induce strong variations in behavior. Yet another perspective is that sensitivity of a performance measure implies that the device in question is not fully optimized and there is still room for improvement—assuming that constraints do not preclude further gains.

The sensitivities of a fluid system provided by an adjoint solver satisfy a central need in gradient-based shape and turbulence model optimization. This makes an adjoint solver a unique and powerful engineering tool for design optimization.

Adjoint data can also play a role in improving solver numerics. Regions of high sensitivity are indicative of areas in the flow where discretization errors can potentially have a strong effect. This information can be used to guide how best to refine a mesh to improve flow solution accuracy.

The process of computing an adjoint solution resembles that for a standard flow calculation in many respects. The adjoint solver solution advancement method is specified, residual monitors configured, and the solver is initialized and run through a sequence of iterations to convergence. One notable difference is that a scalar-valued observation is selected as being of interest prior to starting the adjoint calculation.

Once the adjoint solution is converged the derivative of the observable with respect to turbulence model parameters, or with respect to the position of each and every point on the surface of the geometry is made available, and the sensitivity of the observation to specific settings can be found. This remarkable feature of adjoint solutions has been known for hundreds of years, but only in the last few decades has the significance for computational physics analysis been recognized widely.

The power of this methodology is highlighted when an alternative for assembling the same information is considered. Imagine a sequence of flow calculations in which each point on an airfoil surface is moved in turn a set small distance in the surface-normal direction, and the flow and drag recomputed. If there are points on the surface, then flow calculations are required to build the data set. Considering that the same data is provided by a single adjoint computation, the adjoint approach has an enormous advantage. Remember that for even modest 3D flow computations there may be many thousands of coordinates or more on a surface.

Once the adjoint is computed it can be used to guide intelligent design modifications to a system. After all, the adjoint sensitivity data provides a map across the entire surface of the geometry of the effect of moving the surface. Design modifications can be most effective if made in regions of high sensitivity since small changes will have a large effect upon the engineering quantity of interest. This principle of making changes to a system in proportion to the local sensitivity is the foundation for the simple gradient algorithm for design optimization.

Once a candidate change in shape or other boundary condition has been selected, the effect of that change can be estimated using the computed derivative data. This amounts to a first order extrapolation using a Taylor series expansion around the baseline flow state. Clearly if a modification is chosen that is large enough that nonlinear effects become important then the accuracy of the predicted change cannot be guaranteed.

48.1.1. General Observables

Several observables are available and serve as the foundation for specifying the quantity that is of interest for the computation. Basic quantities such as forces and moments can be defined and each is given a name. The following types of observables are available:

  • expression: Fluent expressions (see Defining Observables Using Expressions).

  • Force: the aerodynamic force in a specified direction on one or more walls.

  • Moment of force: the aerodynamic moment about a specified moment center and moment axis. The integration is made over a specified collection of wall zones. Note that in 2D, the moment axis is normal to the plane of the flow.

  • Swirl: the moment of the mass flow (with velocity ) relative to an axis defined by a point, , and a direction . The two options are:

    • Swirl integral

      (48–1)

      where denotes the volume over which the integration is made, and denotes the relative position to the point .

    • Normalized swirl integral

      (48–2)


    Note:  These integrals can be used to construct quantities such as tumble ratio that are of significance for internal combustion engine analysis.


  • pressure drop between an inlet (or group of inlets) and an outlet (or group of outlets)

    The total pressure is computed by area-weighted averaging of the total pressure values on selected surfaces.

  • fixed value: a simple fixed value can be specified and used in the assembly of the observables. This is convenient when some scaling or normalization of the observable is desired. It must be noted that this value is treated strictly as a constant for the purposes of any derivative calculations.

  • surface integral: a variety of surface integrals can be constructed for a specified field variable on a set of user-selected surfaces (including zone surfaces, isosurfaces, and clipped surfaces).

    • Facet sum: a simple sum of the field value on each facet of the computational mesh.

      (48–3)

    • Facet average: the facet sum is divided by the total number of facets, .

      (48–4)

    • Facet variance: the sum of the squares of the deviations from the facet average divided by the total number of facets.

      (48–5)

    • Integral: the sum of the field value on each face multiplied by the face area.

      (48–6)

    • Area-weighted average: the integral divided by the total face area.

      (48–7)

    • Area-weighted variance: the sum of the squares of the deviations from the area-weighted average, divided by the total face area.

      (48–8)

    • Mass-weighted integral: the sum of the field value on each face, weighted by the magnitude of the local mass flow through the face.

      (48–9)

    • Mass-weighted average integral: the mass-weighted integral divided by the sum of the magnitudes of the local mass flow rates through the faces on which the integral is defined.

      (48–10)

    • Mass-weighted variance: the mass-weighted integral of the square of the deviation from the mass-weighted average, divided by the sum of the magnitudes of the local mass flow rates through the faces on which the integral is defined.

      (48–11)

    • Flow-rate weighted: the rate at which the field is convected through the defined surfaces.

      (48–12)

    • The above surface integrals can be computed using the following field variables:

      • Pressure

      • Total pressure

      • Mass flow per unit area

      • Temperature (when adjoint energy is enabled)

      • Total temperature (when adjoint energy is enabled)

      • Heat flux (when adjoint energy is enabled)

      • turbulent kinetic energy (when adjoint turbulence is enabled)

      • specific dissipation rate (when adjoint turbulence is enabled)

      • user-defined expressions (see Defining Observables Using Expressions)

  • volume integral: you can compute a variety of volume integrals of a chosen field variable.

    • Volume: computes the total volume of the selected zones as a summation of the individual cell volumes.

      (48–13)

    • Sum: computes the sum of a chosen field variable over the selected zones.

      (48–14)

    • Volume Integral: is calculated by summing the product of cell volume and the selected field variable over the selected zones.

      (48–15)

    • Volume-Weighted Average: is computed by dividing the volume integral of a selected field variable (Equation 48–15) by the total volume of the selected zones.

      (48–16)

    • Volume Variance: is the volume-weighted integral of the square of the deviation from the volume-weighted average (Equation 48–16), divided by the total volume of the selected zone.

      (48–17)

    • Mass Integral: is computed by summing the product of density, cell volume, and the chosen field variable.

      (48–18)

    • Mass: is computed by summing the product of cell density and cell volume.

      (48–19)

    • Mass-Weighted Average: is computed by dividing the Mass Integral of the chosen field variable (Equation 48–18) by the total Mass (Equation 48–19).

      (48–20)

    • Mass Variance: is computed as the mass-weighted summation of the square of the deviation of the chosen field variable from its mass-weighted average (Equation 48–20) divided by the total mass (Equation 48–19 ).

      (48–21)

    • Target-volume-integral: is the volume integral of the square of the deviation of the current field variable ( for a scalar quantity or for a vector quantity) and the target field variable .


      Note:   Non-constant target field variable data must be written into user-defined memory as outlined in Defining Observables for Turbulence Model Optimization . For a constant target quantity, it is not necessary to write to user-defined memory.


      For targeting a scalar quantity the equation is as follows:

      (48–22)

      For targeting a vector quantity the equation is as follows:

      (48–23)

    The volume integrals listed above can be computed for the following field variables:

    • Pressure

    • Total Pressure

    • Temperature (when adjoint energy is enabled)

    • Total temperature (when adjoint energy is enabled)

    • Velocity

    • Velocity Magnitude

    • Vorticity

    • Vorticity Magnitude

    • Turbulence Production:

    • turbulent kinetic energy (when adjoint turbulence is enabled)

    • specific dissipation rate (when adjoint turbulence is enabled)

    • user-defined expressions (see Defining Observables Using Expressions)

48.1.2. General Operations

Several operations are available to combine observables in various ways, if needed, to make a wide variety of compound observables. The following operations are available:

  • ratio of two quantities

  • product of two quantities

  • linear combination of quantities , with constant coefficients raised to various powers , plus a constant offset . The following combination types are available:

    • sum:

      (48–24)

    • product:

      (48–25)

    • average:

      (48–26)

      where

      (48–27)

    • mean deviation:

      (48–28)

    • mean variance:

      (48–29)

    • minimum:

      (48–30)

    • maximum:

      (48–31)

  • arithmetic average of quantities

    (48–32)

  • mean variance of quantities

    (48–33)

  • unary operation (sin, cosine, and so on) on observable value :

    • ln

    • log10

48.1.3. Discrete Versus Continuous Adjoint Solver

When an adjoint solver is developed there is a key design decision that is made regarding the implementation, namely whether to use a continuous or a discrete approach. Both approaches are intended to compute the same sensitivity data—however, the approaches are remarkably different.

While a user of the adjoint solver may experience no particular difference in workflow for the two separate solver types, it is important to be aware that there are two primary classes of adjoint solver and the approach chosen can have implications for the accuracy of the results.

A continuous adjoint solver relies heavily on mathematical properties of the partial-differential equations that define the physics of the problem. In this case those equations are the Navier-Stokes equations. With this approach an adjoint partial differential equation set is formulated explicitly and is accompanied by adjoint boundary conditions that are also derived mathematically. Only after this derivation is complete can the adjoint partial differential equations be discretized and solved, often with extensive re-use of existing solver machinery. This class of solver was implemented by Ansys Fluent as a research effort.

Such a solver has the benefit that it is decoupled largely from the original flow solver. They share only the fact that they are based on the Navier-Stokes equations. The process of discretizing and solving the partial differential equations in each case could in principle be very different indeed. While this flexibility may be appealing it can also be the downfall of the approach. Inconsistencies in modeling, discretization and solution approaches can pollute the sensitivity information significantly, especially for problems with wall functions and complex engineering configurations such as those of interest to Ansys Fluent users.

The continuous adjoint approach can be effective for some classes of problems. However, until there is a significant advance in handling some key challenges, Ansys, Inc. has concluded that it is an unsuitable approach for meeting the needs of our broad client base for the classes of problems of interest to them.

A discrete adjoint solver is based not on the form of the partial differential equations governing the flow, but the particular discretized form of the equations used in the flow solver itself. The sensitivity of the discretized equations forms the basis for the sensitivity calculation. In this approach the adjoint solver is much more tightly tied to the specific implementation of the original flow solver. This has been observed to yield sensitivity data that provides valuable engineering guidance for the classes of problem of interest to Ansys Fluent users, including problems with wall functions.

For the above reasons, the discrete adjoint approach has been adopted for the Ansys Fluent adjoint solver.

48.1.4. Discrete Adjoint Solver Overview

As discussed in the previous section, a discrete adjoint approach to solving the adjoint problem has been adopted, since it is believed to provide the most useful engineering sensitivity data for the classes of problems of interest to Ansys clients.

An adjoint method can be used to compute the derivative of an observation of interest for the fluid system with respect to all the user-specified parameters, with any changes that arise in the flow variables themselves eliminated. There are three key ingredients to consider when developing the method:

  1. All of the user-specified inputs:

    • All values set by a user in the boundary condition panels for each boundary in the problem.

    • The computational mesh. More specifically the locations of the nodes of the mesh and how they define the edges, faces, and ultimately the cells used in the finite-volume computation. This includes both interior as well as boundary nodes.

    • Material properties.

    • Model parameters such as model coefficients for turbulence models.

    Note that the settings that define the problem are being distinguished from settings that define how the solution advancement is to be performed to converge the problem. Only the former are of interest here. For the sake of clarity, let us denote the vector of all of the values in the list by . These are considered to be the control variables for the problem, that is, the variables that a user can set explicitly that affect the solution.

    It is worth noting that the topological definition of the mesh is fixed—it is not considered to be a control variable here. The effect of collapsing cells or remeshing on the flow solution is not addressable without further development in view of the discrete changes that are implied. This topic is beyond the scope of the current document.

  2. The governing equations for the fluid system:

    The main effort in a flow computation is in the determination of the flow state, namely the velocity, pressure, density and possibly other fluid-related variables. For a cell-centered finite-volume scheme, the flow state is defined at the cell centroids by a vector of real values. In the simplest case these values are the pressure and flow velocity components. Let the vector of the variables in the th cell be denoted here by .

    At convergence the flow variables satisfy

    (48–34)

    where is the number of cells in the problem, and there are conditions on each cell. This expression is a compact way of denoting conservation of mass and momentum and other constraints.

  3. The engineering observation of interest:

    Let

    (48–35)

    denote a scalar of interest that depends both on the flow state and perhaps directly on the control variables. It is assumed that the observable is differentiable with respect to both the flow and the controls. The inclusion of the control variables here is essential since in many cases the mesh geometry is included directly in the evaluation of the observable. For example, the evaluation of the force on a boundary involves the wall normal and face areas, which change when mesh nodes are moved.

The goal is to determine the sensitivity of the observation with respect to the user-specified control variables. What makes defining this relationship more challenging is the fact that changing the user inputs changes the flow, which indirectly changes the engineering observation. The adjoint method has a specific role in managing this chain of influences by providing a mechanism for eliminating the specific changes that happen in the flow whenever the inputs change.

If a variation is introduced into the control variables then a linearization of the governing equations (Equation 48–34) shows that the variations in the flow state must satisfy

(48–36)

where there is an implied summation over and , and denotes that the flow solution is held constant while the derivative is taken.

Meanwhile, if both the control variables and the flow state change, then the observation will change:

(48–37)

The particular way in which the flow responds to the changes in the control variables can be computed using (Equation 48–36) only after specific changes, , have been chosen. It is prohibitive to consider solving (Equation 48–36) for more than a handful of prescribed changes because of the excessive computing time that would be needed. However, when redesigning the shape of parts of a system there may be pressure to explore a large number of candidate modifications. This conflict is reconciled by eliminating the variations of the flow solution from the expression (Equation 48–37) and producing an explicit relationship between changes in the control variables and the observation of interest.

This is accomplished by taking a weighted linear combination of the linearized governing equations (Equation 48–36) in a very particular way. A set of adjoint variables is introduced with a one-to-one correspondence with the governing equations (Equation 48–34). This results in a relationship

(48–38)

The term in square brackets on the left is now matched to the coefficient for the variation in the flow in (Equation 48–37) in order to define values for the adjoint variables:

(48–39)

These are the discrete adjoint equations, and the solution of this system that is the primary goal for the adjoint solver. It is important to recognize that these equations have not been derived. They are defined in this way with a specific goal in mind—the elimination from (Equation 48–37) of the perturbations to the flow field as shown below:

(48–40)

Note the use of Equation 48–38 and Equation 48–39 in the derivation of Equation 48–40 . The flow perturbation has now been eliminated from the expression, yielding a direct relation between the control variables and the observable of interest.

There are several important observations to be made about (Equation 48–39):

  • The dimension of the problem to be solved is the same as the original flow problem, although the adjoint problem is linear.

  • While the adjoint solution may be considered strictly as a vector of numeric values, experience with the continuous adjoint provides guidance on how the adjoint solution can be interpreted. The vector of weights associated with the components of the residual of the momentum equation in each cell is termed the adjoint velocity. The adjoint value associated with the residual of the continuity equation is termed the adjoint pressure.

  • The right hand side is defined purely on the basis of the observable that is of interest.

  • The matrix on the left hand side is the transpose of the Jacobian of the governing system of equations (Equation 48–34). This seemingly innocent transposition has a very dramatic impact on how the adjoint system is solved. This will be discussed below.

  • The adjoint equations are defined by the current state of the flow, and the specific physics that is employed in the modeling. Each adjoint solution is specific to the flow state.

At first glance it appears that solving the adjoint problem may be straightforward. After all it simply involves setting-up and solving a linear (albeit large) system of equations. In practice both steps can represent a significant challenge, especially when the problem is large.

The evaluation of the residuals of the flow equations is an integral part of the pre-existing Ansys Fluent flow solvers. However, it is necessary to compute the Jacobian of the system and then transpose it, or at the very least to be able to make a matrix-free transpose matrix-vector product with the adjoint solution. There are several technical approaches to accomplishing this task whose description goes beyond the scope of this document. Suffice to say that it is not trivial to encode this functionality, but that it has been done successfully here.

For the present implementation, a pre-conditioned iterative scheme, based on pseudo-time marching, is adopted to solve the adjoint system. The equations that define the advancement process can be written as

(48–41)

where is a local time step size based on the local flow conditions, is a user-specified CFL number. The matrix is a simplified form of the system Jacobian that is amenable to solution using the AMG linear solver that is the workhorse of the conventional flow solver. The preconditioning matrix is a diagonal matrix. Artificial compressibility is introduced on the adjoint continuity equation to aid in the relaxation of the adjoint pressure field.

The correction is under-relaxed and added to the adjoint solution and the process repeated until the right hand side is adequately small.

48.1.5. Adjoint Solver Stabilization

When applied to problems with large cell counts and complex geometry, adjoint solvers sometimes experience stability issues. These instabilities can be associated with small scale unsteadiness in the flow field and/or strong shear, and tend to be restricted to small and isolated regions of the flow domain. Despite the spatial localization of these instabilities, the linearity of the adjoint problem provides no intrinsic limit on their growth during solution advancement. Their presence, if not handled, can disrupt the entire adjoint calculation despite the problem occurring in sometimes just a few cells. A stabilized solution scheme will be required to obtain adjoint solutions for problems at high Reynolds number in which there is strong shear and/or complex geometry.

Two stabilization schemes are available in Fluent in order to overcome these stability difficulties when larger cases are being solved. You can choose to apply one of them at all times, or use a blended strategy where both schemes are used at different points in the solution. The stabilization schemes are designed to intervene only when the standard advancement scheme is experiencing instability.

Dissipation scheme

The dissipation scheme provides stabilization for the solution advancement of the adjoint solution by introducing nonlinear damping strategically into the calculation domain. The strategy is intended to provide minimal intervention in order to damp the growth of instabilities that lead to adjoint solution divergence. A marker is tracked, based on the state of the adjoint solution, and damping is applied directly to the adjoint solution in regions where the marker becomes large.

Unlike the residual minimization scheme, the dissipation scheme can affect the adjoint solution slightly. In general, the spatial order of the damping is chosen to be one order larger than the adjoint calculation order. This means that the formal order of accuracy of the adjoint solver is unaffected by the addition of the dissipation scheme. In practice, regions of intense dissipation can appear for some cases which may result in isolated spots and/or streaks in the solution on surfaces. However, the scale of these solution features is such that they are often easily smoothed during postprocessing to generate design changes.

Residual minimization scheme

The residual minimization scheme uses a GMRES-like scheme to approximate the solution by the vectors in a Krylov subspace with minimal residual. The overall adjoint residual is guaranteed to decrease. This is a unique benefit compared to the other available schemes. Note that this scheme is expensive with regard to memory. When it is enabled, each main iteration consists of multiple sub-iterations, where one sub-iteration is equivalent to one normal adjoint iteration.

Some additional computational overhead is associated with the stabilization schemes. In general, the dissipation scheme is the least resource-intensive.

For information about using the stabilization schemes, refer to Stabilization Strategies, Schemes, and Settings.

48.1.6. Solution-Based Adaption

An adjoint solution provides guidance on where best to adapt a computational mesh in order to resolve quantities of engineering interest.

Once the governing equations for the system (Equation 48–34) have been converged there remains a discretization error, , such that

(48–42)

While specific estimates for this discretization error may be tricky to define, it is often estimated to be , where is the local grid size, and is the order of the discretization scheme. That is, for a first-order scheme and for a second order scheme. Alternatively, can be considered to be the residual associated with a solution that is not converged fully.

The correction to the flow field, , that compensates for this inhomogeneity is given by

(48–43)

from which it follows quickly that

(48–44)

This simple expression provides an estimate of the effect of the presence of on the observation, .

The presence of discretization errors, or lack of convergence, on the engineering quantity of interest is assessed by weighting the inhomogeneous term by the local adjoint solution. It is clear that even in regions of the domain where the residuals or discretization errors are small, an accompanying adjoint velocity or pressure that is large in magnitude implies that there may be a significant source of error in the observable. A finer mesh in regions where the adjoint is large will reduce the influence of discretization errors that may adversely affect the engineering result of interest. In practice, adapting cells which have large magnitude adjoint velocity and/or adjoint pressure will achieve this goal.

48.1.7. Using The Data To Improve A Design

Adjoint sensitivity data can be used to guide how to modify a system in order to improve the performance. The observable of interest can be made larger or smaller, depending upon the engineering goal.

A common strategy for deciding how to modify the system is based on the gradient algorithm. The underlying principle is quite simply that modifying a system in a manner to which it is most sensitive maximizes the effect of the change. The change to a control variable is made in proportion to the sensitivity of the value of interest with respect to that control variable.

Denote the sensitivity of the cost with respect to shape by

(48–45)

where is the th coordinate of the th node in the mesh. Here is a notation for the subset of the control variables for the system that correspond to mesh node positions. Then an adjustment

(48–46)

will provide the maximum adjustment to for given norm of , where is an arbitrary scaling factor. Note that can be picked to be positive or negative depending upon whether is to be increased or decreased respectively. This is essentially a statement of the method of steepest descent.

Furthermore, the change is estimated to first order to be

(48–47)

For a sufficiently small adjustment, the change to the observation will strictly have the same sign as the scaling factor , provided the gradient is not identically zero.

In regions where the sensitivity is high, small adjustments to the shape will have a large effect on the observable. This corresponds directly with the idea of engineering robustness. If a configuration shows high sensitivities, then the performance will likely be subject to large performance variations if there are manufacturing inconsistencies. For a robust design, the goal is to have the sensitivity be tolerably small.

In practical cases the field can be noisy, especially for large, turbulent flow problems. If the noisy field is used directly to modify a boundary shape using (Equation 48–46), then the modified surface can have many inflections. This is not helpful for engineering design work. In the next section, the use of mesh morphing technology not only to smooth the sensitivity field, but also to provide smooth boundary and interior mesh deformation, is described.

48.1.7.1. Smoothing and Mesh Morphing

As has been noted, for typical engineering problems, the shape sensitivity field can have smoothness properties that are not adequate to define a shape modification. Mesh morphing technology is used here for both two- and three-dimensional systems in a two-fold role. The first role is as a smoother for the surface sensitivity field. The second role is to provide smooth distortions not only of the boundary mesh, but also the interior mesh. This approach is very appealing since it functions for arbitrary mesh cell types.

A Cartesian or cylindrical region is defined such that it encompasses all or a part of the problem domain. Only the mesh nodes that fall within this region may move as a result of the morphing operation.

In general, an optimization problem may include both free-form minimization or maximization of the observable(s) and constraints that are localized in space. This requires approaches that can provide a deformation field that is well-behaved and consistent with manufacturability requirements, while still allowing locally sharper deformations where required to satisfy the imposed constraints. For the adjoint solver, Fluent provides three different morphing techniques: one based on polynomials, one that uses direct interpolation, and another that uses the radial basis function. Note that these methods are based on different design spaces, and so will produce different morphing results. In addition to the three morphing techniques, for the adjoint solver, Fluent offers two different constraint methods for handling design conditions: the standard constraint method and the enhanced constraint method.

For the standard constraint method, the free-form motion and design constraints are based only on the selected morphing method. When using the standard constraint method, the radial basis function morphing method will provide a balance between producing a good quality mesh, efficiently handling the design conditions, and requiring fewer user settings, therefore it is the recommended method. However, when there are no design conditions, including all design conditions and the fixed zone condition, the polynomials-based approach is recommended due to its good mesh quality and computational speed. Additionally, when there are excessive design conditions, excluding bounded-by-plane conditions and bounded-by-surfaces conditions, the direct interpolation method is recommended due to it's efficiency.

The enhanced constraint method is available for the polynomials and radial basis function morphing methods. With the enhanced constraint method, the specified morphing method will drive the free-form deformation based on the design objective and the region condition. The design condition is then fulfilled by secondary morphing techniques (outlined in Radial Basis Function). This provides better balance for morphing in terms of efficiency and accuracy to handle design conditions, as well as fewer user settings and better mesh quality when compared to the standard constraint method. However, the enhanced constraint method has the following limitations:

  • More memory is required on node process 0.

  • The target change for multiple objectives may not be strictly respected.

  • Region conditions such as symmetric, invariance, and periodic morphing may not be strictly respected (see Defining Region Conditions).

  • Free parameters are not supported for the translation, scaling, rotation, rigid body, and prescribed profile design conditions when the prescribed option is disabled (see Defining Conditions for the Deformation).

For most applications, the enhanced constraint method is the recommended method to handle design conditions. Additionally, with the enhanced constraint method the polynomials morphing method will be faster than the radial basis function morphing method.

For more details about each morphing method, see the following sections.

48.1.7.1.1. Polynomials-Based Approach

Note:  For simplicity, the smoothing and morphing equations presented here are for the case of a 2D domain. The same approach is extended and used for 3D problems.


For the polynomials-based morphing approach, a local (, ) coordinate system is defined, where and . A regular array of control points is then distributed in the control volume. The motion of the mesh at any point in the domain is determined by the movement of the control points. Bernstein polynomials and B-splines are used to map the control point motions to the computational mesh nodes.

The th Bernstein polynomial of degree is:

(48–48)

The th B-spline of degree is the non-periodic B-spline that uses a knot-vector, , where:

(48–49)

The value of the B-spline is defined recursively as:

(48–50)

Depending on the degree of the B-spline, the function is zero on some portion of the unit interval. This is in contrast to the Bernstein polynomials that are strictly non-zero everywhere on the unit interval.

Let denote the th coordinate of the th mesh node, and let denote the change in the position of the node due to the morphing process. Let denote the displacement of the th control point associated with the Bernstein polynomials in the th coordinate direction, and let denote the displacement of the th control point associated with the B-splines. If denotes the position of the th mesh node, then the displacement of the node is defined by the superposition:

(48–51)

The control-point movement for the Bernstein polynomials controls the large-scale smooth deformation, while the control-point movement for the B-splines controls fine-scale motions.

48.1.7.1.2. Direct Interpolation Method

In the direct interpolation method, the deformation of the interior mesh can be viewed as a projection of the deformation from the boundary into the interior. The displacement of the interior mesh is calculated as a weighted average of all boundary node displacement:

(48–52)

where and are the interior and boundary node displacements respectively, is the weighting function, and is the distance between the i th and j th nodes.

Note that while the direct interpolation method has significant advantages, it also has the following limitations:

  • The interior mesh quality may not be as good as that produced by the polynomials-based approach and radial basis function (though you may be able to mitigate this by using the Improve Mesh dialog box). Boundary zones are also more at risk: they may cross / penetrate themselves or other boundary zones, which may or may not generate a warning about cells with negative volumes; as a result, you must visually review the mesh node changes, and reduce the target changes as needed.

  • Non-conformal interfaces should not undergo free deformation, as the morphing may move the two sides apart.

  • Some region conditions are not supported, such as invariance and some region boundary continuity options.

48.1.7.1.3. Radial Basis Function

For the radial basis function, the deformation of the mesh is interpolated from the control points.

Radial Basis Function Interpolation:

(48–53)

Where is the interpolant location, is the set of control point locations, i is the x, y, z component, and is the kernel function. The kernel function is responsible for smoothness of deformation and can be selected under the Numerics tab of the design tool.


Note:  The linear solver is used to solve the radial basis function equation, therefore the following nonlinear region conditions are not well supported:

  • When Symmetric is enabled and/or motion is disabled in theta and radial directions (under Region Conditions tab of the Design Tool), the target change may not be the same as requested and the design conditions may not be well satisfied.

  • Invariant region conditions are not supported.