[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.