[petsc-users] PetscSF Fortran interface

Junchao Zhang junchao.zhang at gmail.com
Tue Jan 10 11:37:48 CST 2023


Hi, Nicholas,
  Could you make a merge request to PETSc and then our Fortran experts can
comment on your MR?
  Thanks.

--Junchao Zhang


On Tue, Jan 10, 2023 at 11:10 AM Nicholas Arnold-Medabalimi <
narnoldm at umich.edu> wrote:

> Hi Junchao
>
> I think I'm almost there, but I could use some insight into how to use the
> PETSC_F90_2PTR_PROTO and F90Array1dAccess for the remoteOffset parameter
> input so if another function comes up, I can add it myself without wasting
> your time.
> I am very grateful for your help and time.
>
> Sincerely
> Nicholas
>
> On Tue, Jan 10, 2023 at 10:55 AM Junchao Zhang <junchao.zhang at gmail.com>
> wrote:
>
>> Hi, Nicholas,
>>    I am not a fortran guy, but I will try to add petscsfcreatesectionsf.
>>
>>    Thanks.
>> --Junchao Zhang
>>
>>
>> On Tue, Jan 10, 2023 at 12:50 AM Nicholas Arnold-Medabalimi <
>> narnoldm at umich.edu> wrote:
>>
>>> I think it should be something like this, but I'm not very fluent in
>>> Fortran C interop syntax. Any advice would be appreciated. Thanks
>>>
>>> PETSC_EXTERN void petscsfcreatesectionsf(PetscSF *sf, PetscSection *
>>> rootSection, F90Array1d *aremoteOffsets, PetscSection *leafSection,
>>> PetscSF *sectionSF, int * ierr PETSC_F90_2PTR_PROTO(remoteoffsetsd))
>>> {
>>>
>>>   int * remoteOffsets;
>>>   *ierr = F90Array1dAccess(aremoteOffsets, PETSC_INT, (void**) &
>>> remoteOffsets PETSC_F90_2PTR_PARAM(remoteoffsetsd));if (*ierr) return;
>>>   *ierr = PetscSFCreateSectionSF(*sf,*rootSection, &remoteOffsets,*
>>> leafSection,*sectionSF);if (*ierr) return;
>>>
>>> }
>>>
>>> On Mon, Jan 9, 2023 at 11:41 PM Nicholas Arnold-Medabalimi <
>>> narnoldm at umich.edu> wrote:
>>>
>>>> Hi Junchao
>>>>
>>>> Thanks again for your help in November. I've been using the your merge
>>>> request branch quite heavily. Would it be possible to add a
>>>> petscsfcreatesectionsf interface as well?
>>>> I'm trying to write it myself using your commits as a guide but I have
>>>> been struggling with handling the section parameter properly.
>>>>
>>>> Sincerely
>>>> Nicholas
>>>>
>>>> On Sat, Nov 19, 2022 at 9:44 PM Junchao Zhang <junchao.zhang at gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Nov 19, 2022 at 8:05 PM Nicholas Arnold-Medabalimi <
>>>>> narnoldm at umich.edu> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Thanks, this is awesome. Thanks for the very prompt fix. Just one
>>>>>> question: will the array outputs on the fortran side copies (and need to be
>>>>>> deallocated) or direct access to the dmplex?
>>>>>>
>>>>> Direct access to internal data;  no need to deallocate
>>>>>
>>>>>
>>>>>>
>>>>>> Sincerely
>>>>>> Nicholas
>>>>>>
>>>>>> On Sat, Nov 19, 2022 at 8:21 PM Junchao Zhang <
>>>>>> junchao.zhang at gmail.com> wrote:
>>>>>>
>>>>>>> Hi, Nicholas,
>>>>>>>   See this MR, https://gitlab.com/petsc/petsc/-/merge_requests/5860
>>>>>>>   It is in testing, but you can try branch
>>>>>>> jczhang/add-petscsf-fortran to see if it works for you.
>>>>>>>
>>>>>>>   Thanks.
>>>>>>> --Junchao Zhang
>>>>>>>
>>>>>>> On Sat, Nov 19, 2022 at 4:16 PM Nicholas Arnold-Medabalimi <
>>>>>>> narnoldm at umich.edu> wrote:
>>>>>>>
>>>>>>>> Hi Junchao
>>>>>>>>
>>>>>>>> Thanks. I was wondering if there is any update on this. I may write
>>>>>>>> a small interface for those two routines myself in the interim but I'd
>>>>>>>> appreciate any insight you have.
>>>>>>>>
>>>>>>>> Sincerely
>>>>>>>> Nicholas
>>>>>>>>
>>>>>>>> On Wed, Nov 16, 2022 at 10:39 PM Junchao Zhang <
>>>>>>>> junchao.zhang at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi, Nicholas,
>>>>>>>>>   I will have a look and get back to you.
>>>>>>>>>   Thanks.
>>>>>>>>> --Junchao Zhang
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 16, 2022 at 9:27 PM Nicholas Arnold-Medabalimi <
>>>>>>>>> narnoldm at umich.edu> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Petsc Users
>>>>>>>>>>
>>>>>>>>>> I'm in the process of adding some Petsc for mesh management into
>>>>>>>>>> an existing Fortran Solver. It has been relatively straightforward so far
>>>>>>>>>> but I am running into an issue with using PetscSF routines. Some like the
>>>>>>>>>> PetscSFGetGraph work no problem but a few of my routines require the use of
>>>>>>>>>> PetscSFGetLeafRanks and PetscSFGetRootRanks and those don't seem to be in
>>>>>>>>>> the fortran interface and I just get a linking error. I also don't seem to
>>>>>>>>>> see a PetscSF file in the finclude. Any clarification or assistance would
>>>>>>>>>> be appreciated.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Sincerely
>>>>>>>>>> Nicholas
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Nicholas Arnold-Medabalimi
>>>>>>>>>>
>>>>>>>>>> Ph.D. Candidate
>>>>>>>>>> Computational Aeroscience Lab
>>>>>>>>>> University of Michigan
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Nicholas Arnold-Medabalimi
>>>>>>>>
>>>>>>>> Ph.D. Candidate
>>>>>>>> Computational Aeroscience Lab
>>>>>>>> University of Michigan
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Nicholas Arnold-Medabalimi
>>>>>>
>>>>>> Ph.D. Candidate
>>>>>> Computational Aeroscience Lab
>>>>>> University of Michigan
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Nicholas Arnold-Medabalimi
>>>>
>>>> Ph.D. Candidate
>>>> Computational Aeroscience Lab
>>>> University of Michigan
>>>>
>>>
>>>
>>> --
>>> Nicholas Arnold-Medabalimi
>>>
>>> Ph.D. Candidate
>>> Computational Aeroscience Lab
>>> University of Michigan
>>>
>>
>
> --
> Nicholas Arnold-Medabalimi
>
> Ph.D. Candidate
> Computational Aeroscience Lab
> University of Michigan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230110/af010b9c/attachment-0001.html>


More information about the petsc-users mailing list