Dear FreeFEM developers:

I was converting the code to a parallel version using PETSc, but I found that the number of matrix components changed with the number of processors I used. The test code and results are shown below:

**Test 1:** ff-mpirun **-np 1** test.edp -v 0. \quad Test results:

rows=1681, cols=237

total: nonzeros=322, allocated nonzeros=322

**Test 2:** ff-mpirun **-np 2** test.edp -v 0. \quad Test results:

rows=1681, cols=237

total: nonzeros=50, allocated nonzeros=50

Test 3: ff-mpirun **-np 4** test.edp -v 0. \quad Test results:

rows=1681, cols=237

total: nonzeros=81, allocated nonzeros=81

From the above test results, we observe that the number of **non-zero components of matrix B** are depending on the number of processors used, while matrices A and C are fixed. The version of FreeFEM I used is 4.12.

I would appreciate it if anyone can help me or give me a hint. Thanks in advance.

**The following is the test code:**

```
load "PETSc"
macro dimension() 2 //
include "macro_ddm.idp"
mesh Th = square(20, 20);
mesh Thb = emptymesh(Th);
buildDmesh(Th);
buildDmesh(Thb);
fespace Vh(Th, P2);
fespace Vhb(Thb, P2);
varf TemTran(u, uu) = int2d(Th) ( dx(u)*dx(uu)+dy(u)*dy(uu) );
varf matLag(vv, uu) = int1d(Thb, 1, 3)(vv*uu);
Mat A; createMat(Th, A, P2);
Mat C; createMat(Thb, C, P2);
C = matLag(Vhb, Vhb);
matrix vA = TemTran(Vh, Vh); A = vA;
matrix vB = matLag(Vhb, Vh);
Mat B(A, C, vB);
ObjectView(B, format = "info");
cout<< endl << endl;
```