diff --git a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp
index 4a19620dba4f0ae9774c84b2d8e7bb9ec0130727..bbff665d12eb0c4c1d848562e87ca1a6624865f4 100644
--- a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp
+++ b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp
@@ -201,26 +201,26 @@ void mlawLinearElecMagTherMech::constitutive(
                                             SVector3 &dw_TdA,
                                             SVector3 & dw_TdB,
                                             SVector3 & dmechSourcedB,
-                                            SVector3 & w_AV, // Magnetic source vector field (T, grad V, F)
-                                            SVector3 & dw_AVdt,
+                                            SVector3 & sourceVectorField, // Magnetic source vector field (T, grad V, F)
+                                            SVector3 & dsourceVectorFielddt,
                                             STensor3 & dHdA,
                                             STensor3 & dHdB,
                                             STensor33 & dPdB,
                                             STensor33 & dHdF,
-                                            STensor33 & dw_AVdF,
-                                            SVector3 & mechFieldSource, // Electromagnetic force w_Mag
+                                            STensor33 & dsourceVectorFielddF,
+                                            SVector3 & mechFieldSource, // Electromagnetic force
                                             STensor3 & dmechFieldSourcedB,
                                             STensor33 & dmechFieldSourcedF,
                                             SVector3 & dHdT,
                                             STensor3 & dHdgradT,
                                             SVector3 & dHdV,
                                             STensor3 & dHdgradV,
-                                            SVector3 & dw_AVdT,
-                                            STensor3 & dw_AVdgradT,
-                                            SVector3 & dw_AVdV,
-                                            STensor3 & dw_AVdgradV,
-                                            STensor3 & dw_AVdA,
-                                            STensor3 & dw_AVdB,
+                                            SVector3 & dsourceVectorFielddT,
+                                            STensor3 & dsourceVectorFielddgradT,
+                                            SVector3 & dsourceVectorFielddV,
+                                            STensor3 & dsourceVectorFielddgradV,
+                                            STensor3 & dsourceVectorFielddA,
+                                            STensor3 & dsourceVectorFielddB,
                                             SVector3 & dmechFieldSourcedT,
                                             STensor3 & dmechFieldSourcedgradT,
                                             SVector3 & dmechFieldSourcedV,
@@ -233,7 +233,7 @@ void mlawLinearElecMagTherMech::constitutive(
     dedgradT, dqdF, dedF, w_T, dw_Tdt, dw_Tdf, l10, l20, k10, k20, dl10dT, dl20dT, dk10dT, dk20dT, dl10dv, dl20dv, dk10dv, dk20dv,
     dl10dF, dl20dF, dk10dF, dk20dF, fluxjy, djydV, djydgradV, djydT, djydgradT, djydF, djydgradVdT, djydgradVdV, djydgradVdF,
     djydgradTdT, djydgradTdV, djydgradTdF, stiff);
-    // Assemble the coefficient matrix Z as seen in eq 4.28 in Lina's thesis
+
     // here magnetic, electric field and temp dependent
 
     STensorOperation::zero(H);STensorOperation::zero(dBdT); STensorOperation::zero(dBdGradT); STensorOperation::zero(dBdV);
@@ -241,7 +241,10 @@ void mlawLinearElecMagTherMech::constitutive(
     STensorOperation::zero(dfluxDdA); STensorOperation::zero(dfluxTdB); STensorOperation::zero(dfluxDdB); STensorOperation::zero(dw_TdA);
     STensorOperation::zero(dw_TdB); STensorOperation::zero(dHdA); STensorOperation::zero(dHdB); STensorOperation::zero(dPdB);
     STensorOperation::zero(dHdF); STensorOperation::zero(dHdT); STensorOperation::zero(dHdgradT); STensorOperation::zero(dHdV);
-    STensorOperation::zero(dHdgradV);
+    STensorOperation::zero(dHdgradV);STensorOperation::zero(sourceVectorField);STensorOperation::zero(dsourceVectorFielddT);
+    STensorOperation::zero(dsourceVectorFielddgradT); STensorOperation::zero(dsourceVectorFielddV);STensorOperation::zero(dsourceVectorFielddgradV);
+    STensorOperation::zero(dsourceVectorFielddA);STensorOperation::zero(dsourceVectorFielddB);
+    STensorOperation::zero(dsourceVectorFielddt);STensorOperation::zero(dsourceVectorFielddF);
 
     static STensor3 dldT,dkdT;
     double dseebeckdT = 0.0;
@@ -261,16 +264,13 @@ void mlawLinearElecMagTherMech::constitutive(
     }
 
     // Add contribution from j_p and j_m too???
-    // need to figure out contribution of js0
-    // only for inductor region
     const double ctime = getTime();
     const double dh = getTimeStep();
     double invdh;
-    if (dh <= 0.0)
-    {
+    if (dh < 0.0)
+        Msg::Error("Negative time step size in mlawEMTM::constitutive()");
+    else if (dh == 0.0)
         invdh = 0.0;
-        //Msg::Error("Negative time step size in mlawEMTM::constitutive()");
-    }
     else
         invdh = 1.0/dh;
     // phase angle for sin wave function
@@ -289,7 +289,7 @@ void mlawLinearElecMagTherMech::constitutive(
 
     for(unsigned int i = 0; i < 3; ++i)
     {
-      w_AV(i) = 0.0;
+        sourceVectorField(i) = 0.0;
 
       if(!isInductor())
       {
@@ -320,14 +320,13 @@ void mlawLinearElecMagTherMech::constitutive(
         } 
       }
 
-      // Doubtfull
-      w_AV(i) = -fluxD(i) ;//- js0(i);
+      sourceVectorField(i) = -fluxD(i) ;//- js0(i);
 
       // For test with unit cube to check
       // interpolation of curlVals
       //js0(0) = 1.0;
       //js0(1) = js0(2) = 0.0;
-      //w_AV = -js0;
+      //sourceVectorField = -js0;
     }
 
     for (unsigned int m = 0; m < 3; ++m)
@@ -346,9 +345,9 @@ void mlawLinearElecMagTherMech::constitutive(
             dHdgradT(m,n) += 0.0;
             dHdgradV(m,n) += 0.0;
 
-            dw_AVdB(m,n) += 0.0;
-            dw_AVdgradV(m,n) += _l0(m,n);
-            dw_AVdgradT(m,n) += _seebeck * _l0(m,n);
+            dsourceVectorFielddB(m,n) += 0.0;
+            dsourceVectorFielddgradV(m,n) += _l0(m,n);
+            dsourceVectorFielddgradT(m,n) += _seebeck * _l0(m,n);
         }
     }
 
@@ -356,9 +355,9 @@ void mlawLinearElecMagTherMech::constitutive(
     {
         for (unsigned int k = 0; k < 3; ++k)
         {
-            dw_AVdV(l) += 0.0;
-            dw_AVdT(l) += dseebeckdT * _l0(l,k) * gradT(k);
-            dw_AVdA(l,k) += _l0(l,k) * invdh;
+            dsourceVectorFielddV(l) += 0.0;
+            dsourceVectorFielddT(l) += dseebeckdT * _l0(l,k) * gradT(k);
+            dsourceVectorFielddA(l,k) += _l0(l,k) * invdh;
 
             dedgradT(l,k) += 0.0;
             dedgradV(l,k) += 0.0;
@@ -391,10 +390,10 @@ void mlawLinearElecMagTherMech::constitutive(
     STensorOperation::zero(dBdA);
     STensorOperation::zero(dw_TdB);
     STensorOperation::zero(dmechSourcedB);
-    STensorOperation::zero(dw_AVdt);
+    STensorOperation::zero(dsourceVectorFielddt);
     STensorOperation::zero(dPdB);
     STensorOperation::zero(dHdF);
-    STensorOperation::zero(dw_AVdF);
+    STensorOperation::zero(dsourceVectorFielddF);
     STensorOperation::zero(mechFieldSource);
     STensorOperation::zero(dmechFieldSourcedB);
     STensorOperation::zero(dmechFieldSourcedF);
diff --git a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h
index 217d73da4a004d9924e2972b819c2c671d4a16d9..56c1c123ab8ae58262ee2b8bee204cb6e11a69a2 100644
--- a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h
+++ b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h
@@ -148,26 +148,26 @@ class mlawLinearElecMagTherMech : public mlawLinearElecTherMech
                             SVector3 &dw_TdA,
                             SVector3 & dw_TdB,
                             SVector3 & dmechSourcedB,
-                            SVector3 & w_AV, // Magnetic source vector field (T, grad V, F)
-                            SVector3 & dw_AVdt,
+                            SVector3 & sourceVectorField, // Magnetic source vector field (T, grad V, F)
+                            SVector3 & dsourceVectorFielddt,
                             STensor3 & dHdA,
                             STensor3 & dHdB,
                             STensor33 & dPdB,
                             STensor33 & dHdF,
-                            STensor33 & dw_AVdF,
-                            SVector3 & mechFieldSource, // Electromagnetic force w_Mag
+                            STensor33 & dsourceVectorFielddF,
+                            SVector3 & mechFieldSource, // Electromagnetic force
                             STensor3 & dmechFieldSourcedB,
                             STensor33 & dmechFieldSourcedF,
                             SVector3 & dHdT,
                             STensor3 & dHdgradT,
                             SVector3 & dHdV,
                             STensor3 & dHdgradV,
-                            SVector3 & dw_AVdT,
-                            STensor3 & dw_AVdgradT,
-                            SVector3 & dw_AVdV,
-                            STensor3 & dw_AVdgradV,
-                            STensor3 & dw_AVdA,
-                            STensor3 & dw_AVdB,
+                            SVector3 & dsourceVectorFielddT,
+                            STensor3 & dsourceVectorFielddgradT,
+                            SVector3 & dsourceVectorFielddV,
+                            STensor3 & dsourceVectorFielddgradV,
+                            STensor3 & dsourceVectorFielddA,
+                            STensor3 & dsourceVectorFielddB,
                             SVector3 & dmechFieldSourcedT,
                             STensor3 & dmechFieldSourcedgradT,
                             SVector3 & dmechFieldSourcedV,
diff --git a/dG3D/src/FractureCohesiveDG3DIPVariable.h b/dG3D/src/FractureCohesiveDG3DIPVariable.h
index fbca350aaf7a34ada8effa3a011cb84c69bcfe3a..bc81eac4b98a5da0afe0c312fd7062f198a82f80 100644
--- a/dG3D/src/FractureCohesiveDG3DIPVariable.h
+++ b/dG3D/src/FractureCohesiveDG3DIPVariable.h
@@ -246,6 +246,8 @@ class FractureCohesive3DIPVariable : public IPVariable2ForFracture<dG3DIPVariabl
   virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddGradExtraDofField() { return _ipvbulk->getRefTodSourceVectorFielddGradExtraDofField();}
   virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorCurl() const { return _ipvbulk->getConstRefTodSourceVectorFielddVectorCurl();}
   virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorCurl() { return _ipvbulk->getRefTodSourceVectorFielddVectorCurl();}
+  virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const { return _ipvbulk->getConstRefTodSourceVectorFielddVectorPotential();}
+  virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential() { return _ipvbulk->getRefTodSourceVectorFielddVectorPotential();}
   virtual const std::vector< std::vector< STensor3 > > & getConstRefTodMechanicalFieldSourcedVectorCurl() const { return _ipvbulk->getConstRefTodMechanicalFieldSourcedVectorCurl();}
   virtual std::vector< std::vector< STensor3 > > & getRefTodMechanicalFieldSourcedVectorCurl() { return _ipvbulk->getRefTodMechanicalFieldSourcedVectorCurl();}
   virtual const std::vector< STensor33 > & getConstRefTodSourceVectorFielddF() const { return _ipvbulk->getConstRefTodSourceVectorFielddF();}
diff --git a/dG3D/src/dG3DIPVariable.h b/dG3D/src/dG3DIPVariable.h
index 67f9ea6913d26c9fc546a65e60d14346be33cefd..0c4bcdebe6b9aed0e47e6b0369e41a8009c7278a 100644
--- a/dG3D/src/dG3DIPVariable.h
+++ b/dG3D/src/dG3DIPVariable.h
@@ -312,6 +312,8 @@ class dG3DIPVariableBase : public ipFiniteStrain
   virtual SVector3 & getRefTodSourceVectorFielddt(const int idex)=0;
   virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorCurl() const=0;
   virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorCurl()=0;
+  virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const=0;
+  virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential()=0;
 
   //Energy Conjugated Field (fT & fv)
 
@@ -468,10 +470,10 @@ class constitutiveCurlData{
   std::vector< SVector3 >           vectorCurl;  // Curl A := B, magnetic induction
   std::vector< SVector3 >           vectorField; // Vector magnetic field H
   std::vector< SVector3 >           inductorSourceVectorField; // current density applied in inductor js0
-  std::vector< SVector3 >           sourceVectorField; // Vector magnetic source (T, grad V, F) w_AV
+  std::vector< SVector3 >           sourceVectorField; // Vector magnetic field source (T, grad V, F)
   std::vector< SVector3 >           dSourceVectorFielddt; // time derivative
-  std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorCurl; // dw_AVdB
-  std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorPotential;  // dw_AVdA
+  std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorCurl;
+  std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorPotential;
 
   std::vector<std::vector< STensor3 > > dVectorFielddVectorPotential;
   std::vector<std::vector< STensor3 > > dVectorFielddVectorCurl;
@@ -482,16 +484,16 @@ class constitutiveCurlData{
   std::vector< STensor33 >  dSourceVectorFielddF;
   std::vector< STensor33 >  dMechanicalFieldSourcedF;
 
-  std::vector< SVector3 >  mechanicalFieldSource;   // EM force proportional to freq w_Mag (V, B, F)
+  std::vector< SVector3 >  mechanicalFieldSource;   // EM force proportional to freq (V, B, F)
   std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedVectorCurl;
   
   //coupling with extraDof
   std::vector<std::vector< SVector3 > > dVectorFielddExtraDofField;
   std::vector<std::vector< STensor3 > > dVectorFielddGradExtraDofField;
-  std::vector< std::vector< SVector3 > > dSourceVectorFielddExtraDofField;  // dw_AV/dT dw_AV/dV
-  std::vector< std::vector< STensor3 > > dSourceVectorFielddGradExtraDofField;  // dw_AV/dGradT dw_AV/dGradV
-  std::vector< std::vector< SVector3 > > dMechanicalFieldSourcedExtraDofField;  // dw_M/dV dw_M/dT
-  std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedGradExtraDofField;  // dw_M/dGradV dw_M/dGradT
+  std::vector< std::vector< SVector3 > > dSourceVectorFielddExtraDofField;
+  std::vector< std::vector< STensor3 > > dSourceVectorFielddGradExtraDofField;
+  std::vector< std::vector< SVector3 > > dMechanicalFieldSourcedExtraDofField;
+  std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedGradExtraDofField;
 
   //coupling with nonLocal
   std::vector<std::vector< SVector3 > >   dVectorFielddNonLocalVariable;
@@ -3899,7 +3901,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodFluxdVectorCurl()[1][0];
     }
 
-    // w_AV
     virtual const SVector3 & getConstRefTosourceVectorField() const
     {
         return getConstRefToSourceVectorField(0);
@@ -3909,7 +3910,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefToSourceVectorField(0);
     }
     
-    // dw_AVdt
+    // dsourceVectorFielddt
     virtual const SVector3 & getConstRefTodsourceVectorFielddt() const
     {
       return getConstRefTodSourceVectorFielddt(0);
@@ -3919,7 +3920,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
       return getRefTodSourceVectorFielddt(0);
     }
 
-    // dw_AVdA
+    // dsourceVectorFielddA
     virtual const STensor3 & getConstRefTodSourceVectorFielddMagneticVectorPotential() const
     {
         return getConstRefTodSourceVectorFielddVectorPotential()[0][0];
@@ -3929,7 +3930,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddVectorPotential()[0][0];
     }
 
-    // dw_AVdB
+    // dsourceVectorFielddB
     virtual const STensor3 & getConstRefTodSourceVectorFielddMagneticVectorCurl() const
     {
       return getConstRefTodSourceVectorFielddVectorCurl()[0][0];
@@ -3939,7 +3940,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
       return getRefTodSourceVectorFielddVectorCurl()[0][0];
     }
 
-    // w_Mag
     virtual const SVector3 & getConstRefTomechanicalFieldSource() const
     {
         return getConstRefToMechanicalFieldSource(0);
@@ -3949,7 +3949,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefToMechanicalFieldSource(0);
     }
 
-    // dw_AVdF
+    // dsourceVectorFielddF
     virtual const STensor33 & getConstRefTodsourceVectorFielddF() const
     {
         return getConstRefTodSourceVectorFielddF()[0];
@@ -3959,7 +3959,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddF()[0];
     }
 
-    // dw_AVdT
+    // dsourceVectorFielddT
     virtual const SVector3 & getConstRefTodSourceVectorFielddT() const
     {
         return getConstRefTodSourceVectorFielddExtraDofField()[0][0];
@@ -3969,7 +3969,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddExtraDofField()[0][0];
     }
 
-    // dw_AVdGradT
+    // dsourceVectorFielddGradT
     virtual const STensor3 & getConstRefTodSourceVectorFielddGradT() const
     {
         return getConstRefTodSourceVectorFielddGradExtraDofField()[0][0];
@@ -3979,7 +3979,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddGradExtraDofField()[0][0];
     }
 
-    // dw_AVdV
+    // dsourceVectorFielddV
     virtual const SVector3 & getConstRefTodSourceVectorFielddV() const
     {
         return getConstRefTodSourceVectorFielddExtraDofField()[0][1];
@@ -3989,7 +3989,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddExtraDofField()[0][1];
     }
 
-    // dw_AVdGradV
+    // dsourceVectorFielddGradV
     virtual const STensor3 & getConstRefTodSourceVectorFielddGradV() const
     {
         return getConstRefTodSourceVectorFielddGradExtraDofField()[0][1];
@@ -3999,7 +3999,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodSourceVectorFielddGradExtraDofField()[0][1];
     }
 
-    // dw_MagdF
     virtual const STensor33 & getConstRefTodmechanicalFieldSourcedF() const
     {
         return getConstRefTodMechanicalFieldSourcedF()[0];
@@ -4009,7 +4008,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodMechanicalFieldSourcedF()[0];
     }
 
-    // dw_MagdT
     virtual const SVector3 & getConstRefTodMechanicalFieldSourcedT() const
     {
         return getConstRefTodMechanicalFieldSourcedExtraDofField()[0][0];
@@ -4019,7 +4017,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodMechanicalFieldSourcedExtraDofField()[0][0];
     }
 
-    // dw_MagdGradT
     virtual const STensor3 & getConstRefTodMechanicalFieldSourcedGradT() const
     {
         return getConstRefTodMechanicalFieldSourcedGradExtraDofField()[0][0];
@@ -4029,7 +4026,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodMechanicalFieldSourcedGradExtraDofField()[0][0];
     }
 
-    // dw_MagdV
     virtual const SVector3 & getConstRefTodMechanicalFieldSourcedV() const
     {
         return getConstRefTodMechanicalFieldSourcedExtraDofField()[0][1];
@@ -4039,7 +4035,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodMechanicalFieldSourcedExtraDofField()[0][1];
     }
 
-    // dw_MagdGradV
     virtual const STensor3 & getConstRefTodMechanicalFieldSourcedGradV() const
     {
         return getConstRefTodMechanicalFieldSourcedGradExtraDofField()[0][1];
@@ -4049,7 +4044,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable
         return getRefTodMechanicalFieldSourcedGradExtraDofField()[0][1];
     }
 
-    // dw_MagdB
     virtual const STensor3 & getConstRefTodMechanicalFieldSourcedMagneticVectorCurl() const
     {
         return getConstRefTodMechanicalFieldSourcedVectorCurl()[0][0];
diff --git a/dG3D/src/dG3DMaterialLaw.cpp b/dG3D/src/dG3DMaterialLaw.cpp
index 0ce59746ce3b3c992024f08757f6222011e5841c..8a848f18656ff1ebf9795814a2a226725a56264f 100644
--- a/dG3D/src/dG3DMaterialLaw.cpp
+++ b/dG3D/src/dG3DMaterialLaw.cpp
@@ -5593,26 +5593,26 @@ const bool checkfrac, const bool dTangent)
     SVector3 & dw_TdA = ipvcur->getRefTodFieldSourcedMagneticVectorPotential();
     SVector3 & dw_TdB = ipvcur->getRefTodFieldSourcedMagneticVectorCurl();
     SVector3 & dmechSourcedB = ipvcur->getRefTodMechanicalSourcedMagneticVectorCurl();
-    SVector3 & w_AV = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F)
-    SVector3 & dw_AVdt = ipvcur->getRefTodsourceVectorFielddt();
+    SVector3 & sourceVectorField = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F)
+    SVector3 & dsourceVectorFielddt = ipvcur->getRefTodsourceVectorFielddt();
     STensor3 & dHdA = ipvcur->getRefTodMagneticFielddMagneticVectorPotential();
     STensor3 & dHdB = ipvcur->getRefTodMagneticFielddMagneticVectorCurl();
     STensor33 & dPdB = ipvcur->getRefTodPdMagneticVectorCurl();
     STensor33 & dHdF = ipvcur->getRefTodMagneticFielddF();
-    STensor33 & dw_AVdF = ipvcur->getRefTodsourceVectorFielddF();
-    SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force w_Mag
+    STensor33 & dsourceVectorFielddF = ipvcur->getRefTodsourceVectorFielddF();
+    SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force
     STensor3 & dmechFieldSourcedB = ipvcur->getRefTodMechanicalFieldSourcedMagneticVectorCurl();
     STensor33 & dmechFieldSourcedF = ipvcur->getRefTodmechanicalFieldSourcedF();
     SVector3 & dHdT = ipvcur->getRefTodMagneticFielddT();
     STensor3 & dHdgradT = ipvcur->getRefTodMagneticFielddGradT();
     SVector3 & dHdV = ipvcur->getRefTodMagneticFielddV();
     STensor3 & dHdgradV = ipvcur->getRefTodMagneticFielddGradV();
-    SVector3 & dw_AVdT = ipvcur->getRefTodSourceVectorFielddT();
-    STensor3 & dw_AVdgradT = ipvcur->getRefTodSourceVectorFielddGradT();
-    SVector3 & dw_AVdV = ipvcur->getRefTodSourceVectorFielddV();
-    STensor3 & dw_AVdgradV = ipvcur->getRefTodSourceVectorFielddGradV();
-    STensor3 & dw_AVdA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential();
-    STensor3 & dw_AVdB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl();
+    SVector3 & dsourceVectorFielddT = ipvcur->getRefTodSourceVectorFielddT();
+    STensor3 & dsourceVectorFielddgradT = ipvcur->getRefTodSourceVectorFielddGradT();
+    SVector3 & dsourceVectorFielddV = ipvcur->getRefTodSourceVectorFielddV();
+    STensor3 & dsourceVectorFielddgradV = ipvcur->getRefTodSourceVectorFielddGradV();
+    STensor3 & dsourceVectorFielddA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential();
+    STensor3 & dsourceVectorFielddB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl();
     SVector3 & dmechFieldSourcedT = ipvcur->getRefTodMechanicalFieldSourcedT();
     STensor3 & dmechFieldSourcedgradT = ipvcur->getRefTodMechanicalFieldSourcedGradT();
     SVector3 & dmechFieldSourcedV = ipvcur->getRefTodMechanicalFieldSourcedV();
@@ -5623,10 +5623,10 @@ const bool checkfrac, const bool dTangent)
     w_T,dw_TdT,dw_TdV,dw_TdF,linearl10,linearl20,lineark10,lineark20,dl10dT,dl20dT,dk10dT,dk20dT,dl10dv,
     dl20dv,dk10dv,dk20dv,dl10dF,dl20dF,dk10dF,dk20dF,fluxjy,djydV,djydgradV,djydT,djydgradT,
     djydF,djydA, djydB, djydgradVdT,djydgradVdV,djydgradVdF,djydgradTdT,djydgradTdV,djydgradTdF,stiff,
-    A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, w_AV, dw_AVdt,
-    dHdA, dHdB, dPdB, dHdF, dw_AVdF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF,
-    dHdT, dHdgradT, dHdV, dHdgradV, dw_AVdT, dw_AVdgradT, dw_AVdV, dw_AVdgradV, dw_AVdA, dw_AVdB,
-    dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV);
+    A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, sourceVectorField,
+    dsourceVectorFielddt, dHdA, dHdB, dPdB, dHdF, dsourceVectorFielddF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF,
+    dHdT, dHdgradT, dHdV, dHdgradV, dsourceVectorFielddT, dsourceVectorFielddgradT, dsourceVectorFielddV, dsourceVectorFielddgradV, dsourceVectorFielddA,
+    dsourceVectorFielddB, dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV);
 
     ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness);
 }
