You can set a different seed for the random number generator as follows:
- Use EPSGetBV() to extract the BV object
- Use BVGetRandomContext() to extract the PetscRandom object
- Use PetscRandomSetSeed() to set the new seed.

Jose


> El 17 mar 2020, a las 13:23, Yang Bo (Asst Prof) <[email protected]> 
> escribió:
> 
> Hi everyone,
> 
> I am diagonalising a large symmetric real matrix for its null space (highly 
> degenerate eigenstates with zero eigenvalues). I am using krylovschur which 
> is variational, which is supposed to start with a set of random initial 
> vectors. They will eventually converge to random vectors in the null space.
> 
> The problem is that if I run the EPSSOLVE with the same set of parameters 
> (e.g. -eps_ncv and -eps_mpd), I always get the same eigenstates in the null 
> space. This implies that the solver always start the same set of initial 
> “random” vectors. 
> 
> How does petsc generate the initial random vectors for krylovschur? Is there 
> a way for me to generate different random initial vectors every time I run 
> the diagonalisation (of the same matrix)?
> 
> Thanks, and stay safe and healthy!
> 
> Cheers,
> 
> Yang Bo
> CONFIDENTIALITY: This email is intended solely for the person(s) named and 
> may be confidential and/or privileged. If you are not the intended recipient, 
> please delete it, notify us and do not copy, use, or disclose its contents. 
> Towards a sustainable earth: Print only when necessary. Thank you.
> 

Reply via email to