Replies: 3 comments 1 reply
-
Can you elaborate on what are the inputs and outputs of the suspension component, and how you compute the outputs based on the inputs, and how you compute their derivatives? |
Beta Was this translation helpful? Give feedback.
-
Not sure why the program hangs. But the code snippet you shared has an issue: You need to implement the matrix-vector product for all outputs and all inputs, so please also compute |
Beta Was this translation helpful? Give feedback.
-
Ok thank you, I will remove the constants from inputs and just hard code them in for now. dXdf is a matrix that stores the hand derived derivatives. Its details were not important for the question, so I didn't include them in the question. Thanks again Professor He. |
Beta Was this translation helpful? Give feedback.
-
Hello, I am trying to add a "suspension" component to the aerostructural scenario thus making a new "aerostructural+suspension" scenario. The way I've done this is by defining two new MDAO explicit components, a suspension component and a mesh movement component. The first takes in the drag, lift, and moment defined in
objFunc
ofdaOptions
and outputs translation and rotation values. The second component takes in the translation and rotation, and moves the surface mesh accordingly.The forward problem works without problem, I am able to get a converged solution.
On the reverse pass however, the program gets stuck when calculating dFdW. It will print
Calculating dFdW using reverse-mode AD
and nothing will happen for hours and hours on end, the program doesn't crash.I think the problem is associated with the derivatives of drag, lift, and moment. If I remove
d_outputs['drag']
,d_outputs['lift']
,d_outputs['moment']
fromcompute_jacvec_product
in the suspension component, the program no longer halts. But of course the derivatives are no longer correct. Perhaps using "objective function" values as variables in the model causes problems?My question is, do you have any insights on what could be causing this problem and some potential strategies to resolve it? I understand its hard to give specific advice without looking at code, but some general insights would be very much appreciated.
Beta Was this translation helpful? Give feedback.
All reactions