Tidy linearised advection and fix full 3D
This MR simplifies the logic of
LinearisedAdvection::v_Advect, reducing the dependency on the dimension and handling all components in a single loop. In doing so, I think this fixes the full 3D case, which was not working. Also, the gradient of the base flow is now computed in a separate function and stored in
m_gradBase, avoiding the need to recompute this every time-step for steady base flows.
The adjoint advection is now derived from LinearisedAdvection, eliminating a lot of duplicate code. It only needs to redefine v_Advect, which now follows a similar structure to the new implementation from LinearisedAdvection.