I don’t see an option to give block size.
https://petsc.org/release/manualpages/Mat/MatCreateAIJ/

Many thanks,
Karthik.


From: Matthew Knepley <[email protected]>
Date: Sunday, 10 September 2023 at 20:09
To: Chockalingam, Karthikeyan (STFC,DL,HC) <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: [petsc-users] Coupled system of equations on unstructured mesh
On Sun, Sep 10, 2023 at 3:01 PM Karthikeyan Chockalingam - STFC UKRI 
<[email protected]<mailto:[email protected]>>
 wrote:
I will solve the coupled problem in a non-linear fashion using SNES, so I will 
have one residual for each variable R(u1) and R(u2) and the resulting Jacobian 
matrix

J =  [J11 J12
         J21 J22] for each element.

For first-order Lagrange elements (in 2D) will have four nodes, then J would be 
of size 8 x 8. Let's say the variables are u and v. The order would be [u1 u2 
u3 u4 v1 v2 v3 v4].

Or should I rearrange the above entrées in the element Jacobian so as to have 
[u1 v1 u2 v2 u3 v3 u4 v4] ordering? In that case, the Jacobian will not have 
block ordering I guess.

This is the correct order to get block matrices.

In my case, the discretization of the u and v are from the same element space.
Can you please elaborate when you say, “Just enlarge the block size of your 
matrix”?
I have never used block size before and not sure what it accomplishes.
Do you mean to say, I should use MATBAIJ instead of MATAIJ?

You do not need to change the type, just give the AIJ matrix a blocksize of 2.

  Thanks,

     Matt

Kind regards,
Karthik.

From: Matthew Knepley <[email protected]<mailto:[email protected]>>
Date: Sunday, 10 September 2023 at 19:03
To: Chockalingam, Karthikeyan (STFC,DL,HC) 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Subject: Re: [petsc-users] Coupled system of equations on unstructured mesh
On Sun, Sep 10, 2023 at 1:48 PM Karthikeyan Chockalingam - STFC UKRI via 
petsc-users <[email protected]<mailto:[email protected]>> wrote:
Hello,

I have so far solved scalar field problems using finite elements on a given 
(unstructured) mesh. I made use of MATMPIAIJ to create matrixes, 
MatCreateVecs(A, &b, &x) to create vectors, and MatZeroRowsColumnsIS to set 
boundary conditions.

Now, I would like to solve a coupled system of equations for the quantities u1 
and u2 on the (unstructured)  mesh. I.e., the matrix should get the double 
number of rows and columns,

A = [A00  A01
        A10  A11]

This is usually not a good way to think of it. This division means that all 
variables of one field come before
all those of another. It is much more common to group together all the unknowns 
at a given point.

You could, if the discretizations of u1 and u2 are the same, just enlarge the 
blocksize of your matrix. Then you set u1 and u2 for each vec location, or a 
2x2 block for each Jacobian location.

  Thanks,

     Matt

the vectors contain twice the number of entries (e.g. first all u1s and then 
all u2s). I would like to be sure that the entries of u1 and u2, which are 
associated with the same element are located on the same processor.

Is a pre-defined structure already available within PETSc to enlarge such a 
single equation to store the entries of coupled equations?

-\Delta u_1+c_{11} u_1+c_{12} u_2=f_1
-\Delta u_2+c_{21} u_1+c_{22} u_2=f_2

Would I still be able to use MatZeroRowsColumnsIS u1 and u2 independently to 
enforce boundary conditions? MatZeroRowsColumnsIS(A, is, 1, x, b);

I don’t know where to begin. I have so far only been exposed to using MATMPIAIJ 
and MatSetValues to create and assign values to matrix entries respectively. I 
would be grateful if you could provide the stepwise guide.

Kind regards,
Karthik.

--
Karthik Chockalingam, Ph.D.
Senior Research Software Engineer
High Performance Systems Engineering Group
Hartree Centre | Science and Technology Facilities Council
[email protected]<mailto:[email protected]>

 Error! Filename not specified.



--
What most experimenters take for granted before they begin their experiments is 
infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>


--
What most experimenters take for granted before they begin their experiments is 
infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>
  • [petsc-users] Coupled... Karthikeyan Chockalingam - STFC UKRI via petsc-users
    • Re: [petsc-users... Matthew Knepley
      • Re: [petsc-u... Karthikeyan Chockalingam - STFC UKRI via petsc-users
        • Re: [pet... Matthew Knepley
          • Re: ... Karthikeyan Chockalingam - STFC UKRI via petsc-users
            • ... Matthew Knepley
              • ... Karthikeyan Chockalingam - STFC UKRI via petsc-users
                • ... Matthew Knepley
                • ... Karthikeyan Chockalingam - STFC UKRI via petsc-users
                • ... Matthew Knepley
                • ... Karthikeyan Chockalingam - STFC UKRI via petsc-users
                • ... Matthew Knepley

Reply via email to