  We consider steady nonlinear free surface flow past an arbitrary bottom
topography in three dimensions, concentrating on the shape of the wave pattern
that forms on the surface of the fluid. Assuming ideal fluid flow, the problem
is formulated using a boundary integral method and discretised to produce a
nonlinear system of algebraic equations. The Jacobian of this system is dense
due to integrals being evaluated over the entire free surface. To overcome the
computational difficulty and large memory requirements, a Jacobian-free Newton
Krylov (JFNK) method is utilised. Using a block-banded approximation of the
Jacobian from the linearised system as a preconditioner for the JFNK scheme, we
find significant reductions in computational time and memory required for
generating numerical solutions. These improvements also allow for a larger
number of mesh points over the free surface and the bottom topography. We
present a range of numerical solutions for both subcritical and supercritical
regimes, and for a variety of bottom configurations. We discuss nonlinear
features of the wave patterns as well as their relationship to ship wakes.
