# Segregated method for numerical solution of a PDE system

1. Oct 20, 2012

### FrankST

All,

I have a system of three coupled PDE and I discretized the equations using finite difference method.

It results in a block matrix equations as:

[A11 A12 A13] [x1] = [f1]
[A21 A22 A23] [x2] = [f2]
[A31 A32 A33] [x3] = [f3]

where, any of Aij is a square matrix.

I use segregated method to solve the system of equations iteratively as:

0 - initial values: x2=0, x3=0

1 - A11 * x1 = f1 - A12 * x2 - A13 * x3

2- update x1

3- A22 * x2 = f2 - A21 * x1 - A23 * x3

4- update x2

5- A33 * x3 = f3 - A31 * x1 - A32 * x2

6- update x3 and repeat 1 to 6 until convergence.

The issue I encountered is that when I change the order of the steps above I will get different results. For example if I first assume x1=x2=0 and I start by solving

A33 * x3 = f3 - A31 * x1 - A32 * x2 and continue with the other unknowns, I will get completely different results.

I hope you can help me to find out what is wrong in my method.

Thanks

Frank

p.s. I posted this initially in the Linear Algebra section but I got no reply but too many views. So, I thought it might be well suited for Differential Equation section.

2. Oct 20, 2012

### bigfooted

There is absolutely no reason that this iterative method would converge, let alone to a right answer. My advise: don't solve coupled PDE's in a segregated manner.

If you really want to solve this iteratively, I suggest you use the steepest descent algorithm, or even better: the conjugate gradient method.
However, finite difference methods typically lead to (block)tridiagonal matrices. When this is the case, use an exact method like the (gasp!) TriDiagonal Matrix Algorithm (TDMA).

Most of these well-established algorithms can be programmed in 10 lines or so. The fact that you have 1 or 10 (coupled) PDE's to solve doesn't matter (except that the bandwidth increases).

3. Oct 20, 2012

### FrankST

Thanks bigfooted for your response.

The reason I want to solve it using segregated method is for memory storage issue. For example, in case of 10 coupled PDE I am dealing with 100,000 x 100,000 matrix and I need to save memory.

Thanks again for your attention.