[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [femm] triangle




To Dear All:


Hop are you? I would like to ask one more thing about re-ordering things. There is an equation Ax = B we want to solve. After re-ordering the sparse matrix A, the matrix becomes banded matrix A' Then the equation we want to solve is that A'x = B. Should not we need to do something to matrix B?

Thanks.
Sincerely,
SE-HO YOU




====================
you se-ho wrote:
Is characteristic of banding matrix (and sparse matrix) inherent nature of
finite element method from its matrix build-up regardless of what kind of
mesh generation program is used? Does "renumbering
methods" absolutely need to make matrix banding or does it just help to
speed up the matrix calculation by making already banded matrix more banding?



It is the "inherent nature" of finite element methods that the resulting matrix is sparse. The reason that the matrices are sparse is that each node only "talks" to the nodes that are directly around it, leaving zeros in the matrix elements that correspond to direct interactions with nodes that are farther away. However, there is nothing in the formulation that automatically makes things banded. For example, if you just used a mesh straight out of Triangle and built your finite element matrix, you'd have a matrix that wasn't banded at all, although it would have a lot of zero entries. Now, iterative methods like Conjugate Gradient can work if you don't have a matrix with a nicely banded structure, but it makes a big difference if you are implementing a direct solver like Gauss Elimination without doing anything tricky. If you renumber your matrix carefully and take advantage of the banding to only allocate space for the entries inside the bandwidth, the size of the memory that you need to allocate to solve the problem is (I think roughly) on the order of n^(3/2), if you have n nodes in your matrix. If you just keep the full matrix, the number is n^2, which can be a huge difference for all but small problems. For direct methods, renumbering is usually the difference between being able to solve a problem and not being able to solve it at all. In contrast, iterative methods that are amenable to sparse matrix storage, where you only need to store the nonzero entries (you don't need any extra space for the algorithm to "work" in), need space on the order of n, which usually makes them more suitable for large problems.
Dave.





_________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp

you se-ho wrote:
Is characteristic of banding matrix (and sparse matrix) inherent nature of 
finite element method from its matrix build-up regardless of what kind of 
mesh generation program is used? Does "renumbering
methods" absolutely need to make matrix banding or does it just help to 
speed up the matrix calculation by making already banded matrix more banding?

It is the "inherent nature" of finite element methods that the resulting matrix is sparse.  The reason that the matrices are sparse is that each node only "talks" to the nodes that are directly around it, leaving zeros in the matrix elements that correspond to direct interactions with nodes that are farther away.  However, there is nothing in the formulation that automatically makes things banded.  For example, if you just used a mesh straight out of Triangle and built your finite element matrix, you'd have a matrix that wasn't banded at all, although it would have a lot of zero entries.  Now, iterative methods like Conjugate Gradient can work if you don't have a matrix with a nicely banded structure, but it makes a big difference if you are implementing a direct solver like Gauss Elimination without doing anything tricky.  If you renumber your matrix carefully and take advantage of the banding to only allocate space for the entries inside the bandwidth, the size of the memory that you need to allocate to solve the problem is (I think roughly) on the order of n^(3/2), if you have n nodes in your matrix.  If you just keep the full matrix, the number is n^2, which can be a huge difference for all but small problems.  For direct methods, renumbering is usually the difference between being able to solve a problem and not being able to solve it at all.  In contrast, iterative methods that are amenable to sparse matrix storage, where you only need to store the nonzero entries (you don't need any extra space for the algorithm to "work" in), need space on the order of n, which usually makes them more suitable for large problems.

Dave.

 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.