I finally found the answer to my problem. I was not wrongly imposing the periodic boundary condition but rather was solving a problem (Poisson equation with PBC), which has an infinite family of solutions. I was recommended to add an artificial constraint or use a null-space-aware algebraic solver.
Are MUMPS and Hypre null-space-aware algebraic solvers? How can I turn that option on? Kind regards, Karthik. From: Matthew Knepley <knep...@gmail.com> Date: Tuesday, 18 July 2023 at 17:22 To: Barry Smith <bsm...@petsc.dev> Cc: Chockalingam, Karthikeyan (STFC,DL,HC) <karthikeyan.chockalin...@stfc.ac.uk>, petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov> Subject: Re: [petsc-users] periodic boundary conditions Jed creates the LocalToGlobal that does this elimination in plexsfc.c Thanks, Matt On Tue, Jul 18, 2023 at 12:07 PM Barry Smith <bsm...@petsc.dev<mailto:bsm...@petsc.dev>> wrote: They are never really "eliminated" because extra copies in the global vector never exist. On Jul 18, 2023, at 12:03 PM, Karthikeyan Chockalingam - STFC UKRI <karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk>> wrote: Thank you, Barry. I am using the MPIAIJ format for a Finite Element application. So, I am trying to understand what is implemented in DMDA to eliminate those extra nodes. Best, Karthik. From: Barry Smith <bsm...@petsc.dev<mailto:bsm...@petsc.dev>> Date: Tuesday, 18 July 2023 at 16:58 To: Chockalingam, Karthikeyan (STFC,DL,HC) <karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk>> Cc: Matthew Knepley <knep...@gmail.com<mailto:knep...@gmail.com>>, petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov> <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> Subject: Re: [petsc-users] periodic boundary conditions If you are using DMDA with periodic boundary conditions for example only one "copy" of such nodes exists in the global vector (the vector the solvers see) so one does not need to eliminate extra ones On Jul 18, 2023, at 11:51 AM, Karthikeyan Chockalingam - STFC UKRI via petsc-users <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> wrote: Yes, I clearly understand I need to eliminate one set of periodic nodes. I was hoping to use x = P x’ to eliminate one set. It is a kind of mapping. Sorry, I am not sure if it is the LocalToGlobal mapping you are referring to. Is there an example or reference to show how the LocalToGlobal mapping is being used to impose PBC? Best, Karthik. From: Matthew Knepley <knep...@gmail.com<mailto:knep...@gmail.com>> Date: Tuesday, 18 July 2023 at 16:38 To: Chockalingam, Karthikeyan (STFC,DL,HC) <karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk>> Cc: petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov> <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> Subject: Re: [petsc-users] periodic boundary conditions On Tue, Jul 18, 2023 at 11:18 AM Karthikeyan Chockalingam - STFC UKRI <karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk>> wrote: Thanks Matt. The mesh is structured (rectilinear), so it is periodic in that sense. Can you please explain how I can impose it strongly? Strongly means make those variables equal in a pointwise sense. We do this in the LocalToGlobal mapping, so one set is eliminated in the global problem. Thanks, Matt My initial thought was to come up with a relation between the periodic nodes: x = P x’ Say for 1-D problem with two elements (1)-------------(2)------------(3) P = [1 0, 0 1, 1 0] x = [x1 x2 x3] x’ = [x1 x2] and solve [P^T A P] x’ = P^T b I don’t think [P^T A P] is deterministic. Kind regards, Karthik. From: Matthew Knepley <knep...@gmail.com<mailto:knep...@gmail.com>> Date: Tuesday, 18 July 2023 at 14:31 To: Chockalingam, Karthikeyan (STFC,DL,HC) <karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk>> Cc: petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov> <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> Subject: Re: [petsc-users] periodic boundary conditions On Tue, Jul 18, 2023 at 9:02 AM Karthikeyan Chockalingam - STFC UKRI via petsc-users <petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> wrote: Hello, This is exactly not a PETSc question. I am solving a Poisson equation using finite elements. I would like to impose PBC. I am thinking of using the Lagrange multiplier method to impose them as constraints. Or do you think I could take an alternative approach? There are several options: 1) Just make a periodic mesh. This is what Plex does by default. 2) Impose the conditions strongly. This is what is done if you create the ZBox shape in Plex. 3) Impose the conditions weakly. This is what you are doing with Lagrange multipliers. You could also do a Nitsche boundary condition for this. Since the constraint is so simple, I do not see an advantage to imposing it weakly. Thanks, Matt Thank you for your help. Kind regards, Karthik. -- Dr. Karthik Chockalingam High Performance Software Engineering Group Hartree Centre | Science and Technology Facilities Council karthikeyan.chockalin...@stfc.ac.uk<mailto:karthikeyan.chockalin...@stfc.ac.uk> <image001.png> -- 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/> -- 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/>