# [petsc-users] Using petsc for banded matrices and 2D finite differences

Brandt Belson bbelson at princeton.edu
Tue Nov 15 12:03:42 CST 2011

I'm not sure what you mean by the sign of the shift, but the equations are
roughly of the form:

(I dt/Re - L) u = f

where dt~0.1, Re~1000, and L is the Laplacian in 3D, so once it is Fourier
transformed each x-y plane has equations like this:

(I dt/Re + I k_z^2 - L_{k_z}) \hat{u}_{k_z} = \hat{f}_{k_z}

I'm not sure which wavenumber you mean, but k_z goes as nz.

Thanks,
Brandt

On Tue, Nov 15, 2011 at 12:12 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> On Tue, Nov 15, 2011 at 10:57, Brandt Belson <bbelson at princeton.edu>wrote:
>
>> The matrix solves in each x-y plane are linear. The matrices depend on
>> the z wavenumber and so are different at each x-y slice. The equations are
>> basically Helmholtz and Poisson type.
>>
>
> What is the sign of the shift ("good" or "bad" Helmholtz)? If bad, is the
> wave number high?
>
>
>>  They are 3D, but when done in Fourier space, they decouple so each x-y
>> plane can be solved independently.
>>
>
>> I'd like to run on a few hundred processors, but if possible I'd like it
>> to scale to more processors for higher Re. I agree that keeping the
>> z-dimension data local is beneficial for FFTs.
>>
>
> That process count still means about 1M dofs per process, so having 500 in
> one direction is still fine. It would be nice to avoid a direct solve on
> each slice, in which case the partition you describe should be fine. If you
> can't avoid it, then you may want to do a parallel "transpose" where you
> can solve planar problems on sub-communicators. Jack Poulson (Cc'd) may
> have some advice because he has been doing this for high frequency
> Helmholtz.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111115/f5e74812/attachment.htm>