want to ask about lammps

I think the difficult part is to clarify to yourself what you mean by “rough surface”. This is really a physics question. What was the physical process which created the rough surface? You could try to build a crystalline slab with moltemplate or other tools, simulate it in LAMMPS, at high temperature, depositing atoms or molecules onto it, or bombarding it other atoms. (?) Then save a LAMMPS data file using the write_data command, and then convert it into a (moltemplate-compatible) .LT file using the “ltemplify.py” script. (Example of ltemplify.py usage are here and here.) Once you have this, you can import it into moltemplate, and combine it with a box of water.

However if you are just looking for an easy, cheap way to make a surface which looks rough, then you could use “new random” command to create a crystalline sheet of atoms (or unit cells containing multiple atoms), with blank entries. This is discussed in chapter 7 (figure 5) of the moltemplate manual
This will create a smooth surface with randomly placed pits (or a solid with randomly placed vacancies).

Alternately, you can also use multiple “delete” commands to manually cut multiple rectangular holes in your surface or solid. You can also try using LAMMPS’ delete_atoms and region commands to accomplish the same thing.

Alternately you use an external program to create the coordinates of a group of atoms, you can read those into moltemplate as well, either invoking moltemplate with the -raw argument, or using the “.readcrd()” function (which is not yet released. I’ll post an update with it soon.).

Finally you can immobilize these atoms by omitting them from the group of atoms you pass to “fix nve” or “fix nvt”, etc…

Once you have a surface, is easy to create a box of water molecules and place them near it using the new and .move() commands, as done in the example:
http://moltemplate.org/examples/nanotube+water/water_box.lt

Once you have done that, there are several ways to make molecules flow on or through a surface.
Take a look at:
http://lammps.sandia.gov/doc/fix_addforce.html
http://lammps.sandia.gov/doc/fix_flow_gauss.html