def METHOD_NAME():
  # dimension of the problem
  numGlobalRows = 10
  comm          = Epetra.PyComm()
  numProc       = comm.NumProc()
  iAmRoot       = comm.MyPID() == 0
  map           = Epetra.Map(numGlobalRows, 0, comm)
  numLocalRows  = map.NumMyElements()
  LHS_exact     = Epetra.Vector(map)
  LHS           = Epetra.Vector(map)
  RHS           = Epetra.Vector(map)
  matrix        = Epetra.CrsMatrix(Epetra.Copy, map, 0)
  # Populates the matrix by inserting one row at-a-time. Indices and Values
  # are defined as Python's lists (of the same length).
  for ii in range(0, numLocalRows):
    i = map.GID(ii)
    if i == 0:
      indices = [i, i + 1]
      values  = [2.0, -1.0]
    elif i == numGlobalRows - 1:
      indices = [i, i - 1]
      values  = [2.0, -1.0]
    else:
      indices = [  i,  i - 1, i + 1]
      values  = [2.0,   -1.0,  -1.0]
    matrix.InsertGlobalValues(i, values, indices)
  matrix.FillComplete()
  # Builds a solution that is `i' at node `i', then the
  # corresponding right-hand side, then set the solution to 0
  for i in range(0, numLocalRows):
    LHS[i] = i
  matrix.Multiply(False, LHS, RHS)
  LHS.PutScalar(0.0)
  problem = Epetra.LinearProblem(matrix, LHS, RHS)
  factory = Amesos.Factory()
  # Creates the solver using the Amesos' factory
  type = "Amesos_Lapack"
  if factory.Query(type) == False:
    raise NotImplementedError("Selected solver (%s) not supported" % (type))
  solver = factory.Create(type, problem)
  # Setting parameters using a Python dictionary. The list of supported
  # parameters can be found on the user's guide.
  amesosList = {"PrintTiming" : True,
                "PrintStatus" : True
                }
  solver.SetParameters(amesosList)
  # Note: we don't check here the return parameters for brevity. 
  solver.SymbolicFactorization()
  solver.NumericFactorization()
  ierr = solver.Solve()
  #del solver
  error = 0.0
  for i in range(0, numLocalRows):
    error = error + abs(LHS[i] - i)
  if iAmRoot:
    print("Using %s, ||x - x_ex||_1 = %e" % (type, error))
  # Exit with a code that indicates the total number of successes
  failures = comm.SumAll(ierr)
  if failures == 0 and iAmRoot: print("End Result: TEST PASSED")
  sys.exit(failures)