def METHOD_NAME(comm):
    # Get the problem size
    n = options.size
    if n < 0:
        n = 10 * comm.NumProc()
    elif n == 0:
        print("Problem size must be positive")
        sys.exit(-1)
    # Build the complex matrix
    map = Epetra.Map(n, 0, comm)
    Ar  = Epetra.CrsMatrix(Epetra.Copy, map, 1)
    Ai  = Epetra.CrsMatrix(Epetra.Copy, map, 1)
    for gid in map.MyGlobalElements():
        Ar.InsertGlobalValues(gid, [10 * (1 + float(gid)/n),], [gid,])
        Ai.InsertGlobalValues(gid, [10 * (1 - float(gid)/n),], [gid,])
    Ar.FillComplete()
    Ai.FillComplete()
    # Build the solution vector, the exact solution (=1) and the RHS
    xr  = Epetra.Vector(map)
    xi  = Epetra.Vector(map)
    xxr = Epetra.Vector(map)
    xxi = Epetra.Vector(map)
    br  = Epetra.Vector(map)
    bi  = Epetra.Vector(map)
    xxr[:] = 1
    xxi[:] = 0
    for gid in map.MyGlobalElements():
        lid = map.LID(gid)
        br[lid] = Ar[gid,gid] * xxr[lid] - Ai[gid,gid] * xxi[lid]
        bi[lid] = Ai[gid,gid] * xxr[lid] + Ar[gid,gid] * xxi[lid]
    # Build the complex problem
    problem = Komplex.LinearProblem(1, 0, Ar,
                                    1, 0, Ai,
                                    xr, xi,
                                    br, bi)
    # Set up the solver
    solver = AztecOO.AztecOO(problem.KomplexProblem())
    try:
       plist = {"Solver"          : "GMRES",
                "Precond"         : "None",
                "Output"          : 16
                }
       solver.SetParameters(plist,True)
    except AttributeError:
       # If AztecOO and its python wrappers have been compiled without Teuchos
       # support, then then the SetParameters method will not exist, thus
       # raising an AttributeError exception
       print("Teuchos ParameterLists not supported")
       solver.SetAztecOption(AztecOO.AZ_solver, AztecOO.AZ_gmres)
       solver.SetAztecOption(AztecOO.AZ_precond, AztecOO.AZ_none)
       solver.SetAztecOption(AztecOO.AZ_output, 16)
    # Solve the linear problem
    solver.Iterate(n, 1e-5)
    return solver.NumIters() < 20 and solver.TrueResidual() < 1e5