<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Использование библиотеки FEniCS для моделирования левого желудочка сердца</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>vladimir.zverev@urfu.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Copyright c by the paper's authors. Copying permitted for private and academic purposes. In: A.A. Makhnev, S.F. Pravdin (eds.): Proceedings of the 47th International Youth School-conference “Modern Problems in Mathematics and its Applications”</institution>
          ,
          <addr-line>Yekaterinburg, Russia, 02-Feb-2016, published at</addr-line>
        </aff>
      </contrib-group>
      <fpage>229</fpage>
      <lpage>236</lpage>
      <abstract>
        <p>1 - УрФУ (Екатеринбург) 2 - ИММ УрО РАН (Екатеринбург) 3 - Институт иммунологии и физиологии (Екатеринбург) Исследование функциональных характеристик миокарда является сложной задачей и требует математических моделей, описывающих процессы на разных уровнях (клетка-ткань-орган). Целью работы является определение возможности применения библиотек автоматизированных научных вычислений для моделирования распространения потенциала действия с помощью параллельных вычислительных систем на примере модели Алиева-Панфилова. Представлен обзор существующих программных комплексов (OpenFOAM, OpenCMISS, FEniCS, Chaste), а также результаты тестирования производительности и масштабируемости реализации на основе FEniCS.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>начиналась с учетом особенностей одной технологии, которая через три года успевает устареть, и
появляется необходимость в переписывании значительной части кодовой базы проекта, но уже с принятием во
внимание специфики новой, более совершенной технологии.</p>
      <p>В данных условиях постоянно приходится адаптировать и оптимизировать программный код под
развивающиеся технологии. Дальнейшей целью нашей работы является многоуровневое моделирование, что
влечет за собой дополнительные сложности в оптимизации. Изменения какого-либо участка кода на
нижнем уровне требуют изменений на вышестоящих уровнях. Чем больше оптимизаций, тем сильнее
программный код отдаляется от математической нотации. ¾Читабельность¿ кода теряется для математика (и
тем более для физиологов), не знакомого с внутренним строением современных вычислительных
архитектур и техниками оптимизации. Программа становится сложной и запутанной, а дальнейшее развитие и
сопровождение проекта – нетривиальным.</p>
      <p>В связи с вышесказанным можно выделить следующие основные сложности, которые возникают в
крупных научных проектах, требующих массивных вычислений:
1) сохранение близости программного кода к математическим формулировкам;
2) достижение высокой скорости параллельных вычислений.</p>
      <p>Как правило, чем код ближе к математической нотации, тем хуже он оптимизирован и наоборот.
Существует ли решение данных проблем одновременно? Мы задались этим вопросом в начале нашего проекта
и изучили ряд систем, которые предлагают это решение: OpenFOAM, OpenCMISS, Chaste, FEniCS.</p>
      <p>В данной статье проведен обзор данных систем, выбрана наиболее подходящая для выполнения проекта,
описана модель левого желудочка сердца, которая используется для тестовых расчетов, сформулирована
задача моделирования и представлены результаты тестирования на вычислительном кластере.
2</p>
      <p>
        Рассчитываемая модель
