def METHOD_NAME(
    self, rhs: Union[np.ndarray, BlockVector], raise_on_error: bool = True
) -> Tuple[Optional[Union[np.ndarray, BlockVector]], LinearSolverResults]:
    if isinstance(rhs, BlockVector):
        _rhs = rhs.flatten()
        result = _rhs
    else:
        result = rhs.copy()
    result = self._ma57.do_backsolve(result, copy=False)
    if isinstance(rhs, BlockVector):
        _result = rhs.copy_structure()
        _result.copyfrom(result)
        result = _result
    return result, LinearSolverResults(LinearSolverStatus.successful)