We would like to create a vector space from a basis computed using streaming POD from linalg/linalg.py, but the existing implementation of VectorSpaceFromPOD (see romtools/vector_space/init.py) assumes that the snapshots are all in memory; it has the snapshot tensor as its first argument.
I propose we create a new implementation, VectorSpaceFromStreamingPOD, that is able to use the new streaming POD functions. I think this will need to handle some kind of a snapshot loader method/object provided by the user and:
- Apply a specified shift operation to each snapshot. This will need to be a specified vector or the first snapshot; if we want to shift by the mean snapshot, the mean will have to be computed prior to running streaming SVD.
- Apply a specified scaling to each snapshot.
Both of these requirements could have ramifications for the design of the snapshot loader in linalg/linalg.py.
We would like to create a vector space from a basis computed using streaming POD from linalg/linalg.py, but the existing implementation of VectorSpaceFromPOD (see romtools/vector_space/init.py) assumes that the snapshots are all in memory; it has the snapshot tensor as its first argument.
I propose we create a new implementation, VectorSpaceFromStreamingPOD, that is able to use the new streaming POD functions. I think this will need to handle some kind of a snapshot loader method/object provided by the user and:
Both of these requirements could have ramifications for the design of the snapshot loader in linalg/linalg.py.