[petsc-users] Problem with composite DM index sets

Randall Mackie rlmackie862 at gmail.com
Sun Jun 22 19:06:09 CDT 2025


Thanks Barry!



> On Jun 22, 2025, at 4:50 PM, Barry Smith <bsmith at petsc.dev> wrote:
> 
> 
>    I'm sorry for not getting back to you sooner. I have attached a working version of your code. Since you were missing 
> 
>   use petscdmcomposite
> 
> the compiler could not generate the correct call to DMCompositeGetGlobalISs()
> 
>   Barry
> 
> <test.F90>
> 
> 
>> On Jun 17, 2025, at 6:39 PM, Randall Mackie <rlmackie862 at gmail.com> wrote:
>> 
>> Dear Petsc users -
>> 
>> I am trying to upgrade my code to petsc-3.23 (from 3.19), and I seem to have run into a problem with DMCompositeGetGlobalISs.
>> 
>> The example program listed on the man page for DMCompositeGetGlobalISs, https://urldefense.us/v3/__https://petsc.org/release/src/snes/tutorials/ex73f90t.F90.html__;!!G_uCfscf7eWS!ZyuqN-aqT36-BdaEGEwwCK3DP9cdT5SGsfHT9nMWiXXRDCdzcYU2-Ns-3lpwwEqrEu3XthkjLensAwqjSn0zoF_GSw$  <https://urldefense.us/v3/__https://petsc.org/release/src/snes/tutorials/ex73f90t.F90.html__;!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM9yAjmHvA$>, seems to indicate that a call to DMCompositeGetGlobalISs does not need to allocate the IS pointer and you just pass it directly to DMCompositeGetGlobalISs.
>> 
>> If I compile and run the simple attached test program (say on 2 processes), I get the following error:
>> 
>> [0]PETSC ERROR: ------------------------------------------------------------------------
>> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
>> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
>> [0]PETSC ERROR: or see https://urldefense.us/v3/__https://petsc.org/release/faq/*valgrind__;Iw!!G_uCfscf7eWS!ZyuqN-aqT36-BdaEGEwwCK3DP9cdT5SGsfHT9nMWiXXRDCdzcYU2-Ns-3lpwwEqrEu3XthkjLensAwqjSn2EvwnboA$  <https://urldefense.us/v3/__https://petsc.org/release/faq/*valgrind__;Iw!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM-7MIW3KA$> and https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!ZyuqN-aqT36-BdaEGEwwCK3DP9cdT5SGsfHT9nMWiXXRDCdzcYU2-Ns-3lpwwEqrEu3XthkjLensAwqjSn0Hqvgizg$  <https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM_a7QtraQ$>
>> [0]PETSC ERROR: ---------------------  Stack Frames ------------------------------------
>> [0]PETSC ERROR: The line numbers in the error traceback may not be exact.
>> [0]PETSC ERROR: #1 F90Array1dCreate() at /home/rmackie/PETSc/petsc-3.23.3/src/sys/ftn-custom/f90_cwrap.c:123
>> application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0
>> 
>> 
>> If I uncomment the line to allocate the pointer, I get a very long traceback with lots of error messages.
>> 
>> What is the correct way to use DMCompositeGetGlobalISs in Fortran? With or without the pointer allocation, and what is the right way to do this without the errors it seems to generate?
>> 
>> Thanks,
>> 
>> Randy Mackie
>> 
>> <test.F90>
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20250622/997c6f3f/attachment.html>


More information about the petsc-users mailing list