@@ -5839,26 +5839,26 @@ const bool checkfrac, const bool dTangent)
   SVector3 & dw_TdA = ipvcur->getRefTodFieldSourcedMagneticVectorPotential();
   SVector3 & dw_TdB = ipvcur->getRefTodFieldSourcedMagneticVectorCurl();
   SVector3 & dmechSourcedB = ipvcur->getRefTodMechanicalSourcedMagneticVectorCurl();
-  SVector3 & w_AV = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F)
-  SVector3 & dw_AVdt = ipvcur->getRefTodsourceVectorFielddt();
+  SVector3 & sourceVectorField = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F)
+  SVector3 & dsourceVectorFielddt = ipvcur->getRefTodsourceVectorFielddt();
   STensor3 & dHdA = ipvcur->getRefTodMagneticFielddMagneticVectorPotential();
   STensor3 & dHdB = ipvcur->getRefTodMagneticFielddMagneticVectorCurl();
   STensor33 & dPdB = ipvcur->getRefTodPdMagneticVectorCurl();
   STensor33 & dHdF = ipvcur->getRefTodMagneticFielddF();
-  STensor33 & dw_AVdF = ipvcur->getRefTodsourceVectorFielddF();
-  SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force w_Mag
+  STensor33 & dsourceVectorFielddF = ipvcur->getRefTodsourceVectorFielddF();
+  SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force
   STensor3 & dmechFieldSourcedB = ipvcur->getRefTodMechanicalFieldSourcedMagneticVectorCurl();
   STensor33 & dmechFieldSourcedF = ipvcur->getRefTodmechanicalFieldSourcedF();
   SVector3 & dHdT = ipvcur->getRefTodMagneticFielddT();
   STensor3 & dHdgradT = ipvcur->getRefTodMagneticFielddGradT();
   SVector3 & dHdV = ipvcur->getRefTodMagneticFielddV();
   STensor3 & dHdgradV = ipvcur->getRefTodMagneticFielddGradV();
