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/

Reply via email to