Thank you for your response. I spend some time understanding how

MatSetValuesLocal and ISLocalToGlobalMappingCreate work.
Q1) Will the matrix K be of type MATMPIAIJ or MATIS?
K = [A P^T
       P   0]
Q2) Can I use both MatSetValues() to MatSetValuesLocal() to populate K? Since I 
have already used MatSetValues() to construct A.

Q3) What are the advantages of using MatSetValuesLocal()? Is it that I can 
construct P directly using local indies and map the entrees to the global index 
in K?

Q4) I probably don’t have to construct an independent P matrix?

Best regards,
Karthik.



From: Matthew Knepley <knep...@gmail.com>
Date: Tuesday, 18 April 2023 at 11:08
To: Chockalingam, Karthikeyan (STFC,DL,HC) <karthikeyan.chockalin...@stfc.ac.uk>
Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>
Subject: Re: [petsc-users] Setting up a matrix for Lagrange multiplier
On Tue, Apr 18, 2023 at 5:24 AM Karthikeyan Chockalingam - STFC UKRI via 
petsc-users <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> wrote:
Hello,

I'm solving a problem using the Lagrange multiplier, the matrix has the form

K = [A P^T
       P   0]

I am familiar with constructing K using MATMPIAIJ. However, I would like to 
know if had [A], can I augment it with [P], [P^T] and [0] of type MATMPIAIJ? 
Likewise for vectors as well.

Can you please point me to the right resource, if it is a common operation in 
PETSc?

You can do this at least 2 ways:

  1) Assemble you submatrices directly into the larger matrix by constructing 
local-to-global maps for the emplacement. so that you do
      not change your assembly code, except to change MatSetValues() to 
MatSetValuesLocal(). This is usually preferable.

  2) Use MATNEST and VecNEST to put pointers to submatrices and subvectors 
directly in.

  Thanks,

     Matt

Many thanks.

Kind regards,
Karthik.






--
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] Setting... 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
            • ... 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
                • ... Matthew Knepley

Reply via email to