On Sat, Oct 1, 2022 at 8:51 PM Mike Michell <mi.mike1...@gmail.com> wrote:
> Thank you for the reply. There is that file in src/dm/interface/ftn-auto/ > for me, instead of the path you mentioned. > > After "make allfortranstubs" was done and, PETSc reconfigured and > reinstalled. > > However, I still have the same problem at the line in which > DMLocalToLocalBegin() is used. What I am doing to setup halo exchange is as > follows; > - declare DMPlex > - PetscSectionCreate() > - PetscSectionSetNumFields() > - PetscSectionSetFieldComponents() > - PetscSectionSetChart() > - do loop over dofs: PetscSectionSetDof() and PetscSectionSetFieldDof() > - PetscSectionSetUp() > - DMSetLocalSection() > - PetscSectionDestroy() > - DMGetSectionSF() > - PetscSFSetUp() > > Then, the halo exchange is performed as follows; > - DMGetLocalVector() > - Fill the local vector > - DMLocalToLocalBegin() --(*) > - DMLocalToLocalEnd() > - DMRestoreLocalVector() > > Then, the code crashes at (*). > Can you send something I can run? Then I will find the problem and fix it. Thanks, Matt > Previously(at the time PETSc did not support LocalToLocal for DMPlex in > Fortran), the part above, "DMLocalToLocalBegin() and DMLocalToLocalEnd()", > consisted of; > - DMLocalToGlobalBegin() > - DMLocalToGlobalEnd() > - DMGlobalToLocalBegin() > - DMGlobalToLocalEnd() > and it worked okay. > > I am unclear which part is causing the problem. Shall I define the > PetscSection and PetscSF in different ways in case of Local to Local Halo > exchange? > Any comment will be appreciated. > > Thanks, > Mike > > > >> On Fri, Sep 30, 2022 at 4:14 PM Mike Michell <mi.mike1...@gmail.com> >> wrote: >> >>> Hi, >>> >>> As a follow-up to this email thread, >>> https://www.mail-archive.com/petsc-users@mcs.anl.gov/msg44070.html >>> >>> Are DMLocalToLocalBegin() and DMLocalToLocalEnd() really available for >>> DMPlex with Fortran on the latest version of PETSc (3.17.99 from GitLab)? >>> Matt commented that the Fortran bindings were updated so that those >>> functions must be available in the latest version of PETSc, however, it >>> seems still they are not working from my test with DMPlex in Fortran. Can >>> anyone provide some comments? Probably I am missing some mandatory header >>> file? Currently, I have headers; >>> >>> #include "petsc/finclude/petscvec.h" >>> #include "petsc/finclude/petscdmplex.h" >>> #include "petsc/finclude/petscdmlabel.h" >>> #include "petsc/finclude/petscdm.h" >>> >> >> The source for these functions is in >> >> src/dm/ftn-auto/dmf.c >> >> Is it there for you? If not, you can run >> >> make allfortranstubs >> >> Fortran functions are not declared, so the header should not matter for >> compilation, just the libraries for linking. >> >> Thanks, >> >> Matt >> >> >>> Thanks, >>> Mike >>> >> >> >> -- >> 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/>