Path: news.mathworks.com!not-for-mail
From: "Bruno Luong" <b.luong@fogale.findmycountry>
Newsgroups: comp.soft-sys.matlab
Subject: Re: condition number of FE matrix -> improving iterative solver
Date: Mon, 9 Nov 2009 07:26:02 +0000 (UTC)
Organization: FOGALE nanotech
Lines: 23
Message-ID: <hd8g6a$pi7$1@fred.mathworks.com>
References: <hd6pba$84c$1@fred.mathworks.com>
Reply-To: "Bruno Luong" <b.luong@fogale.findmycountry>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1257751562 26183 172.30.248.35 (9 Nov 2009 07:26:02 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Mon, 9 Nov 2009 07:26:02 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 390839
Xref: news.mathworks.com comp.soft-sys.matlab:583479


"A B" <gitsnedbutzi@hotmail.com> wrote in message <hd6pba$84c$1@fred.mathworks.com>...
> Hi,
> 
> I'm working on a FE software and right now I'm stuck with the solver.
> 
> I'm both trying cholmod2 (from Tim Davis' package) and standard pcg.
> Right now, i've got a text matrix, which is just a beam with about 30 000dof and cholmod2 wins hands down. However, when using larger matrices, I can't use cholmod2 because there isn't sufficient memory.
> 
> However, I noted a few things which actually surpise me.
> First of all, when using condest on my FE matrix of the beam, the condition number is in the order of 1e8. When checking the statistics of cholmod2, it returns the reciprocal of the condition number as about 1e-3. What is the cause for the big difference in the condition number? I have been told that the condition number for structural problem usually is somewhere arounc 1e4 to 1e5, so I think that the 1e8 is rather high. Especially since it's a simple problem with a regular mesh.

The condition number get bad if you forget to impose appropriate (boundary) condition to make the problem well posed. If boundary is correctly setup, then note that the condition number goes up when mesh size decreases. However a typical characteristic is the smallest eigenvalue of your stiffness matrix is inferior bounded, and the largest eigenvalue goes to infinity as the square of the mesh size for a second order operator.

If you have the mass matrix, check for the first eigenmode, which is the lowest "resonance" mode of your operator. The shape of such eigenmode should look *physical*, whatever it means. This ensures that the boundary condition is correctly setup.

Bruno

> 
> For the pcg I'm using a incomplete lu factorization with zero fill-in. Why is pcg so much slower than the direct solver, even if I use a preconditioner?
> 
> Are there any other tricks to improve the condition number of the my FE matrix, or ways to improve the solution speed of pcg? I need it for problems with more dof? Or is there a way to make cholmod2 use less memory (though it already applies reordering...)
> 
> Thanks for any help on my problem!!