Mesh sensitivity diverged (discrete adjoint optimization)
2 Attachment(s)
Hello guys,
After successfully optimizing an incompressible flow problem with the continuous adjoint optimizer, I would like to switch to the discrete adjoint optimizer. However there occurred some errors during the simulation. For example, in the ./DSN_001/log_ADJOINT.out, Sens_Press and Sens_AoA are 0.00. Furthermore at the end of this file it shows the following error: Attachment 58558 However the surface sensitivities seems to be ok: Attachment 58557 Is anyone familiar to this problem or does anyone know how to solve this problem? Any advice would be great! Cheers, Floris |
Hi,
Sens_Press and Sens_AoA are always zero when you use the incompressible solver. However, the mesh sensitivity should not diverge ... can you attach the log_ADJOINT.out and possibly also the config_DOT_AD.cfg ? |
1 Attachment(s)
Hi Tim,
Yes, ofcourse. After I had posted this thread, I tested multiple cases trying different parameters and different meshes. I discovered that switching to the discrete adjoint optimizer difficulties arises when using the same high aspect ratio (~4000) close to the surface. After I changed the aspect ratio to (~2500), the mesh converges and the discrete adjoint optimizer did his job!:) I removed the iterations 5001-1499 from the log file in order to not cross the size limitation; Attachment 58714. Cheers! Floris van der Schuur |
1 Attachment(s)
Hi,
In the latter post I described that the discrete adjoint optimizer was working. Although it was working, it did not deform the shape. I thought it is just a matter of scaling, so I tried dozens of scaling factors but this all was without success. Then I checked the log_adjoint.out and I saw that the mesh sensitivity computation was converged, although the value of FGMRES residual was huge; after 1000 iterations it was ~0.02. Subsequently the volumes of the grid element were computed, these had an error of 1.144E+16. The resulting efficiency gradients at each design variable contain values between -1E10 and -1E13. Which is quite high when these gradients are compared with the continuous adjoint optimization (1E0-1E3). I have tried to lower the gradients by lowering the scale factor for the objective function. However this did not help much. Does anybody know why these gradients are that large? Or does anyone know another way to improve the performance of the discrete adjoint optimizer for an incompressible case? Kind regards, Floris log_adjoint.out & config_DOT_AD.cfg: Attachment 58822 |
5 Attachment(s)
Hi Tim,
For the following test cases I disabled the transition. Here I am only testing the influence of compressibility to the performance of the optimizer: Configure file:Attachment 59025 Compressible config_DOT_AD:Attachment 59027 Compressible log adjoint file:Attachment 59028 Incompressible config_DOT_AD:Attachment 59024 Incompressible log adjoint file:Attachment 59023 Furthermore I compared the compressible discrete gradient determination with the finite difference gradient. This should be approximately the same. I have to note that different objective scaling factors are used (Discrete:1E-1, finite difference: 1E-2) and different DV scaling factors (Discrete: 1E3, finite difference: 1E2) but the different DV scaling should not matter in this stage. So I expected a difference of order 1, however the gradients of the discrete are amazingly high ~3E18 while the gradients of the finite difference are ~3E6. (these gradients are the efficiency gradient for each control point.) Why is the discrete adjoint over-predicting the gradient? Kind regards, Floris |
All times are GMT -4. The time now is 05:49. |