OpenCMISS & CellML Chris Bradley 1,2 & David Nickerson 1 1 Auckland Bioengineering Institute, University of Auckland. 2 Department of Physiology, Anatomy

Embed Size (px)

Citation preview

  • Slide 1
  • OpenCMISS & CellML Chris Bradley 1,2 & David Nickerson 1 1 Auckland Bioengineering Institute, University of Auckland. 2 Department of Physiology, Anatomy and Genetics, University of Oxford.
  • Slide 2
  • Why OpenCMISS? We want to solve larger scale coupled models of the heart, lungs, stomach and other biological systems than we can currently solve We need to redevelop legacy CMISS computational code. Take advantage of modern High Performance computer architectures.
  • Slide 3
  • OpenCMISS Re-engineering of CMISS Main website http://www.opencmiss.org/http://www.opencmiss.org/ Open source on github https://github.com/organizations/OpenCMISShttps://github.com/organizations/OpenCMISS Fortran 95/2003. Object based
  • Slide 4
  • OpenCMISS Design Goals 1.It should be a library based rather than a monolithic application. 2.It should use the Physiome standards FieldML and CellML. 3.It should be a general code. 4.It should be an inherently parallel code. 5.It should be used, developed, and understood by novices and experts alike. 6.It should deal with multiscale and multiphysics applications and with complicated workflows.
  • Slide 5
  • OpenCMISS library openCMISS librarycore library openCMISS (cm) FieldML API CellML API openCMISS (cm) FieldML API CellML API openCMISS (cm) CellML API FieldML API FieldML file CellML file Processors History file Language Bindings Fortran C/C++ Python Etc. Language Bindings Fortran C/C++ Python Etc. Language Bindings Fortran C/C++ Python Etc. Language Bindings Fortran C/C++ Python Etc. OpenCMISS (cm) FieldML API CellML API External Program or script
  • Slide 6
  • OpenCMISS application openCMISS (cm) FieldML API CellML API Com Layer openCMISS (cm) FieldML API CellML API openCMISS (cm) CellML API FieldML API Com Layer FieldML file CellML file OpenCOR Processors CellML API FieldML API Com Layer History file FieldML API CellML API Com Layer OpenCMISS Cmgui Network
  • Slide 7
  • General parallel environment Bus CC CC Cache CCCCC CCCCC CCCCC CCCCC CCCCC Memory CPU Accel CC CC Cache CCCCC CCCCC CCCCC CCCCC CCCCC Memory CPU Accel Memory Network Bus CC CC Cache CCCCC CCCCC CCCCC CCCCC CCCCC Memory CPU Accel CC CC Cache CCCCC CCCCC CCCCC CCCCC CCCCC Memory CPU Accel Memory Network Hierarchy of heterogeneous computing elements
  • Slide 8
  • Multi-scale & Multi-physics In order to accurately model biological systems OpenCMISS must model multiple physical systems at different time and space scales. OpenCMISS deals with this via: A flexible system for describing multiple models, solvers and workflows. Methods for coupling different physical systems together. Handling different spatial and temporal scales via FieldML and CellML
  • Slide 9
  • Multi-physics: Equations Sets Can be broken down into Linear/Nonlinear Dynamic/Static General form of OpenCMISS equations: DynamicLinearNonlinearSourceRHS
  • Slide 10
  • Example Electrical Activation (Bidomain representation) Cell Membrane Intracellular Space i, i Extracellular Space e, e I ion Cell model =
  • Slide 11
  • Bidomain equations Where: V m = transmembrane potential i = intracellular potential e = extracellular potential A m = membrane surface/volume ratio C m = membrane capacitance e = intracellular conductivity tensor i = intracellular conductivity tensor I ion = ionic source current from cellular model I m = transmembrane stimulus current i i = current injection per volume intro intracellular space i e = current injection per volume intro extracellular space
  • Slide 12
  • Cellular processes
  • Slide 13
  • Problem/Field description Fields: Geometric Fibre Material ( i, e, A m, C m etc.) Potential (V m, e, etc.) Source (I ion, etc.) Cellular state variables Cellular intermediate variables Cellular parameter variables
  • Slide 14
  • Field parameter vector 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 3 5 7 15 17 19 21 29 31 33 35 Field variable, u Component, u 1 Component, u 2 Parameter vector, x Global DOFs
  • Slide 15
  • Electrophysiology - CellML 300% 100% gNa Distribution +50 mV -85 mV Stimulus off +50 mV -85 mV Normal activation +50 mV -85 mV gNa activation
  • Slide 16
  • Finite Elasticity Breast Mechanics Courtesy of Prasad Gamage Skin Breast Tissue Undeformed Deformed Under gravity loading
  • Slide 17
  • Fluid Mechanics 3D NS Carotid Artery Flow, Re=100 MeshVelocityPressure Courtesy of David Ladd
  • Slide 18
  • CellML as a DOF black box Field variable Parameter DOF Vector Component 1 Component 2 Component 3 InputsOutputs
  • Slide 19
  • OpenCMISS CellML Import void computeRates(double VOI, double *PARAMETERS, double *RATES, double *STATES, double *INTERMEDIATE); { const double FIXED[..]; : } StateParametersIntermediate StateParametersIntermediate CellML Variables CellML Environment CellML Model Import Set as known Set as wanted Set as known and wanted
  • Slide 20
  • CellML Interface ModelsStateParametersIntermediate CellML environ OpenCMISS Field CellML Fields
  • Slide 21
  • CellML/Field Maps ModelsStateParametersIntermediate CellML environ CellML to field MapField to CellML MapCellML integrate Cellular model Transmembrane Voltage Field
  • Slide 22
  • CellML/Field Maps ModelsStateParametersIntermediate CellML environ Strain Field Stress Field CellML to field Map Field to CellML Map CellML evaluate Constitutive Law
  • Slide 23
  • FPGA Acceleration Investigating using Field Programmable Gate Array (FPGAs) as accelerators for CellML equations (see Tings talk next).
  • Slide 24
  • GPU Acceleration
  • Slide 25
  • Acknowledgements A (hopefully complete) list of those individuals who have contributed to OpenCMISS (so far.) Bojan Blazevic Andy Bowery Chris Bradley Randall Britten Vincent Budelmann Phani Chichapatnam Richard Christie Andrew Cookson Andrew Crozier Prasad Gamage Arne Gjuvsland Thomas Heidlauf Alice Hung Peter Hunter Jagir Hussan Chloe Irwin Whitney Jessica Jor Sebastian Krittian David Ladd Sander Land Jack Lee Caton Little Xaio Bo Lu Kumar Mithraratne Christian Michler Jennine Mitchell Martyn Nash David Nickerson Steven Niederer Poul Nielsen yvind Nordb David Nordsletten Stig Omholt Ali Pashaei Vijayaraghavan Rajagopal Adam Reeve Oliver Rohle Ishani Roy Ole W. Saastad Soroush Safaei Vickie Shim Matt Sinclair Nic Smith Martin Steghofer Merryn Tawhai Mark Trew Jon Olav Vik Tim Wu Robert Jiahe Xi Nancy (Xiani) Yan Ting Yu Heye Zhang Ju Zhang