This is probably the most comprehensive explanation of how adjoint optimizations work. Everyone else wants to jump right into the math without giving a good intuitive understanding about what is going on first.
Hello, I really enjoyed the video and it is very good basic explanation of the adjoint method. Do you have some references where the concepts that you mention are explained? Thank you in advance.
Thanks for the very good explanation! Would it be possible to compute the derivatives directly for the lift/drag-ratio rather then doing it independently for the two quantities? I assume that would reduce the required computational effort further (by the cost of one foward function evaluation)?
I'm confused about why it's more efficient to solve for how the lyft/drag changes with respect to each flow variable. Are you solving a PDE for each flow variable? Or does it have something to do with how you evaluate the lift/drag from the flow variables? Thank you! Lovely explanation of concept.
why do we use the reynold's number? it seems like an arbitrary simplification that should be the result of the calculations rather than be used by the calculations
Reynold's number is used to know if we can compare 2 simulations/validation tests. The lower the number the more dependent on viscosity the flow is. Since similar numbers have similar characteristics you can use much smaller scale models to check if the simulations are accurate (as long as the numbers are similar)
This example is from an undergraduate thesis. You can find details of other examples on my website (the tutorial section is probably most useful) www2.eng.cam.ac.uk/~mpj1001/MJ_publications.html#tutorial
May i ask what software are you using for this? And could you provide the file for simulation so that we can check how is it done? or perhaps a simulationvideo demonstrating the adjoint-based optimisation . Thank you
We use Fenics (fenicsproject.org). I can't provide the code right now, but Petr Kungurtsev may make it available with his PhD when it is published around March 2021.
@@elmattnewniper5898 Not sure what you mean by that, but then again my background is not in computational fluid dynamics. I did some stuff with it in my master's, ages ago, but that's pointless atm.
No. Backpropagation is a recursive algorithm for updating parameters arranged in a layered hierarchy. Adjoint methods are an alternative to backpropagation. Both use local gradients, but that's the end of their similarity. Adjoints require more mathematical understanding to use but usually have better computational properties.
Hey, Please answer my query as soon as possible. I really need it on urgent basis. For finding how flow variables are changing with respect to every parameter, wouldn't you need to solve 200 times by changing those 200 parameters one by one??
@@learnfluidmechanics4166 to find the derivative of flow with respect to parameters, we need to change that parameter. How changing the parameter will change flow variables without solving the flow?
@@muhammadusmanshahid4195 With adjoint methods you do not need to change the parameter to find the derivative of the output with respect to that parameter. The first time you see it, it seems like magic. For a review paper on this see www.annualreviews.org/doi/abs/10.1146/annurev-fluid-010313-141253
This is probably the most comprehensive explanation of how adjoint optimizations work. Everyone else wants to jump right into the math without giving a good intuitive understanding about what is going on first.
A really helpful description of adjoint-based optimization
excellent video! Thank you!
Very interesting presentation! Thanks for sharing.
what a tremendous explanation!
Hello, I really enjoyed the video and it is very good basic explanation of the adjoint method. Do you have some references where the concepts that you mention are explained? Thank you in advance.
Antony Jameson at Stanford wrote a course for the Von Karman Institute in 2003. You may be able to fine them online.
@@learnfluidmechanics4166 I believe the lecture you mention is available here: aero-comlab.stanford.edu/Papers/jameson.vki03.pdf
Thanks for the very good explanation! Would it be possible to compute the derivatives directly for the lift/drag-ratio rather then doing it independently for the two quantities? I assume that would reduce the required computational effort further (by the cost of one foward function evaluation)?
Yes it would. Indeed this would be quicker and cheaper.
@@learnfluidmechanics4166 Thank you for the quick response!
really clever! thanks
I'm confused about why it's more efficient to solve for how the lyft/drag changes with respect to each flow variable. Are you solving a PDE for each flow variable? Or does it have something to do with how you evaluate the lift/drag from the flow variables?
Thank you! Lovely explanation of concept.
why do we use the reynold's number? it seems like an arbitrary simplification that should be the result of the calculations rather than be used by the calculations
Reynold's number is used to know if we can compare 2 simulations/validation tests. The lower the number the more dependent on viscosity the flow is.
Since similar numbers have similar characteristics you can use much smaller scale models to check if the simulations are accurate (as long as the numbers are similar)
Very nice explanation indeed.
this is just analytical partial derivations, right?
Where can I find the literature related to this example
This example is from an undergraduate thesis. You can find details of other examples on my website (the tutorial section is probably most useful) www2.eng.cam.ac.uk/~mpj1001/MJ_publications.html#tutorial
May i ask what software are you using for this? And could you provide the file for simulation so that we can check how is it done? or perhaps a simulationvideo demonstrating the adjoint-based optimisation . Thank you
We use Fenics (fenicsproject.org). I can't provide the code right now, but Petr Kungurtsev may make it available with his PhD when it is published around March 2021.
@@learnfluidmechanics4166 thank you
@@learnfluidmechanics4166 hello, I am enquiring if this code was made available. If so, kindly show me
So essentially, this boils down to backpropagation, as performed in neural networks...
Yes. Neural Networks use automatic differentiation. You can automatically differentiate some, but not all, CFD codes.
@@elmattnewniper5898 Not sure what you mean by that, but then again my background is not in computational fluid dynamics. I did some stuff with it in my master's, ages ago, but that's pointless atm.
No. Backpropagation is a recursive algorithm for updating parameters arranged in a layered hierarchy. Adjoint methods are an alternative to backpropagation. Both use local gradients, but that's the end of their similarity. Adjoints require more mathematical understanding to use but usually have better computational properties.
Hey, Please answer my query as soon as possible. I really need it on urgent basis. For finding how flow variables are changing with respect to every parameter, wouldn't you need to solve 200 times by changing those 200 parameters one by one??
You run the adjoint code once for each output variable (e.g. lift or drag) rather than once for each input parameter.
@@learnfluidmechanics4166 to find the derivative of flow with respect to parameters, we need to change that parameter. How changing the parameter will change flow variables without solving the flow?
@@learnfluidmechanics4166 can you please tell me your email address?
@@muhammadusmanshahid4195 With adjoint methods you do not need to change the parameter to find the derivative of the output with respect to that parameter. The first time you see it, it seems like magic. For a review paper on this see www.annualreviews.org/doi/abs/10.1146/annurev-fluid-010313-141253
@@learnfluidmechanics4166 Thanks!