Updated: preconditioner

Failure to create preconditioner now raises exception insteady of
warning.  Since preconditioning is really required, this saves the
routine from performing iterations that are likely not to converge.
Also allows for catching with try-except statement.