Дополнение Nadra-3D add-on для программного комплекса Blender
Рассмотрен пакет дополнения Nadra-3D add-on для программного комплекса Blender, позволяющий использовать программные пакеты Blender, TetGen, ParaView для пред/постобработки данных конечно-элементного решателя Nadra-3D, предназначенного для моделирования пространственных процессов фильтрации, теплоп...
Збережено в:
| Дата: | 2016 |
|---|---|
| Автор: | |
| Формат: | Стаття |
| Мова: | Russian |
| Опубліковано: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2016
|
| Назва видання: | Кибернетика и системный анализ |
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/142025 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | Дополнение Nadra-3D add-on для программного комплекса Blender / М.В. Белоус // Кибернетика и системный анализ. — 2016. — Т. 52, № 5. — С. 177-185. — Бібліогр.: 15 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-142025 |
|---|---|
| record_format |
dspace |
| spelling |
nasplib_isofts_kiev_ua-123456789-1420252025-02-09T17:38:15Z Дополнение Nadra-3D add-on для программного комплекса Blender Доповнення Nadra-3D add-on для програмного комплексу Blender Nadra-3D add-on for Blender software Белоус, М.В. Программно-технические комплексы Рассмотрен пакет дополнения Nadra-3D add-on для программного комплекса Blender, позволяющий использовать программные пакеты Blender, TetGen, ParaView для пред/постобработки данных конечно-элементного решателя Nadra-3D, предназначенного для моделирования пространственных процессов фильтрации, теплопроводности, изменения напряженнодеформированного состояния. Розглянуто пакет доповнення Nadra-3D add-on для програмного комплексу Blender, який дозволяє використовувати програмні пакети Blender, TetGen, ParaView для перед/постобробки даних скінченно-елементного розв’язувача Nadra-3D, призначеного для моделювання просторових процесів фільтрації, теплопровідності, зміни напружено-деформованого стану. Nadra-3D add-on package for Blender software is considered. This add-on allows use of Blender, TetGen, ParaView software for data pre/post processing for finite element solver Nadra-3D, designed for simulation of spatial processes of filtration, heat transfer and changes in the stress-strain state of multicomponent media. 2016 Article Дополнение Nadra-3D add-on для программного комплекса Blender / М.В. Белоус // Кибернетика и системный анализ. — 2016. — Т. 52, № 5. — С. 177-185. — Бібліогр.: 15 назв. — рос. 0023-1274 https://nasplib.isofts.kiev.ua/handle/123456789/142025 004.42:004.94 ru Кибернетика и системный анализ application/pdf Інститут кібернетики ім. В.М. Глушкова НАН України |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| language |
Russian |
| topic |
Программно-технические комплексы Программно-технические комплексы |
| spellingShingle |
Программно-технические комплексы Программно-технические комплексы Белоус, М.В. Дополнение Nadra-3D add-on для программного комплекса Blender Кибернетика и системный анализ |
| description |
Рассмотрен пакет дополнения Nadra-3D add-on для программного комплекса Blender, позволяющий использовать программные пакеты Blender, TetGen, ParaView для пред/постобработки данных конечно-элементного решателя Nadra-3D, предназначенного для моделирования пространственных процессов фильтрации, теплопроводности, изменения напряженнодеформированного состояния. |
| format |
Article |
| author |
Белоус, М.В. |
| author_facet |
Белоус, М.В. |
| author_sort |
Белоус, М.В. |
| title |
Дополнение Nadra-3D add-on для программного комплекса Blender |
| title_short |
Дополнение Nadra-3D add-on для программного комплекса Blender |
| title_full |
Дополнение Nadra-3D add-on для программного комплекса Blender |
| title_fullStr |
Дополнение Nadra-3D add-on для программного комплекса Blender |
| title_full_unstemmed |
Дополнение Nadra-3D add-on для программного комплекса Blender |
| title_sort |
дополнение nadra-3d add-on для программного комплекса blender |
| publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
| publishDate |
2016 |
| topic_facet |
Программно-технические комплексы |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/142025 |
| citation_txt |
Дополнение Nadra-3D add-on для программного комплекса Blender / М.В. Белоус // Кибернетика и системный анализ. — 2016. — Т. 52, № 5. — С. 177-185. — Бібліогр.: 15 назв. — рос. |
| series |
Кибернетика и системный анализ |
| work_keys_str_mv |
AT belousmv dopolnenienadra3daddondlâprogrammnogokompleksablender AT belousmv dopovnennânadra3daddondlâprogramnogokompleksublender AT belousmv nadra3daddonforblendersoftware |
| first_indexed |
2025-11-28T20:09:23Z |
| last_indexed |
2025-11-28T20:09:23Z |
| _version_ |
1850066151689682944 |
| fulltext |
ÓÄÊ 004.42:004.94
Ì.Â. ÁÅËÎÓÑ
ÄÎÏÎËÍÅÍÈÅ NADRA-3D ADD-ON ÄËß ÏÐÎÃÐÀÌÌÍÎÃÎ
ÊÎÌÏËÅÊÑÀ BLENDER
Àííîòàöèÿ. Ðàññìîòðåí ïàêåò äîïîëíåíèÿ Nadra-3D add-on äëÿ ïðîãðàììíî-
ãî êîìïëåêñà Blender, ïîçâîëÿþùèé èñïîëüçîâàòü ïðîãðàììíûå ïàêåòû
Blender, TetGen, ParaView äëÿ ïðåä/ïîñòîáðàáîòêè äàííûõ êîíå÷íî-ýëåìåíò-
íîãî ðåøàòåëÿ Nadra-3D, ïðåäíàçíà÷åííîãî äëÿ ìîäåëèðîâàíèÿ ïðîñòðàí-
ñòâåííûõ ïðîöåññîâ ôèëüòðàöèè, òåïëîïðîâîäíîñòè, èçìåíåíèÿ íàïðÿæåííî-
äåôîðìèðîâàííîãî ñîñòîÿíèÿ.
Êëþ÷åâûå ñëîâà: ìîäåëèðîâàíèå, ìåòîä êîíå÷íûõ ýëåìåíòîâ, ñâîáîäíîå
ïðîãðàììíîå îáåñïå÷åíèå, ïðåä/ïîñòîáðàáîòêà äàííûõ.
ÂÂÅÄÅÍÈÅ
Ïðè ðàçðàáîòêå íîâûõ ìàòåìàòè÷åñêèõ ìîäåëåé, âû÷èñëèòåëüíûõ àëãîðèòìîâ
è ïîñòðîåííûõ íà èõ îñíîâå ïðîãðàìì-ðåøàòåëåé îäíîé èç ïðîáëåì òåñòèðî-
âàíèÿ è äàëüíåéøåãî ïðèìåíåíèÿ ïîñëåäíèõ äëÿ ðåøåíèÿ ïðàêòè÷åñêèõ çàäà÷
ÿâëÿåòñÿ ïîäãîòîâêà âõîäíûõ äàííûõ — ñîçäàíèå ìîäåëåé ãåîìåòðèè ñëîæíîé
ñòðóêòóðû è ïîñòðîåíèå ðàñ÷åòíûõ ñåòîê äëÿ íèõ.
Íàïèñàíèå ñîáñòâåííîãî ïðîãðàììíîãî îáåñïå÷åíèÿ äëÿ ýòèõ öåëåé — íå
î÷åíü õîðîøàÿ èäåÿ, ïîñêîëüêó òðåáóåò çíà÷èòåëüíîãî âðåìåíè íà ñîçäàíèå êîäà
è åùå áîëüøåãî — íà åãî îòëàäêó. Âìåñòå ñ òåì ñóùåñòâóåò äîñòàòî÷íîå êîëè-
÷åñòâî êà÷åñòâåííîãî ñâîáîäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ, ïîçâîëÿþùåãî ïî-
ñòðîèòü êàê ìîäåëü ãåîìåòðèè, òàê è ðàçíîîáðàçíûå ðàñ÷åòíûå ñåòêè äëÿ íåå.
Îäíàêî ïðè ýòîì âîçíèêàåò ðÿä ïðîáëåì, ñâÿçàííûõ ñ ïåðåäà÷åé äàííûõ ìåæäó
íåçàâèñèìûìè ïðîãðàììàìè, êàæäàÿ èç êîòîðûõ èìååò ñâîé ôîðìàò âõîäíûõ
è âûõîäíûõ ôàéëîâ.  ýòîì ñëó÷àå àêòóàëüíà çàäà÷à îðãàíèçàöèè ñîâìåñòíîé ðà-
áîòû ðàçëè÷íûõ ïðîãðàììíûõ ñèñòåì, è æåëàòåëüíî — ñ àâòîìàòèçàöèåé ïðî-
öåññîâ êîíâåðòàöèè è ïåðåñûëêè äàííûõ ìåæäó íèìè.
Äàëåå ðàññìîòðåíà ñõåìà îðãàíèçàöèè ñîâìåñòíîé ðàáîòû íåñêîëüêèõ ïðî-
ãðàììíûõ ïàêåòîâ äëÿ ðåøåíèÿ çàäà÷ êîí÷åíî-ýëåìåíòíîãî ìîäåëèðîâàíèÿ.
ÝÒÀÏÛ ×ÈÑËÅÍÍÎÃÎ ÌÎÄÅËÈÐÎÂÀÍÈß È ÏÐÎÃÐÀÌÌÍÎÅ ÎÁÅÑÏÅ×ÅÍÈÅ
Ýòàïû ÷èñëåííîãî ìîäåëèðîâàíèÿ ôèçè÷åñêèõ ïðîöåññîâ ñ èñïîëüçîâàíèåì
ìåòîäà êîíå÷íûõ ýëåìåíòîâ ìîæíî ïðåäñòàâèòü ñõåìîé, ïðèâåäåííîé íà
ðèñ. 1. Ïðîãðàììíûå ïàêåòû ÷èñëåííîãî ìîäåëèðîâàíèÿ îáû÷íî ïðåäîñòàâëÿ-
þò íàáîðû èíñòðóìåíòîâ äëÿ êàæäîãî èç ýòèõ ýòàïîâ, îáúåäèíåííûå ïîä îá-
ùåé îáîëî÷êîé, èëè ñîâìåùåííûå èíñòðóìåíòû ïðåä/ïîñòîáðàáîòêè è ïîñòðî-
åíèÿ ðàñ÷åòíîé ñåòêè, à òàêæå íàáîð êîíå÷íî-ýëåìåíòíûõ ðåøàòåëåé, ñïåöèà-
ëèçèðóþùèõñÿ íà ìîäåëèðîâàíèè êîíêðåòíûõ ôèçè÷åñêèõ ïðîöåññîâ.
 äàííîé ðàáîòå ðàññìîòðåíà òåõíîëîãèÿ ìîäåëèðîâàíèÿ ïðîñòðàíñòâåííûõ
