Yahe,
What problem do you want to solve, a linear/nonlinear optimisation problem with 
equality constrains?
Hong
________________________________
From: petsc-dev <[email protected]> on behalf of Barry Smith 
<[email protected]>
Sent: Friday, April 8, 2022 10:04 AM
To: 高亚贺 <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: [petsc-dev] About the problem of Lagrange multiplier


    How can Q be non-square? U has n entries so presumably K is n by n. Q has 
the same number of rows as K and from your definition of Q containing a_1 .... 
a_n entries per row Q has n columns. So Q is also n by n. If this is the case 
then it appears you have the same number of Lagrange multipliers as u so you 
can simply create a DMDA with twice as many degrees of freedom on each vertex, 
on each vertex the first half of the degrees of freedom are u and the second 
half lambda. Note that this means the u and lambda (and hence the matrix 
entries also) are interlaced between u and lambda, but this is fine; it is only 
a convenience for human eyes that we like to write all the u before all the 
lambda; any representation in the computer is fine.

  Barry


On Apr 8, 2022, at 1:34 AM, 高亚贺 
<[email protected]<mailto:[email protected]>> wrote:


Dear Mr./Ms.,


In fact, I want to solve a discretized equation like this

<1649395840117.png>


where K, U=[u1 u2 …un]T and F are fields sit on the vertices, and can easily be 
created by ‘DMCreateMatrix’ or ‘DMCreateGlobalVector’. λ is the Lagrange 
multiplier vector. The augmented Q (non-square) is the constraint coefficient 
matrix and has the form as

<1649395860765.png>


The Q is employed here to satisfy the following constraints

<1649395881836.png>


So how to build the entire system in-place in one big matrix (Kλ)? Could you 
give me more specific suggestions on this problem?


Thank you very much!


Best regards,

Yahe



-----原始邮件-----
发件人:"Barry Smith" <[email protected]<mailto:[email protected]>>
发送时间:2022-04-07 23:10:20 (星期四)
收件人: "Matthew Knepley" <[email protected]<mailto:[email protected]>>
抄送: "高亚贺" <[email protected]<mailto:[email protected]>>, PETSc 
<[email protected]<mailto:[email protected]>>
主题: Re: [petsc-users] question


  DMStag may also be useful for your needs (and far simpler to use than DMPLEX) 
depending on where your Lagrange multipliers live. Note that regardless you 
should not need to be copying entire large submatrices around into bigger 
matrices; you can build the entire system in-place in one big matrix. MatNest 
is also a possibility depending on exactly what you are doing.

  If you explain what your Lagrange multipliers are (the constraints) we may be 
able to make more specific suggestions.

Barry




On Apr 7, 2022, at 8:26 AM, Matthew Knepley 
<[email protected]<mailto:[email protected]>> wrote:

On Thu, Apr 7, 2022 at 8:16 AM 高亚贺 via petsc-users 
<[email protected]<mailto:[email protected]>> wrote:


Dear Mr./Ms.,


I have used ‘DMCreateMatrix’ to create a matrix K, and also the 
‘DMCreateGlobalVector’ to create two vectors U (to be solved) and F (right-hand 
side), i.e. KU=F. Now, I want to add some complex constraints to this system 
through lagrangian multiplier method, and the constraint matrix is Q. The KU=F 
transforms to

<1649328463919.png>

   How to create Kλ, and how to effectively copy values K and Q to Kλ? Does the 
newly created Kλ and Fλ still have an advantage of DMDA? Or do you have any 
other good suggestions for this kind of problem?

DMDA can only really handle collocated discretizations, meaning all fields sit 
on the vertices. If you can discretize your problem this way, then just give it 
two fields and assemble K_\lambda as normal. If not, then you might look at 
DMPlex which supports a wider range of discretizations.

  Thanks,

     Matt


Thank you very much!


Best regards,

A PETSc user


--
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/>

<About the problem of Lagrange multiplier.docx>

Reply via email to