UAV wing multipoint¶
NOTE: Before running this case, please read the instructions in NACA0012 airfoil incompressible to get an overall idea of the DAFoam optimization setup.
This is a multipoint aerodynamic shape optimization case for a low-speed UAV wing. The summary of the case is as follows:
Case: UAV wing multipoint aerodynamic optimizationGeometry: Rectangular wing with the Eppler214 profileObjective function: Weighted drag coefficient at CL=0.6 and 0.75Design variables: 120 FFD points moving in the y direction, 6 twists, two angle of attackConstraints: Volume, thickness, LE/TE, and lift constraints (total number: 414)Mach number: 0.07Reynolds number: 0.9 millionMesh cells: 25KAdjoint solver: simpleDAFoam
The optimization progress will then be written in the log.opt file.
For this case, the optimization converges in 20 steps, see the following figure. The baseline design has C_D=0.04019, C_L=0.7500 and the optimized design has C_D=0.03811, C_L=0.7446.
In this case, we use simpleDAFoam.
The case setup is similar to NACA0012 airfoil incompressible except that we have more design variables and constraints and use a multipoint setup
The mesh and FFD points are as follows.
We use ICEM to generate the body-fitted FFD points.
In the beginning of the runScript.py script, we define multipoint parameters:
nProcs = args.nProcs nFlowCases = 2 CL_star = [0.6,0.75] alphaMP = [1.768493,3.607844] MPWeights = [0.3,0.7] UmagIn = 24.8 ARef = 1.2193524
Here we need to prescribe the number of CPU cores and then provide it later to the multipoint module
We setup two flow conditions at C_L=0.6 and 0.75 and their weights are 0.3 and 0.7.
We need to create two folders FlowConfig0 and FlowConfig1 for multipoint runs.
If you have more flow conditions, add more accordingly.
For the multipoint runs, we no longer use a foamRun.sh script, instead, we use foamRunMultiPoint.sh, which has more complex IO interaction calls.
In addition, instead of using
aeroFuncsSens(xDV,funcs):, we define
We also define a function
objCon(funcs, printOK): to combine the objective functions and derivatives of these flow conditions.