<div dir="ltr">... and you describe a "boundary condition" as "second derivative is zero", which is not a boundary condition, making your problem ill-posed. (Indeed, consider the family of problems in which you extend the domain in that patch and apply _any_ boundary conditions in the extended domain. All of those solutions are also solutions of your problem with "second derivative is zero" on your "boundary".)</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jan 10, 2013 at 9:44 AM, David Scott <span dir="ltr"><<a href="mailto:d.scott@ed.ac.uk" target="_blank">d.scott@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">
All right, I'll say it differently. I wish to solve<br>
  div.grad phi = 0<br>
with the boundary conditions that I have described.<div class="im"><br>
<br>
On 10/01/2013 15:28, Jed Brown wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Second derivative is not a boundary condition for Poisson; that is the<br>
equation satisfied in the interior. Unless you are intentionally<br>
attempting to apply a certain kind of outflow boundary condition (i.e.,<br>
you're NOT solving Laplace) then there is a problem with your<br>
formulation. I suggest you revisit the continuum problem and establish<br>
that it is well-posed before concerning yourself with implementation<br>
details.<br>
<br>
<br>
On Thu, Jan 10, 2013 at 9:03 AM, David Scott <<a href="mailto:d.scott@ed.ac.uk" target="_blank">d.scott@ed.ac.uk</a><br></div><div><div class="h5">
<mailto:<a href="mailto:d.scott@ed.ac.uk" target="_blank">d.scott@ed.ac.uk</a>>> wrote:<br>
<br>
    Hello,<br>
<br>
    I am solving Poisson's equation (actually Laplace's equation in this<br>
    simple test case) on a 3D structured grid. The boundary condition in<br>
    the first dimension is periodic. In the others there are Von Neumann<br>
    conditions except for one surface where the second derivative is<br>
    zero. I have specified DMDA_BOUNDARY_NONE in these two dimensions<br>
    and deal with the boundary conditions by constructing an appropriate<br>
    matrix. Here is an extract from the Fortran code:<br>
<br>
                   if (j==0) then<br>
                     ! Von Neumann boundary conditions on y=0 boundary.<br>
                     v(1) = 1<br>
                       col(MatStencil_i, 1) = i<br>
                       col(MatStencil_j, 1) = j<br>
                       col(MatStencil_k, 1) = k<br>
                     v(2) = -1<br>
                       col(MatStencil_i, 2) = i<br>
                       col(MatStencil_j, 2) = j+1<br>
                       col(MatStencil_k, 2) = k<br>
                     call MatSetValuesStencil(B, 1, row, 2, col, v,<br>
    INSERT_VALUES, ierr)<br>
                   else if (j==maxl) then<br>
                     ! Boundary condition on y=maxl boundary.<br>
                     v(1) = 1<br>
                       col(MatStencil_i, 1) = i<br>
                       col(MatStencil_j, 1) = j<br>
                       col(MatStencil_k, 1) = k<br>
                     v(2) = -2<br>
                       col(MatStencil_i, 2) = i<br>
                       col(MatStencil_j, 2) = j-1<br>
                       col(MatStencil_k, 2) = k<br>
                     v(3) = 1<br>
                       col(MatStencil_i, 3) = i<br>
                       col(MatStencil_j, 3) = j-2<br>
                       col(MatStencil_k, 3) = k<br>
                     call MatSetValuesStencil(B, 1, row, 3, col, v,<br>
    INSERT_VALUES, ierr)<br>
                   else if (k==0) then<br>
<br>
<br>
    Here the second clause deals with the second derivative on the boundary.<br>
<br>
    In order for this code to work I have to set the stencil width to 2<br>
    even though 'j-2' refers to an interior, non-halo<br>
    point in the grid. This leads to larger halo swaps than would be<br>
    required if a stencil width of 1 could be used.<br>
<br>
    Is there a better way to encode the problem?<br>
<br>
    David<br>
<br>
    --<br>
    The University of Edinburgh is a charitable body, registered in<br>
    Scotland, with registration number SC005336.<br>
<br>
<br>
</div></div></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<br>
-- <br>
Dr. D. M. Scott<br>
Applications Consultant<br>
Edinburgh Parallel Computing Centre<br>
Tel. 0131 650 5921</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
The University of Edinburgh is a charitable body, registered in<br>
Scotland, with registration number SC005336.<br>
</div></div></blockquote></div><br></div>