[petsc-users] SNESDMDASNESSetFunctionLocal in Fortran

Matthew Knepley knepley at gmail.com
Tue May 16 19:29:50 CDT 2023


On Tue, May 16, 2023 at 8:07 PM Khaled Nabil Shar Abdelaziz <
kabdelaz at purdue.edu> wrote:

> This is very useful! I was more focused on my search for an example with
> DMDASNES example instead of ctx.
>
>
>
> I guess from the looks of it, I can pass it directly in the ctx argument
> or I can pass the pointer using the interfaces defined in the referenced
> code you provided, correct?
>

Yes.


> Another question I had is that functions has to be defined as external? Is
> that a general case? Or is it just when the subroutine is defined elsewhere
> so I have to define it as external. Because now when the solver calls the
> FormFunction, a NULL is being passed and I can’t access the x or F
> vectors.
>

The symbol has to be exposed by the linker, so most times (unless
everything is in the same file), it needs
to be external.

  Thanks,

     Matt


> Thank you for your patience! I am still new to PETSc and learning how to
> use it.
>
>
>
> *From:* Matthew Knepley <knepley at gmail.com>
> *Sent:* Sunday, May 14, 2023 12:24 PM
> *To:* Khaled Nabil Shar Abdelaziz <kabdelaz at purdue.edu>
> *Cc:* petsc-users at mcs.anl.gov
> *Subject:* Re: [petsc-users] SNESDMDASNESSetFunctionLocal in Fortran
>
>
>
> ---- *External Email*: Use caution with attachments, links, or sharing
> data ----
>
>
>
> On Sun, May 14, 2023 at 12:06 PM Khaled Nabil Shar Abdelaziz <
> kabdelaz at purdue.edu> wrote:
>
> Hey there,
>
>
>
> I'm having a problem with the DMDASNESSetFunctionLocal() function in C and
> its Fortran counterpart. The thing is, in C, you can pass a bunch of
> variables using the ctx parameter, but in Fortran, it only seems to accept
> one variable.
>
>
>
> What's weird is that the SNESSetFunction() function has a similar ctx
> parameter, but in Fortran, it can handle multiple variables for ctx, unlike
> DMDASNESSetFunctionLocal(). Do you know if this is on purpose, or am I
> missing something?
>
>
>
> I think we show how to do this here:
>
>
>
>
> https://gitlab.com/petsc/petsc/-/blob/main/src/snes/tutorials/ex5f90t.F90
>
>
>
>   Thanks,
>
>
>
>      Matt
>
>
>
> Thanks in advance!
>
>
>
> Best regards,
>
> Khaled
>
>
>
>
> --
>
> 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230516/21a18546/attachment-0001.html>


More information about the petsc-users mailing list