Solving a CFD based multi-objective optimization problem is a computational time and resource consuming task. In order to make the process efficient, we must understand the nature of the optimization problem, design the optimization software and select the software component carefully.
Usually, meta heuristics optimization method like genetic algorithm operates on a population of individuals. This individuals are points in the domain space of the objective functions. The size of the population corresponds to the computational resource that will be consumed because it represents the number of objective function evaluation required and the most resource consuming step of this method is the numerical evaluation of objective functions. A method that operates on small population will increase efficiency and make the method more feasible for implementation.
Genetic algorithm method usually operates on large population in order of tens or hundreds. There is a variant of genetic algorithm that operates on small population individuals called micro genetic algorithm. Micro genetic algorithm method for multi-objective optimization is developed by Coello and Pulido. It operates on population of size 4-6 individuals. Small enough for CFD based multi-objective optimization.
After choosing optimization method, next important step is determining the geometric modeling technique. Usually when solving differential equation, information about geometry is fed into the boundary condition. In this case the geometry information is fed as input, to objective functions. This is not a problem because meta heuristics method treat objective functions as black box. It doesn’t care how the objective functions are evaluated as long as the result can be passed to the optimization algorithm.
Usually, meta heuristics method require that the information about geometry is represented by variables.
There are two techniques of geometry representation. First technique is called parameterization. Parameterization takes main dimension of the geometry or some point along its boundary as variables representing the geometry. For example, a cylinder can be described by three variables, it’s radius, length and point coordinate of the center mass that represents it’s position. A box can be described by length, width, height and point coordinate of it’s center mass. Second parameterization technique is useful when we have to describe a geometry with curved boundary like airfoil profile. We can take some points that is considered to be positioned along it’s boundary. These points can be connected using spline to construct the boundary. Different profiles can be obtained by varying the coordinate of these point along the axis.
Another method to represents geometry is direct modeling. In this method, the geometry is considered to be consisted of discrete elements. Then the value of the variables represents the shape of these basic elements. This technique will be useful when we have to model a geometric pattern. For example, we have to optimize a perforated plate that functions as a fluid distributor for an eccentrically located inlet pipe and we have to find the best hole arrangement that gives the most uniform fluid distribution along the duct cross section. We can consider that the distributor surface is consisted of uniform discrete elements that could contains hole of same diameter. Then, define a boolean valued variable for each element. If the region contain hole the variable will have true value and vice versa. If we use “1” to represents true value and “0” for false and combine all variables to form a new variable we will have a variable of binary value with length equal the number of elements.
Of course we can code the numerical solver from scratch, but using existing numerical solver package is more practical. The package will consist of three main component, preprocessor, solver and post-processor. Main consideration in choosing these packages are the ability of the software to be automated. Usually, numerical analysis is carried out by an analyst using software. But here, the entire process must be done automatically. We must code a program that orchestrate the entire process of numerical analysis. The program must be able to pass the geometric information coded in the parameter from optimization code to preprocessor software. The preprocessor must be able to generate geometric model from the parameter and generate mesh automatically without needs of user intervention. Then the program must pass the mesh information and determine solver setting and run the solver, do post-processing and send back the result to the optimization code. Another important consideration that have to be taken when choosing numerical solver is the ability of the solver to do parallel computation. Some times to obtain good result from numerical analysis, it takes a huge number of mesh that it can’t be tackled by single CPU. Here, we need to run the case in several CPUs working in parallel.
Having been all the components determined, we are ready to implement the CFD based optimization program to solve our optimization problem. Important factor that must be considered when implementing the optimization program is the size of the population on which the optimization algorithm will operate. The most time consuming step in CFD based multi-objective optimization method is objective functions evaluation. For typical genetic algorithm with population size of 30 , if we sequentially evaluate objective functions for each member of the population it will take hours to finish. Therefore, to increase efficiency this process must be parallelized.