CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Parallel version of Ax=b ??? (http://www.cfd-online.com/Forums/openfoam-programming-development/86672-parallel-version-ax-b.html)

pkr March 29, 2011 17:13

Parallel version of Ax=b ???
 
I am trying to understand the way Ax=b is solved in parallel across the processors.

The original mesh is comprised of 5 cells. The original matrix A without any decomposition is:
-4 0 4 0 0
0 -3 0 0 3
4 0 -8 9 0
0 0 9 -6 5
0 3 0 5 -7

After using decomposePar utility the matrix A is decomposed in two smaller matrices as follows:
First matrix
========
-3 0 3
0 -6 5
3 5 -7

Second Matrix
==========
-4 4
4 8


When PCG solver is invoked, each process solves Ax=b independently and exchanges some information with other process to ensure correctness.

My queries are as follows:

1. What is being exchanged? I see that in every iteration during Amul, some parts of vector pA is being sent to neighboring process. The neighboring process receives pA and performs additional computation to rectify wA.

wA[] -= coeffs[] * pA_received[];

2. Where do the coefficients come from? What's the significance of coeffs?

3. How does subtracting "coeffs[] * pA_received[]" from wA[] leads to the correct solution mathematically?


Thanks in Advance.


All times are GMT -4. The time now is 01:55.