Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
===================================================================
--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 13868)
+++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 13869)
@@ -39,7 +39,7 @@
 	this->matrix=NewMat(M,N,sparsity,IssmComm::GetComm());
 }
 /*}}}*/
-/*FUNCTION PetscMat(IssmDouble* serial_mat,int M,int N,IssmDouble sparsity){{{*/
+/*FUNCTION PetscMat::PetscMat(IssmDouble* serial_mat,int M,int N,IssmDouble sparsity){{{*/
 PetscMat::PetscMat(IssmDouble* serial_mat,int M,int N,IssmDouble sparsity){
 
 	int     i;
@@ -76,6 +76,20 @@
 /*}}}*/
 
 /*PetscMat specific routines: */
+/*FUNCTION PetscMat::AllocationInfo{{{*/
+void PetscMat::AllocationInfo(void){
+
+	MatInfo info;
+	MatGetInfo(this->matrix,MAT_GLOBAL_SUM,&info);
+	_pprintLine_("=========================== Stiffness matrix allocation info ===========================");
+	_pprintLine_("");
+	_pprintLine_(" nz_allocated: "<<info.nz_allocated);
+	_pprintLine_(" nz_used     : "<<info.nz_used);
+	_pprintLine_(" nz_unneeded : "<<info.nz_unneeded<<" ("<<double(info.nz_unneeded)/double(info.nz_allocated)*100.<<"%)");
+	_pprintLine_("");
+	_pprintLine_("========================================================================================");
+}
+/*}}}*/
 /*FUNCTION PetscMat::Echo{{{*/
 void PetscMat::Echo(void){
 
Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.h
===================================================================
--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.h	(revision 13868)
+++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.h	(revision 13869)
@@ -39,6 +39,7 @@
 		~PetscMat();
 		/*}}}*/
 		/*PetscMat specific routines {{{*/
+		void AllocationInfo(void);
 		void Echo(void);
 		void Assemble(void);
 		IssmDouble Norm(NormMode norm_type);
Index: ../trunk-jpl/src/c/classes/matrix/Matrix.h
===================================================================
--- ../trunk-jpl/src/c/classes/matrix/Matrix.h	(revision 13868)
+++ ../trunk-jpl/src/c/classes/matrix/Matrix.h	(revision 13869)
@@ -188,6 +188,19 @@
 
 		}
 		/*}}}*/
+		/*FUNCTION AllocationInfo{{{*/
+		void AllocationInfo(void){
+			_assert_(this);
+			if(type==PetscMatType){
+				#ifdef _HAVE_PETSC_
+				this->pmatrix->AllocationInfo();
+				#endif
+			}
+			else if(type==SeqMatType){
+				//this->smatrix->AllocationInfo();
+			}
+			else _error_("Matrix type: " << type << " not supported yet!");
+		}/*}}}*/
 		/*FUNCTION Assemble{{{*/
 		void Assemble(void){
 
