Guilin Sun
Ansys Employee


Hi Nicholas, the built-in particle swarm optimization works fine only if some settings are proper.In your case,  you are optimizing 7 parameters, 16 generations are most likely not enough. Even for a single paramter optimization it may need 20 to 40 generations. As you pointed out, the variable space is not well explored. That means the optimization is actually not optimal. You may further reduce the tolerance, say 1e-6, 1e-8 or other small values or even zero. Make sure those 7 paramerers are not conflict in some sub-spaces. Please try to reduce the number of parameters if possible.

I am glad that you have set more number of generations than the size of generation. In general, more generation is much better than more generation size in order to find the global optimal result.You could try to have 20 generation size and 150 generations.

Please note, the flat FOM curve does not necessarily mean the global optimal result is reached. From my personal experience, it needs another 10 to 20 generations to confirm if it is true.

There is another possibility: there are many local optimals and those local optimals have almost the same max results within the tolerance.

Anyway, 7 parameters with 16 generations only is not convincing to have reached the optimal result.


Please note: the Lumerical forum is here:

Please post your further questions in the correct forum.