On Wed, Apr 20, 2011 at 00:35, Ethan Coon <ecoon at lanl.gov> wrote: > Ok, here's a patch that does the very very special case of: > > p=P=1, s > p, DMDA_BOUNDARY_PERIODIC in the z-direction. > > Note this is really only possible in the z-direction... >
That is the case that you usually want, otherwise DMDAVecGetArray has rather inefficient indexing. > when in the > z-direction, we can just check if the global index < 0 or > x*y*z and > adjust appropriately. So this can't generalize to x- or y- directions > (though it could do the y-direction in the 2D case, allowing one to do > 1D problems in a 2D algorithm?) > > Compared to the rest of the cruft in da3.c and how non-general the > global index generation is overall, it's not actually that ugly... > We should all go unstructured for everything. Then we would have already paid the storage cost of heavier data structures so many of the special cases go away. :-) > > I've tested with s=2 and 3, BOX and STAR, and the indices look right > (i.e. they are identical in the z-dimension). But it's ugly, so please > test with your stuff too Jed. > It seems to be working with Andrew's MHD code so I've pushed your patch. Thank you Ethan. Andrew, your code is running now with NZ=1. Your function evaluation still evaluates to zero so SNESSolve is not doing any iterations. I assume there is some other step to turn on your source terms. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20110420/48ce4531/attachment.html>
