Визуализация и анализ сложных кинетических механизмов.

Хорьков В. А.2, Стрелкова М. И.1, Токарь П.М.2, Окунь М.В2.,
 Плаксин В.А. 2, Потапкин Б.В.2

1. НИЦ «Курчатовский Институт», Москва, Россия

2. ООО «Кинтех Лаб», Москва, Россия

okun@kintech.ru

 

Аннотация

Кинетические (химические) механизмы – набор веществ и элементарных химических процессов, протекающих с участием этих веществ, описывающих процесс химической реакции, например  реакции окисления топлива. Процесс разработки химического механизма, описывающего сложные химические превращения, включает в себя определение набора реагентов, продуктов и промежуточных веществ, возможных элементарных процессов, протекающих в заданных условиях, определение свойств веществ и процессов, анализ наиболее важных (наиболее сильно влияющих на результата) компонентов и процессов. Эффективная работа с такими механизмами, осложняется тем, что используемое представление реакций, разработанное на заре развития химии, для работы с одной-двумя реакциями, оказалось неэффективно при работе с современными механизмами, размер которых может составлять сотни и тысячи реакций, и потребовала новых средств визуального представления механизмов. Необходимость анализа протекание процессов, протекающих в разном масштабе времени, существенно осложняет исследование химических процессов.

В данной работе будет рассмотрено использование диаграммы потока атомов, с переменным шагом по времени для визуализации сложного кинетического механизма, на примере задачи разработки механизма горения авиационного керосина (Jet A) с использованием программы Chemical Workbench. Показано, что использование переменного шага существенно повысило адекватность визуализации.

 

Содержание

Введение

Диаграмма потока атомов

Выбор оси времени при анимировании

Автоматическое расположение элементов графа

Применение

Выводы

Ссылки

 

Введение

Возросшие требования к уровню знаний о химических процессах, сложность процесса горения, трудоемкость и неполнота экспериментальных и теоретических исследований, дороговизна натурных и модельных экспериментов – далеко не полный перечень проблем, при решении которых необходимо моделировать химические процессы. Поэтому, построение детальных кинетических механизмов, обладающих предсказательной силой, их использование при решении широкого круга задач, является актуальной научной проблемой, имеющей важное практическое значение. Моделирование горения газовых и жидких практических топлив представляет собой достаточно сложную задачу, не только потому, что такие топлива представляют собой смесь нескольких сотен углеводородов, но также из-за того, что определить точный состав керосинов и особенно дизельных топлив трудно, а иногда даже невозможно. Кинетические механизмы, описывающие горение таких топлив, состоят из значительного числа веществ и элементарных химических реакций. Например, детальный механизм, описывающий горение биодизельного топлива, состоит из 3299 веществ и 12363 реакции [2]. Однако, если в случае «чистой» химической кинетики (модель однородного по пространству состава), применение такого химического механизма  не представляет проблему, то использование его в многомерных гидродинамических расчетах, где детальный реакционный механизм объединяется с гидродинамическими и диффузионными процессами, наталкивается на серьезные вычислительные трудности. Задача совместного моделирования гидродинамики и химических превращений  может быть успешно решена в случае использования значительно упрощенного «редуцированного» механизма, полученного из детального механизма и описывающего процесс горения с требуемой точностью для выбранного диапазона составов, температур и давлений.

