1.4.7 Опис структури програми
В системі BioUML будь-яка біологічна система описується у вигляді графа, де з кожною вершиною або ребром графа пов'язаний набір певних властивостей. У моделі гемодинаміки вершини і ребра графа можуть бути наступних типів
вершини: серце, точка розгалуження судин, контрольна точка (у якій можна спостерігати зміну тиску);
ребра - судини.
Властивості судин: довжина, радіус, коефіцієнт.
Властивості точки розгалуження: номер посудини, який розгалужується; номери двох дочірніх судин.
Система BioUML забезпечує користувальницький інтерфейс для графічного представлення редагування структури графа. Для зручності редагування параметрів вершин графа (параметри судин) у вигляді таблиці створена спеціальна вкладка. br/>
Таблиця 4.1 UML діаграма, що описує структуру класів в пакеті "Hemodynamics .
В
Суцільні стрілки - включення одного об'єкту до іншого. Пунктирні стрілки - реалізація інтерфейсу. Червоні - використання одним об'єктом іншого. br/>
Таблиця 4.1 UML діаграма, що описує структуру класів в пакеті "Hemodynamics . (Продовження.)
В
Опис роботи алгоритму
При створенні графа судинного древа в BioUML, у програмі автоматично створюється об'єкт класу ArterialTreeDiagramType , потім за допомогою методу convert класу DiagramToArterialTreeConvertor з діаграми генерується об'єкт ( atm ) класу ArterialBinaryTreeModel.
Після того, як ми запускаємо моделювання (натискаємо на кнопку " Start Model "), запускається метод < i align = "justify"> solve з класу HemodynamicsModelSolver з параметром atm.
У методі solve реалізована ортогональна прогін, яка в тому числі використовує метод QR-розкладання матриці (QRDecomposition).
Для генерації матриць граничних умов L і R використовується клас ArterialBinaryTreeMatrixResolver , в якому є функція resolveMatrix, використовує метод traverseTree , який реалізує інтерфейс Tr...