You may also need https://petsc.org/release/manualpages/Mat/MatNullSpaceCreate/#matnullspacecreate and https://petsc.org/release/manualpages/Mat/MatSetNullSpace/
> On Jul 19, 2023, at 6:26 AM, Matthew Knepley <knep...@gmail.com> wrote: > > On Wed, Jul 19, 2023 at 6:23 AM Karthikeyan Chockalingam - STFC UKRI > <karthikeyan.chockalin...@stfc.ac.uk > <mailto:karthikeyan.chockalin...@stfc.ac.uk>> wrote: >> 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? >> > > MUMPS can do it with an option (it is in the documentation). For AMG you need > to specify the coarse solver. I know this works with GAMG, you use > > -mg_coarse_pc_type svd > > Thanks, > > Matt > >> Kind regards, >> >> Karthik. >> >> >> >> >> >> From: Matthew Knepley <knep...@gmail.com <mailto:knep...@gmail.com>> >> Date: Tuesday, 18 July 2023 at 17:22 >> To: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>> >> Cc: Chockalingam, Karthikeyan (STFC,DL,HC) >> <karthikeyan.chockalin...@stfc.ac.uk >> <mailto:karthikeyan.chockalin...@stfc.ac.uk>>, 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 >> >> 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/> > > -- > 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/>