Numerical Optimizers For Nanophotonic Devices