Dear Matt

Il 25/10/24 01:02, Matthew Knepley ha scritto:
On Thu, Oct 24, 2024 at 6:04 PM Matteo Semplice <matteo.sempl...@uninsubria.it> wrote:

    Hi. The HDF5 solution looks good to me, but I now get this error

Okay, I can make a workaround for this. Here is what is happening.

When you output solutions, you really want the essential boundary conditions included in the output, and the only way I have to do that is for you to tell me about the discretization, so I
require the DS.

What I can do is ignore this step if there is no DS. Let me do that and mail you with the branch.

Sorry for the long delay, but now I am taking this up again.

In my code I compute all fields in all cells and I have no boundary conditions. I tried to just call DMCreateDS on the mesh, but the error does not change. I guess that I need to do a minimal setup on the DS to have it working.

If you have some time, could you create the branch you mentioned in your message or tell me what is the minimal action I have to do to setup a "fake" ds? Whichever is the best for you is fine with me.

If you need more info, in my Section I have 3 fields attached to cells. I have also another dm with a field attached to vertices, but this latter is less important and I don't really need it in output for production runs.

Thanks

    Matteo


  Thanks!

     Matt

    $ ../src/saveDemo
    Creating mesh with (10,10) faces
    [0]PETSC ERROR: --------------------- Error Message
    --------------------------------------------------------------
    [0]PETSC ERROR: Object is in wrong state
    [0]PETSC ERROR: Need to call DMCreateDS() before calling DMGetDS()
    [0]PETSC ERROR: See 
https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjVPxoR1-Q$
  for trouble
    shooting.
    [0]PETSC ERROR: Petsc Release Version 3.21.5, unknown
    [0]PETSC ERROR: ../src/saveDemo on a  named dentdherens by matteo
    Fri Oct 25 00:00:44 2024
    [0]PETSC ERROR: Configure options --COPTFLAGS="-O3 -march=native
    -mtune=native -mavx2" --CXXOPTFLAGS="-O3 -march=native
    -mtune=native -mavx2" --FOPTFLAGS="-O3 -march=native -mtune=native
    -mavx2" --PETSC_ARCH=op
    t --with-strict-petscerrorcode --download-hdf5
    --prefix=/home/matteo/software/petsc/3.21-opt/ --with-debugging=0
    --with-gmsh --with-metis --with-parmetis --with-triangle
    PETSC_DIR=/home/matteo/software/petsc --
    force
    [0]PETSC ERROR: #1 DMGetDS() at
    /home/matteo/software/petsc/src/dm/interface/dm.c:5525
    [0]PETSC ERROR: #2 DMPlexInsertBoundaryValues_Plex() at
    /home/matteo/software/petsc/src/dm/impls/plex/plexfem.c:1136
    [0]PETSC ERROR: #3 DMPlexInsertBoundaryValues() at
    /home/matteo/software/petsc/src/dm/impls/plex/plexfem.c:1274
    [0]PETSC ERROR: #4 VecView_Plex_HDF5_Internal() at
    /home/matteo/software/petsc/src/dm/impls/plex/plexhdf5.c:477
    [0]PETSC ERROR: #5 VecView_Plex() at
    /home/matteo/software/petsc/src/dm/impls/plex/plex.c:656
    [0]PETSC ERROR: #6 VecView() at
    /home/matteo/software/petsc/src/vec/vec/interface/vector.c:806
    [0]PETSC ERROR: #7 main() at saveDemo.cpp:123
    [0]PETSC ERROR: No PETSc Option Table entries
    [0]PETSC ERROR: ----------------End of Error Message -------send
    entire error message to petsc-ma...@mcs.anl.gov----------
    --------------------------------------------------------------------------

    MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_SELF
    with errorcode 73.

    NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
    You may or may not see output from other processes, depending on
    exactly when Open MPI kills them.
    --------------------------------------------------------------------------

    I attach the modified sample code that produced the above error.

    Thanks

        Matteo

    Il 24/10/24 22:20, Matthew Knepley ha scritto:
    I just looked at the code. The VTK code is very old, and does not
    check for cell overlap.

    We have been recommending that people use either HDF5 or CGNS,
    both of which work in this case
    I believe. I can fix VTK if that is what you want, but it might
    take me a little while as it is very busy at
    work right now. However, if you output HDF5, then you can run

      ./lib/petsc/bin/petsc_gen_xdmf.py mesh.h5

    and it will generate an XDMF file so you can load it into
    ParaView. Or you can output CGNS which I think
    ParaView understands.

      Thanks,

         Matt

    On Thu, Oct 24, 2024 at 4:02 PM Semplice Matteo
    <matteo.sempl...@uninsubria.it> wrote:

        Hi,
              I tried again today and have (re?)discovered this
        example
        
