title: NiftySim: A GPU-based nonlinear finite element package for simulation of soft tissue biomechanics.
abstract: OBJECTIVE
  NiftySim, an open-source finite element toolkit, has been designed to allow incorporation of high-performance soft tissue simulation capabilities into biomedical applications. The toolkit provides the option of execution on fast graphics processing unit (GPU) hardware, numerous constitutive models and solid-element options, membrane and shell elements, and contact modelling facilities, in a simple to use library.
  
  
  METHODS
  The toolkit is founded on the total Lagrangian explicit dynamics (TLEDs) algorithm, which has been shown to be efficient and accurate for simulation of soft tissues. The base code is written in C[Formula: see text], and GPU execution is achieved using the nVidia CUDA framework. In most cases, interaction with the underlying solvers can be achieved through a single Simulator class, which may be embedded directly in third-party applications such as, surgical guidance systems. Advanced capabilities such as contact modelling and nonlinear constitutive models are also provided, as are more experimental technologies like reduced order modelling. A consistent description of the underlying solution algorithm, its implementation with a focus on GPU execution, and examples of the toolkit's usage in biomedical applications are provided.
  
  
  RESULTS
  Efficient mapping of the TLED algorithm to parallel hardware results in very high computational performance, far exceeding that available in commercial packages.
  
  
  CONCLUSIONS
  The NiftySim toolkit provides high-performance soft tissue simulation capabilities using GPU technology for biomechanical simulation research applications in medical image computing, surgical simulation, and surgical guidance applications.
authors.affiliation: Centre for Medical Image Computing, University College London, London, UK, rmapsfj@live.ucl.ac.uk.
authors.forename: Stian F
authors.initials: SF
authors.lastname: Johnsen
authors.forename: Zeike A
authors.initials: ZA
authors.lastname: Taylor
authors.forename: Matthew J
authors.initials: MJ
authors.lastname: Clarkson
authors.forename: John
authors.initials: J
authors.lastname: Hipwell
authors.forename: Marc
authors.initials: M
authors.lastname: Modat
authors.forename: Bjoern
authors.initials: B
authors.lastname: Eiben
authors.forename: Lianghao
authors.initials: L
authors.lastname: Han
authors.forename: Yipeng
authors.initials: Y
authors.lastname: Hu
authors.forename: Thomy
authors.initials: T
authors.lastname: Mertzanidou
authors.forename: David J
authors.initials: DJ
authors.lastname: Hawkes
authors.forename: Sebastien
authors.initials: S
authors.lastname: Ourselin
mesh_terms: D000465:Algorithms; D001696:Biomechanical Phenomena / Q000502:physiology; D003198:Computer Simulation; D003205:Computing Methodologies; D006801:Humans; D008962:Models, Theoretical; D017711:Nonlinear Dynamics; D012984:Software