[petsc-users] Direct solver for 3D-FEM
Thomas Witkowski
thomas.witkowski at tu-dresden.de
Fri May 20 08:16:21 CDT 2011
Jed Brown wrote:
> On Fri, May 20, 2011 at 14:55, Thomas Witkowski
> <thomas.witkowski at tu-dresden.de
> <mailto:thomas.witkowski at tu-dresden.de>> wrote:
>
> Could one of you explain me why direct solvers (I make use of
> UMFPACK) seems to work quite bad for 3D-FEM? For a small test
> case, I take a unite square/box and refine it globally
> (bisectioning of triangle/tetrahedrons). I solve a six order PDE
> (that leads to symmetric but indefinite matrices) on it. In 2D
> the resulting system has 49.923 rows with 808.199 non zeros,
> UMFPACK solves the system within 2.8 seconds. For 3D I've refine
> the box such that the resulting matrix has more or less the same
> number of non zeros, in this case 898.807 on 27.027 rows. UMFPACK
> needs 32 seconds to solve it, so more than 10 time as for the 2D
> case. Even if I make use of fourth order Lagrange functions for
> the 2D case, which leads to much denser matrices (49.923 rows and
> 2.705.927 non zeros), UMFPACK solves it within 3.2 seconds. Is
> there any good reason for it?
>
>
> It has to do with maximal independent sets, or (more roughly) that the
> ratio of surface area/volume (3D) is larger than perimeter/area (2D).
> This also affects the amount of communication. You can try using MUMPS
> instead of Umfpack, but it won't change the asymptotics.
>
> For PDE problems in 2D, direct solvers with optimal ordering need O(n
> log n) memory and O(n^{1.5}) flops. In 3D, they need O(n^{4/3}) memory
> and O(n^2) flops.
Thanks for the information. One related question: The system that is
solved here is a 3x3 block matrix: Two of these blocks are empty, two
are the discretized (FEM) identity, three are the discretized Laplace
operator and one block is the discretization of a complex sum of
operators. At all, there are only three different blocks. Can I make
somehow advantages of this structure? I could create the three inverses
of the three different blocks, but exists than a cheap/simple way to
produce the action of the inverse of the whole 3x3 block matrix?
Thomas
More information about the petsc-users
mailing list