## Glas :## Re: [glas] vector space, banach space and hilbert space concepts |

**From:** Karl Meerbergen (*Karl.Meerbergen_at_[hidden]*)

**Date:** 2005-03-25 08:59:50

**Next message:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Previous message:**Karl Meerbergen: "Re: [glas] concepts, algorithms etc"**In reply to:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Next in thread:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Reply:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"

On Thursday 24 March 2005 22:30, Michael A Heroux wrote:

> I have been on this mailing list for several months, but have not taken the

> time to keep up with all the threads. Today I scanned through the 100+

> messages from this list. Here are a few comments:

>

> 1) I think we could really benefit from an all-out brainstorming on the

> requirements, specifically use cases and scenarios, we want to support. I

> am extremely sympathetic to the Agile programming philosophy of

> "barely-sufficient" documentation, but I don't think we have reached that

> level yet. Who are the users and implementers of GLAS? What are the

> relationships between these groups? What are some very specific scenarios

> we want to make sure work? I don't have a good feel for this based on the

> discussion so far.

I think we have had several rounds where requirements were requested, with

very little input, unfortunately. The best document so far is the charter

that was distributed from the start, as far as I can see. Perhaps we should

redistribute the document and ask everyone if something is missing. I think

Toon has the latest version, but he is on holiday.

Perhaps the document should be rewritten, e.g. a bullet list with very

concrete objectives.

I agree that there are many concepts, but this is a result that emerged from

discussions on the mailing list. Everyone has different backgrounds, and it

is not easy to define concepts that meet everyone's exceptations, hence the

large number. Also note that I have tried to make these concepts correspond

to mathematical definitions. I think that if we use a concept vectorspace, it

should correspond to the math concept, otherwise it should get another name.

Some people talk about vectorspace when they mean hilbertspace. It creates

confusion to those who have yet another interpretation of math concepts.

[...]

> 3) On the specific topic of VectorSpace, several Trilinos packages have

> made effective use of this concept. In particular the packages TSFCore

> (becoming Thyra), Tpetra and Epetra (where it is called Map) have this

> class as a core piece of the design and functionality.

>

> VectorSpace is used for:

>

> - Generating vectors (and multivectors, which are collections of compatible

> vectors). Each vector knows its vector space, which can in turn be used to

> generate another compatible vector.

>

> - Generating matrices. A rowVectorSpace and columnVectorSpace define the

> dimension and distribution of matrix rows and columns. Note: These can be

> different than the domainVectorSpace and rangeVectorSpace (see below).

> However, since a matrix "isa" linear operator, a matrix has all four

> VectorSpace attributes.

>

> - Testing compatibility of two vectors. Compatibility is a fairly complex

> issue, and whether or not two vectors are compatible depends on the

> operation being performed. Being able to encapsulate this test and the

> required data into the VectorSpace has been very important for us.

>

> - Testing compatibility of linear operators with vectors. In Trilinos

> packages, we typically have two VectorSpace objects associated with a

> linear operator instance: the domainVectorSpace and the rangeVectorSpace.

> These are used to efficiently check for compatibility in matrix operations.

> For example, to compute y = A*x, where x and y are vectors and A is a

> matrix, we check to see that the vectorSpace of x is compatible with the

> domainVectorSpace of A and the vectorSpace of y is compatible with the

> rangeVectorSpace of A.

>

> Because of how we use VectorSpace, we encapsulate a lot of information in

> this class, including dimensional data.

>

This is very useful information. We have similar objects in our code. I wonder

whether vectorspace is the correct name for this concept. Should it not be

something related to dimensions or sizes? For example, VectorSize,

VectorSpaceSize. I do not want to use the name dimension, because this

corresponds to the dimension of the vectorspace which is not necessarily the

same as the size of a vector/matrix.

Best regards,

Karl

**Next message:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Previous message:**Karl Meerbergen: "Re: [glas] concepts, algorithms etc"**In reply to:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Next in thread:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"**Reply:**Michael A Heroux: "RE: [glas] vector space, banach space and hilbert space concepts"