I have a question about design automation or generative design.

There is a company that creates pumps. Their work-flow is following:

1) create design of a pump using CAD

2) create mesh for computer simulation

3) perform simulation (usually fluid dynamics)

4) using results of a simulation, decide if the design is good enough

5) if not, go back to step 1

They are doing all these steps by hand. I was wondering if there is any possibility to automate any of these steps.

For example algorithm or software that takes the design and tries to change important parameters (for example length or width of something) based on simulation results automatically (= performs some kind of optimization of the given parameter).

Is this something that generative design can accomplish? I am completely new to this field (however I have a background in CFD simulations). I will I really appreciate any help, introduction or link, so I can learn the basics.

  • $\begingroup$ Yes, this is 100% a 'thing'. You're describing "Iterative" design, however, rather than "Generative". $\endgroup$ Dec 10, 2019 at 13:24

2 Answers 2


TO do this efficiently you need an analysis program than can automatically calculated the sensitivities of your design variables to the parameter changes, i.e. mathematically a matrix where the $i,j$ term is $$\dfrac{\partial\, \text{parameter}_i}{\partial\, \text{variable}_j}$$ for all the variables and parameters.

That might mean you need a different CFD program from the one you are currently using.

I have done this sort of thing for structural analysis but I'm not a CFD guy. I expect a Multiphysics application like comsol would be able to handle it.

One problem you will have to solve is how to come up with a numerical measure of "the best design", especially if you are using the typical engineering design methodology trading off several parameters against each other until the result "seems about right".

For non-trivial sized problems, calculating all the sensitivities from a single analysis is more or less essential, and it adds very little to the cost of each analysis run, so long as the code has been written to do it. Otherwise the number of different analysis runs will be prohibitively large, if you have more than one or two design variables you want to change. The "sensitivity matrix" allows the optimizing part of the code to change all the design parameters at once for each successive run, which is probably more efficient than what an experienced designer can do by hand.


I have done something very similar to what you mention using two workflows:

  1. Ansys Workbench for a relatively complex simulation (structural optimization of a metal structure under high temperature conditions where the material starts to behave viscous)

  2. Python scripts managing an external FE simulation code. The Python code basically generated a set of design variables using Differential Evolution and the response was computed with the FE code


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.