Thank you for your reply! Unfortunately yes.. I’ll need to modify stiffness between nodes on the boundary so most of them are going to be in completely general location.
I can create an IS after distribution using DMPlexCreatePointNumbering() but they are Global numbering. Is there a way to get a map from Natural numbering to Global numbering? I assume this is used somewhere in DMPlexNaturalToGlobal()? This way I can find the correct entry to modify. Thanks, Kevin > On Dec 9, 2022, at 09:10, Matthew Knepley <[email protected]> wrote: > > >> On Thu, Dec 8, 2022 at 6:06 PM Hongrui Yu <[email protected]> wrote: > >> Hello! I’m trying to adapt a serial Finite Element code using PETSc. In this >> code it reads in special stiffness terms between the boundary DoFs from an >> input file, and add them to corresponding locations in the global Jacobian >> matrix. >> > > Hmm, so in completely general locations, or on the diagonal? > >> I currently use a DM Plex object to store the mesh information. My >> understanding is that once the DM is distributed its points are renumbered >> across different ranks. >> > > That is true. > >> I wonder if there is a good way to find the corresponding entries that needs >> to be modified in the global Jacobian matrix? >> >> >> >> For Vectors I’m currently creating a Natural Vector and simply do >> DMPlexNaturalToGlobal. Is there a way to create a “Natural Mat” just like >> “Natural Vector” and then do some sort of NaturalToGlobal for this Mat? >> >> >> >> Any help would be highly appreciated! >> > > If it is completely general, this will take some coding. > > Thanks, > > Matt > >> Kevin >> > > > -- > 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/