ïðîöåññîâ ôèëüòðàöèè, òåïëîïðîâîäíîñòè, èçìåíåíèÿ íàïðÿæåííî-äåôîðìèðîâàí-
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5 177
Ïîñòðîåíèå
ìàòåìàòè÷åñêîé
ìîäåëè
Ïîñòðîåíèå
ìîäåëè
ãåîìåòðèè
Ïîñòðîåíèå
ðàñ÷åòíîé
ñåòêè
×èñëåííîå
íàõîæäåíèå
ðåøåíèÿ
Àíàëèç
ðåçóëüòàòîâ
Ïðåïðîöåññîð Òðèàíãóëÿòîð Ðåøàòåëü Ïîñòïðîöåññîð
Ýòàïû ìîäåëèðîâàíèÿ
Ïðîãðàììíîå îáåñïå÷åíèå
Èññëåäîâàòåëü
Ðèñ. 1. Ñõåìà ýòàïîâ ÷èñëåííîãî ìîäåëèðîâàíèÿ
© Ì.Â. Áåëîóñ, 2016
íîãî ñîñòîÿíèÿ ìíîãîêîìïîíåíòíûõ îáúåêòîâ ñ ïîìîùüþ ðàçðàáîòàííîãî â Èíñòè-
òóòå êèáåðíåòèêè èìåíè Â.Ì. Ãëóøêîâà ÍÀÍ Óêðàèíû êîíå÷íî-ýëåìåíòíîãî ðåøà-
òåëÿ Nadra-3D è ïðîãðàììíûõ ïàêåòîâ Blender, TetGen è ParaView. Òàêèì îáðàçîì,
ïðèâåäåííàÿ ñõåìà (ñì. ðèñ. 1) ïðèíèìàåò âèä, ïîêàçàííûé íà ðèñ. 2, ãäå:
� Blender [1] — ïðîãðàììíûé ïàêåò äëÿ ñîçäàíèÿ òðåõìåðíîé êîìïüþòåðíîé
ãðàôèêè, âêëþ÷àþùèé ñðåäñòâà ìîäåëèðîâàíèÿ, àíèìàöèè, ðåíäåðèíãà, ïîñòîáðà-
áîòêè è ìîíòàæà âèäåî ñî çâóêîì. Èíñòðóìåíòû ìîäåëèðîâàíèÿ ïîçâîëÿþò ðàáîòàòü
ñ ãåîìåòðè÷åñêèìè ïðèìèòèâàìè (ïîëèãîíàëüíûìè ìîäåëÿìè, êðèâûìè Áåçüå, ïî-
âåðõíîñòÿìè NURBS), à òàêæå êîíôèãóðèðîâàòü èíòåðôåéñ, ïèñàòü óïðàâëÿþùèå
ñêðèïòû è ñîçäàâàòü èíñòðóìåíòû íà ñêðèïòîâîì ÿçûêå Python. Ðàñïðîñòðàíÿåòñÿ
ïîä ëèöåíçèåé GNU GPL, îôèöèàëüíûé ñàéò http://www.blender.org;
� TetGen [2] — ãåíåðàòîð ñåòîê òðèàíãóëÿöèè, ðàçðàáîòàííûé â Èíñòèòóòå
ïðèêëàäíîãî àíàëèçà è ñòîõàñòèêè èìåíè Âåéåðøòðàññà, ïîçâîëÿåò ñòðîèòü ñåòêè
òåòðàýäðîâ (òðèàíãóëÿöèþ Äåëîíå ñ îãðàíè÷åíèÿìè) äëÿ ïðîèçâîëüíîé òðåõìåð-
íîé ãåîìåòðèè. Ðàñïðîñòðàíÿåòñÿ ïîä ëèöåíçèåé Gnu Affero Public License v.3.0,
ñàéò ïðîåêòà http://www.tetgen.org;
� ParaView [3] — ïðîãðàììíûé ïàêåò ñ îòêðûòûì èñõîäíûì êîäîì äëÿ âèçóà-
ëèçàöèè è àíàëèçà ðåçóëüòàòîâ íàó÷íûõ âû÷èñëåíèé, â òîì ÷èñëå ïîëó÷åííûõ ñ èñ-
ïîëüçîâàíèåì ìåòîäà êîíå÷íûõ ýëåìåíòîâ, âûïîëíÿåòñÿ êàê íà îäíîïðîöåññîðíûõ
ìàøèíàõ, òàê è íà ìíîãîïðîöåññîðíûõ ñèñòåìàõ ñ ðàñïðåäåëåííîé è ðàçäåëÿåìîé
ïàìÿòüþ ïîä óïðàâëåíèåì Windows, Mac OS X, Linux, SGI, IBM Blue Gene, Cray,
Unix. Ðàçðàáàòûâàåòñÿ ñ 2000 ã. ñîâìåñòíî Kitware Inc., Los Alamos National
Laboratory, Sandia National Labs è US Army Research Laboratory. Ïàêåò äîñòóïåí äëÿ
çàãðóçêè ïîä ëèöåíçèåé BSD ñ îôèöèàëüíîãî ñàéòà http://www.paraview.org.
 ðàññìàòðèâàåìîé äàëåå ñõåìå ñîâìåñòíîãî ïðèìåíåíèÿ ýòèõ ïðîãðàììíûõ
