[petsc-users] Calculating inertias

Perceval Desforges perceval.desforges at polytechnique.edu
Tue Mar 24 11:18:13 CDT 2020


Thank you very much, this seems to work well. 

I have another question linked to this which is probably a bit basic so
I apologize. 

At the end of my program, I want to destroy all the petsc objects. I
start by destroying the matrixes, then the ksp and pc objects similarly
to how it's done in the examples. However I get an error when attempting
to destroy the KSP and PC objects : 

[0]PETSC ERROR: Invalid argument 

[0]PETSC ERROR: Wrong type of object: Parameter # 1 

I've tried switching the order around, but I still get the same errors. 


And if I don't destroy these objects I get a memory leak, which I'd like
to avoid. 

My question is I don't really understand when and how I'm supposed to
destroy the KSP and PC objects?  

Thanks again, 

Best regards, 

Perceval, 

> You can do this directly in PETSc. Create a KSP object with PREONLY and PCCHOLESKY (or just a PC object). Then call KSPSetUp (or PCSetUp) and extract the factored matrix with PCFactorGetMatrix(). Then call MatGetInertia() on the factored matrix. Repeat this for each value of E.
> 
> I guess it can be even shorter if you call MatCholeskyFactor() directly.
> 
> Jose
> 
>> El 24 mar 2020, a las 11:07, Perceval Desforges <perceval.desforges at polytechnique.edu> escribió:
>> 
>> Dear petsc developers,
>> 
>> I am interested in calculating the inertias of matrixes. Specifically, for a certain matrix A, and for different real numbers E, I want to calculate the inertias of (A - E * I), in order to get the number of eigenvalues less than E. 
>> 
>> In order to do this I have been setting up a slepc EPS object with spectrum slicing, and using EPSKrylovSchurGetInertias. I realize this is a bit convoluted, and was wondering if there is a better way to do this?
>> 
>> Best regards,
>> 
>> Perceval,
>> 
>> P.S. my last email seems to not have been sent (I couldn't find it in the archives) so I am trying again...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200324/f6778242/attachment.html>


More information about the petsc-users mailing list