Существует ряд автоматических методов редуцирования механизмов, таких как метод прямого редуцирования, граф прямых связей (directed relation graph [3]), анализ принципиальных компонент (principal component analysis [4]) и сингулярных возмущений (computational singular perturbationтакже часто применяется метод экспертного анализа механизма. Процедура разработки редуцированного механизма с использованием автоматических методов, как правило, состоит в последовательном применении различных методов, с проверкой соответствия результатов расчета (с использованием редуцированного механизма) результатам, полученным на исходном механизме, и/или экспериментальным данным. На этой стадии обычно используется визуальное сравнение кривых. Как правило, сравнивают зависимости концентраций от времени и/или время индукции процесса от варьируемых начальных параметров (температуры, состава). Конкретный набор сравниваемых параметров зависит от целей редуцирования и выбирается экспертом. Применение автоматических методов редуцирования позволяет сократить размер механизма в несколько раз, но он все еще остается слишком большим для практического использования в многомерных гидродинамических расчетах, но уже достаточно компактен для эффективного анализа и применения экспертных методов редуцирования. На этапе экспертного анализа и разработки так называемого «глобального» механизма, состоящего из минимального числа реакций, описывающих преобразование исходных веществ в продукты, минуя промежуточные стадии. Одним из методов выявления тополгии связей в механизме является метод построения диаграммы потока атомов.

В работе рассматриваются средства визуализации, применяемые для анализа больших кинетических схем, в том числе, при разработке сокращенных механизмов . В частности, в работе рассматривается метод построения диаграммы потока атомов и проблемы, связанные с его реализацией: сильной запутанностью визуализируемого графа, зависимостью весов (и топологии) связей от времени, наличие разных временных масштабов на разных стадиях процесса и не способности общепринятых алгоритмов расстановки узлов графа нарисовать наглядный для восприятия граф.

Диаграмма потока атомов

Химический механизм – суть набор веществ и реакций, дополненный  их свойствами (термодинамические свойства веществ и аппроксимации скорости процессов). Процессы задаются в виде химических уравнений, например:

C10H22(n)+CH3<=>C10H21(1)+CH4                                                                (1.)

При использовании метода «диаграммы потока атомов» рассчитывается поток атомов заданного элемента из одного вещества в другое и строится граф процесса, узлами которого являются вещества, а ребра - соответствуют реакциям, протекающим между веществами (потоку атомов из одного вещества в другое) [6]. При этом получается, что один процесс вносит вклад в несколько ребер и, напротив, одно ребро содержит вклады нескольких процессов. В общем случае, пусть r-й процесс механизма, общего вида A1,r+A2,r+…<=>B1,r+B2,r+… , идущей со скоростью qr  [1/cm3s] будет вносить вклад в ребро AiBj равный:

                                                                                           (2.)

где - число атомов выбранного элемента в веществе .

Таким образом, реакция (1) вносит вклады в 4 ребра:

                                                                                     

Т.е. вклады реакции в разные ребра имеют существенно разный вес.

Для больших механизмов граф, оказывается слишком сложным для визуального анализа человеком. В программе Chemical Workbench [8] нами применялось отсечение наиболее легких ребер графа (показ только тех ребер, вес которых больше заданно величины). На Рис. 1 приведены примеры графов, построенные для различных значений параметра отсечения.

Рис. 1.      Пример диаграммы потока атомов, на примере механизма горения Jet A (редуцированный механизм), для различных значений параметра отсечения, для момента времени 3. 10-6 s

Выбор оси времени при анимировании

Учитывая, что в течении времени (вместе с изменением температуры и концентраций) изменяется скорость процесса qr, возникает проблема визуализации графа, ребра которого имеют переменный вес. Подходы к визуализации графов, зависящих от времени обсуждаются, например, в [7]. Конкурируют два подхода: анимация и набор статических графов для каждого отдельного отрезка времени. Второй подход был бы очень эффективен, если бы было возможно автоматическое разбиение процесса на стадии (см. Рис. 3). Однако, универсальных формальных критериев разбиения произвольного процесса на стадии сформулировать не представляется возможным, поэтому в Chemical Workbench был использован метод анимации.

 

 

Рис. 2.      Потоки атомов С, на примере горения стехиометрической смеси  Jet A + воздух.

 

Рис. 3.      Горение стехиометрической водород-кислородной смеси. Кинетические кривые (температура и молярные доли) приведены как функция времени. (Приведена разбивка на стадии.)  Подобное поведение (с узкой областью резкого изменения концентраций) характерно для всех процессов горения.

Особенностью, определяющей трудность восприятия анимированных графов, является сильная нелинейность процесса горения по времени. Большая часть превращения вещества происходит в очень короткий интервал времени (стадия горения, см. Рис. 3), который может составлять менее 10-5 анализируемого периода, вне зависимости от того используем ли мы линейное представление оси времени или логарифмическое. Поэтому в качестве единицы времени анимации используется не физическое время, а номер шага решателя задачи Коши по времени (кинетического солвера).

Как видно из графиков, приведенных ниже, зависимость физических параметров от номера шага кинетического солвера не имеют резких изменений поведения, поскольку в области таких изменений солвер автоматически уменьшает шаг времени.

Рис. 4.      Кинетические кривые горения водорода (тот же физический процесс, что и на Рис. 3), но как функция номера шага кинетического солвера.

 

Попытки использовать в качестве ведущей переменной вместо номера шага, например, степень превращения веществ,

                                                                                          (3.)

(где - степень превращения Сi –текущая концентрация i-го вещества, Сi,0 – его начальная концентрация, Сi,f – конечная концентрация) оказались менее надежны, поскольку в ряде механизмов этот формальный параметр меняется не монотонно, хотя на простых примерах, это позволяло избавиться от неровностей графика, связных с процедурой выбора шага:

Рис. 5.      Кинетические кривые горения водорода (тот же физический процесс, что и на Рис. 3), как функция степени превращения (3).

 

Еще одна трудность, связанная с анимацией, рассмотрена в недавно опубликованной статье [7]. Авторы [7] показали, что анимированные графы воспринимаются пользователем хуже, чем наборы статических графов. Пользователи делали больше ошибок и тратили больше времени при решении стандартных задач на графах, если они пользовались анимированным представлением. Эта проблема, принципиально не может быть решена выбором шкалы времени, поэтому  следующие версиях, интерфейс программы Chemical Workbench будет развиваться в направлении показа пользователю набора статических графов, каждый из которых представляет сосбой интегрированные за заданный отрезок времени диаграммы потока атомов.

Автоматическое расположение элементов графа

Не менее важной проблемой, определяющей качество восприятия графа, отображающего тополгию связей кинетического механизма является начальное расположение узлов графа. При «неудачном» начальном расположении узлов графа, пользователь вынужден тратить существенное время  на то, чтобы  этот граф «распутать», т.е. привести элементы в наиболее удобное для анализа расположение. При проектировании модуля визуализации механизма тестировались следующие алгоритмы расстановки узлов:

1        круговое расположение – узлы равномерно  распределяются по окружности заданного радиуса.

2        круговое расположение, с вынесением самых тяжелых узлов в центр (вес узлов, оценивается как сумма весов связанных с ним ребер). Именно этот алгоритм использовался в предыдущей версии Chemical Workbench.

3        Алгоритм Gursoy Atun [9], целью которого является типологически равномерное расположение вершин, по возможности, сохраняя узлы вблизи своих соседей.

4        Алгоритм Fruchterman Reingold [12], целью которого является использование ребер примерно равной длинны и минимизация числа пересечений. К сожалению, этот  алгоритм не учитывает весов ребер, а как видно из Рис. 1 при учете всех (в том числе очень легких) ребер, граф оказывается слишком запутанным.

5        Алгоритм Kamada Kawai [13], использующий модель отталкивающихся/притягивающихся шаров для  поиска  расположения шаров, соответствующего минимальной энергии. К сожалению, алгоритм оказался слишком сложен для применения на наших графах из-за слишком большой вычислительной сложности, поэтому на рисунках ниже результаты его применения не приведены.

6        Алгоритм выделения тяжелого поддерева.  Данный алгоритм был разработан специально для упорядочения узлов графа потока атомов и учитывает его специфику, в частности то, что число ребер экспоненциально зависит от параметра отсечения, поэтому, если одно ребро имеет больший вес чем другое, то с высокой вероятностью он в несколько раз больше. Это предположение позволяет использовать эффективный эмпирический алгоритм для выделения тяжелого подграфа, который остается деревом. Далее при упорядочении используются только ребра этого подграфа. Этот алгоритм, хотя и напоминает результат работы алгоритма GraphViz [11] на простых графах, существенно отличается от него на сложных за счет того, что не пытается передвигать узлы, для того, чтобы ребра не проходили через узлы. Данный алгоритм будет использован в программе Chemical Workbench, начиная с 4-й версии.

Для алгоритмов 3-5 были использованы реализации, из библиотеки алгоритмов boost [10].

Результаты работы перечисленных выше алгоритмов, кроме Kamada-Kawai (5), который не смог вычислить расположение за приемлемое время, представлены на рисунке ниже. Также, для сравнения представлено расположение узлов, сделанное экспертом. Это расположение использовалось в практической работе по анализу механизма, когда алгоритм (6) еще не был реализован в программе Chemical Workbench

 круговое расположение (1)

 круговое расположение с вынесением тяжелых узлов

(2)

 Gursoy, Atun (3)

 Fruchterman, Reingold (4)

 выделение тяжелого поддерева (6)

 расставлено человеком

Рис. 6.      Схемы расположения узлов генерируемы различными алгоритмами.

Как видно из рисунка, граф, полученный при помощи алгоритма выделения тяжелого поддерева (6), оказался даже более понятен, чем сделанный экспертом. На обоих графах четко прослеживается основной канал расходования C6H6 в CO2. Однако, автоматическое построение визуального представления требует существенно меньше затрат времени.

Все приведенные алгоритмы визуализации, кроме (5), реализованы в программе Chemical Workbench.

Chemical Workbench - это интегрированная среда для концептуального моделирования физико-химических процессов и разработки кинетических механизмов. В его основу положены научные подходы, которые позволяют моделировать задуманный эксперимент, разработать и редуцировать кинетический механизм процесса с помощью вспомогательных средств анализа, автоматического редуцирования и визуализирования потоков химических элементов.

Применение

Проиллюстрируем применение диаграммы потоков атомов для анализа  детального механизма горения суррогата авиационного керосина Jet A (смесь н-декана, н-гексана и бензола) с последующим его редуцированием до глобального механизма, который будет использоваться в многомерных расчетах. Детальный механизм состоит из 73 веществ и 418 обратимых реакций. На Рис. 7 показано время индукции, рассчитанное, в программе Chemical Workbench при горении стехиометрической смеси суррогат Jet A /воздух, и экспериментальные данные для Р=10 атм. Видно, что данный детальный механизм корректно описывает горение суррогата Jet A при давлении 10 атм на исследуемом диапазоне температур.

Рис. 7.      Время индукции, рассчитанное при горении стехиометрической смеси суррогат Jet A /воздух, и экспериментальные данные для Р=10 атм.

На Рис. 8 показано поведение концентраций основных компонентов в процессе горения суррогата Jet A при Ро=10 атм, То=1300 К. На Рис. 9 показана Диаграмма потоков С атома в процессе горения суррогата Jet A в момент времени  5,23 10-5 с, соответствующий середине стадии горения. Эта диаграмма была перестроена вручную, из диаграммы автоматически сгенерированной с сипользованием алгоритма (2), для визуализации основных потоков. Из рисунка видно, что для больших детальных механизмов использование такой диаграммы для анализа процесса с целью редуцирования механизма представляет достаточно сложную задачу, т.к. трудно проследить основные пути превращения от исходного вещества до конечного продукта.

Рис. 8.      Изменение концентраций основных компонентов в процессе горения суррогата Jet A при Ро=10 атм, То=1300 К

Рис. 9.      Диаграмма потоков С атома в процессе горения суррогата Jet A в момент времени       5,23 10-5 с.  (Детальный механизм.)

Поэтому детальный механизм предварительно подвергается автоматическому редуцированию. Для этой цели были использованы следующие методы:

Directed Relation Graph метод для идентификации и удаления неважных веществ (DRG) [3];

Singular Perturbation метод для идентификации и удаления неважных реакций (CSP) [5];

После применения этих методов был получен скелетный механизм, содержащий 41 вещество и 76 реакций. На Рис. 10 - Рис. 13  показаны стадии проверки скелетного механизма на результатах, полученных с помощью детального механизма. Видно, что скелетный механизм адекватно описывает горение суррогата Jet A.

Рис. 10.   Время индукции, рассчитанное на детальном и скелетном механизмах. Ро=10 атм.

Рис. 11.   Изменение температуры в процессе горения суррогата Jet A, рассчитанное на детальном и скелетном механизмах. Р=10 атм.

Рис. 12.   Изменение концентраций основных компонентов в процессе горения суррогата Jet A при Ро=10 атм, То=1500 К, полученное на детальном и скелетном механизмах.

 

После того, как скелетный механизм был полностью проверен на результатах детального механизма, можно переходить к его дальнейшему редуцированию. Для этого будет использована диаграмма потоков атомов С, Н и О. На Рис. 13 представлена такая диаграмма для потоков атомов С в процессе горения суррогата Jet A в момент времени 2,98 10-6 с при начальной температуре 1500 К и начальном давлении 10 атм. Диаграмма стала легко читаемой, по ней видно основные пути расходования важных, в рамках данной задачи, веществ. Например, основной путь расходования бензола

С6Н6 à C6H5 à C6H5O à C5H5 à C2H2 à HCCO à CO

Теперь, для того чтобы исключить промежуточные стадии из механизма, надо определить, в каких главных реакциях образуется радикал С6Н5.

Из Рис. 14 видно, что основная реакция гибели бензола в рассматриваемый момент времени, это

C6H6 +OH = C6H5 +H2O

Рис. 13.   Диаграмма потоков С атомов в процессе горения суррогата Jet A в момент времени 2.98 е-6 с при начальной температуре 1500 К и начальном давлении 10 атм. Скелетный механизм (после автоматического редуцирования детального механизма).

Рис. 14.   Скорости реакций в процессе горения суррогата Jet A при начальной температуре 1500 К и начальном давлении 10 атм.

Аналогичным образом выделяются и другие реакции из цепи расходования бензола:

C6H5+O2 => C6H5O+O

C6H5O => C5H5 + CO

C5H5 + O => 2C2H2 + HCO,

которые дают одну глобальную реакцию, описывающую всю эту цепь.

C6H6 + O2 + OH => 2C2H2 +HCO +CO +H2O.

Таким же образом был построен редуцированный механизм, состоящий из 38 реакций и 24 веществ, то есть были исключены промежуточные вещества, которые теперь не входят ни в одну глобальную реакцию. На Рис. 15 построены времена индукции, полученные на детальном и редуцированном механизмах. Видно, что редуцированный механизм адекватно отображает горение суррогата Jet A., с расхождением во времени индукции, не более 50%.

Рис. 15.   Время индукции, рассчитанное на детальном и скелетном механизмах. Ро=10 атм.

Выводы

Разработан модуль визуализации кинетических механизмов на основе метода построения диаграммы потока атомов. Модуль встроен в пакет Chemical Workbench и используется для анализа и редуцирования химических механизмов, разрабатываемых с помощью Chemical Workbench. Приведен пример использования модуля визуализации для разработки глобального механизма горения авиационного керосина JetA.

Применение переменного шага по времени при построении анимированной диаграммы потока атомов позволило наглядно представить химические изменения, протекающие на стадиях с различными характерными временами, рассмотреть быстротекущие процессы на фоне медленных реакций.

Реализован новый алгоритм визуального представления графов, позволяющий существенно повысить его наглядность и существенно облегчить анализ и выделение главных путей преобразования веществ в механизме.

Ссылки

[1]               M.I. Strelkova, A.A. Safonov, L.P. Sukhanov, S.Ya.Umanskiy, M.A. Deminsky, I.A. Kirillov, B.V. PotapkinA.J. DeanB.Varatharajan, A.M. Tentner. "Detailed and Reduced Mechanisms of Jet A Combustion at High Temperatures." Combust. Sci. and Tech., 180: 1788–1802, 2008.

[2]               Herbonet, O., Pitz, W.J., Westbrook, C.K., “Detailed chemical kinetic oxidation mechanism for a biodiesel surrogate”, Combustion and Flame, 154, 507-528, 2008.

[3]               T. Lu, C.K. Law, Linear time reduction of large kinetic mechanisms with directed relation graph: n-heptane and iso-octane. Combustion and Flame, 2005, vol. 144, pp. 24 – 36.

[4]               S. Vajda, P. Valko, T. Turanyi, Principal component analysis of kinetic models, International Journal of Chemical Kinetics, 1985, Vol. 17, pp. 55 – 81.

[5]               M. Valorani, F. Creta, D.A. Goussis, J.C. Lee, H.N. Hajm, An automatic procedure for the simplification of chemical kinetic mechanisms based on CSP, Combustion and Flame, 2006, vol. 146, pp. 29 – 51.

[6]               “A graph-based approach to developing adaptive representations of complex reaction mechanisms” - Kaiyuan He, Marianthi G. Ierapetritou, Ioannis P. Androulakis - Combustion and Flame 155 (2008) 585–604

[7]               «Effective Temporal Graph Layout: A Comparative Study of Animation versus Static Display Methods» - Michael Farrugia, Aaron Quigley; Information Visualization (2011) 10, 47--64. doi:10.1057/ivs.2010.10; http://ivi.sagepub.com/content/10/1/47.full.pdf

[8]               Программа Chemical Workbench : www.kintechlab.com

[9]               Gursoy-Atun graph layout, based on: "Neighbourhood Preserving Load Balancing: A Self-Organizing Approach" in EuroPar 2000, p. 234 of LNCS 1900, http://springerlink.metapress.com/link.asp?id=pcu07ew5rhexp9yt

[10]           Библиотека исходных  кодов (алгоритмов) на С++ www.boost.org

[11]           Программа визуализации графов graphviz (www.graphviz.org).

[12]           T. Fruchterman and E. Reingold , Graph drawing by force-directed placement. Software--Practice & Experience, 21 (11), pp. 1129-1164, 1991.

[13]           T. Kamada and S. Kawai An algorithm for drawing general undirected graphs. Information Processing Letters, 31, pp. 7-15, 1989.


 
VISUALIZATION AND ANALYSIS OF LARGER CHEMICAL MECHANISMS
 

Kintech Lab Ltd., Russia, Moscow
 
M. Strelkova
NRC "Kurchatov Institute", Russia, Moscow
 
P. Tokar
Kintech Lab Ltd., Russia, Moscow
 
M. Okun
okun@kintech.ru
Kintech Lab Ltd., Russia, Moscow
 
V. Plaksin
Kintech Lab Ltd., Russia, Moscow
 
B. Potapkin
Kintech Lab Ltd., Russia, Moscow

Abstract

In the present paper visualization and analysis of the large kinetic mechanism for the reduction purposes with the using of the reaction pathway diagrams is considered. Using of the varied time step for reaction pathway diagram animation is discussed. New methods for graph drawing based on the heavy graph subtree selection is developed and implemented for reaction pathway diagram visualization. Developed visualization module is applied for analysis of the aviation kerosene oxidation mechanism.

Keywords: Visualization, chemical mechanisms, reaction pathway diagram.

References

[1] M.I. Strelkova, A.A. Safonov, L.P. Sukhanov, S.Ya.Umanskiy, M.A. Deminsky, I.A. Kirillov, B.V. Potapkin, A.J. Dean, B. Varatharajan, A.M. Tentner. Detailed and Reduced Mechanisms of Jet A Combustion at High Temperatures. Combust. Sci. and Tech., 180: 1788–1802, 2008.
[2] Herbonet, O., Pitz, W.J., Westbrook, C.K. Detailed chemical kinetic oxidation mechanism for a biodiesel surrogate, Combustion and Flame, 154, 507-528, 2008.
[3] T. Lu, C.K. Law, Linear time reduction of large kinetic mechanisms with directed relation graph: n-heptane and iso-octane. Combustion and Flame, 2005, vol. 144, pp. 24 – 36.
[4] S. Vajda, P. Valko, T. Turanyi, Principal component analysis of kinetic models. International Journal of Chemical Kinetics, 1985, Vol. 17, pp. 55 – 81.
[5] M. Valorani, F. Creta, D.A. Goussis, J.C. Lee, H.N. Hajm, An automatic procedure for the simplification of chemical kinetic mechanisms based on CSP. Combustion and Flame, 2006, vol. 146, pp. 29 – 51.
[6] Kaiyuan He, Marianthi G. Ierapetritou, Ioannis P. Androulakis. A graph-based approach to developing adaptive representations of complex reaction mechanisms. Combustion and Flame 155 (2008) 585–604.
[7] Michael Farrugia, Aaron Quigley. Effective Temporal Graph Layout: A Comparative Study of Animation versus Static Display Methods. Information Visualization (2011) 10, 47--64. doi:10.1057/ivs.2010.10. Available at: http://ivi.sagepub.com/content/10/1/47.full.pdf
[8] Website of Chemical Workbench software. Available at: http://www.kintechlab.com
[9] Gursoy-Atun graph layout, based on: "Neighbourhood Preserving Load Balancing: A Self-Organizing Approach" in EuroPar 2000, p. 234 of LNCS 1900. Available at: http://springerlink.metapress.com/link.asp?id=pcu07ew5rhexp9yt
[10] Library source code (algorithms) in C++. Available at: http://www.boost.org
[11] Software for graph visualization graphviz. Available at: http://www.graphviz.org
[12] T. Fruchterman and E. Reingold , Graph drawing by force-directed placement. Software--Practice & Experience, 21 (11), pp. 1129-1164, 1991.
[13] T. Kamada and S. Kawai An algorithm for drawing general undirected graphs. Information Processing Letters, 31, pp. 7-15, 1989.