Boost logo

Glas :

Re: [glas] (no subject)

From: Karl Meerbergen (Karl.Meerbergen_at_[hidden])
Date: 2005-10-14 02:25:40


On Friday 14 October 2005 09:14, Laurent Plagne wrote:
> Hi all,
>
> ********
> I dont know if "nested matrices" is a clever way or not but this is the
> way we designed our LA library applied to deterministic transport codes.
>
> http://parasol.tamu.edu/asci/labfest-may05/lp-Generic_Programming_Experimen
>ts.pdf
>
> Anyway, our point is that we have to deal with complex matrix
> structures. Symbolically, we have deal with objects like
>
> DenseMatrix< DiagonalMatrix< UpperTriangularMatrix < double > > > >
>
> In this respect the block view seemed a bit restrictive.

We are designing the value_type such that this should be possible. The
value_type of a vector/matrix has to be model of some concepts. The
algorithms are designed on these concepts. The more concepts the value_types
(in this case matrices) are satisfied, the more algorithms can be applied.
All depends on what you want to do with such matrices.

>
> ********
> A summer school is being organized by EDF/CEA/INRIA next summer in
> France. In addition to main lectures, we are looking for presentations
> on related topics.
> I think that it would be very interesting to have a presentation of GLAS
> as well as related libraries (uBLAS,MTL,...).
> Any volunteer or suggested speakers ? (for financial consideration, a
> European speaker would more easy to manage...).

A priori I am interested.

>
> Laurent Plagne
> EDF R&D
>
> Wolfgang Bangerth a écrit :
> >In reply to an already several days old message:
> >>I recall a demand for supporting vectors of matrices and matrices of
> >>matrices. My opinion is that this should be another type of collection
> >>where the value_type is still the value_type of the lowest level of
> >>matrix in the nesting of matrices.
> >
> >There is definitely a demand for something like this, though I wouldn't
> >suggest that implementing them as matrices of matrices is a particularly
> >clever way to go.
> >
> >The application where this is important is when one can split a matrix
> >into blocks. Typical applications are discretizations of vector-valued
> >partial differential equations (think: mixed methods, saddle point
> >problems) where instead of solving with a matrix directly, one would like
> >to form Schur complements of its blocks. The right abstraction therefore
> >is to consider the whole matrix as an array of submatrices (blocks).
> >
> >The way we implement this in deal.II (and I believe this is the correct
> >way) is indeed as an array of matrices. One can access individual blocks,
> >but if you try to access individual elements of the matrix, one gets a
> >reference to the corresponding element in the block in which it resides.
> >The BlockMatrix class therefore has a dual interface: access the blocks of
> >the array through
> > Matrix & block (const unsigned int block_i, const unsigned int block_j)
> >and access the elements of the matrix through something like
> > reference operator() (const unsigned int i, const unsigned int j) {
> > return blocks[block_from_global(i)][block_from_global(j)]
> > ->operator() (local_from_global(i), local_from_global(j));
> > }
> >
> >Through the second interface, one can hide the actual storage scheme from
> >algorithms that only expect a matrix, while the first interface allows to
> >extract and operate on individual blocks.
> >
> >
> >If, on the contrary, this would be implemented as matrices-of-matrices,
> >then one would only have the first interface, but algorithms that just
> >expect a transparent matrix object won't work because your operator()
> >doesn't return individual entries of the matrix, but an entire block.
> >
> >
> >For an example of an implementation of such concepts, feel free to take a
> >look at
> > http://www.dealii.org/5.2.0/doxygen/lac/classBlockSparseMatrix.html
> >
> >Best
> > Wolfgang
> >
> >-------------------------------------------------------------------------
> >Wolfgang Bangerth email: bangerth_at_[hidden]
> > www: http://www.math.tamu.edu/~bangerth/
> >
> >_______________________________________________
> >glas mailing list
> >glas_at_[hidden]
> >http://lists.boost.org/mailman/listinfo.cgi/glas
>
> _______________________________________________
> glas mailing list
> glas_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/glas

-- 
==============================================
Look at our unique training program and
Register on-line at http://www.fft.be/?id=35
----------------------------------------------
Karl Meerbergen
Free Field Technologies
16 place de l'Université
B-1348 Louvain-la-Neuve - BELGIUM
Company Phone:  +32 10 45 12 26
Company Fax:    +32 10 45 46 26
Mobile Phone:   +32 474 26 66 59
Home Phone:     +32 2 306 38 10
mailto:Karl.Meerbergen_at_[hidden]
http://www.fft.be
==============================================