Multi-solver spectral-element and adjoint methods