gmxsolvate can do one of 2 things:
1) Generate a box of solvent. Specify -cs and -box. Or specify -cs and -cp with a structure file with a
box, but without atoms.
2) Solvate a solute configuration, e.g. a protein, in a bath of solvent molecules. Specify -cp (solute)
and -cs (solvent). The box specified in the solute coordinate file (-cp) is used, unless -box is set.
If you want the solute to be centered in the box, the program gmxeditconf has sophisticated options to
change the box dimensions and center the solute. Solvent molecules are removed from the box where the
distance between any atom of the solute molecule(s) and any atom of the solvent molecule is less than the
sum of the scaled van der Waals radii of both atoms. A database (vdwradii.dat) of van der Waals radii is
read by the program, and the resulting radii scaled by -scale. If radii are not found in the database,
those atoms are assigned the (pre-scaled) distance -radius. Note that the usefulness of those radii
depends on the atom names, and thus varies widely with force field.
The default solvent is Simple Point Charge water (SPC), with coordinates from $GMXLIB/spc216.gro. These
coordinates can also be used for other 3-site water models, since a short equibilibration will remove the
small differences between the models. Other solvents are also supported, as well as mixed solvents. The
only restriction to solvent types is that a solvent molecule consists of exactly one residue. The residue
information in the coordinate files is used, and should therefore be more or less consistent. In
practice this means that two subsequent solvent molecules in the solvent coordinate file should have
different residue number. The box of solute is built by stacking the coordinates read from the
coordinate file. This means that these coordinates should be equlibrated in periodic boundary conditions
to ensure a good alignment of molecules on the stacking interfaces. The -maxsol option simply adds only
the first -maxsol solvent molecules and leaves out the rest that would have fitted into the box. This can
create a void that can cause problems later. Choose your volume wisely.
Setting -shell larger than zero will place a layer of water of the specified thickness (nm) around the
solute. Hint: it is a good idea to put the protein in the center of a box first (using gmxeditconf).
Finally, gmxsolvate will optionally remove lines from your topology file in which a number of solvent
molecules is already added, and adds a line with the total number of solvent molecules in your coordinate
file.