diff --git a/NonLinearSolver/nlsolver/cutMeshByBox.cpp b/NonLinearSolver/nlsolver/cutMeshByBox.cpp
index 2554a880eab921559a57407e7e08a210a2f0d2d4..665bb8ec37ffb54f9b3f02273c9122b7410e56ec 100644
--- a/NonLinearSolver/nlsolver/cutMeshByBox.cpp
+++ b/NonLinearSolver/nlsolver/cutMeshByBox.cpp
@@ -286,7 +286,8 @@ std::set<MVertex*> cutMeshByBox::currentVertices;
 cutMeshByBox::cutMeshByBox(): _pModel(NULL),_g(NULL),_gVolume(NULL){}
 
 void cutMeshByBox::addModel(std::string meshFileName){
-	_pModel = new GModel();
+  _pModel = new GModel();
+  _pModel->setAsCurrent();
   _pModel->readMSH(meshFileName.c_str());
   int dim = _pModel->getNumRegions() ? 3 : 2;
   _g = new elementGroup();
diff --git a/NonLinearSolver/nlsolver/getTotalVolume.cpp b/NonLinearSolver/nlsolver/getTotalVolume.cpp
index 582d7ae5ffe191735fc5d72c91f999fd8c320740..eea04a0d09c44b36fe126efbafcf68beb49a804d 100644
--- a/NonLinearSolver/nlsolver/getTotalVolume.cpp
+++ b/NonLinearSolver/nlsolver/getTotalVolume.cpp
@@ -20,6 +20,7 @@ getTotalVolume::~getTotalVolume(){
 
 void getTotalVolume::loadModel(const std::string filename){
   GModel* pModel = new GModel();
+  pModel->setAsCurrent(); //to check
   pModel->readMSH(filename.c_str());
   int dim = pModel->getNumRegions() ? 3 : 2;
   std::map<int, std::vector<GEntity*> > groups[4];
diff --git a/NonLinearSolver/nlsolver/imperfectionToMesh.cpp b/NonLinearSolver/nlsolver/imperfectionToMesh.cpp
index 3b46b1c7b1a69ed90293d300fc9fedf50671b971..dbe414a3153cd228d565763e75957111d9f81b8f 100644
--- a/NonLinearSolver/nlsolver/imperfectionToMesh.cpp
+++ b/NonLinearSolver/nlsolver/imperfectionToMesh.cpp
@@ -166,6 +166,7 @@ void imperfectionPart::addAllEntities(){
 void imperfectionToMesh::loadModel(const std::string meshFileName)
 {
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readMSH(meshFileName.c_str());
   _meshFileName = meshFileName;
 }
@@ -182,6 +183,7 @@ void imperfectionToMesh::addImperfection(imperfectionPart* ip){
 void imperfectionToMesh::imposeImperfection(const std::string fname){
   Msg::Info("Begin writing perturbed mesh");
   GModel* dispgmodel = new GModel();
+  dispgmodel->setAsCurrent(); //to check
   dispgmodel->readMSH(_meshFileName.c_str());
   std::set<MVertex*> allPerturbedVertices;
   for (int i=0; i<_allImperfectionPart.size(); i++){
diff --git a/NonLinearSolver/nlsolver/meshModification.cpp b/NonLinearSolver/nlsolver/meshModification.cpp
index 5b79feed1758d844a62ad80e2eca3e8bce7aa6a4..68cf8ea372e23e37cb9dda287414b14e0f1d3f1d 100644
--- a/NonLinearSolver/nlsolver/meshModification.cpp
+++ b/NonLinearSolver/nlsolver/meshModification.cpp
@@ -26,6 +26,7 @@ void meshModification::loadModel(const std::string meshFileName)
 {
   if (_pModel) delete _pModel;
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readMSH(meshFileName.c_str());
   _meshFileName = meshFileName;
 };
@@ -34,6 +35,7 @@ void meshModification::loadGeo(const std::string geoFile, int dimToMesh, int ord
 {
   if (_pModel) delete _pModel;
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readGEO(geoFile);
   // Overwrite options
   CTX::instance()->mesh.order = order;
@@ -314,6 +316,7 @@ void QuadToTriangle::loadModel(const std::string meshFileName)
 {
   if (_pModel) delete _pModel;
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readMSH(meshFileName.c_str());
 };
 
@@ -409,4 +412,4 @@ void QuadToTriangle::apply(const std::string fname)
   write_MSH2(allG,fname);
   
   Msg::Info("done modifying mesh");
-};
\ No newline at end of file
+};
diff --git a/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp b/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
index 0630359883c64270814d15fdd632517172a3370b..55208a0562ae842566b020feed7cd22619537385 100644
--- a/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
+++ b/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
@@ -17103,6 +17103,7 @@ void nonLinearMechSolver::setDisturbedEigenMode(int num, double val, bool flag){
 void nonLinearMechSolver::writeDisturbedMeshByEigenVector(eigenSolver& eigS, int numberMode, double fact){
 	Msg::Info("Begin writing deformed mesh");
   GModel* dispgmodel = new GModel();
+  dispgmodel->setAsCurrent();
   dispgmodel->readMSH(_meshFileName.c_str());
   std::set<MVertex*> computedVertex;
 
@@ -17158,6 +17159,7 @@ void nonLinearMechSolver::setWriteDeformedMeshToFile(bool flag){
 void nonLinearMechSolver::writeDeformedMesh(int step){
   Msg::Info("Begin writing deformed mesh");
   GModel* dispgmodel = new GModel();
+  dispgmodel->setAsCurrent();
   dispgmodel->readMSH(_meshFileName.c_str());
   std::set<MVertex*> computedVertex;
 
diff --git a/NonLinearSolver/nlsolver/showDataOnMesh.cpp b/NonLinearSolver/nlsolver/showDataOnMesh.cpp
index 4da21c701d9a1231f528c544a601587e2a464329..7637eaf788e09b4bf60b706c6faa8aa36c7d585e 100644
--- a/NonLinearSolver/nlsolver/showDataOnMesh.cpp
+++ b/NonLinearSolver/nlsolver/showDataOnMesh.cpp
@@ -13,6 +13,7 @@
 showDataOnMesh::showDataOnMesh(const std::string meshFileName)
 {
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readMSH(meshFileName.c_str());
   _meshFileName = meshFileName;
   
@@ -35,6 +36,7 @@ void showDataOnMesh::dataOnPhysical(int dim, int phys, const std::string partMes
   write_MSH2(_gr,partMeshFile.c_str());
   
   _part = new GModel();
+  _part->setAsCurrent(); //to check
   _part->readMSH(partMeshFile.c_str()); 
 }
 
diff --git a/NonLinearSolver/nlsolver/strainMapping.cpp b/NonLinearSolver/nlsolver/strainMapping.cpp
index 7381569e5d6e6e05068579d46b6166d5803c8063..fca0c32dc3899c52ea30f44c1761fc65779336cf 100644
--- a/NonLinearSolver/nlsolver/strainMapping.cpp
+++ b/NonLinearSolver/nlsolver/strainMapping.cpp
@@ -28,6 +28,7 @@ strainMapping::~strainMapping(){
 void strainMapping::readMesh(const std::string meshFileName){
   _meshFileName = meshFileName;
   _pModel = new GModel();
+  _pModel->setAsCurrent(); //to check
   _pModel->readMSH(meshFileName.c_str());
   int dim = _pModel->getNumRegions() ? 3 : 2;
   _g = new elementGroup();
diff --git a/NonLinearSolver/periodicBC/geometryRotation.cpp b/NonLinearSolver/periodicBC/geometryRotation.cpp
index 01f028811c8481cf32903b37ac59517ec5a22a9e..f082ccd6b395830e785692de62f7c9e1c4ab7800 100644
--- a/NonLinearSolver/periodicBC/geometryRotation.cpp
+++ b/NonLinearSolver/periodicBC/geometryRotation.cpp
@@ -118,6 +118,7 @@ void GeometryRotation::exportRotatedModel(const double e1x, const double e1y, co
   n3.normalize();
 
   GModel* pModel = new GModel();
+  pModel->setAsCurrent(); //to check
   pModel->readMSH(inMeshFile.c_str());
   pModel->setFileName(inMeshFile);
 
diff --git a/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.geo b/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.geo
index 6f9ce741fd60b96a03cfbc9d398166c415d7b6d8..2e357d7564d1805725f6d9f29640f38129a6f117 100644
--- a/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.geo
+++ b/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.geo
@@ -27,43 +27,43 @@ BooleanFragments{ Volume{2}; Delete; }{ Volume{1}; Delete; }
 
 Coherence;
 //+
-Physical Surface("REFWIRETOP", 2333) = {18};
+Physical Surface("REFWIRETOP", 2333) = {2};
 //+
-Physical Surface("REFWIREBOTTOM", 2444) = {19};
+Physical Surface("REFWIREBOTTOM", 2444) = {3};
 //+
-Physical Surface("REFWIREOUT", 2666) = {16};
+Physical Surface("REFWIREOUT", 2666) = {1};
 //+
-Physical Surface("REFCORETOP", 11111) = {10};
+Physical Surface("REFCORETOP", 11111) = {13};
 //+
-Physical Surface("REFCOREBOTTOM", 11115) = {13};
+Physical Surface("REFCOREBOTTOM", 11115) = {14};
 //+
-Physical Surface("REFCOREOUT", 11113) = {11};
+Physical Surface("REFCOREOUT", 11113) = {7};
 //+
 Physical Volume("WIRE", 2000) = {1};
 //+
 Physical Volume("ECORE", 1000) = {5};
 //+
-Physical Point("REFWIREPOINT", 2555) = {11};
+Physical Point("REFWIREPOINT", 2555) = {1};
 //+
-Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {7};
+Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {5};
 //+
-Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {9};
+Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {6};
 //+
 
-Physical Surface("AIRINTOP", 3333) = {14};
+Physical Surface("AIRINTOP", 3333) = {15};
 //+
-Physical Surface("AIRINBOTTOM", 3444) = {17};
+Physical Surface("AIRINBOTTOM", 3444) = {16};
 //+
-Physical Surface("AIRINOUTER", 3666) = {15};
+Physical Surface("AIRINOUTER", 3666) = {4};
 //+
 Physical Volume("AIRIN", 3000) = {6};
 //+
 
-Physical Surface("AIROUTTOP", 4333) = {8};
+Physical Surface("AIROUTTOP", 4333) = {11};
 //+
-Physical Surface("AIROUTBOTTOM", 4444) = {9};
+Physical Surface("AIROUTBOTTOM", 4444) = {12};
 //+
-Physical Surface("AIROUTOUTER", 4666) = {7};
+Physical Surface("AIROUTOUTER", 4666) = {10};
 //+
 Physical Volume("AIROUT", 4000) = {4};
 //+
diff --git a/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.py b/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.py
index cf41181f6533546dfd6c8612b2a7f6f35dbb1485..1f2a253f24dca0579c1f1ce940ee4ec9bb43d530 100644
--- a/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.py
+++ b/dG3D/benchmarks/air_wire_smp/air_air_wire_smp.py
@@ -117,6 +117,7 @@ useFluxT=True
 evaluateCurlField = True;
 evaluateTemperature = True;
 
+geofile = "air_air_wire_smp.geo"
 meshfile = "air_air_wire_smp.msh"
 
 # solver
@@ -266,7 +267,8 @@ AirOut_field.setConstitutiveExtraDofDiffusionAccountSource(thermalSource,mecaSou
 
 # creation of Solver
 mysolver = nonLinearMechSolver(1000)
-mysolver.loadModel(meshfile)
+mysolver.createModel(geofile,meshfile,3,1)
+#mysolver.loadModel(meshfile)
 mysolver.addDomain(SMP_field)
 mysolver.addDomain(Wire_field)
 mysolver.addDomain(AirIn_field)
diff --git a/dG3D/benchmarks/air_wire_smp/air_wire_smp.geo b/dG3D/benchmarks/air_wire_smp/air_wire_smp.geo
index 63bde2158412fcdddbeee49ffa240611aeb9c08a..1fbda42188a38f543cd52f911d42e80d46c2d76e 100644
--- a/dG3D/benchmarks/air_wire_smp/air_wire_smp.geo
+++ b/dG3D/benchmarks/air_wire_smp/air_wire_smp.geo
@@ -22,34 +22,34 @@ BooleanFragments{ Volume{2}; Delete; }{ Volume{1}; Delete; }
 
 Coherence;
 //+
-Physical Surface("REFWIRETOP", 2333) = {11};
+Physical Surface("REFWIRETOP", 2333) = {2};
 //+
-Physical Surface("REFWIREBOTTOM", 2444) = {12};
+Physical Surface("REFWIREBOTTOM", 2444) = {3};
 //+
-Physical Surface("REFWIREOUT", 2666) = {9};
+Physical Surface("REFWIREOUT", 2666) = {1};
 //+
-Physical Surface("REFCORETOP", 11111) = {5};
+Physical Surface("REFCORETOP", 11111) = {8};
 //+
-Physical Surface("REFCOREBOTTOM", 11115) = {6};
+Physical Surface("REFCOREBOTTOM", 11115) = {9};
 //+
-Physical Surface("REFCOREOUT", 11113) = {4};
+Physical Surface("REFCOREOUT", 11113) = {7};
 //+
 Physical Volume("WIRE", 2000) = {1};
 //+
 Physical Volume("ECORE", 1000) = {3};
 //+
-Physical Point("REFWIREPOINT", 2555) = {6};
+Physical Point("REFWIREPOINT", 2555) = {1};
 //+
-Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {3};
+Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {5};
 //+
-Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {4};
+Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {6};
 //+
 
-Physical Surface("AIRTOP", 3333) = {7};
+Physical Surface("AIRTOP", 3333) = {10};
 //+
-Physical Surface("AIRBOTTOM", 3444) = {10};
+Physical Surface("AIRBOTTOM", 3444) = {11};
 //+
-Physical Surface("AIROUT", 3666) = {8};
+Physical Surface("AIROUT", 3666) = {4};
 //+
 Physical Volume("AIR", 3000) = {4};
 //+
diff --git a/dG3D/benchmarks/air_wire_smp/air_wire_smp.py b/dG3D/benchmarks/air_wire_smp/air_wire_smp.py
index 74f3e29c751d28af78f18c62c6e70423c8e4a3e4..27b6d92975bdb26f545fcf6bacb98c66911b5994 100644
--- a/dG3D/benchmarks/air_wire_smp/air_wire_smp.py
+++ b/dG3D/benchmarks/air_wire_smp/air_wire_smp.py
@@ -113,6 +113,7 @@ useFluxT=True
 evaluateCurlField = True;
 evaluateTemperature = True;
 
+geofile = "air_wire_smp.geo"
 meshfile = "air_wire_smp.msh"
 
 # solver
@@ -252,7 +253,8 @@ Air_field.setConstitutiveExtraDofDiffusionAccountSource(thermalSource,mecaSource
 
 # creation of Solver
 mysolver = nonLinearMechSolver(1000)
-mysolver.loadModel(meshfile)
+mysolver.createModel(geofile,meshfile,3,1)
+#mysolver.loadModel(meshfile)
 mysolver.addDomain(SMP_field)
 mysolver.addDomain(Wire_field)
 mysolver.addDomain(Air_field)
@@ -367,8 +369,3 @@ mysolver.solve()
 
 check = TestCheck()
 
-check.equal(-5.078279e+07,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndStart, 3),1.e-3)
-check.equal(-3.558307e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndStart, 4),1.e-3)
-check.equal(3.558307e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndEnd, 4),1.e-3)
-
-
diff --git a/dG3D/benchmarks/air_wire_smp/wire_smp.geo b/dG3D/benchmarks/air_wire_smp/wire_smp.geo
index 0f8deb9778a3f3d702c09f6e778a7f28ee5ca08e..14d5b7a81a2ae0618b2c5534b2f814328cd89922 100644
--- a/dG3D/benchmarks/air_wire_smp/wire_smp.geo
+++ b/dG3D/benchmarks/air_wire_smp/wire_smp.geo
@@ -17,27 +17,27 @@ Cylinder(2) = {0, 0, -H_SMP/2., 0, 0, H_SMP, RextSMP, 2*Pi};
 BooleanFragments{ Volume{2}; Delete; }{ Volume{1}; Delete; }
 Coherence;
 //+
-Physical Surface("REFWIRETOP", 2333) = {5};
+Physical Surface("REFWIRETOP", 2333) = {2};
 //+
-Physical Surface("REFWIREBOTTOM", 2444) = {6};
+Physical Surface("REFWIREBOTTOM", 2444) = {3};
 //+
-Physical Surface("REFWIREOUT", 2666) = {4};
+Physical Surface("REFWIREOUT", 2666) = {1};
 //+
-Physical Surface("REFCORETOP", 11111) = {2};
+Physical Surface("REFCORETOP", 11111) = {5};
 //+
-Physical Surface("REFCOREBOTTOM", 11115) = {3};
+Physical Surface("REFCOREBOTTOM", 11115) = {6};
 //+
-Physical Surface("REFCOREOUT", 11113) = {1};
+Physical Surface("REFCOREOUT", 11113) = {4};
 //+
 Physical Volume("WIRE", 2000) = {1};
 //+
 Physical Volume("ECORE", 1000) = {2};
 //+
-Physical Point("REFWIREPOINT", 2555) = {3};
+Physical Point("REFWIREPOINT", 2555) = {1};
 //+
-Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {1};
+Physical Point("REFCOREPOINTTOPEXTERIOR_1", 11116) = {3};
 //+
-Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {2};
+Physical Point("REFCOREPOINTBOTTOMEXTERIOR_1", 11124) = {4};
 //+
 
 // Adapting mesh size
diff --git a/dG3D/benchmarks/air_wire_smp/wire_smp.py b/dG3D/benchmarks/air_wire_smp/wire_smp.py
index 92e36541928422adb5d85c552313ccfb87956374..1ee1b3747a4060a880d161e53eba057f8e0d06c7 100644
--- a/dG3D/benchmarks/air_wire_smp/wire_smp.py
+++ b/dG3D/benchmarks/air_wire_smp/wire_smp.py
@@ -88,6 +88,7 @@ useFluxT=True
 evaluateCurlField = True;
 evaluateTemperature = True;
 
+geofile = "wire_smp.geo"
 meshfile = "wire_smp.msh"
 
 # solver
@@ -190,7 +191,8 @@ Wire_field.setConstitutiveExtraDofDiffusionAccountSource(thermalSource,mecaSourc
 
 # creation of Solver
 mysolver = nonLinearMechSolver(1000)
-mysolver.loadModel(meshfile)
+mysolver.createModel(geofile,meshfile,3,1)
+#mysolver.loadModel(meshfile)
 mysolver.addDomain(SMP_field)
 mysolver.addDomain(Wire_field)
 mysolver.addMaterialLaw(lawsmp)
diff --git a/dG3D/benchmarks/ipTransferSolver/twoHole.msh b/dG3D/benchmarks/ipTransferSolver/twoHole.msh
index ef3ca80425a51c612cff710009e0e1aa3c13d1f6..45ab49210e1648ac694939adea27e4c0d1d44763 100644
--- a/dG3D/benchmarks/ipTransferSolver/twoHole.msh
+++ b/dG3D/benchmarks/ipTransferSolver/twoHole.msh
@@ -176,7 +176,7 @@ $Nodes
 35
 36
 37
-0.02 0.003999999999992779 0
+0.02 0.00399999999999278 0
 0.02 0.007999999999982091 0
 0.02 0.0119999999999705 0
 0.02 0.01599999999995885 0
@@ -256,7 +256,7 @@ $Nodes
 69
 70
 71
-0.02 0.003999999999992779 0.001
+0.02 0.00399999999999278 0.001
 0.02 0.007999999999982091 0.001
 0.02 0.0119999999999705 0.001
 0.02 0.01599999999995885 0.001
@@ -469,8 +469,8 @@ $Nodes
 0.008491437804955137 0.0199171785096406 0
 0.00690388739532069 0.02051073467151298 0
 0.01653589838487234 0.01399999999996467 0
-0.009046722191314195 0.01480694649206589 0
-0.008426033806978575 0.01321031373280406 0
+0.009046722191314194 0.01480694649206589 0
+0.008426033806978574 0.01321031373280406 0
 0.01424357729852779 0.02043372248331336 0
 0.01296047669859904 0.01941387218269119 0
 0.008263029399403226 0.02154786985921875 0
@@ -492,7 +492,7 @@ $Nodes
 0.01139395327290044 0.03052967159464624 0
 0.01086293762318213 0.009580504895283549 0
 0.01704430508419145 0.006112491599637461 0
-0.01462047103212615 0.01859993502699018 0
+0.01462047103212615 0.01859993502699017 0
 0.01698515966127164 0.03400135129356456 0
 0.00373539260734349 0.005939436142914412 0
 0.003376988207977877 0.03413486976455078 0
@@ -500,33 +500,33 @@ $Nodes
 0.009218044612054624 0.02473653306713265 0
 0.01106814834811252 0.0227855872852138 0
 0.01147450436552285 0.01850533413037564 0
-0.00334049735673442 0.02615784593061279 0
+0.003340497356734421 0.02615784593061279 0
 0.01354435924711705 0.009853826534445225 0
-0.01213122998869793 0.007857812733363565 0
+0.01213122998869792 0.007857812733363567 0
 0.01384270810364941 0.0306393355448655 0
 0.01226400914605278 0.03311633237960827 0
-0.009426689413534816 0.03275785678229449 0
+0.009426689413534818 0.03275785678229449 0
 0.01373175978969699 0.03623792776491455 0
-0.01683250550322433 0.02263969604477658 0
+0.01683250550322432 0.02263969604477658 0
 0.01607953297964854 0.01997969364274139 0
 0.002543613746886563 0.01719654215416338 0
 0.01690374371914992 0.02517889741283597 0
-0.003018060765804543 0.01489030586722159 0
+0.003018060765804542 0.01489030586722159 0
 0.002958556785232187 0.009533394435097736 0
-0.006385595613347073 0.008567003568966973 0
+0.006385595613347073 0.008567003568966971 0
 0.003677943032897645 0.02979756000843568 0
 0.01000674811936005 0.01926232521657636 0
 0.01713306675458549 0.01797097149284377 0
-0.01409177722374684 0.003620827595921448 0
+0.01409177722374685 0.003620827595921448 0
 0.007057363541754055 0.0348228302775342 0
 0.006580849070060285 0.03182758678589994 0
 0.009907118432104248 0.02082411756869903 0
 0.01682934862807006 0.01050827073068822 0
 0.003468221676599261 0.0192701661958266 0
-0.006000641006729559 0.002993507790411589 0
-0.009468444688653373 0.007036428098502742 0
+0.00600064100672956 0.002993507790411589 0
+0.00946844468865337 0.007036428098502745 0
 0.01466135446757348 0.01627458147001698 0
-0.009941186005579446 0.01771741754040344 0
+0.009941186005579444 0.01771741754040344 0
 0.004491254516352581 0.02317048235869323 0
 0.006483039021294953 0.02475795797311564 0
 0.01376650051533848 0.01371901128269929 0
@@ -537,10 +537,10 @@ $Nodes
 0.01748210151590897 0.02748210151315524 0
 0.00256306620421069 0.0212289627740941 0
 0.009695439646473906 0.02254030632916936 0
-0.008034179611286208 0.02322013841996866 0
+0.008034179611286206 0.02322013841996865 0
 0.01258823090627458 0.01557276579487482 0
 0.01122372746423419 0.01680649117712711 0
-0.009575774627531175 0.0162590233290763 0
+0.009575774627531173 0.0162590233290763 0
 0.008677515200264394 0.009626167327560671 0
 0.008838446608254762 0.03016627894126156 0
 0.007958888908530064 0.02622051756495599 0
@@ -557,17 +557,17 @@ $Nodes
 0.008626951432142852 0.01709099536014059 0
 0.01342075111796162 0.02707580796889819 0
 0.01531396586793479 0.02152777972087169 0
-0.007056221860672962 0.01307433848445312 0
-0.01059857381811686 0.02385953640403209 0
-0.007181510617379726 0.005608441246314311 0
-0.006668003971424691 0.0294298836881576 0
+0.007056221860672961 0.01307433848445312 0
+0.01059857381811686 0.0238595364040321 0
+0.007181510617379725 0.005608441246314311 0
+0.00666800397142469 0.02942988368815761 0
 0.01468878787317007 0.01183595380387033 0
 0.01800902104749167 0.02091807223605352 0
 0.01468628630773485 0.03272277862826905 0
 0.007127570679378617 0.0375272262004999 0
 0.002236669681788415 0.03767292497657418 0
 0.006056687819191881 0.01228266862623754 0
-0.01197695951870398 0.005572470032906036 0
+0.01197695951870398 0.005572470032906037 0
 2 37 0 4
 212
 213
@@ -587,7 +587,7 @@ $Nodes
 222
 223
 224
-0.02 0.003999999999992779 0.0005
+0.02 0.00399999999999278 0.0005
 0.02 0.007999999999982091 0.0005
 0.02 0.0119999999999705 0.0005
 0.02 0.01599999999995885 0.0005
@@ -764,8 +764,8 @@ $Nodes
 0.008491437804955137 0.0199171785096406 0.001
 0.00690388739532069 0.02051073467151298 0.001
 0.01653589838487234 0.01399999999996467 0.001
-0.009046722191314195 0.01480694649206589 0.001
-0.008426033806978575 0.01321031373280406 0.001
+0.009046722191314194 0.01480694649206589 0.001
+0.008426033806978574 0.01321031373280406 0.001
 0.01424357729852779 0.02043372248331336 0.001
 0.01296047669859904 0.01941387218269119 0.001
 0.008263029399403226 0.02154786985921875 0.001
@@ -787,7 +787,7 @@ $Nodes
 0.01139395327290044 0.03052967159464624 0.001
 0.01086293762318213 0.009580504895283549 0.001
 0.01704430508419145 0.006112491599637461 0.001
-0.01462047103212615 0.01859993502699018 0.001
+0.01462047103212615 0.01859993502699017 0.001
 0.01698515966127164 0.03400135129356456 0.001
 0.00373539260734349 0.005939436142914412 0.001
 0.003376988207977877 0.03413486976455078 0.001
@@ -795,33 +795,33 @@ $Nodes
 0.009218044612054624 0.02473653306713265 0.001
 0.01106814834811252 0.0227855872852138 0.001
 0.01147450436552285 0.01850533413037564 0.001
-0.00334049735673442 0.02615784593061279 0.001
+0.003340497356734421 0.02615784593061279 0.001
 0.01354435924711705 0.009853826534445225 0.001
-0.01213122998869793 0.007857812733363565 0.001
+0.01213122998869792 0.007857812733363567 0.001
 0.01384270810364941 0.0306393355448655 0.001
 0.01226400914605278 0.03311633237960827 0.001
-0.009426689413534816 0.03275785678229449 0.001
+0.009426689413534818 0.03275785678229449 0.001
 0.01373175978969699 0.03623792776491455 0.001
-0.01683250550322433 0.02263969604477658 0.001
+0.01683250550322432 0.02263969604477658 0.001
 0.01607953297964854 0.01997969364274139 0.001
 0.002543613746886563 0.01719654215416338 0.001
 0.01690374371914992 0.02517889741283597 0.001
-0.003018060765804543 0.01489030586722159 0.001
+0.003018060765804542 0.01489030586722159 0.001
 0.002958556785232187 0.009533394435097736 0.001
-0.006385595613347073 0.008567003568966973 0.001
+0.006385595613347073 0.008567003568966971 0.001
 0.003677943032897645 0.02979756000843568 0.001
 0.01000674811936005 0.01926232521657636 0.001
 0.01713306675458549 0.01797097149284377 0.001
-0.01409177722374684 0.003620827595921448 0.001
+0.01409177722374685 0.003620827595921448 0.001
 0.007057363541754055 0.0348228302775342 0.001
 0.006580849070060285 0.03182758678589994 0.001
 0.009907118432104248 0.02082411756869903 0.001
 0.01682934862807006 0.01050827073068822 0.001
 0.003468221676599261 0.0192701661958266 0.001
-0.006000641006729559 0.002993507790411589 0.001
-0.009468444688653373 0.007036428098502742 0.001
+0.00600064100672956 0.002993507790411589 0.001
+0.00946844468865337 0.007036428098502745 0.001
 0.01466135446757348 0.01627458147001698 0.001
-0.009941186005579446 0.01771741754040344 0.001
+0.009941186005579444 0.01771741754040344 0.001
 0.004491254516352581 0.02317048235869323 0.001
 0.006483039021294953 0.02475795797311564 0.001
 0.01376650051533848 0.01371901128269929 0.001
@@ -832,10 +832,10 @@ $Nodes
 0.01748210151590897 0.02748210151315524 0.001
 0.00256306620421069 0.0212289627740941 0.001
 0.009695439646473906 0.02254030632916936 0.001
-0.008034179611286208 0.02322013841996866 0.001
+0.008034179611286206 0.02322013841996865 0.001
 0.01258823090627458 0.01557276579487482 0.001
 0.01122372746423419 0.01680649117712711 0.001
-0.009575774627531175 0.0162590233290763 0.001
+0.009575774627531173 0.0162590233290763 0.001
 0.008677515200264394 0.009626167327560671 0.001
 0.008838446608254762 0.03016627894126156 0.001
 0.007958888908530064 0.02622051756495599 0.001
@@ -852,17 +852,17 @@ $Nodes
 0.008626951432142852 0.01709099536014059 0.001
 0.01342075111796162 0.02707580796889819 0.001
 0.01531396586793479 0.02152777972087169 0.001
-0.007056221860672962 0.01307433848445312 0.001
-0.01059857381811686 0.02385953640403209 0.001
-0.007181510617379726 0.005608441246314311 0.001
-0.006668003971424691 0.0294298836881576 0.001
+0.007056221860672961 0.01307433848445312 0.001
+0.01059857381811686 0.0238595364040321 0.001
+0.007181510617379725 0.005608441246314311 0.001
+0.00666800397142469 0.02942988368815761 0.001
 0.01468878787317007 0.01183595380387033 0.001
 0.01800902104749167 0.02091807223605352 0.001
 0.01468628630773485 0.03272277862826905 0.001
 0.007127570679378617 0.0375272262004999 0.001
 0.002236669681788415 0.03767292497657418 0.001
 0.006056687819191881 0.01228266862623754 0.001
-0.01197695951870398 0.005572470032906036 0.001
+0.01197695951870398 0.005572470032906037 0.001
 3 1 0 107
 353
 354
@@ -979,8 +979,8 @@ $Nodes
 0.008491437804955137 0.0199171785096406 0.0005
 0.00690388739532069 0.02051073467151298 0.0005
 0.01653589838487234 0.01399999999996467 0.0005
-0.009046722191314195 0.01480694649206589 0.0005
-0.008426033806978575 0.01321031373280406 0.0005
+0.009046722191314194 0.01480694649206589 0.0005
+0.008426033806978574 0.01321031373280406 0.0005
 0.01424357729852779 0.02043372248331336 0.0005
 0.01296047669859904 0.01941387218269119 0.0005
 0.008263029399403226 0.02154786985921875 0.0005
@@ -1002,7 +1002,7 @@ $Nodes
 0.01139395327290044 0.03052967159464624 0.0005
 0.01086293762318213 0.009580504895283549 0.0005
 0.01704430508419145 0.006112491599637461 0.0005
-0.01462047103212615 0.01859993502699018 0.0005
+0.01462047103212615 0.01859993502699017 0.0005
 0.01698515966127164 0.03400135129356456 0.0005
 0.00373539260734349 0.005939436142914412 0.0005
 0.003376988207977877 0.03413486976455078 0.0005
@@ -1010,33 +1010,33 @@ $Nodes
 0.009218044612054624 0.02473653306713265 0.0005
 0.01106814834811252 0.0227855872852138 0.0005
 0.01147450436552285 0.01850533413037564 0.0005
-0.00334049735673442 0.02615784593061279 0.0005
+0.003340497356734421 0.02615784593061279 0.0005
 0.01354435924711705 0.009853826534445225 0.0005
-0.01213122998869793 0.007857812733363565 0.0005
+0.01213122998869792 0.007857812733363567 0.0005
 0.01384270810364941 0.0306393355448655 0.0005
 0.01226400914605278 0.03311633237960827 0.0005
-0.009426689413534816 0.03275785678229449 0.0005
+0.009426689413534818 0.03275785678229449 0.0005
 0.01373175978969699 0.03623792776491455 0.0005
-0.01683250550322433 0.02263969604477658 0.0005
+0.01683250550322432 0.02263969604477658 0.0005
 0.01607953297964854 0.01997969364274139 0.0005
 0.002543613746886563 0.01719654215416338 0.0005
 0.01690374371914992 0.02517889741283597 0.0005
-0.003018060765804543 0.01489030586722159 0.0005
+0.003018060765804542 0.01489030586722159 0.0005
 0.002958556785232187 0.009533394435097736 0.0005
-0.006385595613347073 0.008567003568966973 0.0005
+0.006385595613347073 0.008567003568966971 0.0005
 0.003677943032897645 0.02979756000843568 0.0005
 0.01000674811936005 0.01926232521657636 0.0005
 0.01713306675458549 0.01797097149284377 0.0005
-0.01409177722374684 0.003620827595921448 0.0005
+0.01409177722374685 0.003620827595921448 0.0005
 0.007057363541754055 0.0348228302775342 0.0005
 0.006580849070060285 0.03182758678589994 0.0005
 0.009907118432104248 0.02082411756869903 0.0005
 0.01682934862807006 0.01050827073068822 0.0005
 0.003468221676599261 0.0192701661958266 0.0005
-0.006000641006729559 0.002993507790411589 0.0005
-0.009468444688653373 0.007036428098502742 0.0005
+0.00600064100672956 0.002993507790411589 0.0005
+0.00946844468865337 0.007036428098502745 0.0005
 0.01466135446757348 0.01627458147001698 0.0005
-0.009941186005579446 0.01771741754040344 0.0005
+0.009941186005579444 0.01771741754040344 0.0005
 0.004491254516352581 0.02317048235869323 0.0005
 0.006483039021294953 0.02475795797311564 0.0005
 0.01376650051533848 0.01371901128269929 0.0005
@@ -1047,10 +1047,10 @@ $Nodes
 0.01748210151590897 0.02748210151315524 0.0005
 0.00256306620421069 0.0212289627740941 0.0005
 0.009695439646473906 0.02254030632916936 0.0005
-0.008034179611286208 0.02322013841996866 0.0005
+0.008034179611286206 0.02322013841996865 0.0005
 0.01258823090627458 0.01557276579487482 0.0005
 0.01122372746423419 0.01680649117712711 0.0005
-0.009575774627531175 0.0162590233290763 0.0005
+0.009575774627531173 0.0162590233290763 0.0005
 0.008677515200264394 0.009626167327560671 0.0005
 0.008838446608254762 0.03016627894126156 0.0005
 0.007958888908530064 0.02622051756495599 0.0005
@@ -1067,17 +1067,17 @@ $Nodes
 0.008626951432142852 0.01709099536014059 0.0005
 0.01342075111796162 0.02707580796889819 0.0005
 0.01531396586793479 0.02152777972087169 0.0005
-0.007056221860672962 0.01307433848445312 0.0005
-0.01059857381811686 0.02385953640403209 0.0005
-0.007181510617379726 0.005608441246314311 0.0005
-0.006668003971424691 0.0294298836881576 0.0005
+0.007056221860672961 0.01307433848445312 0.0005
+0.01059857381811686 0.0238595364040321 0.0005
+0.007181510617379725 0.005608441246314311 0.0005
+0.00666800397142469 0.02942988368815761 0.0005
 0.01468878787317007 0.01183595380387033 0.0005
 0.01800902104749167 0.02091807223605352 0.0005
 0.01468628630773485 0.03272277862826905 0.0005
 0.007127570679378617 0.0375272262004999 0.0005
 0.002236669681788415 0.03767292497657418 0.0005
 0.006056687819191881 0.01228266862623754 0.0005
-0.01197695951870398 0.005572470032906036 0.0005
+0.01197695951870398 0.005572470032906037 0.0005
 $EndNodes
 $Elements
 8 1886 1 1886
diff --git a/dG3D/benchmarks/ipTransferSolver/twoHole.py b/dG3D/benchmarks/ipTransferSolver/twoHole.py
index 75447324a2a6780edcacbe8b0ad15e8af36044a8..cb348a5db4beb309001aa57be038667bbf7d7095 100644
--- a/dG3D/benchmarks/ipTransferSolver/twoHole.py
+++ b/dG3D/benchmarks/ipTransferSolver/twoHole.py
@@ -96,7 +96,7 @@ mysolver.setWriteDeformedMeshToFile(True)
 mysolver.solve()
 
 check = TestCheck()
-check.equal(-2.878882e+03,mysolver.getArchivedForceOnPhysicalGroup("Face", 84, 1),1.e-4)
+check.equal(-2.886626e+03,mysolver.getArchivedForceOnPhysicalGroup("Face", 84, 1),1.e-4)
 
 
 dataTransfer = IPDataTransfer()
diff --git a/dG3D/benchmarks/strongCouplingEMGenericTM_SMP/StrongCouplingEMGenericTM.py b/dG3D/benchmarks/strongCouplingEMGenericTM_SMP/StrongCouplingEMGenericTM.py
index baad75df2c809f8ea365b5d34e11c163532b05cf..ccc251b20a61e2ffc9742ff048a967184c6a4a97 100644
--- a/dG3D/benchmarks/strongCouplingEMGenericTM_SMP/StrongCouplingEMGenericTM.py
+++ b/dG3D/benchmarks/strongCouplingEMGenericTM_SMP/StrongCouplingEMGenericTM.py
@@ -244,7 +244,7 @@ mysolver.Scheme(soltype)
 mysolver.Solver(sol)
 mysolver.snlData(nstep,ftime,tol,1.e-9)#forsmp   
 #we cannot use mumps to keep accuracy
-mysolver.options("-ksp_type preonly -pc_type lu -pc_factor_mat_solver_type petsc")
+mysolver.options("-ksp_type preonly -pc_type lu")
 mysolver.stepBetweenArchiving(nstepArch)
 mysolver.snlManageTimeStep(45, 10, 2, 10)