êîìïëåêñîâ â êà÷åñòâå ãðàôè÷åñêîé ñðåäû äëÿ ðàáîòû ïîëüçîâàòåëÿ èñïîëüçóåò-
ñÿ ñðåäà ïðîãðàììíîãî ïàêåòà 3D-ìîäåëèðîâàíèÿ Blender. Èíñòðóìåíòû ïàêåòà,
ïîçâîëÿþùèå ñîçäàâàòü ìîäåëè îáúåêòîâ äîâîëüíî ñëîæíîé ãåîìåòðèè, äîïîëíå-
íû íàïèñàííûì íà ñêðèïòîâîì ÿçûêå Python ìîäóëåì äîïîëíåíèÿ Nadra-3D
add-on, ïðåäîñòàâëÿþùèì ïàíåëü óïðàâëåíèÿ ýòàïàìè ìîäåëèðîâàíèÿ. Ñ ïî-
ìîùüþ ýòîé ïàíåëè îñóùåñòâëÿåòñÿ íàïîëíåíèå áèáëèîòåêè ïàðàìåòðîâ ìàòåìà-
òè÷åñêîé ìîäåëè, ïðèâÿçêà ýòèõ ïàðàìåòðîâ ê ýëåìåíòàì ãåîìåòðèè, çàäàåòñÿ
êîíôèãóðàöèÿ è çàïóñê íà âûïîëíåíèå ïàêåòîâ TetGen è Nadra-3D. Äëÿ óïðàâëå-
íèÿ ôàéëàìè ââîäà/âûâîäà ýòèõ ïàêåòîâ íàïèñàí íàáîð óòèëèò. Àíàëèç ðåçóëüòà-
òîâ ïðîâîäèòñÿ â ïàêåòå âèçóàëèçàöèè íàó÷íûõ âû÷èñëåíèé ParaView.
Ïîäãîòîâêà ôàéëîâ äàííûõ â ôîðìàòå *.vtk äëÿ ýòîãî ïàêåòà îñóùåñòâëÿåòñÿ
âñòðîåííûìè ìåòîäàìè ðåøàòåëÿ Nadra-3D.
ÊÎÍÅ×ÍÎ-ÝËÅÌÅÍÒÍÛÉ ÐÅØÀÒÅËÜ NADRA-3D
Ïðåäíàçíà÷åííûé äëÿ ÷èñëåííîãî ìîäåëèðîâàíèÿ ñòàöèîíàðíûõ è íåñòàöèî-
íàðíûõ ïðîöåññîâ â ìíîãîêîìïîíåíòíûõ ñðåäàõ â äâóìåðíûõ è òðåõìåðíûõ
ïîñòàíîâêàõ êîíå÷íî-ýëåìåíòíûé ðåøàòåëü Nadra-3D [4] ðàçðàáîòàí â Èíñòè-
òóòå êèáåðíåòèêè èìåíè Â.Ì. Ãëóøêîâà ÍÀÍ Óêðàèíû.
Áàçîâûìè âîçìîæíîñòÿìè äàííîé ïðîãðàììû ÿâëÿåòñÿ ðåøåíèå ñëåäóþùèõ çàäà÷:
� ýëëèïòè÷åñêîãî òèïà (çàäà÷è ñòàöèîíàðíîé ôèëüòðàöèè, òåïëîïðîâîäíîñ-
òè, óïðóãîñòè â äâóìåðíûõ è òðåõìåðíûõ ïîñòàíîâêàõ);
178 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5
Ïîñòðîåíèå
ìàòåìàòè÷åñêîé
ìîäåëè
Ïîñòðîåíèå
ìîäåëè
ãåîìåòðèè
Ïîñòðîåíèå
ðàñ÷åòíîé
ñåòêè
×èñëåííîå
íàõîæäåíèå
ðåøåíèÿ
Àíàëèç
ðåçóëüòàòîâ
Blender TetGen Nadra-3D ParaView
Ýòàïû ìîäåëèðîâàíèÿ
Ïðîãðàììíîå îáåñïå÷åíèå
Èññëåäîâàòåëü
Ðèñ. 2. Ñõåìà èñïîëüçîâàíèÿ ïðîãðàììíûõ ïàêåòîâ
� ïàðàáîëè÷åñêîãî òèïà (çàäà÷è íåñòàöèîíàðíîé ôèëüòðàöèè, òåïëîïðîâîä-
íîñòè â äâóìåðíûõ è òðåõìåðíûõ ïîñòàíîâêàõ);
� ãèïåðáîëè÷åñêîãî òèïà (çàäà÷è íåñòàöèîíàðíîé òåîðèè óïðóãîñòè â äâó-
ìåðíûõ è òðåõìåðíûõ ïîñòàíîâêàõ);
� ñòàöèîíàðíîé ôèëüòðàöèè âîäû â ïðîñòðàíñòâåííî-ïëàíîâîé ïîñòàíîâêå.
Êðîìå òîãî, â ðåøàòåëå ðåàëèçîâàí ðÿä ñåðâèñíûõ ôóíêöèé äëÿ ðàáîòû ñ ôàé-
ëàìè äàííûõ è ðåçóëüòàòîâ, èõ ïðîñìîòðà è êîíâåðòàöèè â ðàçëè÷íûå ôîðìàòû:
� ñðàâíåíèå äâóõ ôàéëîâ ðåçóëüòàòîâ;
� ãåíåðèðîâàíèå ýòàëîííîãî ôàéëà ðåçóëüòàòîâ íà îñíîâàíèè ôàéëà äàííûõ;
� êîíâåðòàöèÿ ôàéëà âûâîäà èç áèíàðíîãî ôîðìàòà â òåêñòîâûé;
� ãåíåðàöèÿ íà îñíîâàíèè ôàéëîâ äàííûõ è ðåçóëüòàòîâ ôàéëà â ôîðìàòå
*.vtk;
� ñîõðàíåíèå ñãåíåðèðîâàííûõ ìàòðèöû è âåêòîðà ïðàâîé ÷àñòè â ôàéëû;
� óìíîæåíèå ìàòðèöû íà âåêòîð (âõîäíûå äàííûå èç ôàéëîâ);
� ïåðåíóìåðàöèÿ óçëîâ ðàñ÷åòíîé ñåòêè ïî îáðàòíîìó àëãîðèòìó Êàòõèë-
ëà–Ìàêêè;
� ýêñïîðò íóìåðàöèè óçëîâ ðàñ÷åòíîé ñåòêè èç ôàéëà *.tgl â ôàéë íóìåðà-
öèè *.num;
� èìïîðò íóìåðàöèè óçëîâ ðàñ÷åòíîé ñåòêè èç ôàéëà *.num â ôàéë *.tgl;
� âû÷èñëåíèå ìàêñèìàëüíîé ðàçíîñòè íîìåðîâ äâóõ ñîñåäíèõ óçëîâ
(ò.å. ïðèíàäëåæàùèõ îäíîìó êîíå÷íîìó ýëåìåíòó).
Ïåðåäà÷à äàííûõ è âîçâðàò ðåçóëüòàòîâ îñóùåñòâëÿåòñÿ ÷åðåç ôàéëû. Íàñ-
òðîéêè âû÷èñëèòåëüíîé ïîñëåäîâàòåëüíîñòè è ïàðàìåòðîâ ñ÷åòà çàäàþòñÿ ïî-
ëüçîâàòåëåì â ôàéëå ïàñïîðòà çàäà÷è.
Ïîääåðæèâàþòñÿ ðàçëè÷íûå àëãîðèòìû ðåøåíèÿ ðåçóëüòèðóþùèõ ñèñòåì
ëèíåéíûõ àëãåáðàè÷åñêèõ óðàâíåíèé c áîëüøèì ÷èñëîì íåèçâåñòíûõ (ðàçìåð-
íîñòü ñèñòåì ïîðÿäêà 106–107 íåèçâåñòíûõ), èñïîëüçóþùèå ïàðàëëåëüíûå âû-
÷èñëåíèÿ è âû÷èñëåíèÿ íà ãðàôè÷åñêèõ ïðîöåññîðàõ [5].
Ñðåäà âûïîëíåíèÿ — Windows èëè Linux ñ áèáëèîòåêîé MPI. Äëÿ ðàáîòû ÷àñòè àë-
ãîðèòìîâ íåîáõîäèìû ãðàôè÷åñêèå ïðîöåññîðû, ïîääåðæèâàþùèå òåõíîëîãèþ CUDA.
ÏÀÊÅÒ ÄÎÏÎËÍÅÍÈß NADRA-3D ADD-ON ÄËß BLENDER
Íàçíà÷åíèå äîïîëíåíèÿ. Ïðîãðàììíûé ïàêåò Blender èìååò ìîùíûå ñðåäñòâà
ñîçäàíèÿ ìîäåëåé ãåîìåòðèè è ðåíäåðèíãà. Îäíàêî ïðè ïîäãîòîâêå äàííûõ
äëÿ êîíå÷íî-ýëåìåíòíîãî ðåøàòåëÿ íåîáõîäèìî òàêæå âûïîëíÿòü ðàçìåòêó
ýòîé ãåîìåòðèè äëÿ ïðîãðàììû òðèàíãóëÿöèè è äåëàòü ïðèâÿçêó ôèçè÷åñêèõ
õàðàêòåðèñòèê ìîäåëèðóåìûõ ïðîöåññîâ ê ýëåìåíòàì ãåîìåòðèè, äëÿ ÷åãî è
ïðèìåíÿåòñÿ äîïîëíåíèå Nadra-3D add-on äëÿ Blender.
Èíñòðóìåíòàëüíûå ïàíåëè äîïîëíåíèÿ ñîäåðæàò íàáîð îïåðàòîðîâ äëÿ ñî-
çäàíèÿ è ðåäàêòèðîâàíèÿ áèáëèîòåê ïàðàìåòðîâ (ìàòåðèàëîâ ñðåäû, âíåøíèõ íà-
ãðóçîê, ýòàëîííûõ çíà÷åíèé ðåøåíèÿ, êðàåâûõ óñëîâèé), èíñòðóìåíòû íàñòðîéêè
òðèàíãóëÿòîðà, îïåðàòîðû óïðàâëåíèÿ çàïóñêîì óòèëèò, îòðàáàòûâàþùèõ
ïîñëåäîâàòåëüíîñòü ïîäãîòîâêè ôàéëîâ.
Ñîñòàâ äîïîëíåíèÿ. Ðàññìàòðèâàåìîå äîïîëíåíèå ñîäåðæèò íàáîð ñêðèï-
òîâ íà ÿçûêå Python:
__init__.py
nadra3d_boundary_selectors.py nadra3d_filtration3d.py
nadra3d_collections.py nadra3d_groups.py
nadra3d_datalib.py nadra3d_markers.py
nadra3d_execute.py nadra3d_solver.py
nadra3d_export.py,
à òàêæå ïàêåòíûå ôàéëû nadra3d.bat, nadra3d.start è íàáîð óòèëèò â âèäå èñïîëíÿ-
åìûõ ôàéëîâ.
Íàáîð óòèëèò äîïîëíåíèÿ ïðåäíàçíà÷åí äëÿ ðàáîòû ñ ôàéëàìè äàííûõ ïðî-
ãðàììíûõ êîìïëåêñîâ TetGen, Nadra-3D è ParaView. Óòèëèòû ìîæíî çàïóñêàòü
èç êîìàíäíîé ñòðîêè, îäíàêî ïðåäïîëàãàåòñÿ, ÷òî îñíîâíîé ñïîñîá ðàáîòû
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5 179
ñ íèìè — ãðàôè÷åñêèé èíòåðôåéñ êîìïëåêñà Blender. Ïðèâåäåííûå äàëåå
óòèëèòû âûïîëíÿþò ñëåäóþùèå îïåðàöèè:
� ply2smesh.exe êîíâåðòèðóåò îïèñàíèå îáëàñòè ìîäåëèðîâàíèÿ èç ôîðìàòà
*.ply â ôîðìàò *.smesh òðèàíãóëÿòîðà TetGen;
� rcm.exe îñóùåñòâëÿåò ïåðåíóìåðàöèþ ñåòêè òðèàíãóëÿöèè, ïåðåäàííîé âî
âõîäíîì ôàéëå ôîðìàòà *.tgl, ïî îáðàòíîìó àëãîðèòìó Êàòõèëëà–Ìàêêè (ïåðåíó-
ìåðàöèþ ñîçäàííîé ñåòêè òàêæå ìîæíî îñóùåñòâëÿòü çàïóñêîì ðåøàòåëÿ
Nadra-3D ñ ñîîòâåòñòâóþùèìè êëþ÷àìè);
� tetgen2tgl.exe ãåíåðèðóåò íà îñíîâå ôàéëîâ ñ äàííûìè î ñåòêå òðèàíãóëÿ-
öèè â ôîðìàòå òðèàíãóëÿòîðà TetGen ôàéë ñ îïèñàíèåì ñåòêè òðèàíãóëÿöèè
â ôîðìàòå *.tgl;
� tgl2prm.exe ãåíåðèðóåò íà îñíîâå ôàéëîâ ñ äàííûìè î ñåòêå òðèàíãóëÿöèè
â ôîðìàòå *.tgl, áèáëèòåêè ïàðàìåòðîâ è ôàéëà èíäåêñîâ â ôîðìàòå *.ply ôàéë
ïàðàìåòðîâ â ôîðìàòå *.prm;
� TaskInf.exe ïðåäîñòàâëÿåò ãðàôè÷åñêèé èíòåðôåéñ äëÿ ðåäàêòèðîâàíèÿ ïàñ-
ïîðòîâ çàäà÷ TaskInf.ini è ïàêåòíûõ ôàéëîâ nadra3d.bat è nadra3d.start, ìîæåò
çàïóñêàòüñÿ êàê èç ãðàôè÷åñêîãî èíòåðôåéñà Blender, òàê è â àâòîíîìíîì ðåæèìå.
Óñòàíîâêà äîïîëíåíèÿ. Äëÿ ýòîãî íåîáõîäèìî âûïîëíèòü ñëåäóþùèå øàãè:
� ðàñïàêîâàòü àðõèâ ñ äîïîëíåíèåì è ñêîïèðîâàòü ïàïêó nadra3d-addon â ïàï-
êó ñ äîïîëíåíèÿìè Blender (íà êîìïüþòåðå ïîä óïðàâëåíèåì Windows ýòî îáû÷íî
ïàïêà C:\Users\username\AppData\Roaming\Blender Foundation\Blender\2.74\
scripts\addons èëè C:\Program Files\Blender Foundation\Blender\2.74\scripts\ addons);
� ñêîïèðîâàòü ïàïêó nadra3d-utilities â ëþáîå óäîáíîå ìåñòî, íàñòðîéêó ïó-
òåé ê ýòîé ïàïêå íåîáõîäèìî âûïîëíèòü íà ïàíåëè äîïîëíåíèÿ Paths ïîñëå çà-
âåðøåíèÿ åãî óñòàíîâêè;
� çàïóñòèòü Blender, îòêðûòü ðåäàêòîð íàñòðîåê èç ìåíþ File � User
Preferences (Ctrl Alt U), â îòêðûâøåìñÿ îêíå âûáðàòü âêëàäêó Add-ons;
� â ñïèñêå Categories âûáðàòü êàòåãîðèþ User èëè Object, â îòêðûâøåìñÿ
ñïèñêå äîñòóïíûõ äîïîëíåíèé óñòàíîâèòü ôëàæîê àêòèâàöèè íàïðîòèâ nadra3d.
 ðåçóëüòàòå â ñèñòåìíîé êîíñîëè (îòêðûâàåòñÿ èç ìåíþ Window � Toggle
System Console) ïîÿâèòñÿ ñîîáùåíèå: “imported Nadra-3d add-on”, à íà ïàíåëè
èíñòðóìåíòîâ (ïàíåëü íà ðàáî÷åì ñòîëå ñëåâà) — âêëàäêà Nadra-3D (ðèñ. 3).
Ñîçäàííûå ñ èñïîëüçîâàíèåì äîïîëíåíèÿ Nadra-3D add-on áèáëèîòåêè ïàðà-
ìåòðîâ ïðè ñîõðàíåíèè ïðîåêòà Blender â ôàéë *.blend áóäóò àâòîìàòè÷åñêè çà-
180 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5
Ðèñ. 3. Âèä îêíà ïàêåòà Blender ñ óñòàíîâëåííûì äîïîëíåíèåì Nadra-3D
ïèñûâàòüñÿ êàê äàííûå ïðîåêòà. Îäíàêî ïðè îòêðûòèè ôàéëà â ïàêåòå Blender
áåç óñòàíîâëåííîãî äîïîëíåíèÿ îíè íå çàãðóçÿòñÿ, òàê êàê â ñðåäå íå çàðåãèñòðè-
ðîâàíû ñîîòâåòñòâóþùèå ñâîéñòâà îáúåêòîâ. Ïîýòîìó, ÷òîáû êàæäûé ðàç ïðè çà-
ïóñêå Blender íå óñòàíàâëèâàòü äîïîëíåíèÿ è íå íàñòðàèâàòü ïóòåé äëÿ çàïóñêà
óòèëèò, íåîáõîäèìî ñîõðàíèòü íîâûå íàñòðîéêè ïî óìîë÷àíèþ: File � User
Preferences, êíîïêà Save User Settings (Ctrl U).
Ðàáîòà ñ äîïîëíåíèåì. Ïðè ïîäãîòîâêå äàííûõ äëÿ êîíå÷íî-ýëåìåíòíîãî ðå-
øàòåëÿ Nadra-3D ðàáîòà ïîëüçîâàòåëÿ â ñðåäå Blender ñîñòîèò èç ñëåäóþùèõ ýòàïîâ:
� ïîñòðîåíèå ìîäåëè ãåîìåòðèè ñðåäñòâàìè Blender;
� íàïîëíåíèå áèáëèîòåê ïàðàìåòðîâ è èõ ïðèâÿçêà ê ãåîìåòðèè;
� ðàçìåòêà ñîçäàííîé ìîäåëè äëÿ ïðîãðàììû òðèàíãóëÿöèè;
� íàñòðîéêà ïîñëåäîâàòåëüíîñòè ïîäãîòîâêè äàííûõ;
� çàïóñê ïîñëåäîâàòåëüíîñòè ïîäãîòîâêè äàííûõ íà âûïîëíåíèå.
Èíñòðóìåíòàðèé ïîñòðîåíèÿ ìîäåëåé ãåîìåòðèè ðàññìîòðåí â äîêóìåíòà-
öèè è îáó÷àþùèõ ìàòåðèàëàõ äëÿ ïðîãðàììíîãî êîìïëåêñà Blender [1]. Äàëåå
ðàññìîòðåíû íåêîòîðûå èíñòðóìåíòû äîïîëíåíèÿ Nadra-3D add-on.
Ðàáîòà ñ áèáëèîòåêîé ïàðàìåòðîâ. Ñîçäàíèå, ðåäàêòèðîâàíèå, ïðèâÿçêà
ê ýëåìåíòàì ãåîìåòðèè ðàçëè÷íûõ õàðàêòåðèñòèê ìàòåìàòè÷åñêîé ìîäåëè îñóùåñò-
âëÿþòñÿ íà ïàíåëè ðåäàêòîðà áèáëèîòåêè ïàðàìåòðîâ Data library (ðèñ. 4, à).
Ñâåðõó ïàíåëè (ñì. ðèñ. 4, à) ðàñïîëîæåíû ôèëüòðû âûáîðà ìîäåëèðóåìîãî
ïðîöåññà è ðàçìåðíîñòè çàäà÷è (À). Âûáîð ýòèõ çíà÷åíèé îïðåäåëÿåò êîëè÷åñòâî
òîìîâ áèáëèîòåêè. Íàïðèìåð, äëÿ òðåõìåðíîé çàäà÷è ôèëüòðàöèè èìååòñÿ øåñòü
òîìîâ: ìàòåðèàëû, íàãðóçêè (ñèëû), ýòàëîííûå çíà÷åíèÿ, êðàåâûå óñëîâèÿ íà
ôðàãìåíòàõ ïîâåðõíîñòè ãðàíèöû, êðàåâûå óñëîâèÿ íà ðåáðàõ ãðàíèöû, êðàåâûå
óñëîâèÿ â óçëàõ ãðàíèöû. Âîîáùå ãîâîðÿ, äëÿ ïîñòàíîâêè çàäà÷è íåîáõîäèìî
îïðåäåëÿòü òîëüêî çíà÷åíèÿ ìàòåðèàëîâ, íàãðóçîê è êðàåâûõ óñëîâèé íà ôðàã-
ìåíòàõ ïîâåðõíîñòè ãðàíèöû. Îñòàëüíûå òîìà îïöèîíàëüíûå, ïîñêîëüêó ýòàëîí-
íûå çíà÷åíèÿ èñïîëüçóþòñÿ íà ýòàïå âåðèôèêàöèè ìîäåëè, à êðàåâûå óñëîâèÿ íà
ðåáðàõ è óçëàõ — äëÿ çàäàíèÿ äîïîëíèòåëüíûõ ëîêàëüíûõ îãðàíè÷åíèé. Ïåðå-
êëþ÷åíèå ìåæäó òîìàìè áèáëèîòåêè îñóùåñòâëÿåòñÿ êíîïêàìè íà ïàíåëè (Â).
Íà ïàíåëè (Ñ) ñëåâà íàõîäèòñÿ ñïèñîê çàïèñåé â àêòèâíîì òîìå áèáëèîòåêè, à ïîä
íèì — êîíòåêñòíàÿ ïàíåëü (D) äëÿ ðåäàêòèðîâàíèÿ ïàðàìåòðîâ àêòèâíîé çàïèñè.
Ïàíåëü (E) ñïðàâà ñîäåðæèò ñãðóïïèðîâàííûå ïî ðàçäåëàì èíñòðóìåíòû äëÿ ñî-
çäàíèÿ çàïèñåé â àêòèâíîì òîìå áèáëèîòåêè è èõ ïðèâÿçêè ê ýëåìåíòàì ãåîìåòðèè.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5 181
Ðèñ. 4. Ðåäàêòîð áèáëèîòåêè ïàðàìåòðîâ (à) è ðåäàêòîð íàñòðîåê äëÿ ïîñëåäîâàòåëüíîñòè
ïîäãîòîâêè ôàéëîâ äàííûõ (á)
à á
Íàñòðîéêà òðèàíãóëÿòîðà è ðàçìåòêà ãåîìåòðèè. Äàííàÿ ïðîöåäóðà âû-
ïîëíÿåòñÿ íà ïàíåëè Triangulator. Ïðîãðàììà TetGen [2] äëÿ ïîñòðîåíèÿ ñåòêè
òðèàíãóëÿöèè çàïóñêàåòñÿ ñ íàáîðîì êëþ÷åé êîìàíäíîé ñòðîêè. Ïîäðîáíîå îïè-
ñàíèå êëþ÷åé è èõ âîçìîæíûõ êîìáèíàöèé ìîæíî íàéòè â äîêóìåíòàöèè è íà
ñàéòå ïðîåêòà. Â èñïîëüçóåìîé ñâÿçêå Blender–TetGen–Nadra-3D ïðèìåíÿåòñÿ
îãðàíè÷åííûé íàáîð ýòèõ êëþ÷åé: ÷àñòü èç íèõ çàêðåïëåíà â ïðîãðàììíîì êîäå
äîïîëíåíèÿ, ÷àñòü — äîñòóïíà äëÿ ðåäàêòèðîâàíèÿ ïîëüçîâàòåëåì óñòàíîâêîé íà
ïàíåëè ñîîòâåòñòâóþùèõ ôëàæêîâ. Â òåêñòîâîé îáëàñòè ââåðõó ïàíåëè îòîáðà-
æàåòñÿ ñãåíåðèðîâàííàÿ êîìàíäíàÿ ñòðîêà, êîòîðàÿ èñïîëüçóåòñÿ äëÿ çàïóñêà
òðèàíãóëÿòîðà. Äëÿ ðåäàêòèðîâàíèÿ ïîëüçîâàòåëþ äîñòóïíû ñëåäóþùèå êëþ÷è:
«–a» ïðåäíàçíà÷åí äëÿ óñòàíîâêè îãðàíè÷åíèÿ íà îáúåì ãåíåðèðóåìûõ òåòðàýä-
ðîâ; «–O» — äëÿ ãåíåðàöèè ñåòêè ýëåìåíòîâ äëÿ êâàäðàòè÷íûõ áàçèñíûõ ôóíê-
öèé ìåòîäà êîíå÷íûõ ýëåìåíòîâ; «–V» — äëÿ ïîäðîáíîãî âûâîäà â êîíñîëü.
Ðàçìåòêà ãåîìåòðèè äëÿ òðèàíãóëÿöèè âûïîëíÿåòñÿ èíñòðóìåíòàìè region
markers, hole markers è boundary, äîñòóïíûìè íà ïàíåëè Tools.
Ìîäåëü ãåîìåòðèè ïðåäñòàâëÿåò ñîáîé íàáîð çàìêíóòûõ ïîâåðõíîñòåé.
Ïðîãðàììà TetGen ïîçâîëÿåò ñòðîèòü òðèàíãóëÿöèþ ñ îãðàíè÷åíèÿìè, ò.å. ðåáðà
ïîñòðîåííîãî íàáîðà òåòðàýäðîâ íå ïåðåñåêàþò èñõîäíûõ ïîâåðõíîñòåé. Ïðè
ýòîì ñóùåñòâóåò âîçìîæíîñòü êàæäîìó îáúåìó, îãðàíè÷åííîìó çàìêíóòîé ïî-
âåðõíîñòüþ, ñòàâèòü â ñîîòâåòñòâèå íåêîòîðûé ÷èñëîâîé èíäåêñ. Äëÿ ýòîãî
â ïðîèçâîëüíîå ìåñòî îãðàíè÷åííîãî ïîâåðõíîñòüþ ïðîñòðàíñòâà íóæíî ïîìåñ-
òèòü ìàðêåð ñî çíà÷åíèåì èíäåêñà, êîòîðîå çàòåì áóäåò ïðèñâîåíî âñåì òåòðàýä-
ðàì, ëåæàùèì â ýòîì ïðîñòðàíñòâå. Àíàëîãè÷íî îãðàíè÷åííîå çàìêíóòîé
ïîâåðõíîñòüþ ïðîñòðàíñòâî ìîæíî îòìåòèòü êàê ïóñòîå.
Èíñòðóìåíòàðèé äîïîëíåíèÿ Nadra-3D add-on ïîçâîëÿåò ñîçäàâàòü òàêèå ìàðêå-
ðû, îòìå÷àþùèå ïóñòîòû (hole markers) è êîìïîíåíòû ìîäåëè ñ ðàçëè÷íûìè ñâîé-
ñòâàìè (region markers) è àññîöèèðîâàòü ñ íèìè íàáîðû ôèçè÷åñêèõ õàðàêòåðèñòèê.
Àíàëîãè÷íî òðèàíãóëÿòîð TetGen îñóùåñòâëÿåò ìàðêèðîâêó òðåóãîëüíèêîâ,
ëåæàùèõ íà ãðàíèöå. Äîïîëíåíèå Nadra-3D add-on ðàññòàâëÿåò ìàðêåðû äëÿ ãðà-
íèöû àâòîìàòè÷åñêè, ïîëüçîâàòåëþ òîëüêî íóæíî îòìåòèòü ýëåìåíòû ãðàíèöû
èíñòðóìåíòîì boundary è ïðèâÿçàòü ê íèì êðàåâûå óñëîâèÿ.
Äëÿ ïðèìåðà ðàññìîòðèì íåêîòîðûé íàáîð ïîâåðõíîñòåé À, Â, Ñ (ðèñ. 5)
è âûïîëíèì ðàçìåòêó òàêèì îáðàçîì, ÷òîáû ýòîò íàáîð ïîâåðõíîñòåé îïèñûâàë
ñîñòîÿùåå èç äâóõ êîìïîíåíòîâ òåëî, ñîäåðæàùåå ïóñòîòó. Äëÿ ýòîãî âíóòðè ïî-
âåðõíîñòè À, íî âíå ïîâåðõíîñòåé Â è Ñ, ïîìåñòèì ìàðêåð ðåãèîíà *R1, âíóòðè
ïîâåðõíîñòè Ñ — ìàðêåð ðåãèîíà *R2, à âíóòðè ïîâåðõíîñòè Â — ìàðêåð ïóñòî-
òû *H1. Ïîñëå òðèàíãóëÿöèè ïîëó÷èì ñåòêó, çàïîëíÿþùóþ îáúåì âíóòðè ïîâåðõ-
íîñòè À, íî âíå ïîâåðõíîñòè Â, ñ ïðîñòàâëåííûìè òåãàìè äëÿ äâóõ ïîäîáëàñòåé:
1 — äëÿ ïîäîáëàñòè ñ ìàðêåðîì R1 è 2 — äëÿ ïîäîáëàñòè ñ ìàðêåðîì R2.
Ïîäãîòîâêà äàííûõ äëÿ ðåøàòåëÿ Nadra-3D. Äëÿ âûïîëíåíèÿ ðàñ÷åòîâ
ðåøàòåëþ íåîáõîäèìî ïåðåäàòü ôàéë äàííûõ *.tgl ñ îïèñàíèåì ñåòêè òðèàíãóëÿ-
öèè, ôàéë *.prm ñ îïèñàíèåì ïàðàìåòðîâ ìàòåìàòè÷åñêîé ìîäåëè, ôàéë *.num
ñ îïèñàíèåì íóìåðàöèè óçëîâ ñåòêè (îïöèîíàëüíî) è ïàñïîðò çàäà÷è TaskInf.ini.
Ïîñòðîåíèå ýòèõ ôàéëîâ äîïîëíåíèåì Nadra-3D add-on äëÿ Blender îñóùåñòâëÿ-
åòñÿ ïîñëåäîâàòåëüíûì âûïîëíåíèåì ñëåäóþùèõ ýòàïîâ:
� Export to *.ply files — ýêñïîðò áèáëèîòåê ïàðàìåòðîâ è èíäåêñîâ èõ ïðè-
âÿçêè ê ýëåìåíòàì ãåîìåòðèè â ôàéëû ôîðìàòà *.ply (ñì. äàëåå);
182 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5
A
B C
*R1
*R2*H1
1
2
Ðèñ. 5. Ðàçìåòêà îáëàñòè äëÿ òðèàíãóëÿòîðà
� Generate tetgen smesh — ýêñïîðò îïèñàíèÿ ìîäåëè ãåîìåòðèè è íàñòðîåê
òðèàíãóëÿöèè â ôàéë ôîðìàòà *.smesh (ôàéë äàííûõ òðèàíãóëÿòîðà TetGen);
� Triangulate — çàïóñê òðèàíãóëÿòîðà TetGen;
� Generate nadra3d.tgl — êîíâåðòàöèÿ ïîñòðîåííîé ñåòêè òðèàíãóëÿöèè
â ôîðìàò *.tgl ïðîãðàììíîãî êîìïëåêñà Nadra-3D;
� Renumerate (RCM) — ïåðåíóìåðàöèÿ óçëîâ ñåòêè òðèàíãóëÿöèè;
� Generate nadra3d.prm — ïîñòðîåíèå ôàéëà îïèñàíèÿ ïàðàìåòðîâ â ôîðìàòå
*.prm ïðîãðàììíîãî êîìïëåêñà Nadra-3D;
� Run solver — çàïóñê ðåøàòåëÿ.
Êàê ïðàâèëî, ïîñëå ïîäãîòîâêè äàííûõ ïîëüçîâàòåëü ïðîâîäèò ðàñ÷åòû, ïîý-
òîìó â ïîñëåäîâàòåëüíîñòü ãåíåðàöèè ôàéëîâ äàííûõ äîáàâëåí â êà÷åòñâå çà-
êëþ÷èòåëüíîãî ýòàïà àâòîìàòèçèðîâàííûé çàïóñê ðåøàòåëÿ Nadra-3D.
Ëþáîé ïðèâåäåííûé ýòàï ìîæíî èñêëþ÷èòü èç âûïîëíåíèÿ, ñíÿâ íà ïàíåëè óïðàâ-
ëåíèÿ ôëàæîê âîçëå êíîïêè ñ åãî íàçâàíèåì. Íàïðèìåð, åñëè íóæíî ñãåíåðèðîâàòü
íåñêîëüêî ðàçëè÷íûõ ñåòîê òðèàíãóëÿöèè, ýòàïû ñîçäàíèÿ ôàéëîâ â ôîðìàòàõ *.ply
è *.smesh íåçà÷åì âûïîëíÿòü ïðè ïîñòðîåíèè êàæäîé ñåòêè, äîñòàòî÷íî îäíîãî ðàçà.
Ðåäàêòèðîâàíèå íàñòðîåê ïîñëåäîâàòåëüíîñòè ïîäãîòîâêè ôàéëîâ äàííûõ îñó-
ùåñòâëÿåòñÿ íà âêëàäêå Execute äîïîëíåíèÿ Nadra-3D add-on (ñì. ðèñ. 4, á), íà êîòî-
ðîé ìîæíî çàäàòü íàñòðîéêè äëÿ êàæäîãî ýòàïà. Çàïóñê âûïîëíåíèÿ ïîñëåäîâàòåëü-
íîñòè îñóùåñòâëÿåòñÿ íàæàòèåì êíîïêè Execute sequence âíèçó âêëàäêè. Êàæäûé
ýòàï òàêæå ìîæíî âûïîëíèòü îòäåëüíî, íàæàâ íà êíîïêó ñ åãî íàçâàíèåì. Ïîòîêè
âûâîäà è îøèáîê âûçûâàåìûõ óòèëèò ïåðåíàïðàâëÿþòñÿ â ñèñòåìíóþ êîíñîëü (îò-
êðûâàåòñÿ èç ìåíþ Window � Toggle System Console), êðàòêàÿ èíôîðìàöèÿ î âû-
ïîëíÿåìîì ýòàïå èëè îøèáêå äóáëèðóåòñÿ â èíôîðìàöèîííîé ïàíåëè Blender.
Îòìåòèì, ÷òî âñå ýòàïû ïîñëåäîâàòåëüíîñòè ïîäãîòîâêè ôàéëîâ äàííûõ, çà
èñêëþ÷åíèåì ïåðâîãî, âûïîëíÿþòñÿ íå èíòåãðèðîâàííûìè â Blender ñêðèïòàìè,
à óòèëèòàìè èç êîìïëåêòà ïîñòàâêè Nadra-3D add-on. Òàêèì îáðàçîì, ïîäãîòîâèâ
îïèñàíèå ìîäåëè â âèäå ñîîòâåòñòâóþùèõ ôàéëîâ â ôîðìàòå *.ply (íàïðèìåð,
ýêñïîðòèðîâàâ ýòè äàííûõ èç ñîáñòâåííîãî ðåäàêòîðà), ìîæíî ãåíåðèðîâàòü
ôàéëû äàííûõ ðåøàòåëÿ Nadra-3D è áåç èñïîëüçîâàíèÿ ïàêåòà Blender.
Ôàéëû ôîðìàòà *.ply. Ýêñïîðò áèáëèîòåêè ïàðàìåòðîâ, ìîäåëè ãåîìåòðèè
è èíäåêñà ïðèâÿçêè ýëåìåíòîâ áèáëèîòåêè ê ýëåìåíòàì ãåîìåòðèè îñóùåñòâëÿåòñÿ
â ôàéëû ôîðìàòà *.ply (Stanford Triangle Format) — îòêðûòîãî ôîðìàòà, ðàçðàáîòàí-
íîãî â ñåðåäèíå 90-õ ãîäîâ â ëàáîðàòîðèè êîìïüþòåðíîé ãðàôèêè Ñòåíôîðäñêîãî
óíèâåðñèòåòà äëÿ õðàíåíèÿ íàáîðà òðåõìåðíûõ äàííûõ, ïîëó÷àåìûõ ñ 3D-ñêàííå-
ðîâ. Ïðåèìóùåñòâîì ôîðìàòà ÿâëÿåòñÿ åãî ãèáêîñòü è ïðîñòîòà — èäåíòèôèêàöèÿ
çàïèñàííûõ äàííûõ îñóùåñòâëÿåòñÿ ïî çàãîëîâêó ôàéëà, ñîäåðæàùåìó îïèñàíèå ïî-
ëåé äàííûõ. Ñóùåñòâóþò òåêñòîâàÿ âåðñèÿ ôîðìàòà: format ascii 1.0, è äâå äâîè÷-
íûõ: format binary_little_endian 1.0 è format binary_big_endian 1.0.
Äëÿ ýêñïîðòà äàííûõ äîïîëíåíèå Nadra-3D add-on èñïîëüçóåò òåêñòîâóþ âåðñèþ
ôîðìàòà. Äëÿ êàæäîé ìîäåëè ñîçäàþòñÿ òðè ôàéëà äàííûõ. Íàïðèìåð, åñëè èìÿ ìîäåëè
modelName, òî ïîëó÷åííûå ôàéëû ñëåäóþùèå: modelName.mesh.ply — ôàéë îïèñàíèÿ
ïîâåðõíîñòåé, ñîñòàâëÿþùèõ ìîäåëü, modelName.lib.ply — ôàéë îïèñàíèÿ áèáëèîòå-
êè ïàðàìåòðîâ, modelName.links.ply — èíäåêñ ïðèâÿçêè ïàðàìåòðîâ ê ãåîìåòðèè.
Àâòîìàòèçèðîâàííûé çàïóñê ðåøàòåëÿ Nadra-3D. Ïîñëåäíèì ýòàïîì ïî-
ñëåäîâàòåëüíîñòè ãåíåðàöèè ôàéëîâ äàííûõ ÿâëÿåòñÿ çàïóñê êîíå÷íî-ýëåìåíòíî-
ãî ðåøàòåëÿ Nadra-3D èç ãðàôè÷åñêîãî èíòåðôåéñà Blender ñ ïîìîùüþ êîìàí-
äíîãî ôàéëà nadra3d.bat. Äàëåå ïðèâåäåí ïðèìåð òàêîãî ôàéëà, âûïîëíÿþùåãî
óïàêîâêó ñãåíåðèðîâàííûõ íà ðàáî÷åé ìàøèíå ïîä óïðàâëåíèåì Windows ôàé-
ëîâ äàííûõ â zip-àðõèâ, èõ ïåðåñûëêó íà óäàëåííûé êëàñòåðíûé êîìïëåêñ ïîä
óïðàâëåíèåì Linux è çàïóñê íà íåì ñêðèïòà nadra3d.start, îñóùåñòâëÿþùåãî
äàëüíåéøóþ ðàáîòó ñ ýòèìè äàííûìè:
:start
@echo off
title Nadra3D
if not exist %1 ( goto finish )
set local_data_dir=%1
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5 183
set arhiver="C:\Program Files\7-Zip\7z"
set putty="E:\N3D_install_pack\PuTTY\putty"
set pscp="E:\N3D_install_pack\PuTTY\pscp"
set remote_commands="E:\N3D_install_pack\nadra3d_addon\exe-x32\
nadra3d.start"
set remote_data_dir="./nadra3d_ex/data"
set user=user_name
set password=user_password
set host=icybcluster.org.ua
:: zip data for upload
%arhiver% a -r %local_data_dir%\data.zip %local_data_dir%\*
:: upload data to cluster
%pscp% -pw %password% %local_data_dir%\data.zip
%user%@%host%:%remote_data_dir%
:: delete data.zip
del %local_data_dir%\data.zip"
:: start remote commands
%putty% -ssh %user%@%host% -pw %password% -m %remote_commands% -t
:finish
Äëÿ àðõèâàöèè ôàéëîâ èñïîëüçóåòñÿ àðõèâàòîð 7-zip, äëÿ ïåðåñûëêè — ïðî-
ãðàììà pscp, äëÿ âûïîëíåíèÿ óäàëåííûõ êîìàíä — êîíñîëü putty.
Ñëåäóþùèé ñêðèïò nadra3d.start âûïîëíÿåò ðàñïàêîâêó ïåðåäàííûõ íà óäàëåí-
íûé êëàñòåðíûé êîìïëåêñ äàííûõ è çàïóñêàåò êîíå÷íî-ýëåìåíòíûé ðåøàòåëü, ïå-
ðåíàïðàâëÿÿ ñòàíäàðòíûå ïîòîêè âûâîäà è îøèáîê â ñîîòâåòñòâóþùèå ôàéëû:
cd ./nadra3d_ex/data;
unzip data.zip;
rm -f data.zip;
mv *.ini ../TaskInf.ini
cd ..
srun -n 1 -p scit4_lt n2d3d 1 > nadra3d.log 2 > nadra3d.err
184 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5
Ðèñ. 6. Âèä îêíà ïàêåòà ParaView ñ çàãðóæåííîé ìîäåëüþ ×åðíèãîâñêîãî ìåñòîðîæäåíèÿ
ïîäçåìíûõ âîä
Ïîñòîáðàáîòêà ðåçóëüòàòîâ. Ïîñëå îòðàáîòêè ðåøàòåëÿ ïîëüçîâàòåëü ïåðå-
ñûëàåò äàííûå íà ïåðñîíàëüíûé êîìïüþòåð, ãäå îíè âèçóàëèçèðóþòñÿ ïðîãðàì-
ìíûì êîìïëåêñîì ParaView [3] (ðèñ. 6). Äëÿ ïîäãîòîâêè ôàéëîâ â ôîðìàòå *.vtk,
êîòîðûå îí ïîçâîëÿåò èìïîðòèðîâàòü, íåîáõîäèìî âêëþ÷èòü ñîîòâåòñòâóþùèé
ýòàï â ïàñïîðò çàäà÷è ðåøàòåëÿ Nadra-3D, â ðåçóëüòàòå èç ôàéëîâ *.tgl, *.tag,
*.out áóäåò ñîáðàí ôàéë â ôîðìàòå *.vtk.
ÇÀÊËÞ×ÅÍÈÅ
 ðàáîòå ðàññìîòðåíî èñïîëüçîâàíèå ïðîãðàììíûõ ïàêåòîâ Blender, TetGen,
