Instructor: Malgorzata Peszynska.
http://math.oregonstate.edu/~mpesz/teaching/654_F22/
This class will develop the fundamental algorithms needed when modeling coupled phenomena, also dubbed ``multiphysics''. The analysis and implementation will be both emphasized.
*Multiphysics* models typically involve more than one PDE; examples include flow and transport (when pollutants travel in a stream), or fluid-structure interactions (blood flow within elastic arteries, or tsunami waves impacting onshore structures). These coupled systems are very complex and require advanced iterative solvers, time-stepping and care in the interactions between the grids and variables so that stability, conservation, and other structural properties are preserved.
The techniques to be covered in class include iterative solvers for nonlinear systems, operator splitting, domain decomposition methods, basics of parallel implementation, and compatible discretizations, with the background on the interpolation and approximation techniques provided as needed. Students will work in MATLAB (but only with open source code). There will be an opportunity to learn/explore other programming languages and environments.
Prerequisites: interest and motivation are key. Experience in numerical methods, programming and modeling will help students to advance faster. Ideally, a student would have familiarity with (at least some of) the material covered in MTH 4/551-2-3 or similar, and/or some PDE modeling background. [I will provide additional resources as needed].
Text: I will circulate class notes and other materials as appropriate.
Thanks for your interest. I will be glad to discuss the class with you.


Schedule: [textbook] {assignments}

    == Week 0
  1. 9/21 Class overview: iterative solvers and time-stepping for multiphysics.
  2. 9/23 Overview of multiphysics: same spatial domains or multiple spatial domains. Notation on functions, vectors, and norms. Lipschitz continuous functions.
  3. == Week 1
  4. 9/26 {P1/survey due 9/25}. How not to code scientific computing. Solving fixed point problems. Contraction mappings and fixed point (simple, Picard) iteration.
  5. 9/28 Speed (order, rate) of convergence. Examples of iterations converging linearly, sublinearly, quadratically. Vocabulary: residuals, iterates, guesses.
  6. 9/30 Newton's method as an example of quadratically converging method with local convergence. "Standard assumptions" on nonsingularity and Lipschitz continuity of the Jacobian.
  7. == Week 2
  8. 10/3: {P2 due 10/2} Newton's method in multiple dimensions: matrix norms for F'(x) in R^N. Well posed problems on R^N. Variants of Newton methods that still converge sub-linearly.
  9. 10/5: How to test quadratic convergence and basin of attraction in practice. Ideas how to globalize Newton: backtracking. Connection to optimization. Defining trust regions and the use of steepest descent method.
  10. 10/7: Examples of monotone maps, and why this is important. Converting a root problem F(y)=0 to fixed point y=G(y)=y-\alpha F(u) works under some assumptions, and if F is known to be monotone.
  11. == Week 3
  12. 10/10: Revisit finite difference method for BVP. Introduce CCFD. {TA-1 due 10/9}
  13. 10/12: Programming FD in C/Fortran: how to use vectors and matrices when solving BVP with FD.
  14. 10/14: Set-up solvers for nonlinear BVP and IBVP (towards multiphysics). Worksheet.
  15. == Week 4
  16. 10/17: Towards multiphysics, cd. Solving coupled stationary nonlinear problems. (Extra video provided). Discussion of solutions to TA-1.
  17. 10/19: Compiling, linking and makefiles.
    Solving BVP by substructuring: towards heterogeneous domain decomposition and parallel implementation. Iterating across an interface.
  18. 10/21: Linear systems: direct methods; complexity, condition number. Matrix properties of the discrete Laplacian -\nabla^2_h.
  19. == Week 5
  20. 10/24: Linear systems: stationary iterative methods, cd.
  21. 10/26: Linear systems: Krylov methods for spd systems. Saddle-point systems and Uzawa iteration.
  22. 10/28:
  23. == Week 6
  24. 10/31: Wrap-up linear system solvers. Multigrid method: idea and demo.
  25. 11/2: (Class cancelled due to illness)
  26. 11/3: Second multigrid demo. Introduction to parallel computing.
  27. == Week 7
  28. 11/7: How to submit jobs on the COS cluster. MPMD example
  29. 11/9: SPMD via OpenMP.
  30. 11/11: no class (Veteran's Day)
  31. == Week 8
  32. 11/14: CUDA: intro. Introduction to domain decomposition (overlapping and non-opverlapping).
  33. 11/16: Overlapping DD as block Jacobi or block Gauss-Seidel.
  34. 11/18: How to write code for domain decomposition. Discuss TA2 solutions.
  35. == Week 9
  36. 11/21: Nonoverlapping DD. Schur complement. Scalability and speedup in parallel computaitons.
  37. 11/23: Domain decomposition: non-matching grids.
  38. 11/25: no class (Thanksgiving Day)
  39. == Week 10
  40. 11/28: Multiphysics: compatibility of discretizations of different physics across an interface. Vector notation for time dependent problems; method of lines: exponential time integration vs forward Euler and backward Euler.
  41. 11/30:Operator splitting for time dependent problems. Multiphysics: same domain, different PDEs.
  42. 12/2: Wrap-up activity: which technique would you use for different portions of the given scenario.