Thank you for the quick note. To use PetscFECreateLagrange(), it is unclear about the meaning of "Nc", which is explained as 'number of components' on the manual page. I looked at an example with Nc=1 in src/dm/impls/swarm/tutorials/ex1f90.F90, but could you please detail the meaning of Nc? If only one value (component) is defined on each of p0 and p1 DMs, is Nc=1? Thanks,
> On Thu, Aug 25, 2022 at 12:52 PM Mike Michell <[email protected]> > wrote: > >> Hi, I am trying to find the function you commented, >> DMPlexCreateInterpolator(), from DMPlex manual page, but I do not think >> this function is visible. Any comment about this? >> > > Sorry, it is DMCreateInterpolation(), which in turn calls > DMPlexComputeInterpolatorNested/General. > > Thanks, > > Matt > > >> Thanks, >> >> >>> On Fri, Jul 8, 2022 at 11:26 PM Mike Michell <[email protected]> >>> wrote: >>> >>>> I am using DMPlex for a code with written in Fortran in 2D and 3D. >>>> There were two questions. >>>> >>>> - As a follow up of the previous inquiry: >>>> https://www.mail-archive.com/[email protected]/msg43856.html >>>> Is the local-to-local halo exchange available in Fortran now or still >>>> pending? Currently local-to-global and global-to-local communication are >>>> used since local-to-local has not been allowed for Fortran. >>>> >>> >>> Sorry, it is still on my TODO list. I am trying to get stuff cleared out. >>> >>> >>>> - One code solves discretized equations at each vertex, and another >>>> code I want to couple physics is solving equations at each cell centroid. >>>> Basically, the value at cell centroid needs to be mapped to vertex (or vice >>>> versa) through interpolation/extrapolation for coupling of two codes. Does >>>> petsc function provide this kind of mapping between cell centroid and >>>> vertex? The grids for the two codes can be overlapped. I was trying to find >>>> some FEM infrastructures in petsc, but so far havent found that kind of >>>> functionality. Can I get any comments on that? >>>> >>> >>> Yes, you can create both P0 and P1 discretizations >>> (PetscFECreateLagrange) in two different DMs using DMClone(), and then >>> create an interpolation operator (DMPlexCreateInterpolator) which maps >>> between them. Let me know if something is not clear there. >>> >>> 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/> >
