<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Dear Matt,<div><br></div><div>Thanks for your quick response.</div><div><br></div><div>The way I understand it is that I can only modify the halo of a vector, which is simply copied from the other side of the mesh, but matrices don’t actually have halo entries or the like. </div><div><br></div><div>I am not sure the solution to this problem is simply adding the difference dpsi at one boundary only and not subtracting it at the other side. This would mean that at one side you have periodicity plus the added difference, whereas at the other side you just have periodicity. Sounds like it leads to a kind of discontinuity. </div><div><br></div><div>It is also not possible to just add it at the end. It had to be added at every step during the iteration process.</div><div><br></div><div>Would it be possible to model the halo region explicitly by adding two additional points at the leftmost and rightmost boundary, but only on the processes with minimal and maximal Cartesian rank along this dimension where the jump occurs? Then I could modify the matrix and rhs and impose the constraint directly.</div><div><br></div><div>Best wishes and many thanks for your help,</div><div>Oliver   </div><div><br><div><div>On 11 Jun 2015, at 14:44, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 11, 2015 at 8:15 AM, Oliver Henrich <span dir="ltr"><<a href="mailto:ohenrich@epcc.ed.ac.uk" target="_blank">ohenrich@epcc.ed.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear PETSc-Team,<br>
<br>
I am trying to solve a Poisson equation with a mixed periodic-Dirichlet boundary condition. What I have in mind is e.g. a compressible flow with a total pressure difference imposed between the two sides of the system, but otherwise periodic, and periodic boundary conditions along the remaining two dimensions. Another example would be an electrostatic system with dielectric contrast in an external electric field / potential difference.<br>
<br>
For clarity, if x = 0  (N+1) is the left (right) halo site at the boundary and x = 1 (N) is the leftmost (rightmost) site in the physical domain:<br>
<br>
psi(x = 0)  =  psi(x = N) - dpsi<br>
psi(x = N+1) = psi(1) + dpsi<br>
<br>
I know it is possible to solve this with a double Poisson solve, which I try to avoid for performance reasons.<br>
<br>
It is also possible to solve this by modifying the matrix with a master-slave approach that imposes the constraint. This requires defining a transformation matrix that acts on the matrix, the solution vector and the righthand side of the problem.<br>
<br>
The core of the problem I have is that the pressure or potential difference should not be between the leftmost and rightmost site in the physical domain (a standard Dirichlet BC), but between the left- or rightmost site in the physical domain and the corresponding halo site at the opposite side of the system. It should be possible to do this if the entries of the transformation matrix that act on the halo sites can be accessed and modified.<br>
<br>
Is anything like this possible in PETSc?<br></blockquote><div><br></div><div>The way that periodicity works in PETSc right now for DMDA is that values are copied into the halo</div><div>region from the other part of the mesh. Thus, you can just choose to add your delta at the right boundary</div><div>and not at the left. The mechanics would be the same as now. Does that make sense?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Best regards and many thanks,<br>
Oliver<br>
<br>
--<br>
Dr Oliver Henrich<br>
Edinburgh Parallel Computing Centre<br>
School of Physics and Astronomy<br>
University of Edinburgh<br>
King's Buildings, JCMB<br>
Edinburgh EH9 3FD<br>
United Kingdom<br>
<br>
Tel: +44 (0)131 650 5818<br>
Fax: +44 (0)131 650 6555<br>
<br>
--<br>
The University of Edinburgh is a charitable body, registered in<br>
Scotland, with registration number SC005336<br>
<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="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>
</blockquote></div><br><div>
<div><div>--<br>Dr Oliver Henrich<br>Edinburgh Parallel Computing Centre</div><div>School of Physics and Astronomy<br>University of Edinburgh<br>King's Buildings, JCMB<br>Edinburgh EH9 3FD<br>United Kingdom<br><br>Tel: +44 (0)131 650 5818<br>Fax: +44 (0)131 650 6555<br><br>--<br>The University of Edinburgh is a charitable body, registered in<br>Scotland, with registration number SC005336</div></div><div><br></div><br class="Apple-interchange-newline">

</div>
<br></div></body></html>