<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 26, 2017 at 1:54 AM, Mohammad Hassan Baghaei <span dir="ltr"><<a href="mailto:mhbaghaei@mail.sjtu.edu.cn" target="_blank">mhbaghaei@mail.sjtu.edu.cn</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div class="m_5301714582218519025WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hello<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I want to know whether is it possible that a specific field in the section have been defined at some time on edges and other times on the vertices. </span></p></div></div></blockquote><div><br></div><div>What do you mean "at some time"? If you mean that some vertices have dofs, but not all, and some edges have dofs, but not all, then this is fine.</div><div>Otherwise, I do not understand what you mean.</div><div><br></div><div>If you mean your simulation is running, and then you decide that they discretization should change, you will have to recreate everything, including the PetscSection,</div><div>the Vec and Mat, and solver.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Mattt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div class="m_5301714582218519025WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">This change in the dof , I think, may cause problem, especially in the global vector size of the dm. At times when the field changes to be defined on the edges, I think, I need to reset the dof with routine. I know how to do this, thanks to Matt.  But, how I can deal with the global vector. At first, the global vector was defined on the vertices, but by this change. How would the global vector would response? Do I need to change the global vector?<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thanks<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Amir<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><div><div><div><p class="MsoNormal"><u></u> <u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">Hello<u></u><u></u></p><p class="m_5301714582218519025gmail-msonormal">I am using the DMPlex interface for the solving PDEs.<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Great. What discretization are you using?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">A  part of mesh, considering, is staggered grid, at the location of middle of each edge.<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">So you would like to put variables at each edge midpoint?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">After generation of main grid points, I find it hard to have the staggered grid at the prescribed location.<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">In Plex, the topology is specified by the DMPlex, but the dof layout is specified by a PetscSection. To put<u></u><u></u></p></div><div><p class="MsoNormal">variables on edges, you could use:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">DMGetDefaultSection(dm, &s);<u></u><u></u></p></div><div><p class="MsoNormal">DMPlexGetDepthStratum(dm, 1, &eStart, &eEnd);<u></u><u></u></p></div><div><p class="MsoNormal">for (e = eStart; e < eEnd; ++e) {<u></u><u></u></p></div><div><p class="MsoNormal">  PetscSectionAddDof(s, e, 1);<u></u><u></u></p></div><div><p class="MsoNormal">}<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">and of course any other dofs you are using.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">I want to know how to deal with the staggered besides of main grid. Is it better to have another DM for the staggered?<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Another option is to use several DMDA. This has its own drawbacks.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">Is it possible to extend the DMChart and inserting the points.<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If the chart does not have edges, it is because it has not been interpolated. Either pass the PETSC_TRUE, or call<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexInterpolate.html" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/DMPLEX/<wbr>DMPlexInterpolate.html</a><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">  Thanks,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">      Matt<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="m_5301714582218519025gmail-msonormal">I would really appreciate for your time.<u></u><u></u></p><p class="m_5301714582218519025gmail-msonormal">Amir  <u></u><u></u></p></div></div></blockquote></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- <u></u><u></u></p><div><div><div><div><div><p class="MsoNormal">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<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~<wbr>knepley/</a><u></u><u></u></p></div></div></div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><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.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>