Postprocessing is only done for geometrical design variables. The postprocessing procedure is coded in sensi_coor.c and feasibledirection.c and consists of the following steps:
Now the steps are treated in more detail:
![]() |
(943) |
Since a change in control field does not alter the geometry and hence the
design response G, the partial derivative
. The
expression
can be regarded as a smoothing operator
(filter) between the design variables and the control field. In vertex
morphing this filtering operation has to be done twice. First, after the
sensitivty analysis (sensi_coor.c), called backward filtering, in order to
transform the sensitivities calculated at the design variables to the control
field. The output in the frd file is the unfiltered sensitivity at the design
variables as well as the filtered one, which can be interpreted as the
sensitivity on the control field. And a second time to map the final feasible
direction back to the nodal design variables, called forward filtering, which
is done in feasibledirection.c. Again, two output fields are written in the frd
file: the feasible direction calculated on the control field and the forward
filtered feasible direction on the nodal design variables.
The filtering itself is implemented as an explicit filter. Independent if backward or forward filtering is done, the sensitivity values at a given node are thereby replaced by a weighted sum of the sensitivities of the nodes within a sphere with a user-defined radius. The weighting function is 1 at the node at stake and decreases radially in a user-defined way to zero at the edge of the sphere. The available filter functions are linear, quadratic, cubic and gauss. If the parameter DIRECTION WEIGHTING is active on the *FILTER card the sensitivity values at a node i are replaced by a weighted sum of the sensitivities at the nodes j within the sphere multiplied by the scalar product of the normal vector at j and the normal vector at i.