Device performance enhancement of polymer solar cells by nanoparticle self-assembly