diff --git a/cxxfem/src/femPost.cpp b/cxxfem/src/femPost.cpp
index 395335a5fdeca8a9f6ad1fb530f1b3c08dcb25e5..be8d5e18d5c4a14200dc000fb50baf83a72e9dbd 100644
--- a/cxxfem/src/femPost.cpp
+++ b/cxxfem/src/femPost.cpp
@@ -364,6 +364,19 @@ Post::probe(std::string const &name, std::string const &grpname)
     // get physical group from grpname
     Group *grp = solver.pbl.groups_by_name.at(grpname); // TODO: better handling of errors
 
+    std::vector<std::size_t> nodeTags;
+    std::vector<double> coord;
+    gmsh::model::mesh::getNodesForPhysicalGroup(grp->dim, grp->tag, nodeTags, coord);
+    // j'ai essayé de boucler sur les entités du groupe et faire un getNode de l'entité 
+    // mais ça ne me retourne rien (?)
+    // std::cout << "nodeTags.size()=" << nodeTags.size() << '\n';
+
+    // retourne les coordonnées des noeuds du groupe si demandé
+    if(name=="coords")
+    {   
+        return coord;
+    }
+
     // get the view
     auto it = views.find(name);
     if (it == views.end())
@@ -373,14 +386,6 @@ Post::probe(std::string const &name, std::string const &grpname)
     // probe values
     std::vector<double> all_values;
 
-    std::vector<std::size_t> nodeTags;
-    std::vector<double> coord;
-    gmsh::model::mesh::getNodesForPhysicalGroup(grp->dim, grp->tag, nodeTags, coord);
-    // j'ai essayé de boucler sur les entités du groupe et faire un getNode de l'entité 
-    // mais ça ne me retourne rien (?)
-
-    // std::cout << "nodeTags.size()=" << nodeTags.size() << '\n';
-
     for (size_t i = 0; i < nodeTags.size(); ++i)
     {
         std::vector<double> values;
diff --git a/models/bonemodel2.py b/models/bonemodel2.py
index e7397baeabbee1ec005d47ccb884185eea7e387c..25ade80a5748e54b97da8a4ac9757c166d4da3b8 100644
--- a/models/bonemodel2.py
+++ b/models/bonemodel2.py
@@ -242,17 +242,35 @@ def solve(p={}):
         for var in extr['variables']:
             fname = f'{extr["name"]}_{var}.tsv'
             grpname = extr['name']
+            v = []
+            units = ""
             if var.lower() in var2field:
+                # extract values from gmsh views
                 field = var2field[var.lower()][0]
                 units = var2field[var.lower()][1]
-                v = np.array(post.probe(field, grpname))
-                np.savetxt(fname, v, delimiter='\t', header='value')
+                v = np.array(post.probe(field, grpname))              
+            elif var.lower() in ['x0', 'y0', 'z0']:
+                # extract coordinates of the nodes
+                units = 'mm'
+                v = np.array(post.probe('coords', grpname))
+                v = np.reshape(v, (v.size//3, 3))
+                v = v[:, ['x0', 'y0', 'z0'].index(var.lower())] 
+            elif var.lower() in ['fx', 'fy', 'fz']: 
+                # extract forces
+                units = 'N'
+                v = np.array(post.probe('force_vector', grpname))
+                v = np.reshape(v, (v.size//3, 3))
+                v = v[:, ['fx', 'fy', 'fz'].index(var.lower())]
+            else:
+                print(f'unknown variable: "{var}"')
+
+            if len(v) > 0:
+                np.savetxt(fname, v, delimiter='\t', header=var.lower())
                 if len(v) == 1:
                     print(f'\t{grpname}_{var} = {v[0]:.3f} {units}')
                 else:
-                    print(f'\t{grpname}_{var} = ({len(v)} values in "{fname}")')
-            else:
-                print(f'unknown variable: "{var}"')
+                    print(f'\t{grpname}_{var} = ({len(v)} values in "{fname}")')                
+
 
     end_time = time.perf_counter()
     elapsed_time = end_time - start_time
diff --git a/models/dolicorhynchops/dolicorhynchops_10k.py b/models/dolicorhynchops/dolicorhynchops_10k.py
index ac51fdfd395f609e750a49fbdee007cac103f447..4ef2f960f0853d48d63c62e0f2fd6f95def3fbbd 100644
--- a/models/dolicorhynchops/dolicorhynchops_10k.py
+++ b/models/dolicorhynchops/dolicorhynchops_10k.py
@@ -52,6 +52,11 @@ def parms(d={}):
             'name': 'tooth2',
             'nodes': [-11.92466, 26.3042, -229.5354],
             'variables': [ 'sigxx', 'sigyy', 'sigzz', 'sigvm' ]
+        },
+        {
+            'name': 'Lmuscle',
+            'nodes': f'{path}/Lmuscle.stl',
+            'variables': [ 'x0', 'y0', 'z0', 'sigvm' ]
         }
     ]