<head><!-- BaNnErBlUrFlE-HeAdEr-start -->
<style>
#pfptBannerkw73wl8 { all: revert !important; display: block !important;
visibility: visible !important; opacity: 1 !important;
background-color: #D0D8DC !important;
max-width: none !important; max-height: none !important }
.pfptPrimaryButtonkw73wl8:hover, .pfptPrimaryButtonkw73wl8:focus {
background-color: #b4c1c7 !important; }
.pfptPrimaryButtonkw73wl8:active {
background-color: #90a4ae !important; }
</style>
<!-- BaNnErBlUrFlE-HeAdEr-end -->
</head><!-- BaNnErBlUrFlE-BoDy-start -->
<!-- Preheader Text : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">
On Sun, Feb 25, 2024 at 7: 21 AM MIGUEL MOLINOS PEREZ <mmolinos@ us. es> wrote: Dear Matthew, Thank you for answer me out of office hours and for the suggestion. If I interpret it correctly, your point is using the background mesh halo to
</div>
<!-- Preheader Text : END -->
<!-- Email Banner : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerStart</div>
<!--[if ((ie)|(mso))]>
<table border="0" cellspacing="0" cellpadding="0" width="100%" style="padding: 16px 0px 16px 0px; direction: ltr" ><tr><td>
<table border="0" cellspacing="0" cellpadding="0" style="padding: 0px 10px 5px 6px; width: 100%; border-radius:4px; border-top:4px solid #90a4ae;background-color:#D0D8DC;"><tr><td valign="top">
<table align="left" border="0" cellspacing="0" cellpadding="0" style="padding: 4px 8px 4px 8px">
<tr><td style="color:#000000; font-family: 'Arial', sans-serif; font-weight:bold; font-size:14px; direction: ltr">
This Message Is From an External Sender
</td></tr>
<tr><td style="color:#000000; font-weight:normal; font-family: 'Arial', sans-serif; font-size:12px; direction: ltr">
This message came from outside your organization.
</td></tr>
</table>
</td></tr></table>
</td></tr></table>
<![endif]-->
<![if !((ie)|(mso))]>
<div dir="ltr" id="pfptBannerkw73wl8" style="all: revert !important; display:block !important; text-align: left !important; margin:16px 0px 16px 0px !important; padding:8px 16px 8px 16px !important; border-radius: 4px !important; min-width: 200px !important; background-color: #D0D8DC !important; background-color: #D0D8DC; border-top: 4px solid #90a4ae !important; border-top: 4px solid #90a4ae;">
<div id="pfptBannerkw73wl8" style="all: unset !important; float:left !important; display:block !important; margin: 0px 0px 1px 0px !important; max-width: 600px !important;">
<div id="pfptBannerkw73wl8" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-weight:bold !important; font-weight:bold; font-size:14px !important; line-height:18px !important; line-height:18px">
This Message Is From an External Sender
</div>
<div id="pfptBannerkw73wl8" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-weight:normal; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-size:12px !important; line-height:18px !important; line-height:18px; margin-top:2px !important;">
This message came from outside your organization.
</div>
</div>
<div style="clear: both !important; display: block !important; visibility: hidden !important; line-height: 0 !important; font-size: 0.01px !important; height: 0px"> </div>
</div>
<![endif]>
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerEnd</div>
<!-- Email Banner : END -->
<!-- BaNnErBlUrFlE-BoDy-end -->
<div dir="ltr"><div dir="ltr">On Sun, Feb 25, 2024 at 7:21 AM MIGUEL MOLINOS PEREZ <<a href="mailto:mmolinos@us.es">mmolinos@us.es</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
Dear Matthew,
<div><br>
</div>
<div>Thank you for answer me out of office hours and for the suggestion. If I interpret it correctly, your point is using the background mesh halo to identify and create ghosts particles in the overlapping region using DMSwarmMigrate(). </div>
<div><br>
</div>
<div>Then two questions hits me: </div>
<div>
<ul>
<li>If I change a variable in the “real” particle (say the position), it should be updated in the replicas on the overlapped regions, right? This sort of communicator is included in <span style="color:rgb(0,0,0)">DMSwarmMigrate()?</span></li></ul></div></div></blockquote><div>No, the particles that are migrated are copies. There is no current analogue of DMGlobalToLocal(). It would need to be constructed. It is possible, but would take writing some code. All applications we have supported to date do not use replicated particles. <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><div><ul><li><font color="#000000">The function </font><span style="color:rgb(0,0,0)">DMSwarmCreateLocalVectorFromField() does </span><font color="#000000">not include extra space for ghost particles. Therefore, I should resize the local
size for each rank to accommodate the replicas manually. Right? </font></li></ul></div></div></blockquote><div>It uses all particles on the process. If some of those are replicas, they will be included.</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:1px solid rgb(204,204,204);padding-left:1ex"><div>
<div>Anyway, I think this this will take me more time I expected originally. Meanwhile, I will go ahead with my “humble” parallelization scheme which consist in using AllReduce to create a serial vectors with the variables I need to evaluate rank-wise the
residual equations of my problem (please, don’t judge me, publish or perish...)</div>
<div><br>
</div>
<div>Many thanks,</div>
<div>Miguel</div>
<div><br id="m_4908678903407447622lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type="cite">
<div>On Feb 24, 2024, at 4:24 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>> wrote:</div>
<br>
<div>
<div dir="ltr">
<div dir="ltr">On Fri, Feb 23, 2024 at 5:14 PM MIGUEL MOLINOS PEREZ <<a href="mailto:mmolinos@us.es" target="_blank">mmolinos@us.es</a>> wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">
Dear all, I am struggling on how to include ghost points in DMSwarm local vectors. According to PETSc documentation it seems “straightforward” for a DMDA mesh. However, I am not so sure on how to do it for a DMSwarm. In fact, if I add the result
</div>
<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">
ZjQcmQRYFpfptBannerStart</div>
<u></u>
<div dir="ltr" id="m_4908678903407447622m_-7512293070622100317pfptBanner2orce1q" style="display:block;text-align:left;margin:16px 0px;padding:8px 16px;border-radius:4px;min-width:200px;background-color:rgb(208,216,220);border-top:4px solid rgb(144,164,174)">
<div id="m_4908678903407447622m_-7512293070622100317pfptBanner2orce1q" style="float:left;display:block;margin:0px 0px 1px;max-width:600px">
<div id="m_4908678903407447622m_-7512293070622100317pfptBanner2orce1q" style="display:block;background-color:rgb(208,216,220);font-family:Arial,sans-serif;font-weight:bold;font-size:14px;line-height:18px">
This Message Is From an External Sender </div>
<div id="m_4908678903407447622m_-7512293070622100317pfptBanner2orce1q" style="font-weight:normal;display:block;background-color:rgb(208,216,220);font-family:Arial,sans-serif;font-size:12px;line-height:18px;margin-top:2px">
This message came from outside your organization. </div>
</div>
<div style="height:0px;clear:both;display:block;line-height:0;font-size:0.01px"> </div>
</div>
<u></u>
<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">
ZjQcmQRYFpfptBannerEnd</div>
<div>
<div>
<div dir="auto">
<div dir="auto">Dear all,
<div><br>
</div>
<div>I am struggling on how to include ghost points in DMSwarm local vectors. According to PETSc documentation it seems “straightforward” for a DMDA mesh. However, I am not so sure on how to do it for a <span>DMSwarm. In fact, if I add the result of </span><span style="color:rgb(99,99,36);font-family:Menlo,Monaco,"Courier New",monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">DMSwarmGetLocalSize
</span><font>for each rank, the result is the <span>exact</span> number of particles in the system. Which means that the halo is zero. </font></div>
<div><span><br>
</span></div>
<div><span>S</span><font>ince there is a function called </font><span style="color:rgb(99,99,36);font-family:Menlo,Monaco,"Courier New",monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">DMSwarmCreateLocalVectorFromField,</span><span>I
was wandering if there is a function already implemented in </span><font>petsc (and I’m missing it) to </font><span>include ghost points </span><span>in DMSwarm</span><span> and therefore don’t have to reinvent the wheel. If so,
is there any example out there I can follow?</span></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>DMSwarm is currently different from the other DMs. There is no idea of identity for particles, so there is no idea of a shared particle. You can create this by adding an ID to your particle fields, but it would be a manual process. DMSwarmMigrate() can
duplicate particles if you have an overlapping mesh, which would mimic shared particles.</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:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div>
<div>
<div dir="auto">
<div dir="auto">
<div>Thanks in advance.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Miguel<br>
<br>
</div>
<div>
<div style="display:block">
<div style="display:inline-block" role="link"><a style="border-radius:10px;font-family:-apple-system,Helvetica,Arial,sans-serif;display:block;width:300px;overflow:hidden;text-decoration:none" rel="nofollow" href="https://urldefense.us/v3/__https://petsc.org/release/manual/vec/__;!!G_uCfscf7eWS!f6U_z6q8Rk6XrOxvbmE8KyNErlmqYwpGzkxCQ56xX0agWaCG0tLVLh1Cml6fTtqvve0aL3HGiAhZn-hDgIoH5w$" dir="ltr" role="button" width="300" target="_blank">
<table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:rgb(229,230,233);font-family:-apple-system,Helvetica,Arial,sans-serif" cellpadding="0" cellspacing="0" border="0" width="300">
<tbody>
<tr>
<td>
<table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system,Helvetica,Arial,sans-serif;table-layout:fixed;background-color:rgb(229,230,233)">
<tbody>
<tr>
<td style="padding:8px 0px">
<div style="max-width:100%;margin:0px 16px;overflow:hidden">
<div style="font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left">
<a rel="nofollow" href="https://urldefense.us/v3/__https://petsc.org/release/manual/vec/__;!!G_uCfscf7eWS!f6U_z6q8Rk6XrOxvbmE8KyNErlmqYwpGzkxCQ56xX0agWaCG0tLVLh1Cml6fTtqvve0aL3HGiAhZn-hDgIoH5w$" style="text-decoration:none" target="_blank"><font color="#272727">petsc.org</font></a></div>
</div>
</td>
<td style="padding:0px 12px 0px 0px" width="32"><a rel="nofollow" href="https://urldefense.us/v3/__https://petsc.org/release/manual/vec/__;!!G_uCfscf7eWS!f6U_z6q8Rk6XrOxvbmE8KyNErlmqYwpGzkxCQ56xX0agWaCG0tLVLh1Cml6fTtqvve0aL3HGiAhZn-hDgIoH5w$" target="_blank"><img style="display: inline-block; width: 32px; height: 32px;" width="32" height="32"></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</a></div>
</div>
<br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><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="https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!bRyZjT28s2cAZIFj69F3Bmv2X5NDZvT-prHmzArFuDq6aqqCaDpfaHH0ip-K53DfXi574ejpx04Dukm3lyRJ$" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><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="https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!bRyZjT28s2cAZIFj69F3Bmv2X5NDZvT-prHmzArFuDq6aqqCaDpfaHH0ip-K53DfXi574ejpx04Dukm3lyRJ$" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>