You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Initially I had it wrong about how the thickness constraints are considered in DAFoam. I thought it was just constraining the upper and lower bounds, but there is more to it than that.
Thickness constraints and Volume constraints work together and are not independent of each other. This is why the code is structured as it is below. So essentially, when the "nodes of the 2D grid are projected to the upper and lower surface of the wing" for the thickness constraint and the FFD populates the lattice with additional points, the optimizer will respect the constraint requirements specified in the lower and upper bounds of the DVCon.addThicknessConstraints2D and DVCon.addVolumeConstraint.
In an email exchange with Dr He, I learnt the following:
Constraining the thickness is done by computing the derivative of thickness with respect to the FFD points. In the optimization, we need to give fours things to the optimizer.
The value of objective function
The derivative of objective function wrt all design variables (gradient)
The value of all constraints (thickness, volume)
The derivative of all constraints wrt all design variables
The optimizer will be able to update the design variable, taking all the constraints into consideration. That being said, if the optimizer finds that moving one FFD will violate the thickness constraint, it will not move it. The optimizer will be able to figure out a way to move the FFD points such that all the constraints are satisfied during the optimization. For example, if you say that the thickness can not change, then the optimizer will automatically move both the bottom and upper FFD point together such that the thickness of the airfoil does not change. Again, this will be done by using the values and derivatives of objective functions and constraints computed by DAFoam and pyGeo. In the tutorial case, you don’t need to specify how to compute the thickness and its derivative because it is all automatically done in pyGeo.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Initially I had it wrong about how the thickness constraints are considered in DAFoam. I thought it was just constraining the upper and lower bounds, but there is more to it than that.
Thickness constraints and Volume constraints work together and are not independent of each other. This is why the code is structured as it is below. So essentially, when the "nodes of the 2D grid are projected to the upper and lower surface of the wing" for the thickness constraint and the FFD populates the lattice with additional points, the optimizer will respect the constraint requirements specified in the lower and upper bounds of the DVCon.addThicknessConstraints2D and DVCon.addVolumeConstraint.
In an email exchange with Dr He, I learnt the following:
Constraining the thickness is done by computing the derivative of thickness with respect to the FFD points. In the optimization, we need to give fours things to the optimizer.
The optimizer will be able to update the design variable, taking all the constraints into consideration. That being said, if the optimizer finds that moving one FFD will violate the thickness constraint, it will not move it. The optimizer will be able to figure out a way to move the FFD points such that all the constraints are satisfied during the optimization. For example, if you say that the thickness can not change, then the optimizer will automatically move both the bottom and upper FFD point together such that the thickness of the airfoil does not change. Again, this will be done by using the values and derivatives of objective functions and constraints computed by DAFoam and pyGeo. In the tutorial case, you don’t need to specify how to compute the thickness and its derivative because it is all automatically done in pyGeo.
To understand some more, be sure to read the geometric constraints part of : https://mdolab-mach-aero.readthedocs-hosted.com/en/latest/machAeroTutorials/airfoilopt_singlepoint.html
Beta Was this translation helpful? Give feedback.
All reactions