-  SVector3 & dw_AVdT = ipvcur->getRefTodSourceVectorFielddT();
-  STensor3 & dw_AVdgradT = ipvcur->getRefTodSourceVectorFielddGradT();
-  SVector3 & dw_AVdV = ipvcur->getRefTodSourceVectorFielddV();
-  STensor3 & dw_AVdgradV = ipvcur->getRefTodSourceVectorFielddGradV();
-  STensor3 & dw_AVdA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential();
-  STensor3 & dw_AVdB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl();
+  SVector3 & dsourceVectorFielddT = ipvcur->getRefTodSourceVectorFielddT();
+  STensor3 & dsourceVectorFielddgradT = ipvcur->getRefTodSourceVectorFielddGradT();
+  SVector3 & dsourceVectorFielddV = ipvcur->getRefTodSourceVectorFielddV();
+  STensor3 & dsourceVectorFielddgradV = ipvcur->getRefTodSourceVectorFielddGradV();
+  STensor3 & dsourceVectorFielddA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential();
+  STensor3 & dsourceVectorFielddB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl();
   SVector3 & dmechFieldSourcedT = ipvcur->getRefTodMechanicalFieldSourcedT();
   STensor3 & dmechFieldSourcedgradT = ipvcur->getRefTodMechanicalFieldSourcedGradT();
   SVector3 & dmechFieldSourcedV = ipvcur->getRefTodMechanicalFieldSourcedV();
