Fourier modal method and its applications in computational nanophotonics. (2017)