https://urldefense.us/v3/__https://petsc.org/release/src/dm/impls/plex/tutorials/ex14.c.html__;!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjVM1k_vVQ$
 ,
        but I cannot understand if in my case I should call
        PetscSFCreateSectionSF
        
<https://urldefense.us/v3/__https://petsc.org/release/manualpages/PetscSF/PetscSFCreateSectionSF/__;!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjXAq_GDrQ$
 > and,
        if so, how should I then activate the returned SF.
        Matteo
        ------------------------------------------------------------------------
        *Da:* Semplice Matteo
        *Inviato:* martedì 22 ottobre 2024 00:24
        *A:* Matthew Knepley <knep...@gmail.com>
        *Cc:* PETSc <petsc-users@mcs.anl.gov>
        *Oggetto:* Re: [petsc-users] local/global DMPlex Vec output

        Dear Matt,

            I guess you're right: thresholding by rank==0 and rank==1
        in paraview reveals that it is indeed the overlap cells that
        are appear twice in the output.

        The attached file is not exactly minimal but hopefully short
        enough. If I run it in serial, all is ok, but with

            mpirun -np 2 ./saveDemo

        it creates a 10x10 grid, but I get "output.vtu" with a total
        of 120 cells. However the pointSF of the DMPlex seems correct.

        Thanks

            Matteo

        Il 21/10/24 19:15, Matthew Knepley ha scritto:
        On Mon, Oct 21, 2024 at 12:22 PM Matteo Semplice via
        petsc-users <petsc-users@mcs.anl.gov> wrote:

            Dear petsc-users,

                I am having issues with output of parallel data
            attached to a DMPlex (or maybe more fundamental ones
            about DMPlex...).

            So I currently

             1. create a DMPlex (DMPlexCreateGmshFromFile or
                DMPlexCreateBoxMesh)
             2. partition it
             3. and create a section for my data layout with
                DMPlexCreateSection(ctx.dmMesh, NULL, numComp,
                numDof, numBC, NULL, NULL, NULL, NULL, &sUavg)
             4. DMSetLocalSection(ctx.dmMesh, sUavg)
             5. create solLoc and solGlob vectors with
                DMCreateGlobalVector and DMCreateLocalVector
             6. solve ....
             7. VecView(ctx.solGlob, vtkViewer) on a .vtu file

            but when I load data in ParaView I get more cells than
            expected and it is as if the cells in the halo are put
            twice in output. (I could create a MWE if the above is
            not clear)

        I think we need an MWE here, because from the explanation
        above, it should work.

        However, I can try to guess the problem. When you partition
        the mesh, I am guessing that you have cells in the overlap.
        These cells
        must be in the point SF in order for the global section to
        give them a unique owner. Perhaps something has gone wrong here.

          Thanks,

             Matt

            I guess that the culprit is point (4), but if I replace
            it with DMSetGlobalSection then I cannot create the
            local vector at point (5).

            How should I handle this properly? In my code I need to
            create both local and global vectors, to perform at
            least GlobalToLocal and to save the global data.

            (On a side note, I tried also HDF5 but then it complains
            about the DM not having a DS...; really, any working
            solution that allows data to be explored with Paraview
            is fine)

            Thanks for any advice!

            Matteo Semplice



-- 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjVfVZa3zQ$ <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjUhSnQjTQ$ >

-- ---
        Professore Associato in Analisi Numerica
        Dipartimento di Scienza e Alta Tecnologia
        Università degli Studi dell'Insubria
        Via Valleggio, 11 - Como



-- 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjVfVZa3zQ$ <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjUhSnQjTQ$ >

-- ---
    Professore Associato in Analisi Numerica
    Dipartimento di Scienza e Alta Tecnologia
    Università degli Studi dell'Insubria
    Via Valleggio, 11 - Como



--
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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjVfVZa3zQ$ <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!f3xcC-P6ZKjh4GKu4oz9-xo0-soAZzH97UszdXrhFrCLfp14uEixVvm8ME-t8J1qTOJY50bopUUkRuerZImYSYMcYOyMJjUhSnQjTQ$ >

--
---
Professore Associato in Analisi Numerica
Dipartimento di Scienza e Alta Tecnologia
Università degli Studi dell'Insubria
Via Valleggio, 11 - Como

Reply via email to