@@ -5869,10 +5869,10 @@ const bool checkfrac, const bool dTangent)
     w_T,dw_TdT,dw_TdV,dw_TdF,linearl10,linearl20,lineark10,lineark20,dl10dT,dl20dT,dk10dT,dk20dT,dl10dv,
     dl20dv,dk10dv,dk20dv,dl10dF,dl20dF,dk10dF,dk20dF,fluxjy,djydV,djydgradV,djydT,djydgradT,
     djydF, djydA, djydB, djydgradVdT,djydgradVdV,djydgradVdF,djydgradTdT,djydgradTdV,djydgradTdF,stiff,
-    A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, w_AV, dw_AVdt,
-    dHdA, dHdB, dPdB, dHdF, dw_AVdF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF,
-    dHdT, dHdgradT, dHdV, dHdgradV, dw_AVdT, dw_AVdgradT, dw_AVdV, dw_AVdgradV, dw_AVdA, dw_AVdB,
-    dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV);
+    A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB,
+    sourceVectorField, dsourceVectorFielddt, dHdA, dHdB, dPdB, dHdF, dsourceVectorFielddF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF,
+    dHdT, dHdgradT, dHdV, dHdgradV, dsourceVectorFielddT, dsourceVectorFielddgradT, dsourceVectorFielddV, dsourceVectorFielddgradV, dsourceVectorFielddA,
+    dsourceVectorFielddB, dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV);
 
   ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness);
 }
