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

**From:** Michael A Heroux (*maherou_at_[hidden]*)

**Date:** 2005-03-24 16:30:50

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

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.

2) I have to admit that I am concrete-minded, probably to a fault. Still, I

strongly believe in the statement that "abstraction can be used to reduce

any type of complexity, except for too much abstraction." We have

experienced this over the years as part of the Trilinos project designs.

Too many abstractions, especially abstraction layers, make learning and

using the abstract model complex in its own right. Although there may be

mathematical motivations for elaborate abstraction, I am concerned about

having so many concepts and models. Abstractions must serve the use cases

and scenarios. Maybe this is the case, but again I don't have a good feel

for the requirements of GLAS.

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.

Best regards,

Mike

Michael Heroux

Sandia National Laboratories

(320) 845-7695

maherou_at_[hidden]

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