getfem-users
[Top][All Lists]
Advanced

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

[Getfem-users] Lumped mass matrix


From: Roman Putanowicz
Subject: [Getfem-users] Lumped mass matrix
Date: Mon, 5 Mar 2012 06:41:24 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

Dear All,

At one point I needed lumped mass matrix. In GetFEM one can use
so called Lobatto lumping by using GaussLobatto element and 
GaussLobato quadratures. Unfortunately this can be done only
for 1D elements or for tensor products of such elements.

Another approach to mass lumping is to sum all row entries
of the consistent mas matrix and put in on diagonal. 
I have tried to implement this inside the built-in tensor
manipulation language of getfem::generic_assembly objects.

The result is in attachment.

Trying to use only generic_assembly provided operation
results in the introduction of a fourth order tensor H
which on the second order tensor is to sum element entries
and put them on diagonal.

Well it works, I have tested it on segment and triangular
elements.

There is one thing which bothers me however -- this approach
requires reduction with sparse but potentially very large
tensor H (number of entries is N^4 where N is
number of degrees of freedom. Number of non-zero entries
is only N^2). How this affects performance is yet to be tested.

I see two other approaches :
  a)  summing the rows to the assembled global matrix.
  b)  providing additional functions to generic_assembly language
     (for instance sum of rows, creation of diagonal matrix, 
      selection of entries via 0-1 matrix, etc).

Definitely I will look at this issue, but I am writing this
already in case someone of you have dealt with similar problems
or would like to make some comments.

Regards,

Roman
-- 
Roman Putanowicz, PhD  < address@hidden  >
Institute for Computational Civil Engng (L-5) 
Dept. of Civil Engng, Cracow Univ. of Technology
www.l5.pk.edu.pl, tel. +48 12 628 2569, fax 2034

Attachment: lumped_mass.cxx
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]