[petsc-users] Inhomogeneous laplacian

iwaddington . iwaddington at gmail.com
Fri Nov 29 12:34:02 CST 2013


Thanks Jed, so if I understood correctly in fact there is nothing to be
done, since I was already recomputing the staggered values when passing
from one node to its neighbour. And good Black Friday to you.


On Fri, Nov 29, 2013 at 4:20 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> "iwaddington ." <iwaddington at gmail.com> writes:
>
> > Hi, I am trying to optimize a code that solves an inhomogeneous laplacian
> > pde of the form :
> >
> >        -div ( K(x) grad(u) ) = f           0 < x,y < 1     where K(x) is
> a
> > matrix  that
> >
> > depends   on the position
> >
> >  I use finite differences and the values of "f" and "u" are cell
> centered.
> >
> >  The problem is the following, since each interface is common to two
> cells,
> > and I need the value of K on the interfaces, which is taken as an
> harmonic
> > mean,
>
> This is one choice, and not a perfect one.
>
> > I would like to compute these values only once, and then pass them as
> > some user context to KSPSetComputeOperators, because I am using a
> > dmda. Any ideas ?
>
> You can create a DMDA to hold those staggered coefficients.  Note that
> it may be faster to just recompute the staggered values from
> cell-centered values, since it involves a bit less memory bandwidth, and
> memory bandwidth is the main performance bottleneck for these things.
> That also makes it easier to choose different flux definitions (e.g.,
> for unaligned anisotropy, you'll need at least a 9-point stencil).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20131129/6209b940/attachment.html>


More information about the petsc-users mailing list