Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16799)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16800)
@@ -881,5 +881,5 @@
 }/*}}}*/
 ElementVector* StressbalanceAnalysis::CreatePVectorSSAFront(Element* element){/*{{{*/
-
+	return NULL;
 }/*}}}*/
 void StressbalanceAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16800)
@@ -43,8 +43,6 @@
 		virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
 		virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
-		virtual void   CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>*  Kfs)=0;
 		virtual ElementMatrix* CreateKMatrix(void)=0;
 		virtual void   CreateDVector(Vector<IssmDouble>* df)=0;
-		virtual void   CreatePVector(Vector<IssmDouble>* pf)=0;
 		virtual ElementVector* CreatePVector(void)=0;
 		virtual void   CreateJacobianMatrix(Matrix<IssmDouble>* Jff)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16800)
@@ -414,46 +414,4 @@
 	/*get inputs configured too: */
 	this->inputs->Configure(parameters);
-}
-/*}}}*/
-/*FUNCTION Penta::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs) {{{*/
-void  Penta::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
-
-	/*Skip if water element*/
-	if(NoIceInElement()) return;
-
-	/*Create element stiffness matrix*/
-	ElementMatrix* Ke=CreateKMatrix();
-
-	if(Ke){
-		int analysis_type;
-		parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-		if(analysis_type==StressbalanceAnalysisEnum){
-			int approximation;
-			inputs->GetInputValue(&approximation,ApproximationEnum);
-			if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
-				//Do nothing condensatino already done for Stokes part
-			}
-			else{
-				/*Condense if requested*/
-				if(this->element_type==MINIcondensedEnum){
-					int indices[3]={18,19,20};
-					Ke->StaticCondensation(3,&indices[0]);
-				}
-				else if(this->element_type==P1bubblecondensedEnum){
-					int size   = nodes[6]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-					int offset = 0;
-					for(int i=0;i<6;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-					int* indices=xNew<int>(size);
-					for(int i=0;i<size;i++) indices[i] = offset+i;
-					Ke->StaticCondensation(size,indices);
-					xDelete<int>(indices);
-				}
-			}
-		}
-
-		/*Add to global matrix*/
-		Ke->AddToGlobal(Kff,Kfs);
-		delete Ke;
-	}
 }
 /*}}}*/
@@ -618,57 +576,4 @@
 		De->InsertIntoGlobal(df);
 		delete De;
-	}
-}
-/*}}}*/
-/*FUNCTION Penta::CreatePVector(Vector<IssmDouble>* pf) {{{*/
-void  Penta::CreatePVector(Vector<IssmDouble>* pf){
-
-	/*Skip if water element*/
-	if(NoIceInElement()) return;
-
-	/*Create element load vector*/
-	ElementVector* pe = CreatePVector();
-
-	if(pe){
-		int analysis_type;
-		parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-		if(analysis_type==StressbalanceAnalysisEnum){
-			/*StaticCondensation if requested*/
-			if(this->element_type==MINIcondensedEnum){
-				int approximation;
-				inputs->GetInputValue(&approximation,ApproximationEnum);
-				if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
-					//Do nothing, condensation already done in PVectorCoupling
-				}
-				else{
-					int indices[3]={18,19,20};
-
-					this->element_type=MINIEnum;
-					ElementMatrix* Ke = CreateKMatrixStressbalanceFS();
-					this->element_type=MINIcondensedEnum;
-
-					pe->StaticCondensation(Ke,3,&indices[0]);
-					delete Ke;
-				}
-			}
-			else if(this->element_type==P1bubblecondensedEnum){
-				int size   = nodes[6]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-				int offset = 0;
-				for(int i=0;i<6;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-				int* indices=xNew<int>(size);
-				for(int i=0;i<size;i++) indices[i] = offset+i;
-
-				this->element_type=P1bubbleEnum;
-				ElementMatrix* Ke = CreateKMatrix();
-				this->element_type=P1bubblecondensedEnum;
-				pe->StaticCondensation(Ke,size,indices);
-				xDelete<int>(indices);
-				delete Ke;
-			}
-		}
-
-		/*Add to global Vector*/
-		pe->AddToGlobal(pf);
-		delete pe;
 	}
 }
@@ -2667,5 +2572,5 @@
 }
 /*}}}*/
-/*FUNCTION Penta::ReduceMatrices) {{{*/
+/*FUNCTION Penta::ReduceMatrices{{{*/
 void Penta::ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16800)
@@ -79,7 +79,5 @@
 		void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
 		void   SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
-		void   CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
 		void   CreateDVector(Vector<IssmDouble>* df);
-		void   CreatePVector(Vector<IssmDouble>* pf);
 		void   CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
 		void   Delta18oParameterization(void);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16800)
