Index: /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.cpp	(revision 11258)
+++ /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.cpp	(revision 11258)
@@ -0,0 +1,39 @@
+/*!\file SmearFunctionx
+ * \brief: create 
+ */
+
+#include "./SmearFunctionx.h"
+#include "../../shared/shared.h"
+#include "../../include/include.h"
+#include "../../io/io.h"
+#include "../../toolkits/toolkits.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+void SmearFunctionx(Vec* psmearedvector,double (*WeightFunction)(double distance,double radius), SmearedFieldEnum, double radius,Elements* elements,Nodes* nodes, Parameters* parameters){
+	
+	Element *element = NULL;
+	Vec smearedvector=NULL;
+
+	/*retrive parameters: */
+	parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+
+	
+	/*allocate: */
+	fsize=nodes->NumberOfDofs(configuration_type,FsetEnum);
+	smearedvector=NewVec(fsize);
+
+	/*Fill smearedvector vector: */
+	for (i=0;i<elements->Size();i++){
+		element=(Element*)elements->GetObjectByOffset(i);
+		element->SmearFunction(smearedvector,WeightFunction,SmearedFieldEnum,radius);
+	}
+
+
+	VecAssemblyBegin(smearedvector);
+	VecAssemblyEnd(smearedvector);
+	
+	/*Assign output pointers: */
+	*psmearedvector=smearedvector;
+
+}
+
Index: /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.h	(revision 11258)
+++ /issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.h	(revision 11258)
@@ -0,0 +1,15 @@
+/*!\file:  SystemMatricesx.h
+ * \brief header file for degree of freedoms distribution routines.
+ */ 
+
+#ifndef _SYSTEMMATRICESX_H
+#define _SYSTEMMATRICESX_H
+
+#include "../../Container/Container.h"
+#include "../../objects/objects.h"
+
+/* local prototypes: */
+void SystemMatricesx(Mat* pKff, Mat* pKfs, Vec* ppf, Vec* pdf, double* pkmax,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,
+			bool kflag=true,bool pflag=true,bool penalty_kflag=true,bool penalty_pflag=true);
+
+#endif  /* _SYSTEMMATRICESX_H */
