I tried to generate these water molecules through editconf and insert-moecules tool of gromacs and packmol but water molecules are getting packed as rectangular shape only above the surface.
gmx editconf -f protein.pdb -o protein-PBC.gro -bt (choose option here: f.ex: triclinic, dodecahedron) this command helps you to create a box size that you want. If you have a box with a protein just use the following command in order to add 100 water molecules to your system: gmx solvate -cp protein.gro -cs spc216.gro -p topol.top -o -maxsol 100
I tried these commands but still water molecules are arranging in rectangular shape only. They are not fully packed inside hexagonal shape. I don't want complete system as solvated. I just want surface of my catalyst as solvated.
Apparently, solvate command fills a box randomly, but in your case it is a bit different. I don't know how to cover a protein with water. I can advise that fill the box with water molecules (more than 100) and it can be removed water molecules which located inside a protein by visualizing for example in Jmol or VMD leaving water molecules only around a protein.
The procedure that Jamoliddin described works perfectly. I just tried it myself. Keep in mind that with periodic boundary conditions the hexagonal box can be described as a rectangular box.
To make sure that only your catalyst surface is solvated, set your initial box size appropriately (normally the z-dimension). I would recommend that you do not restrict yourself to exactly 100 water molecules. Let the solvate tool decide the correct amount. After you solvated, enlarge the box to the desired size.