diff --git a/models/dolicorhynchops_10k.py b/models/dolicorhynchops_10k.py
index f8ce7311d6acbd7d5d4a4d8d6f4d966bf4e5191f..fb8dcbfebfc029b119cb832de399cb07e18ae8bc 100644
--- a/models/dolicorhynchops_10k.py
+++ b/models/dolicorhynchops_10k.py
@@ -16,7 +16,7 @@ def parms(d={}):
             'file': f'{path}/Lmuscle.ply',
             'force': 100.,
             'focalpt': f'{path}/LmuscleF.off',
-            'method': 'T'                              # 'U', 'T', 'T+N'
+            'method': 'U'                              # 'U', 'T', 'T+N'
         },
         {
             'file': f'{path}/Rmuscle.off',
@@ -25,6 +25,17 @@ def parms(d={}):
             'method': 'T'
         }
     ]
+    p['fixations'] = {  
+        'teeth': ['x'],
+        'LTMJ': ['x','y','z'],
+        'RTMJ': ['x','z']
+    }
+
+    # material properties
+    p['density'] = 1.850e-9  # [T/mm³] - bone: 1.850 kg/l
+    p['Young'] = 20000.      # [MPa] elastic modulus - bone: 17-20 GPa
+    p['Poisson'] = 0.3       # [-] Poisson's ratio
+
     p.update(d)
     return p
 
diff --git a/models/dolicorhynchops_10k_contact.py b/models/dolicorhynchops_10k_contact.py
index 2aa528cf71f5bca7bd46d78a6113332d9a917bb9..0ed0880531922e153ac4cd63969d1e39e5ad7326 100644
--- a/models/dolicorhynchops_10k_contact.py
+++ b/models/dolicorhynchops_10k_contact.py
@@ -9,7 +9,7 @@ def parms(d={}):
     path = 'dolicorhynchops/10k'
     p['mandible'] = f'{path}/mandible.ply'
     # p['teeth'] = f'{path}/teeth.off'
-    p['LTMJ'] = f'{path}/LTMJ.off'
+    p['LTMJ'] = [0.1458893, -73.13895, 227.3909],
     p['RTMJ'] = f'{path}/RTMJ.off'
     p['muscles'] = [
         {
@@ -25,6 +25,11 @@ def parms(d={}):
             'method': 'T'
         }
     ]
+    p['fixations'] = {  
+        'teeth': ['x','y','z'],
+        'LTMJ': ['x','y','z'],
+        'RTMJ': ['x','y','z']
+    }
     p['food'] = 'cylinder'
     R = 10
     p['cylinder'] = {
@@ -37,6 +42,13 @@ def parms(d={}):
     p['tolNR'] = 1e-4        # [-] equilibrium tolerance
     p['dt0'] = 2e-2          # [s] time step size
 
+
+    # material properties
+    p['density'] = 1.850e-9  # [T/mm³] - bone: 1.850 kg/l
+    p['Young'] = 20000.      # [MPa] elastic modulus - bone: 17-20 GPa
+    p['Poisson'] = 0.3       # [-] Poisson's ratio
+
+
     p.update(d)
     return p
 
diff --git a/models/dolicorhynchops_149k.py b/models/dolicorhynchops_149k.py
index c47661f2142491db8f4e09a9907926b6d387b722..53c839e669ac7e8bbafea16afe52f1c95073d2bf 100644
--- a/models/dolicorhynchops_149k.py
+++ b/models/dolicorhynchops_149k.py
@@ -25,6 +25,17 @@ def parms(d={}):
             'method': 'T+N'
         }
     ]
+    p['fixations'] = {  
+        'teeth': ['x'],
+        'LTMJ': ['x','y','z'],
+        'RTMJ': ['x','z']
+    }
+
+    # material properties
+    p['density'] = 1.850e-9  # [T/mm³] - bone: 1.850 kg/l
+    p['Young'] = 20000.      # [MPa] elastic modulus - bone: 17-20 GPa
+    p['Poisson'] = 0.3       # [-] Poisson's ratio
+
     p.update(d)
     return p
 
diff --git a/models/mandiblemodel.py b/models/mandiblemodel.py
index 9b84dd67b4fdcb8f2f707d9c097239cda55b9088..e1b7401b40b3afa5ddc12816c613b1683fcaeef0 100644
--- a/models/mandiblemodel.py
+++ b/models/mandiblemodel.py
@@ -26,7 +26,11 @@ def parms(d={}):
         { 'file': f'{path}/Rmuscle.off', 'force': 100., 'focalpt':f'{path}/RmuscleF.off', 'method':'T'}
     ]
     p['food'] = 'fixteeth'  # type of food: 'fixteeth' or 'cylinder'
-
+    p['fixations'] = {  
+        'teeth': ['x','y','z'],  # constrained degrees of freedom
+        'LTMJ': ['x','y','z'],
+        'RTMJ': ['x','y','z']
+    }
     # rigid cylinder (used if p['food']=='cylinder') 
     R = 20
     p['cylinder'] = {
@@ -123,10 +127,12 @@ def getMetafor(p={}):
     fct.setData(0.0, 0.0)
     fct.setData(1.0, 1.0)
 
+    txt2key = { 'x': TX, 'y':TY, 'z':TZ }
+
     # axis of rotation
     for gname in ['LTMJ', 'RTMJ']:
-        for d in [ TX, TY, TZ ]:
-            domain.getLoadingSet().define(groups[gname], Field1D(d,RE), 0.0)
+        for d in p['fixations'][gname]:
+            domain.getLoadingSet().define(groups[gname], Field1D(txt2key[d],RE), 0.0)
 
     mshpts = geometry.getMesh().getPointSet()
     for name, gr in mgroups.items():
@@ -162,8 +168,8 @@ def getMetafor(p={}):
     elif p['food']=='fixteeth':
         # teeth are fixed along X
         create_group(p['teeth'], nods_no, nods_pos, domain, groups, 'teeth')
-        for d in [ TX ]:
-            domain.getLoadingSet().define(groups['teeth'], Field1D(d,RE), 0.0)
+        for d in p['fixations']['teeth']:
+            domain.getLoadingSet().define(groups['teeth'], Field1D(txt2key[d],RE), 0.0)
     else:
         # p['food'] is a filename
         ply2mtf(domain, p['food'])