<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Dec 20, 2018 at 4:55 PM Yann Jobic <<a href="mailto:yann.jobic@univ-amu.fr">yann.jobic@univ-amu.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="gmail-m_4796487676714467384moz-cite-prefix">On 20/12/2018 21:33, Matthew Knepley
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr">On Thu, Dec 20, 2018 at 2:35 PM Yann JOBIC <<a href="mailto:yann.jobic@univ-amu.fr" target="_blank">yann.jobic@univ-amu.fr</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div bgcolor="#FFFFFF">
              <div class="gmail-m_4796487676714467384gmail-m_7941325201965150681moz-cite-prefix">Le
                20/12/2018 à 19:05, Matthew Knepley a écrit :<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div class="gmail_quote">
                    <div dir="ltr">On Thu, Dec 20, 2018 at 12:56 PM Yann
                      JOBIC <<a href="mailto:yann.jobic@univ-amu.fr" target="_blank">yann.jobic@univ-amu.fr</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div bgcolor="#FFFFFF">
                        <div class="gmail-m_4796487676714467384gmail-m_7941325201965150681gmail-m_-4337755243075422184moz-cite-prefix">Le
                          20/12/2018 à 16:40, Matthew Knepley a écrit :<br>
                        </div>
                        <blockquote type="cite">
                          <div dir="ltr">
                            <div class="gmail_quote">
                              <div dir="ltr">On Thu, Dec 20, 2018 at
                                9:33 AM Yann JOBIC via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>>
                                wrote:<br>
                              </div>
                              <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear
                                Petsc Users,<br>
                                <br>
                                When i'm using DMPlexCreateBoxMesh, my
                                code works fine. However, when i <br>
                                load the "exact" same mesh from an HDF5
                                file, it's not working anymore <br>
                                (Nonlinear solve did not converge due to
                                DIVERGED_FNORM_NAN iterations 0).<br>
                                <br>
                                The mesh view when i use
                                DMPlexCreateBoxMesh looks like (i
                                labeled my <br>
                                boudary nodes):<br>
                                <br>
                                /* generated with DMPlexCreateBoxMesh */<br>
                                DM Object: Mesh 1 MPI processes<br>
                                   type: plex<br>
                                Mesh in 3 dimensions:<br>
                                   0-cells: 216<br>
                                   1-cells: 540<br>
                                   2-cells: 450<br>
                                   3-cells: 125<br>
                                Labels:<br>
                                   Faces: 6 strata with value/size (2
                                (121), 4 (121), 3 (121), 6 (121), <br>
                                5 (121), 7 (121))<br>
                                   boundary: 1 strata with value/size (1
                                (602))<br>
                                   depth: 4 strata with value/size (0
                                (216), 1 (540), 2 (450), 3 (125))<br>
                                   Face Sets: 6 strata with value/size
                                (6 (25), 5 (25), 3 (25), 4 (25), <br>
                                1 (25), 2 (25))<br>
                                   marker: 1 strata with value/size (1
                                (450))<br>
                                <br>
                                And when i use DMPlexCreateFromFile, or
                                DMLoad, i have :<br>
                                <br>
                                /* generated with H5 file */<br>
                                fin label DM<br>
                                DM Object: Mesh 1 MPI processes<br>
                                   type: plex<br>
                                Mesh in 3 dimensions:<br>
                                   0-cells: 216<br>
                                   1-cells: 540<br>
                                   2-cells: 450<br>
                                   3-cells: 125<br>
                                Labels:<br>
                                   Faces: 6 strata with value/size (2
                                (121), 4 (121), 6 (121), 7 (121), <br>
                                5 (121), 3 (121))<br>
                                   boundary: 1 strata with value/size (1
                                (602))<br>
                                   depth: 4 strata with value/size (0
                                (216), 1 (540), 2 (450), 3 (125))<br>
                                <br>
                                It looks like my DM is not interpolated.
                                Am i wrong ?<br>
                              </blockquote>
                              <div><br>
                              </div>
                              <div>Its interpolated (you have 4 kinds of
                                k-cells, instead of 2). However, you are
                                missing your</div>
                              <div>Face Sets marker, which probably
                                means boundary conditions are not
                                getting applied.</div>
                            </div>
                          </div>
                        </blockquote>
                        My Face marker is label to 1, with the label 
                        "boundary" (i used DMPlexMarkBoundaryFaces)<br>
                        After that, i create a new label, "Faces", with
                        the number associated to the boundary condition.<br>
                        Faces = 0 -> ouest<br>
                        Faces = 1 -> est<br>
                        ...<br>
                        <br>
                        But you're right, I'm missing "Face Sets".<br>
                      </div>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>You are also missing "marker". Both of these
                      are added by the mesh creation function. Do you
                      know</div>
                    <div>which one you are using (setting in a boundary
                      condition)?</div>
                  </div>
                </div>
              </blockquote>
              I'm using DMPlexLoad_HDF5_Internal, which doesn't add
              those markers. <br>
              I'm using the label "Faces", that i create, with has a
              different value defining the physical location of the
              boundary.<br>
              Next, my using this label in order to define my boundary
              condition, as :<br>
                ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wall",
              "Faces", 0, Ncomp, components, (void (*)(void)) zero,
              NInd, nord, NULL);CHKERRQ(ierr);<br>
                ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wall",
              "Faces", 0, Ncomp, components, (void (*)(void)) zero,
              NInd, sud, NULL);CHKERRQ(ierr);<br>
                ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wall",
              "Faces", 0, Ncomp, components, (void (*)(void)) zero,
              NInd, Back, NULL);CHKERRQ(ierr);<br>
                ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wall",
              "Faces", 0, Ncomp, components, (void (*)(void)) zero,
              NInd, Top, NULL);CHKERRQ(ierr);<br>
                ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "in",
              "Faces", 0, Ncomp, components, (void (*)(void)) uIn, NInd,
              west, NULL);CHKERRQ(ierr);<br>
              With:<br>
                const PetscInt Ncomp = 3; /*  dim = 3 */<br>
                const PetscInt components[] = {0,1,2};<br>
                const PetscInt NInd = 1;<br>
                const PetscInt west[] = {2}; /* (x=0) */<br>
                const PetscInt est[] = {3}; /* (x=L_x) */<br>
                const PetscInt sud[] = {4}; /* (y=0) */<br>
                const PetscInt nord[] = {5}; /* (y=L_y) */<br>
                const PetscInt Back[] = {6}; /* (z=0) */<br>
                const PetscInt Top[] = {7}; /* (z=L_z) */<br>
              <br>
              Is it the right way to do it ?<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>It looks right.</div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div bgcolor="#FFFFFF"> Should i have a different label for
              each boundary condition ? I thought that the value was
              enough.<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>The next thing to do is compare residuals.</div>
        </div>
      </div>
    </blockquote>
    <p>I found the bugs. I had one code which has a hard coded domain
      length.... (which was incorrect for the hdf5 file)<br>
    </p>
    <p>The other one was more tricky. In the function where i put
      boundary values, i had to specify the exact same value at the
      corners (imposed more than once).</p>
    <p>I first thought that the last one to change it will be imposed,
      but no, otherwise it crashed.</p>
    <p>Everything is working now.</p>
    <p>Thanks a lot !!</p>
    <p></p></div></blockquote><div>Great!</div><div><br></div><div>   Matt </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF"><p>Yann<br>
    </p>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>   Matt</div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div bgcolor="#FFFFFF"> Thanks,<br>
              <br>
              Yann<br>
              <blockquote type="cite">
                <div dir="ltr">
                  <div class="gmail_quote">
                    <div><br>
                    </div>
                    <div>  Thanks,</div>
                    <div><br>
                    </div>
                    <div>    Matt</div>
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div bgcolor="#FFFFFF"> I couldn't find the
                        function which adds this label.<br>
                        Is there one ? or do i have to do as in 
                        DMPlexCreateCubeMesh_Internal?<br>
                        <br>
                        Thanks,<br>
                        <br>
                        Yann<br>
                        <blockquote type="cite">
                          <div dir="ltr">
                            <div class="gmail_quote">
                              <div>  Thanks,</div>
                              <div><br>
                              </div>
                              <div>    Matt</div>
                              <div> </div>
                              <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> It's
                                strange, because when i use
                                DMPlexCreateFromFile, i put PETSC_TRUE <br>
                                for interpolation.<br>
                                <br>
                                Even after loading the mesh, i used
                                DMPlexInterpolate, which return a <br>
                                new DM (not null).<br>
                                <br>
                                Do you know what's happening here ?<br>
                                Maybe my DIVERGED_FNORM_NAN comes from
                                another part of the code ? <br>
                                (however only the mesh is changing)<br>
                                <br>
                                Thanks,<br>
                                <br>
                                Yann<br>
                              </blockquote>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                    </blockquote>
                  </div>
                </div>
              </blockquote>
              <br>
            </div>
          </blockquote>
        </div>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div dir="ltr" class="gmail-m_4796487676714467384gmail_signature">
          <div dir="ltr">
            <div>
              <div dir="ltr">
                <div>
                  <div dir="ltr">
                    <div>What most experimenters take for granted before
                      they begin their experiments is infinitely more
                      interesting than any results to which their
                      experiments lead.<br>
                      -- Norbert Wiener</div>
                    <div><br>
                    </div>
                    <div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>