Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
To learn more about this project, read the wiki.

How to create a new simulation?

The model requires several mesh files (the file format can be .ply or .off):

  • mandible:
    • This is the closed surface mesh of the mandible.
    • the boundary conditions will be applied in the global cartesian reference frame. Thus, this mesh should be aligned with its principal axes (see MeshLab: Filters / Normals, Curvatures and Orientation / Transform: Align To Principal Axis)
    • A gmsh file (.msh) of the volume mesh can also be given
    • If this mesh is given as a surface mesh file, it will be meshed with gmsh. Try to mesh it manually in gmsh first because it sometimes fail.
  • teeth:
    • A set of vertices selected on the top of the teeth where contact with the food occurs.
    • Using MeshLab:
      • Select the vertices using vertex selector ("Select Vertices" button) and the mouse.
      • When the selection is finished, invert the selection (pressing "SHIFT-i").
      • Delete all the selected vertices using "Filters / Selection / "Delete selected vertices".
      • Check that your model only contains the desired number of vertices.
      • Save these vertices to a file (e.g. teeth.ply)
  • LTMJ/RTMJ:
    • Use the same procedure as for the teeth to save 1 vertex representing the left temporomandibular joint (LTMJ) and the right one (RTMJ) to 2 separate files (e.g. LTMJ.ply and RTMJ.ply)
  • A series of muscle attachement areas (you can name them as you like)
    • for each muscle, using MeshLab:
      • Select the faces on which the muscle is attached to the bone
      • When the selection is finished, invert the selection (pressing "SHIFT-i").
      • Delete all the selected faces and vertices using "Filters / Selection / "Delete selected faces and vertices".
      • Save this group of faces to a file (e.g. muscle.ply).
  • Each muscle requires a focal node towards which the muscle force is directed.
    • If this focal point can be "picked" in MeshLab on another mesh, you can use the same procedure as for LTMJ/RTMJ.
    • If not you can write the coordinate of the point in a .off file (several examples ara available in this folder).

The mesh files are specified in the input file:

path = 'dolicorhynchops/10k'
p['mandible'] = f'{path}/mandible.ply'
p['teeth'] = f'{path}/teeth.off'
p['LTMJ'] = f'{path}/LTMJ.off'
p['RTMJ'] = f'{path}/RTMJ.off'
p['muscles'] = [
    {
        'file': f'{path}/Lmuscle.ply',
        'force': 100.,
        'focalpt': f'{path}/LmuscleF.off',
        'method': 'T'
    },
    {
        'file': f'{path}/Rmuscle.off',
        'force': 100.,
        'focalpt': f'{path}/RmuscleF.off',
        'method': 'T'
    }
]

For each muscle, the "method" can be 'U', 'T' or 'T+N' referring to (see Grosse et al. 2007)

  • U: Ad Hoc Uniform Traction Model: a traction exerted by the muscle on each face is directed towards the focal node and constant in amplitude whatever its orientientation is.
  • T: Tangential-Traction Model: Same as 'U' but the traction on the faces which do not have a direct line of sight to the focal point are projected onto the face and become tangential.
  • T+N: Tangential-Plus-Normal-Traction Model: Same as 'T' but a normal pressure component is added to the faces which do not have a direct line of sight to the focal point. This normal component depends on the local curvature and the distance to the muscle fiber origin.

List of folders

  • CLIpro: (V.Gaudichon) Clidastes propython FHSM17576
  • contact: files used to create a meshed cylindrical surface so that we could model a bite onto a meshed surface (UNFINISHED). T
  • cylinder: files used as a demontrator of boneload (see also view_cylinder_T.py and also view_cylinder_TN.py)
  • Dolico_bon: (V.Gaudichon) Dolicorhyncops_bonneri_KUVP40001
  • Dolico_osb: (V.Gaudichon)
  • dolicorhynchops: first meshes sent by V.Gaudichon at the beginning of his master thesis
  • PLTtymFrankencarpus: first meshes sent by V.Gaudichon at the beginning of his master thesis
  • TYLber: (V.Gaudichon) Tylosaurus bernardi
  • TYLnep: (V.Gaudichon) TYLnep_FHSM2209

run simulations on warson

List the files you want to run in a file named simus.txt. For example:

ls *750k* > simus.txt

Edit run_sim.py and check Metafor executable path. Then, run the run_sim.py script through at (check .forward to get an e-mail notification at the end of the calculations):

echo ./run_sim.py | at now -m

Copy zip_all_folders.sh and send_tbz2_to_dox.sh to workspace.

cp *.sh workspace
cd workspace
./zip_all_folders.sh       # <= create a .tbz2 archive for each simulation
./send_tbz2_to_dox.sh      # <= send the tbz2 files to DoX