On 12/08/2022 18:15, Matthew Knepley wrote:
This email was sent to you by someone outside the University.
You should only click on links or attachments if you are certain that the email is genuine and the content is safe.
On Fri, Aug 12, 2022 at 9:27 AM David Scott <d.sc...@epcc.ed.ac.uk> wrote:

    On 12/08/2022 11:26, Matthew Knepley wrote:
    This email was sent to you by someone outside the University.
    You should only click on links or attachments if you are certain
    that the email is genuine and the content is safe.
    On Fri, Aug 12, 2022 at 2:21 AM Quynh Nguyen
    <nguyenquynh9...@gmail.com> wrote:

        Dear petsc developers and users,

        I am a new petsc user ^_^.
        I have some questions about using DMDA_BOUNDARY_GHOSTED.

        1. I have 2D Poisson code with domain (nx, ny), and I used 
        DMDA_BOUNDARY_NONE, then the size of the matrix is
        (nx*ny)X(nx*ny). */what is the size of the matrix if I used
        DMDA_BOUNDARY_GHOSTED? is it the same size as
        DMDA_BOUNDARY_NONE/*?


    Yes, the matrix should be the same size, but local vectors have
    extra ghost node slots.

        2. if the matrix size of DMDA_BOUNDARY_GHOSTED isn't the same
        as DMDA_BOUNDARY_NONE, */how i can view the matrix
        including ghost points/*? I ask this one because I
        used MatView(P, PETSC_VIEWER_STDOUT_WORLD) to show the matrix
        but excluded ghost points.


    Ghost nodes are there so that stencil operations on local vectors
    work at boundaries. You fill in the slots with boundary information.

    I can see how this works if you are writing your own solver but
    can it be used with a KSP? In the case of periodic boundary
    conditions the boundary values are "filled in" for you by PETSc.
    Is there any way for a user to supply boundary information to a
    PETSc solver when using DMDA_BOUNDARY_GHOSTED?


Right now, there is not. This is mainly due to the lack of consensus for boundary condition specification. Periodic conditions are simple in this respect.

For example, Plex has such a thing

https://petsc.org/main/docs/manualpages/DM/DMAddBoundary/

that can be used to fill in these constrained spots

https://petsc.org/main/docs/manualpages/DMPLEX/DMPlexInsertBoundaryValues/

But there have been many complaints about this interface (and I suspect any interface we choose).

Maybe there is something that we could write that would make it easier for you with DMDA?

The way I had imagined it working was that for each dimension the user could register a function to be to be called at the start of every iteration (in a similar fashion to adding a monitor). Not all of the dimensions would have to be specified as DMDA_BOUNDARY_GHOSTED and thus require a function to be registered. This function would have access to the DMDA and the local vector so it could determine if ghost locations were present and, if so, set appropriate values. Does this make sense?

Thanks,

David

  Thanks,

     Matt

    Thanks,

    David

      Thanks,

         Matt

        I hope someone can explain my wonder :)

        P/S: maybe, those question is simple and a bit stupid ^_^.

        Have a nice day,

-- Quynh Nguyen
        Graduate student, Ocean Engineering.
        School of Naval Architecture and Ocean Engineering,
        University of Ulsan.
        
-----------------------------------------------------------------------------------------
        Mobile: (+82) 010-9394-5595
        Email: nguyenquynh9...@gmail.com; nguyenthiquynhb_...@hus.edu.vn



-- 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/>

    The University of Edinburgh is a charitable body, registered in
    Scotland, with registration number SC005336. Is e buidheann
    carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an
    Alba, àireamh clàraidh SC005336.



--
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/>

Reply via email to