Fabrication of Fe3O4 nanoparticle arrays via patterned template assisted self-assembly