ENGS 105 - Winter 2014
Problem Set 1 PART B
Due: Thursday, Jan 23 posted by class time

Read: text, through Chapter 4, to complete this assignment.

Reconsider Problem Set 1 Part A and solve it with Jacobi, Gauss-Seidel and “optimal” SOR point iterative methods for N = 10, 20, 40 and 80.

  • COMPUTE IN DOUBLE PRECISION (i.e. REAL*8 in Fortran). Use a relative stopping criterion of 10E-5 based on an L2 vector norm.

    In each case,

    1. Estimate the spectral radius and convergence rate,
    2. Report the number of iterations required to reach a fixed convergence criterion, and
    3. Tabulate the RMS error for each solution with each iterative method.

    Discuss whether your results agree with theory relative to the convergence and convergence rates of the 3 solvers and with respect to the accuracy of your solutions as a function of N.


  • Repeat with the Line Iterative Methods.
  • For the tridiagnonal line matrix solution, use the subroutine Thomas.f (extension f90 for Fortran 90) from the 105 library.

    NOTES: The Thomas solver uses 3 1-D arrays, A(N) = subdiagonal, B(N) = diagonal, C(N) = superdiagnonal, plus R(N), the right-hand-side. Call Thomas with KKK=1 a single time, once the arrays are filled with the matrix coefficients, then use KKK=2 in your line iteration loop for computing the back-substitution with each new right-hand side at each iteration. As with Solve.f, the solution is returned in vector R(N) for each subroutine call with KKK=2.


  • Repeat with ADI. Here, build separate arrays for each direction, calling the Thomas algorithm once with KKK=1 for each set of coefficients (since the matrices are different in the r vs. theta directions) and then use the appropriately decomposed matrix with KKK=2 to compute the intermediate solutions to the evolving right hand sides for each iteration in the ADI sweeps.