<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Jun 18, 2016 at 9:26 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Sat, Jun 18, 2016 at 8:56 AM, Sander Arens <span dir="ltr"><<a href="mailto:Sander.Arens@ugent.be" target="_blank">Sander.Arens@ugent.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hello all,<br><br></div>Recently I've been trying to run a fem problem using DMPlex, PetscFE, etc. using a mesh created with gmsh. I used DMPlexReverseCell to get rid of the negative jacobian determinants. However, I noticed another problem: when I projected the coordinates on a quadratic fem-field and interpolated them they didn't match the interpolated values of the original coordinate field anymore.<br><br></div>I attached a simple test to reproduce this. With linear interpolation I see no problem, it's only when I start using quadratic interpolation.<br><br></div>I have no idea why this is giving problems. Am I missing something simple here or is this a bug?<br></div></div></div></blockquote><div><br></div></span><div>Tests for this already exist</div><div><br></div><div>  <a href="https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/src/dm/impls/plex/examples/tests/ex3.c?at=master&fileviewer=file-view-default" target="_blank">https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/src/dm/impls/plex/examples/tests/ex3.c?at=master&fileviewer=file-view-default</a></div><div><br></div><div>with run parameters here:</div><div><br></div><div>  <a href="https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/config/builder.py?at=master&fileviewer=file-view-default#builder.py-58" target="_blank">https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/config/builder.py?at=master&fileviewer=file-view-default#builder.py-58</a></div><div><br></div><div>and specifically for P2 triangles</div><div><br></div><div>  <a href="https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/config/builder.py?at=master&fileviewer=file-view-default#builder.py-72" target="_blank">https://bitbucket.org/petsc/petsc/src/996a00f1a1693e2d85044ed633fe1848cf357f2a/config/builder.py?at=master&fileviewer=file-view-default#builder.py-72</a></div><div><br></div><div>1) Does the test run for you?</div><div><br></div><div>  ./config/builder2.py check src/dm/impls/plex/examples/tests/ex3.c</div><div><br></div><div>2) If so, then could it be that you assume something about the order of functions?</div></div></div></div></blockquote><div><br></div><div>I am having a hard time understanding what you are doing here:</div><div><br></div><div><pre class="">  /* View the projected coordinates field */
  ierr = VecGetSubVector(u, fields[0], &subvec);CHKERRQ(ierr);
  ierr = PetscObjectSetName((PetscObject) subvec, fieldNames[0]);CHKERRQ(ierr);
  ierr = VecViewFromOptions(subvec, NULL, "-projectedcoordinates_vec_view");CHKERRQ(ierr);
  ierr = VecRestoreSubVector(u, fields[0], &subvec);CHKERRQ(ierr);

  /* View the interpolated coordinates field */
  ierr = VecGetSubVector(u, fields[1], &subvec);CHKERRQ(ierr);
  ierr = PetscObjectSetName((PetscObject) subvec, fieldNames[1]);CHKERRQ(ierr);
  ierr = VecViewFromOptions(subvec, NULL, "-interpolatedcoordinates_vec_view");CHKERRQ(ierr);
  ierr = VecRestoreSubVector(u, fields[1], &subvec);CHKERRQ(ierr);</pre></div><div><br></div><div>So the values in 'u' are the FEM coefficients for the coordinate function {x, y}. Why are you calling 'x' projected and</div><div>'y' interpolated?</div><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-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><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-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div>Thanks,<br></div>Sander<span class=""><font color="#888888"><br></font></span></div><span class=""><font color="#888888">
</font></span></blockquote></div><span class=""><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div data-smartmail="gmail_signature">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>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">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></div>