Replies: 2 comments 7 replies
-
Harsh and I now talked a bit about some of these topics. I prob need to structure this summary a bit more but this hopefully contains the relevant points @patelha57 please attach the overview related to the output of CFD_AD and DOT_AD so we can conclude/document some findings here. Wrt computing the matrix-vector product The DirectRun is probably best adapted such the Iterate (Linear solver call) is not done, as this is not required. The call to the seeding (InitializeAdjoints) does not have to be adapted if the correct Output has been registered and if the correct adjoint solution \psi is in the Solution of the adjoint solver. Another question is how to handle the Extraction of the AD-adjoints of the inputs (i.e. the initial flow state) which holds the mat-vec-product that has to be communicated to OpenMDAO. One could run the IterateDiscAdj function because this would put the correct result into the Solution of the adjoint solver which would prob be easier to extract / expose to OpenMDAO. Note that OpenMDAO has to provide the current correct \psi value each time calling SU2_CFD_AD stuff because OpenMDAO of course iterates in \psi Now it is also necessary to compute the derivative The next questions would be the computation of |
Beta Was this translation helpful? Give feedback.
-
@patelha57 and I have been working on implementing a new driver (based on the The key changes and differences so far can be summarized as follows:
Since we are both inexperienced with the AD tool (and in general, contributing to SU2), we're always looking to make sure that we are taking the right approach in our implementation. So, @pcarruscag, @TobiKattmann, please let us know if any of these ideas seem concerning to you :) or if you have suggestions for improvement |
Beta Was this translation helpful? Give feedback.
-
Background
@aa-g and myself have been working to extend the SU2 Python API
pysu2
for use in aero-structural MDO with external structural solvers like NASTRAN and externally defined design variables (see issue #1262 and pull request draft #1300).To set up such a coupled discrete-adjoint sensitivity analysis correctly, we have found that we need a better understanding of the definition of the partial derivatives, adjoint variables, and related terms appearing in the discrete adjoint flow solver of SU2.
Discussion
A good place to start would be the variables which are written to file by the adjoint solver:
SU2_CFD_AD
SU2_CFD_AD
SU2_DOT_AD
(afterSU2_CFD_AD
)Would it be possible to identify or relate these values to the partial derivatives and adjoints variables in the following formulation of the coupled aero-structural adjoint equations, which we have assumed so far in our work?
Theoretical Derivation
Combining the residual equations from the aerodynamic and structural disciplines, the residual of the multidisciplinary system can be expressed as
where
q
are the flow state variables,u
the structural displacements,x
the design variables,A
the residuals (or pseudo-residual based on fixed-point form) of the governing flow equations, andS
the residuals of the governing structural equations. If there are more design variables than functions of interest, it is computationally more efficient to use the adjoint methodwhere
psi
is a vector of flow adjoint variables,phi
a vector of structural adjoint variables, andI
the objective function. Once all adjoint vectors have converged, we can compute the final sensitivities of the objective function asBeta Was this translation helpful? Give feedback.
All reactions