@@ -77,8 +77,6 @@
 		void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
 		void        SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){_error_("not implemented yet");};
-		void        CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){_error_("not implemented yet");};
 		ElementMatrix* CreateKMatrix(void){_error_("not implemented yet");};
 		void        CreateDVector(Vector<IssmDouble>* df){_error_("not implemented yet");};
-		void        CreatePVector(Vector<IssmDouble>* pf){_error_("not implemented yet");};
 		ElementVector* CreatePVector(void){_error_("not implemented yet");};
 		ElementVector* CreatePVectorL2Projection(void);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16800)
@@ -196,36 +196,4 @@
 	_assert_(this->material);
 	this->material->inputs->AddInput(new TriaInput(input_enum,values,interpolation_enum));
-}
-/*}}}*/
-/*FUNCTION Tria::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs) {{{*/
-void  Tria::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
-
-
-	/*Skip if water element*/
-	if(NoIceInElement()) return;
-
-	/*Create element stiffness matrix*/
-	ElementMatrix* Ke=CreateKMatrix();
-
-	if(Ke){
-		/*Static condensation if requested*/
-		if(this->element_type==MINIcondensedEnum){
-			int indices[2]={6,7};
-			Ke->StaticCondensation(2,&indices[0]);
-		}
-		else if(this->element_type==P1bubblecondensedEnum){
-			int size   = nodes[3]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-			int offset = 0;
-			for(int i=0;i<3;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-			int* indices=xNew<int>(size);
-			for(int i=0;i<size;i++) indices[i] = offset+i;
-			Ke->StaticCondensation(size,indices);
-			xDelete<int>(indices);
-		}
-
-		/*Add to global matrix*/
-		Ke->AddToGlobal(Kff,Kfs);
-		delete Ke;
-	}
 }
 /*}}}*/
@@ -411,46 +379,4 @@
 
 	/*Nothing done yet*/
-}
-/*}}}*/
-/*FUNCTION Tria::CreatePVector(Vector<IssmDouble>* pf) {{{*/
-void  Tria::CreatePVector(Vector<IssmDouble>* pf){
-
-	/*Skip if water element*/
-	if(NoIceInElement()) return;
-
-	/*Create element load vector*/
-	ElementVector* pe = CreatePVector();
-
-	/*Add to global Vector*/
-	if(pe){
-		/*Static condensation if requested*/
-		if(this->element_type==MINIcondensedEnum){
-			int indices[2]={6,7};
-			this->element_type=MINIEnum;
-			ElementMatrix* Ke = CreateKMatrixStressbalanceFS();
-			this->element_type=MINIcondensedEnum;
-
-			pe->StaticCondensation(Ke,2,&indices[0]);
-			delete Ke;
-		}
-		else if(this->element_type==P1bubblecondensedEnum){
-			int size   = nodes[3]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-			int offset = 0;
-			for(int i=0;i<3;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
-			int* indices=xNew<int>(size);
-			for(int i=0;i<size;i++) indices[i] = offset+i;
-
-			this->element_type=P1bubbleEnum;
-			ElementMatrix* Ke = CreateKMatrix();
-			this->element_type=P1bubblecondensedEnum;
-
-			pe->StaticCondensation(Ke,size,indices);
-			xDelete<int>(indices);
-			delete Ke;
-		}
-
-		pe->AddToGlobal(pf);
-		delete pe;
-	}
 }
 /*}}}*/
@@ -1226,4 +1152,14 @@
 }
 /*}}}*/
+/*FUNCTION Tria::GetVerticesCoordinates(IssmDouble** pxyz_list){{{*/
+void Tria::GetVerticesCoordinates(IssmDouble** pxyz_list){
+
+	IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES*3);
+	::GetVerticesCoordinates(xyz_list,this->vertices,NUMVERTICES);
+
+	/*Assign output pointer*/
+	*pxyz_list = xyz_list;
+
+}/*}}}*/
 /*FUNCTION Tria::GetSegmentNormal {{{*/
 void Tria:: GetSegmentNormal(IssmDouble* normal,IssmDouble xyz_list[2][3]){
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16799)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16800)
@@ -73,7 +73,5 @@
 		void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
 		void        SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
-		void        CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
 		void        CreateDVector(Vector<IssmDouble>* df);
-		void        CreatePVector(Vector<IssmDouble>* pf);
 		void        CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
 		void        DeleteMaterials(void);
@@ -111,5 +109,5 @@
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
 		void        GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum);
-		void        GetVerticesCoordinates(IssmDouble** pxyz_list){_error_("not implemented yet");};
+		void        GetVerticesCoordinates(IssmDouble** pxyz_list);
 		void        InputCreate(IssmDouble* vector,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code);
 		void        InputDepthAverageAtBase(int enum_type,int average_enum_type,int object_enum=MeshElementsEnum);
