Hi, I have no problem now in compiling, thank you for providing the Fortran interface. I have a follow up question. When running the code, I get this error, which I’m pretty sure it is related to DMDAGetElements(), since up to that line everything works fine.
[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://petsc.org/release/faq/#valgrind and https://petsc.org/release/faq/ [0]PETSC ERROR: --------------------- Stack Frames ------------------------------------ [0]PETSC ERROR: No error traceback is available, the problem could be in the main program. -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD with errorcode 59. NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them. ————————————————————————————————————— The lines of code I’m working on are the following: integer ierr MPI_Comm comm DM da3d ISLocalToGlobalMapping map PetscInt nel,nen PetscInt, pointer :: e_loc(:) call DMDACreate3d(comm,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE, & DM_BOUNDARY_NONE,DMDA_STENCIL_BOX,433,41,29, & 8,2,1,3,1,PETSC_NULL_INTEGER, & PETSC_NULL_INTEGER,PETSC_NULL_INTEGER, & da3d,ierr) call DMSetMatType(da3d,MATIS,ierr) call DMSetFromOptions(da3d,ierr) call DMDASetElementType(da3d,DMDA_ELEMENT_Q1,ierr) call DMSetUp(da3d,ierr) call DMGetLocalToGlobalMapping(da3d,map,ierr) call DMDAGetElements(da3d,nel,nen,e_loc,ierr) By printing in a dummy way any kind of message before and after DMDAGetElements(), I cannot pass over it. Unfortunately, I cannot run with the debug option on this machine. Am I calling the routine in a wrong way? Thanks, Monica > On 29 Jun 2023, at 21:09, Matthew Knepley <[email protected]> wrote: > > On Thu, Jun 29, 2023 at 3:05 PM Ngoc Mai Monica Huynh > <[email protected] <mailto:[email protected]>> wrote: > Thank you. > Does this mean that DMDARestoreElements() is supported as well now? > > Yes. > > Thanks, > > Matt > > Monica > > >> Il giorno 29 giu 2023, alle ore 20:17, Barry Smith <[email protected] >> <mailto:[email protected]>> ha scritto: >> >> >> >> The code is ready in the branch >> barry/2023-06-29/add-dmdagetelements-fortran >> https://gitlab.com/petsc/petsc/-/merge_requests/6647 >> <https://gitlab.com/petsc/petsc/-/merge_requests/6647> >> >> Barry >> >> >>> On Jun 29, 2023, at 12:41 PM, Ngoc Mai Monica Huynh >>> <[email protected] <mailto:[email protected]>> wrote: >>> >>> That would be amazing, thank you very much! >>> Monica >>> >>>> On 29 Jun 2023, at 18:38, Barry Smith <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> >>>> I can provide the Fortran interface this afternoon. >>>> >>>> Barry >>>> >>>> >>>>> On Jun 29, 2023, at 10:48 AM, Ngoc Mai Monica Huynh >>>>> <[email protected] <mailto:[email protected]>> >>>>> wrote: >>>>> >>>>> Hi everyone, >>>>> >>>>> I would need to use the routine DMDAGetElements() in our Fortran code. >>>>> However, as I read from the manual, there is no Fortran support for this >>>>> routine. >>>>> Is there any similar alternative there? >>>>> >>>>> Many thanks! >>>>> Best regards, >>>>> Monica Huynh >>>> >>> >> > > > -- > 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/>
