Index: /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp	(revision 11712)
+++ /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp	(revision 11713)
@@ -183,4 +183,5 @@
 void Matrix::Assemble(void){
 	#ifdef _HAVE_PETSC_
+		_assert_(this->matrix);
 		MatAssemblyBegin(this->matrix,MAT_FINAL_ASSEMBLY);
 		MatAssemblyEnd(this->matrix,MAT_FINAL_ASSEMBLY);
@@ -199,5 +200,6 @@
 	double norm=0;
 	#ifdef _HAVE_PETSC_
-	    MatNorm(this->matrix,ISSMToPetscNormMode(norm_type),&norm);
+		_assert_(this->matrix);
+		MatNorm(this->matrix,ISSMToPetscNormMode(norm_type),&norm);
 	#else
 		_error_("not implemented yet!");
@@ -210,5 +212,6 @@
 	
 	#ifdef _HAVE_PETSC_
-	    MatGetSize(this->matrix,pM,pN);
+		_assert_(this->matrix);
+		MatGetSize(this->matrix,pM,pN);
 	#else
 		_error_("not implemented yet!");
@@ -220,5 +223,6 @@
 	
 	#ifdef _HAVE_PETSC_
-	    MatGetLocalSize(this->matrix,pM,pN);
+		_assert_(this->matrix);
+		MatGetLocalSize(this->matrix,pM,pN);
 	#else
 		_error_("not implemented yet!");
@@ -230,5 +234,7 @@
 
 	#ifdef _HAVE_PETSC_
-	    MatMultPatch(this->matrix,X->vector,AX->vector);
+		_assert_(this->matrix);
+		_assert_(X->vector);
+		MatMultPatch(this->matrix,X->vector,AX->vector);
 	#else
 		_error_("not implemented yet!");
@@ -244,4 +250,5 @@
 
 	#ifdef _HAVE_PETSC
+		_assert_(this->matrix);
 		MatDuplicate(this->matrix,MAT_COPY_VALUES,&output->matrix);
 	#else
Index: /issm/trunk-jpl/src/c/objects/Numerics/Vector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Numerics/Vector.cpp	(revision 11712)
+++ /issm/trunk-jpl/src/c/objects/Numerics/Vector.cpp	(revision 11713)
@@ -150,4 +150,5 @@
 		
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecAssemblyBegin(this->vector); 
 		VecAssemblyEnd(this->vector);
@@ -163,4 +164,5 @@
 		
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecSetValues(this->vector,ssize,list,values,ISSMToPetscInsertMode(mode));
 	#else
@@ -173,6 +175,6 @@
 void Vector::SetValue(int dof, double value, InsMode mode){
 		
-		
-	#ifdef _HAVE_PETSC_
+	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecSetValues(this->vector,1,&dof,&value,ISSMToPetscInsertMode(mode));
 	#else
@@ -185,18 +187,17 @@
 void Vector::GetValue(double* pvalue,int dof){
 		
-		
-	#ifdef _HAVE_PETSC_
-	VecGetValues(this->vector,1,&dof,pvalue);
-	#else
-		_error_("not implemented yet!");
-	#endif
-
-}
-/*}}}*/
-		
+	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
+		VecGetValues(this->vector,1,&dof,pvalue);
+	#else
+		_error_("not implemented yet!");
+	#endif
+}
+/*}}}*/
 /*FUNCTION Vector::GetSize{{{1*/
 void Vector::GetSize(int* pM){
 		
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecGetSize(this->vector,pM);
 	#else
@@ -210,4 +211,5 @@
 		
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecGetLocalSize(this->vector,pM);
 	#else
@@ -224,4 +226,5 @@
 	#ifdef _HAVE_PETSC_
 		Vec vec_output=NULL;
+		_assert_(this->vector);
 		VecDuplicate(this->vector,&vec_output);
 		output->vector=vec_output;
@@ -238,4 +241,5 @@
 	
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecSet(this->vector,value);
 	#else
@@ -249,4 +253,5 @@
 	
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecAXPY(this->vector,a,X->vector);
 	#else
@@ -259,4 +264,5 @@
 	
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecAYPX(this->vector,a,X->vector);
 	#else
@@ -297,5 +303,6 @@
 	double norm=0;
 	#ifdef _HAVE_PETSC_
-	    VecNorm(this->vector,ISSMToPetscNormMode(norm_type),&norm);
+		_assert_(this->vector);
+		VecNorm(this->vector,ISSMToPetscNormMode(norm_type),&norm);
 	#else
 		_error_("not implemented yet!");
@@ -308,16 +315,18 @@
 	
 	#ifdef _HAVE_PETSC_
-	    VecScale(this->vector,scale_factor); 
-	#else
-		_error_("not implemented yet!");
-	#endif
-}
-/*}}}*/
-/*FUNCTION Vector::Scale{{{1*/
+		_assert_(this->vector);
+		VecScale(this->vector,scale_factor); 
+	#else
+		_error_("not implemented yet!");
+	#endif
+}
+/*}}}*/
+/*FUNCTION Vector::Dot{{{1*/
 double Vector::Dot(Vector* vector){
 
 	double dot;
 	#ifdef _HAVE_PETSC_
-	    VecDot(this->vector,vector->vector,&dot);
+		_assert_(this->vector);
+		VecDot(this->vector,vector->vector,&dot);
 	#else
 		_error_("not implemented yet!");
@@ -330,4 +339,5 @@
 
 	#ifdef _HAVE_PETSC_
+		_assert_(this->vector);
 		VecPointwiseDivide(this->vector,x->vector,y->vector);
 	#else
