A parallel Schur complement solver for the solution of the adjoint steady-state lattice Boltzmann equations: application to design optimisation