Index: /issm/trunk/src/c/Qmux/DakotaResponses.cpp
===================================================================
--- /issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3029)
+++ /issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3030)
@@ -13,4 +13,5 @@
 #include "../EnumDefinitions/EnumDefinitions.h"
 #include "../MassFluxx/MassFluxx.h"
+#include "../Misfitx/Misfitx.h"
 
 #undef __FUNCT__ 
@@ -221,4 +222,54 @@
 			/*Free ressources:*/
 			xfree((void**)&vz);
+		}
+		else if(strcmp(response_descriptor,"misfit")==0){
+			
+			int isstokes,ismacayealpattyn,ishutter;
+			FemModel* femmodel=NULL;
+			ParameterInputs* inputs=NULL; //needed to plug velocity into elements.
+			double J=0;
+			int analysis_type,sub_analysis_type;
+			int numberofdofspernode,numberofnodes;
+			Vec u_g=NULL;
+
+			/*retrieve active fem model: */
+			model->FindParam(&isstokes,"isstokes");
+			model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
+			model->FindParam(&ishutter,"ishutter");
+
+			if(isstokes){
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+			}
+			if(ismacayealpattyn){
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+			}
+			if(ishutter){
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+			}	
+
+
+			/*Recover analysis_type: */
+			femmodel->parameters->FindParam(&analysis_type,"analysis_type");
+			femmodel->parameters->FindParam(&sub_analysis_type,"sub_analysis_type");
+			femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
+			femmodel->parameters->FindParam(&numberofnodes,"numberofnodes");
+	
+			/*Recover velocity: */
+			found=results->FindResult(&u_g,"u_g");
+			if(!found)throw ErrorException(__FUNCT__," could not find velocity to compute misfit");
+
+			/*Add to inputs: */
+			inputs=new ParameterInputs;
+			inputs->Add("velocity",u_g,numberofdofspernode,numberofnodes);
+
+			/*Compute misfit: */
+			Misfitx( &J, femmodel->elements,femmodel->nodes, femmodel->loads, femmodel->materials, femmodel->parameters,inputs,analysis_type,sub_analysis_type);
+			
+	
+			if(my_rank==0)responses[i]=J;
+
+			/*Some cleanup: */
+			VecFree(&u_g);
+			delete inputs;
 
 		}
