diff --git a/NonLinearSolver/internalPoints/ipField.cpp b/NonLinearSolver/internalPoints/ipField.cpp
index cc2444f8953a2a6413287c0a18267a864147d0a7..c6c8c87134c59889a57167d8c401619cead1dc51 100644
--- a/NonLinearSolver/internalPoints/ipField.cpp
+++ b/NonLinearSolver/internalPoints/ipField.cpp
@@ -209,6 +209,12 @@ std::string IPField::ToString(const int i){
   else if (i == EXTRAFIELD_NORM) return "EXTRAFIELD_NORM";
   else if (i == DELETED) return "DELETED";
   else if (i == LOST_ELLIPTICITY) return "LOST_ELLIPTICITY";
+  else if (i == LOCAL_0) return "LOCAL_0";
+  else if (i == LOCAL_1) return "LOCAL_1";
+  else if (i == LOCAL_2) return "LOCAL_2";
+  else if (i == NONLOCAL_0) return "NONLOCAL_0";
+  else if (i == NONLOCAL_1) return "NONLOCAL_1";
+  else if (i == NONLOCAL_2) return "NONLOCAL_2";
   else{
     Msg::Warning("This IP field %d is not defined in IPField::ToString(%d)",i,i);
     return "UNDEFINED";
diff --git a/NonLinearSolver/internalPoints/ipField.h b/NonLinearSolver/internalPoints/ipField.h
index 88b06e28350769f2c7604544fea7958787b3cc2b..f611cafe1b5c7eee0a399e5920e1d755a2d06e11 100644
--- a/NonLinearSolver/internalPoints/ipField.h
+++ b/NonLinearSolver/internalPoints/ipField.h
@@ -85,7 +85,9 @@ class IPField : public elementsField {
         MTX_STRAIN_XX,MTX_STRAIN_YY,MTX_STRAIN_ZZ,MTX_STRAIN_XY,MTX_STRAIN_YZ,MTX_STRAIN_XZ,
 		    INC_STRAIN_XX,INC_STRAIN_YY,INC_STRAIN_ZZ,INC_STRAIN_XY,INC_STRAIN_YZ,INC_STRAIN_XZ,
 				EXTRAFIELD_1,EXTRAFIELD_2,EXTRAFIELD_3,EXTRAFIELD_4,EXTRAFIELD_5,EXTRAFIELD_6,EXTRAFIELD_7,EXTRAFIELD_8,EXTRAFIELD_9,
-				EXTRAFIELD_NORM, DELETED,LOST_ELLIPTICITY};
+				EXTRAFIELD_NORM, DELETED,LOST_ELLIPTICITY,
+        LOCAL_0,LOCAL_1, LOCAL_2,
+        NONLOCAL_0, NONLOCAL_1, NONLOCAL_2};
     enum  Operator { MEAN_VALUE=1, MIN_VALUE, MAX_VALUE, CRUDE_VALUE};
 #ifndef SWIG
     // Struct for archiving
diff --git a/dG3D/src/dG3DIPVariable.cpp b/dG3D/src/dG3DIPVariable.cpp
index 5f5a3f02428b108b73c0a472615981dd4878afba..8dfb384f896385ce00c28bfe05e43df565bac798 100644
--- a/dG3D/src/dG3DIPVariable.cpp
+++ b/dG3D/src/dG3DIPVariable.cpp
@@ -256,6 +256,41 @@ double dG3DIPVariable::get(const int comp) const
     if (this->isDeleted()) return 1.;
     else return 0.;
   }
+  else if (comp == IPField::LOCAL_0){
+    if (getNumberNonLocalVariable()>0){
+      return getConstRefToLocalVariable(0);
+    }
+    else return 0.;
+  }
+  else if (comp == IPField::LOCAL_1){
+    if (getNumberNonLocalVariable()>1){
+      return getConstRefToLocalVariable(1);
+    }
+    else return 0.;
+  }
+  else if (comp == IPField::LOCAL_2){
+    if (getNumberNonLocalVariable() > 2){
+      return getConstRefToLocalVariable(2);
+    }
+    else return 0.;
+  }
+  else if (comp == IPField::NONLOCAL_0){
+    if (getNumberNonLocalVariable() > 0){
+      return getConstRefToNonLocalVariable(0);
+    }
+    else return 0.;
+  }
+  else if (comp == IPField::NONLOCAL_1){
+    if (getNumberNonLocalVariable()> 1){
+      return getConstRefToNonLocalVariable(0);
+    }
+    else return 0.;
+  }
+  else if (comp == IPField::NONLOCAL_2){
+    if (getNumberNonLocalVariable() > 2)
+      return getConstRefToNonLocalVariable(0);
+    else return 0.;
+  }
   else
      return 0.;