Модель Алиева–Панфилова принадлежит к группе так называемых феномологических моделей. От
других видов эту группу отделяет наличие притягательного свойства простоты реализации, но в то же
время они неспособны воспроизвести количественно важные характеристики исследуемой системы. Тем
не менее, феномологические модели возбудимых сред предоставляют хорошее качественное соответствие
свойств объекта моделирования и полезны, например, при исследовании сердечной аритмии [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Система уравнений Алиева–Панфилова [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] учитывает свойство реституции (restitution property)
миокардиальной ткани и может быть применена для моделирования как целого органа, так отдельно левого
желудочка. Модель включает следующие уравнения:
      </p>
      <p>1v
2 + u
ku(u a)(u 1) uv;
( v ku (u a 1)) ;
(1)
(2)
где u – безразмерный трансмембранный потенциал клетки, v – безразмерная проводимость для калиевого
тока, dij – коэффициенты диффузии, а 0, a, k, 1, 2 – параметры модели клетки. Везде индексы i; j
принимают значения 1; 2; 3. Первое слагаемое в правой части (1) отвечает за описание пространственного
изменения потенциала. Другие слагаемые моделируют быстрые процессы изменения трансмембранного
потенциала, в то время как уравнение (2) описывает медленные процессы.</p>
      <p>
        Для целей тестирования вычислительных инструментов мы использовали симметричную модель формы
левого желудочка сердечной мышцы [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. В начальный момент времени активировалась субэндокардиальная
зона. Другими словами, в зоне, прилегающей к внутренней поверхности желудочка, переменной u было
задано максимальное значение, а v была равна нулю. Вне этой зоны значения u и v были нулевыми.
Внешняя граница желудочка предполаголось электрически изолированной, другими словами в качестве
граничного условия бралось условие нулевого потока потенциала действия u через границу.
      </p>
      <p>Модель Алиева–Панфилова была выбрана нами ввиду того, что, несмотря на свою относительную
простоту, она является комбинацией нелинейного уравнения в частных производных параболического типа и
жестких обыкновенных дифференциальных уравнений и отражает основные математические особенности
моделей, которые используются для исследования свойств миокарда.
Существующие программные средства моделирования свойств тел сложной
формы
3.1</p>
    </sec>
    <sec id="sec-2">
      <title>OpenFOAM</title>
      <p>
        OpenFOAM может быть охарактеризована как платформа для исследования моделей турбулентных
течений, транспортных уравнений и других типов моделей, связанных с перераспределением различных
веществ в пространстве. В её основе лежит метод конечных объемов, который наиболее пригоден для
решения уравнений в частных производных, описывающих явления переноса. OpenFOAM состоит из двух
частей. Одна из них представляет собой набор классов, которые используются в реализации численных
процедур. Другая часть – библиотека программ-решателей ("solvers"). Такое разделение предоставляет
программную среду для моделирования с помощью высокоуровнего кода, который напрямую отражает
интегрируемые уравнения [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. В качестве примера приведем листинг кода на языке программирования С++
для решения уравнения теплопроводности Tt0 = r (DT rT ), записанного с помощью классов OpenFOAM:
s o l v e ( fvm : : ddt (T)
      </p>
      <p>fvm : : l a p l a c i a n (D_T,T ) ) ;
3.2</p>
    </sec>
    <sec id="sec-3">
      <title>OpenCMISS</title>
      <p>
        OpenCMISS – это часть международного проекта Physiome [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Система предоставляет среду с открытым
исходным кодом для решения биоинженерных задач [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. OpenCMISS использует унифицированный язык
описания клеточной модели CellML, который позволяет перевести математическую запись обыкновенных
дифференциальных уравнений в машиночитаемую форму. Однако, проект OpenCMISS находится в стадии
разработки и недостаточно хорошо документирован.
3.3
      </p>
      <p>Chaste
3.4 FEniCS</p>
      <p>
        Другим пакетом моделирования, преследующим цель решения многомасштабных моделей и способным
использовать описание CellML, является Chaste [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]. Библиотека позволяет пользователям проводить
расчеты как клеточных моделей, так и моделей, описывающих орган в целом. При этом могут
использоваться разные типы уравнений в частных производных, которые применяются для изучения
распространения электрических сигналов [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. На текущий момент, насколько нам известно, Chaste не имеет средств
для моделирования механической функции сердца.
      </p>
      <p>
        FEniCS – это набор программ с открытом исходным кодом, создание которых началось в 2003 году с
целью автоматического, эффективного решения дифференциальных уравнений в частных производных [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Реализация метода конечных элементов состоит из нескольких этапов: получение уравнений в слабой
форме, дискретизация уравнений в слабой форме, сборка значений, рассчитанных на каждом элементе,
решение системы алгебраических уравнений. За работу на каждом этапе в библиотеке FEniCS отвечает
отдельный компонент.
      </p>
      <p>Основа библиотеки FEniCS – это набор классов, написанных на компилируемом языке C++, которые
имеют интерфейс для использования в интерпретируемом языке с неявной типизацией Python. В данном
комплеске программ используется встраиваемый в синтаксис Python предметно-ориентированный язык
(Embedded DSL). Например, для того чтобы решить уравнение Пуассона u = f в области c
граничными условиями типа Дирихле u = u0, необходимо передать в функцию решения вариационную запись
этого уравнения:
WeakForm = i n n e r ( grad ( u ) , grad ( v ) ) dx</p>
      <p>f v dx
В вышеприведенном листинге переменной WeakForm присваивается следующее выражение:
Z
ru rvdx</p>
      <p>Z
f vdx;
(3)
где rg обозначает градиент функции g, а U V – скалярное произведение векторных фукнкции U и
V . Равенство нулю выражения (3) для всех гладких функции с ограниченным носителем v составляет
вариационную запись уравнения Пуассона. Как видно из примера, приведенный выше код во многом
похож на запись формулы (3).</p>
      <p>В библиотеке FEniCS эффективность кода на языке С++ при написании на Python удается
сохранить благодаря модулю Instant. Этот модуль представляет собой динамический компилятор (just-in-time
compilator), преобразующий код Python в модуль С++. Для уменьшения издержек перекомпиляции, уже
готовый модуль получает свой индивидуальный номер (хеш, рассчитываемый по алгоритму SHA1). Для
того чтобы иметь возможность использовать OpenMP и другие внешние библиотеки, Instant позволяет
указывать заголовочные файлы, скомпилированные библиотеки, пути поиска библиотек и другие флаги
компиляции.</p>
      <p>Функции библиотеки FEniCS поддерживают параллельное выполнение как на нескольких потоках на
одном вычислительном узле, так и на нескольких узлах с помощью технологии MPI. Однако, в обоих
случаях требуется предварительная подготовка используемых конечноэлементных сеток.</p>
      <p>Использование метода конечных элементов, возможность параллельного исполнения кода, хорошая
документированность модулей, большое количество примеров, растущее количество библиотек, активно
использующих возможности FEniCS, например, для решений задач механики сплошной среды, проблем
формирования и распространения океанический волн, а также близость итогового кода к математическим
обозначениям стали причиной нашего выбора этой библиотеки.
4</p>
      <p>Вычислительные эксперименты
Тестирование производилось на кластере ИММ УрО РАН "Уран". Он состоит из 178 вычислительных
узлов, установленных в модулях с высокой плотностью упаковки. Вычислительные узлы оснащены
процессорами Intel Xeon, работающими на частотах 2.2-3 ГГц, 16-200 ГБ оперативной памяти и графическими
ускорителями NVIDIA Tesla. В общей сложности пользователям доступно 1768 вычислительных ядер CPU,
362 платы GPU и 4 ТБ оперативной памяти. Для передачи данных между вычислительными узлами
используется высокоскоростная сеть Infiniband с пропускной способностью 20 Гб/сек. Для параллельного
запуска на кластере установлены различные версии MPI. Дополнительно на кластер была установлена
библиотека FEniCS 1.6.0. В проведенных экспериментах мы использовали MPI MVAPICH2 Intel 14.0.</p>
      <p>Ввиду того что FEniCS поддерживает запуск в параллельном режиме, дополнительных модернизаций
кода не требовалось. Для запуска вычислений с MPI использовалась команда mpiexec -f [hosts], где hosts
файл с указанием вычислительных узлов и ядер, которые будут задействованы в ходе вычисления задачи.</p>
      <p>В качестве начальных данных используется сетка, полученная путем разбиения симметричной модели
левого желудочка на тетраэдры. На рис. 1 представлена схема генерации сетки. Вначале генерируются
файлы полигонов в формате PLY согласно формулам, которые определяют поверхности эндо- и эпикарда.
Также файлы PLY могут быть сгенерированы с помощью систем компьютерной алгебры, например, Maple.
Функции из Enchanced.py удаляют повторяющиеся точки из файла PLY. Это необходимо для дальнейшей
корректной работы Gmsh, который является генератором разделения расчетной области на
подобластитетраэдры. Для того чтобы использовать сетку, полученную от Gmsh, в FEniCS, необходимо преобразовать
ее в подходящий формат. Для этих целей предназначена утилита dolfin-convert (составная часть пакета
FEniCS). Формат HDF5 можно читать в параллельном режиме, поэтому используется дополнительное
преобразование из xml формата.</p>
      <p>Для проведения тестов мы использовали сетку, имеющую 3771 вершину и 14544 тетраэдра. Программа
вычисляет распространение электрической волны по левому желудочку в течение 100 безразмерных единиц
времени с шагом 0.125. В начальный момент времени с помощью параметров задается зона активации.</p>
      <p>Для оценки производительности нами была проведена серия экспериментов, в которых запуски
производились на 1, 2, 4, 8, 16 и 32 ядрах. Конфигурация узлов представлена в табл. 1.</p>
      <p>Целью эксперимента было оценить масштабируемость реализации моделирования сердца в зависимости
от количества используемых ядер. Результаты представлены на рис. 2. Все тесты были запущены на одном
узле, кроме теста с 32 ядрами.</p>
      <p>В итоге, эксперимент показал хорошую масштабируемость реализации на FEniCS. Однако, ускорение
замедляется с увеличением ядер из-за дополнительных затрат на передачу данных.
5 Заключение</p>
      <p>В результате данной работы из ряда существующих программных средств моделирования свойств тел
сложной формы была выбрана библиотека FEniCS. Благодаря этому наш код близок к математической
Рис. 1: Схема генерации сетки
Таблица 1: Конфигурация узлов кластера
Параметр Значение</p>
      <p>CPU 2 х Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz</p>
      <p>RAM 94 GB</p>
      <p>Interconnect Infiniband DDR (20 Gbit)</p>
      <p>Operating System Linux RedHat 6.5
Рис. 2: Время моделирования в зависимости от числа использованных ядер
нотации. Он транслируется в высокопроизводительный код на С/С++ с поддержкой параллельного
исполнения. Помимо этого, FEniCS предоставляет широкий набор готовых инструментов для решения систем
дифференциальных уравнений.</p>
      <p>На данный момент для изучения левого желудочка сердца мы используем модель Алиева–Панфилова,
состоящую из двух нелинейных уравнений в частных производных.</p>
      <p>Реализация модели Алиева–Панфилова с помощью библиотеки FEniCS продемонстрировала
масштабируемость на кластере, близкую к линейной. Тестирование производилось на кластере ¾УРАН¿ ИММ УрО
РАН.</p>
      <p>В дальнейшем мы планируем добавить поддержку таких популярных ускорителей вычислений, как
GPGPU и Intel Xeon Phi, использовать более сложные и приближенные к реальности модели, которые
разрабатываются в ИИФ УрО РАН, и добавить к модели механический отклик на изменение потенциала
действия [12].
Благодарности</p>
      <p>Работа поддержана программой РАН I.33П ¾Фундаментальные проблемы математического
моделирования. Фундаментальные проблемы факторизационных методов в различных областях. Алгоритмы и
математическое обеспечение для вычислительных систем сверхвысокой производительности¿ (проект
¾Разработка вычислительных методов и программных средств для трехмерного моделирования сердечно-сосудистой
системы¿, № 0401-2015-0025).
Список литературы
[12] O. Solovyova, N. Vikulova, L. B. Katsnelson, V. S. Markhasin, P. Noble, A. Garny, P. Kohl, D. Noble:
Mechanical interaction of heterogeneous cardiac muscle segments in silico: effects on Ca2+ handling and
action potential. International Journal of Bifurcation and Chaos, 13(12):3757–3782, 2003.</p>
      <p>Application of FEniCS framework for simulation of the cardiac left
ventricle</p>
      <p>Timofei I. Epanchintsev1;2;3, Vladimir S. Zverev1;2, Andrey V. Sozykin1;2;3
1 – Ural Federal University (Yekaterinburg, Russia)
2 – Krasovskii Institute of Mathematics and Mechanics (Yekaterinburg, Russia)
3 – Institute of Immunology and Physiology (Yekaterinburg, Russia)</p>
      <p>Investigation of the functional characteristics of myocardium is a difficult task and requires mathematical
models that describe processes on different levels. Toolkits for automated scientific computing frameworks have
become popular. The aim of the paper is determine possibilities of application of such software for heart simulation
on parallel computing systems. A small overview of existing frameworks (OpenFOAM, OpenCMISS, FEniCS,
and Chaste) is presented. For our purposes FEniCS frameworks was chosen. We use the model of Aliev–Panfilov
in order to investigate FEniCS facilities. Performance and scalability of FEniCS-based solution were studied.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R. C. P.</given-names>
            <surname>Kerckhoffs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. N.</given-names>
            <surname>Healy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. P.</given-names>
            <surname>Usyk</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. D.</surname>
          </string-name>
          <article-title>McCulloch: Computational methods for cardiac electromechanics</article-title>
          .
          <source>Proceedings of the IEEE</source>
          ,
          <volume>94</volume>
          :
          <fpage>769</fpage>
          -
          <lpage>783</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Panfilov</surname>
          </string-name>
          :
          <article-title>Spiral breakup as a model of ventricular fibrillation</article-title>
          .
          <source>Chaos: An Interdisciplinary Journal of Nonlinear Science</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <fpage>57</fpage>
          -
          <lpage>64</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R. R.</given-names>
            <surname>Aliev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Panfilov</surname>
          </string-name>
          :
          <article-title>A simple two-variable model of cardiac excitation</article-title>
          .
          <source>Chaos, Solitons &amp; Fractals</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>293</fpage>
          -
          <lpage>301</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Go</surname>
          </string-name>
          ¨ktepe, E. Kuhl:
          <article-title>Electromechanics of the heart: a unified approach to the strongly coupled excitationcontraction problem</article-title>
          .
          <source>Computational Mechanics</source>
          ,
          <volume>45</volume>
          (
          <issue>2-3</issue>
          ):
          <fpage>227</fpage>
          -
          <lpage>243</lpage>
          ,
          <year>Nov 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Pravdin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. I.</given-names>
            <surname>Berdyshev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Panfilov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. B.</given-names>
            <surname>Katsnelson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Solovyova</surname>
          </string-name>
          , V. S. Markhasin:
          <article-title>Mathematical model of the anatomy and fibre orientation field of the left ventricle of the heart</article-title>
          .
          <source>Biomedical engineering online</source>
          ,
          <volume>54</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jasak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jemcov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tukovic: Openfoam: A C+</surname>
          </string-name>
          <article-title>+ library for complex physics simulations</article-title>
          . In: International workshop on coupled methods in numerical dynamics,
          <volume>1000</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Crampin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Halstead</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Hunter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Nielsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Noble</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Tawhai: Computational physiology and the physiome project</article-title>
          .
          <source>Experimental Physiology</source>
          ,
          <volume>89</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bradley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bowery</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Britten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Budelmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Camara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Christie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cookson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. F.</given-names>
            <surname>Frangi</surname>
          </string-name>
          , T. B.
          <string-name>
            <surname>Gamage</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Heidlauf</surname>
          </string-name>
          , et al.:
          <article-title>Opencmiss: a multi-physics &amp; multi-scale computational infrastructure for the vph/physiome project</article-title>
          .
          <source>Progress in biophysics and molecular biology</source>
          ,
          <volume>107</volume>
          (
          <issue>1</issue>
          ):
          <fpage>32</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pitt-Francis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pathmanathan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. O.</given-names>
            <surname>Bernabeu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bordas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cooper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. R.</given-names>
            <surname>Mirams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Osborne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Walter</surname>
          </string-name>
          , et al.:
          <article-title>Chaste: a test-driven approach to software development for biological modelling</article-title>
          .
          <source>Computer Physics Communications</source>
          ,
          <volume>180</volume>
          (
          <issue>12</issue>
          ):
          <fpage>2452</fpage>
          -
          <lpage>2471</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G. R.</given-names>
            <surname>Mirams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Arthurs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. O.</given-names>
            <surname>Bernabeu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bordas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cooper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Corrias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Davit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Dunn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Harvey</surname>
          </string-name>
          , et al.:
          <article-title>Chaste: an open source C++ library for computational physiology and biology</article-title>
          .
          <source>PLoS Comput Biol</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):e1002970,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Logg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Mardal</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. Wells.</surname>
          </string-name>
          <article-title>Automated solution of differential equations by the finite element method: The FEniCS book</article-title>
          . Volume
          <volume>84</volume>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>