diff --git a/dG3D/src/nonLocalDamageDG3DIPVariable.h b/dG3D/src/nonLocalDamageDG3DIPVariable.h
index e880ea25b82569531b1594beccec52ef0256f03d..62d7e8e6202bb20abc80444dbd22548d4569408a 100644
--- a/dG3D/src/nonLocalDamageDG3DIPVariable.h
+++ b/dG3D/src/nonLocalDamageDG3DIPVariable.h
@@ -856,6 +856,18 @@ virtual SVector3 & getRefToInductorSourceVectorField(const int idex)
         Msg::Error("getRefTodSourceVectorFielddVectorCurl() : _constitutiveCurlData not created");
     return _constitutiveCurlData->dSourceVectorFielddVectorCurl;
   }
+    virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const
+    {
+        if (_constitutiveCurlData == NULL)
+            Msg::Error("getConstRefTodSourceVectorFielddVectorPotential() : _constitutiveCurlData not created");
+        return _constitutiveCurlData->dSourceVectorFielddVectorPotential;
+    }
+    virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential()
+    {
+        if (_constitutiveCurlData == NULL)
+            Msg::Error("getRefTodSourceVectorFielddVectorPotential() : _constitutiveCurlData not created");
+        return _constitutiveCurlData->dSourceVectorFielddVectorPotential;
+    }
   virtual const std::vector< std::vector< STensor3 > > & getConstRefTodMechanicalFieldSourcedVectorCurl() const
   {
     if (_constitutiveCurlData == NULL)