The following functions are to be implemented by all solver objects as we're using CRTP / F-Bound to statically dispatch the calls. Any common functions should be added here and to the derived solver objects