ParaView è Nadra-3D äëÿ ìîäåëèðîâàíèÿ ïðîñòðàíñòâåííûõ ïðîöåññîâ ìåòî-
äîì êîíå÷íûõ ýëåìåíòîâ. Ðàçðàáîòàííàÿ ñõåìà îðãàíèçàöèè ñîâìåñòíîé ðàáî-
òû ýòèõ ïàêåòîâ ïðåäîñòàâëÿåò ïîëüçîâàòåëþ èíòåðôåéñ óïðàâëåíèÿ ïîñëåäî-
âàòåëüíîñòüþ ìîäåëèðîâàíèÿ, àâòîìàòèçèðóåò ïðîöåññû êîíâåðòàöèè è ïåðåäà-
÷è äàííûõ ìåæäó ïàêåòàìè, ïîçâîëÿåò îñóùåñòâëÿòü óäàëåííûé çàïóñê
êîíå÷íî-ýëåìåíòíîãî ðåøàòåëÿ íà ìíîãîïðîöåññîðíûõ âû÷èñëèòåëüíûõ êîì-
ïëåêñàõ. Â ðåçóëüòàòå ïîëüçîâàòåëü ðàáîòàåò ñ ïðèâåäåííûìè ïàêåòàìè êàê
ñ åäèíûì ïðîãðàììíûì êîìïëåêñîì, ïðåäîñòàâëÿþùèì èíñòðóìåíòàðèé äëÿ
âñåõ ýòàïîâ ÷èñëåííîãî ìîäåëèðîâàíèÿ.
ÑÏÈÑÎÊ ËÈÒÅÐÀÒÓÐÛ
1. Ï ð î ã ð à ì ì í û é ïàêåò Blender. — http://www.blender.org/.
2 S i H . TetGen, a Delaunay-based quality tetrahedral mesh generator // ACM Trans. on Mathematical
Software. — 2015. — 41 (2), Article 11. —36 p.
3. A y a c h i t U . The ParaView guide: A parallel visualization application. — Kitware, 2015. — 276 ð.
4. Á ³ ë î ó ñ Ì .  . Ñê³í÷åííî-åëåìåíòíèé ðîçâ’ÿçóâà÷ Íàäðà-3D // Ìàòåð³àëè ²² ̳æíàð. êîíô. «Êëàñ-
òåðí³ îá÷èñëåííÿ — 2013», Ëüâ³â, 3–5 ÷åðâíÿ 2013 ð. — Ñ. 40–47.
5. Á à ð à í î â À . Þ . , Á å ë î ó ñ Ì . Â . , Ñ å ð ã è å í ê î È . Â . , Õ è ì è ÷ À . Í . Ãèáðèäíûå àëãîðèò-
ìû ðåøåíèÿ ëèíåéíûõ ñèñòåì äëÿ êîíå÷íî-ýëåìåíòíîãî ìîäåëèðîâàíèÿ ïðîöåññîâ ôèëüòðàöèè // Êè-
áåðíåòèêà è ñèñòåìíûé àíàëèç. — 2015. — 51, ¹ 4. — Ñ. 112–120.
Íàä³éøëà äî ðåäàêö³¿ 29.02.2016
Ì.Â. Á³ëîóñ
ÄÎÏÎÂÍÅÍÍß NADRA-3D ADD-ON ÄËß ÏÐÎÃÐÀÌÍÎÃÎ ÊÎÌÏËÅÊÑÓ BLENDER
Àíîòàö³ÿ. Ðîçãëÿíóòî ïàêåò äîïîâíåííÿ Nadra-3D add-on äëÿ ïðîãðàìíîãî
êîìïëåêñó Blender, ÿêèé äîçâîëÿº âèêîðèñòîâóâàòè ïðîãðàìí³ ïàêåòè Blender,
TetGen, ParaView äëÿ ïåðåä/ïîñòîáðîáêè äàíèõ ñê³í÷åííî-åëåìåíòíîãî ðîçâ’ÿ-
çóâà÷à Nadra-3D, ïðèçíà÷åíîãî äëÿ ìîäåëþâàííÿ ïðîñòîðîâèõ ïðîöåñ³â
ô³ëüòðàö³¿, òåïëîïðîâ³äíîñò³, çì³íè íàïðóæåíî-äåôîðìîâàíîãî ñòàíó.
Êëþ÷îâ³ ñëîâà: ìîäåëþâàííÿ, ìåòîä ñê³í÷åííèõ åëåìåíò³â, â³ëüíå ïðîãðàì-
íå çàáåçïå÷åííÿ, ïåðåä/ïîñòîáðîáêà äàíèõ.
M.V. Bilous
NADRA-3D ADD-ON FOR BLENDER SOFTWARE
Abstract. Nadra-3D add-on package for Blender software is considered. This
add-on allows use of Blender, TetGen, ParaView software for data pre/post
processing for finite element solver Nadra-3D, designed for simulation of spatial
processes of filtration, heat transfer and changes in the stress-strain state of
multicomponent media.
Keywords: simulation, finite element method, free software, pre/post-processing.
Áåëîóñ Ìàêñèì Âëàäèìèðîâè÷,
êàíäèäàò ôèç.-ìàò. íàóê, ñòàðøèé íàó÷íûé ñîòðóäíèê Èíñòèòóòà êèáåðíåòèêè èì. Â.Ì. Ãëóøêîâà
ÍÀÍ Óêðàèíû, Êèåâ, e-mail: maksbilous@ukr.net.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2016, òîì 52, ¹ 5 185
|