You can use VecDuplicateVecs() to create an array of Vec.
Yes, you can use VecLoad() to read the data from a binary file.

Jose


> El 2 sept 2024, a las 8:56, dazza simplythebest <sayos...@hotmail.com> 
> escribió:
> 
> Dear All,
>            I am seeking to perform a large number of eigenvalue calculations 
> (related to a fluid dynamics
>  problem) using the slepc  framework. I have written the program that calls 
> slepc and validated its solutions against 
>  known results for special cases - the Jacobi-Davidson iteration seemed to 
> perform best on this problem.
>  Since in the 'production-level' calculation I will step through a parameter 
> space which should 
> mean only small changes to the eigenproblem between each calculation, it 
> seems to make sense
>  to use the previous solution as the initial guess for the next calculation.
> 
>  The sequence to execute this strategy would seem to be:
> To write out the current soln subspace:
> 
> call EPSGetInvariantSubspace
> [ call VecView   -> binary file (if a file storage is required for possible 
> restart)]
> 
> To then read in this data to use it as the initial subspace for the next run:
> 
> call  EPSSetInitialSpace
> 
> My question is that EPSGetInvariantSubspace needs an 'array of nconv 
> vectors', how does one create
>  such an array ? My understanding is that the Vec structure is just a 
> one-dimensional array (with contents 
>  possibly scattered in non-contiguous memory locations !?) , so do we just 
> need to create a long Vec 
>  that stores multiple vectors ? How can we do this (the examples I have seen 
> thus far use a MatCreateVecs to specify the size
>  of the Vec)?
> 
> If loading such a subspace from a binary file (created maybe by VecView), 
> presumably VecLoad is the
>  best way to load such an array of vectors from the binary file ?
> 
>  Best wishes and many thanks,
>                                             Dan.


Reply via email to