Praveen,

Mihai makes good suggestions regarding the method to use. If you choose to 
stick with the one you have now, here are a couple comments:

> The mass matrix (and its inverse) has block structure. Should I use a
> BlockMatrix (number of blocks would be equal to number of cells, number of
> cells can be large).

No. BlockMatrix is not meant to have that many blocks and will likely be 
inefficient.


> I also tried doing 
>
> std::vector< FullMatrix<double> > inv_mass_matrix;
>
> inv_mass_matrix.resize( triangulation.n_cells() );
>
> But then I could not allocate memory for the FullMatrix objects.

Why not? What happens when you do
  inv_mass_matrix.resize (triangulation.n_cells(),
                             FullMatrix (dofs_per_cell, dofs_per_cell));
?

You could also think about putting the local mass matrices (or, maybe better, 
their inverse) into a regular SparseMatrix or ChunkSparseMatrix.

Best
 W.

-------------------------------------------------------------------------
Wolfgang Bangerth                email:            [email protected]
                                 www: http://www.math.tamu.edu/~bangerth/

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to