Skip to content
Snippets Groups Projects

How to create a new simulation?

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

  • mandible:
    • Thi 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.