Linux E X P R E S

Facebook

Matematický software v Linuxu: QtiPlot, gnuplot, Paraview, OpenFOAM a TeX

math.png

V druhém díle článku o matematickém softwaru budou představeny matematický tabulkový procesor QtiPlot, vykreslovač grafů gnuplot, tvořič animací dynamických situací Paraview, CFD aplikace OpenFOAM a vědecko-typografický program TeX.


Přečtěte si první díl série: Matematický software v Linuxu: Extcalc, Sage, Maxima, Octave a R

QtiPlot

QtiPlot (zdroj obrázku Wikipedia) QtiPlot (zdroj obrázku Wikipedia)

Většinoví uživatelé připravují grafy a počítají statistiku v programech typu tabulkový procesor (spreadsheet), který nalezneme v téměř každém balíku kancelářského softwaru:

  • Nejpopulárnějším tabulkovým procesorem pro Linux se stal Calc z balíku OpenOffice.org (resp. jeho forku LibreOffice). Problematice OpenOffice.org a LibreOffice se věnuje portál OpenOffice.cz.

  • V méně známém GNOME Office plní funkci tabulkového procesoru populární Gnumeric. Kancelářská sada GNOME Office se dále skládá z textového procesoru AbiWord, prohlížeče dokumentů Evince, poštovního klienta Evolution, Ease pro tvorbu prezentací a editoru vektorové grafiky Inkscape.

  • Do desktopového prostředí KDE zapadá tabulkový procesor Calligra Sheets.

Možná toto pro vaše matematické potřeby nestačí a poptáváte specializovanější produkt. Řešením z řad kancelářského softwaru můžete vytýkat mimo jiné:

  • Klasickým tabulkovým procesorům se nedostává některých pokročilejších matematických funkcí.

  • Klasické tabulkové procesory zahrnují přehršel nematematických kancelářských funkcí a vychytávek. Zájemci o ryze matematický produkt toto odlišné zaměření jen ztěžuje orientaci v prostředí.

  • Proti klasickým tabulkovým procesorům mluví i vyšší hardwarová náročnost a v konkrétních případech i další vlastnosti (např. omezená numerická přesnost).

Tyto požadavky může naplnit QtiPlot. QtiPlot se svým celkovým návrhem (grafické uživatelské rozhraní, datový model...) ztotožňuje s tabulkovými procesory, avšak cílí na statisticko-technicko-inženýrskou praxi. QtiPlot je multiplatformní software uvolněný pod licencí GPL, s možností placené technické podpory. Ke QtiPlotu existují další svobodné alternativy (SciDAVis, LabPlot...).

Nejzmiňovanější alternativní aplikací je však placený Origin. V minulém díle jsem vyslovil názor, že známé proprietární tituly Maple, Mathematica a Matlab nepatří mezi nejlepší matematický software z důvodů své značné předraženosti. Táž úvaha platí i pro Origin. Licence pro běžného uživatele je k mání „již od“ 32 124 Kč u standardní verze a „již od“ 50 628 Kč u plnohodnotné profesionální verze.

Přečtěte si také článek QtiPlot: Vytvářejte statistiky a grafy.

Gnuplot

QtiPlot rozhodně není vizualizační nástroj, který bude pracovat „samočinně“ podle textových pokynů. QtiPlot očekává interakci s klikajícím uživatelem a upozaděná možnost psaní skriptů má oslovit především pokročilé uživatele QtiPlotu. Klaďme na ryze „samočinný“ program pro tvorbu grafů následující nároky:

  • Programátor jej bude chtít začlenit do vlastního díla. Softwarová závislost by měla být lehká, hardwarově nenáročná a snadno distribuovatelná.

  • Kvůli automatizaci by měl být zcela ovládatelný skrze textové uživatelské rozhraní (CLI). Skriptovací jazyk by měl být snadno naučitelný.

  • Měl by být dobře nastavitelný.

  • Měl by dokázat automaticky exportovat grafické výstupy do různých formátů.

  • Měl by zvládat běžné typy grafů. Měl by umět rozumně si domyslit vzhled grafu, rozsah os, popisky...

Zde lze doporučit program gnuplot, který je zřejmě nejpopulárnější aplikací ve své kategorii. Ale ani při volbě PLplotu, Grace a dalších alternativ neprohloupíte. Ukázkové nasazení gnuplotu názorně demonstruje článek Gnuplot: Generujte grafy přímo ze svého programu. V něm je ukázán skript v Pythonu řešící úlohu Sudoku metodou genetických algoritmů a skrze gnuplot se zcela automaticky vynáší rychlost konvergence do grafu.

Paraview a OpenFoam

Paraview

Představení dvou programů pro vizualizaci se mlčky omezilo jen na tvorbu statických grafů. Program gnuplot sice umí slepit animaci (animované gify), ale rozhodně nemůžeme mluvit o ideálním řešení. Pro složité dynamické situace, jakými jsou třeba znázornění toků, je určen program Paraview.

Paraview Paraview

Jednotlivé požadované úkony se v grafickém rozhraní v Paraview uspořádávají do hierarchické stromové struktury, která definuje pořadí zpracovávání. V znázornění struktury se vyznačí, co přesně má být na výstupu viditelné; analogií je viditelnost vrstev v GIMPu. Jednotlivé kroky zpracování mohou spočívat v následujícím:

  • Paraview umožňuje znázornit data jako body, sítě, obalové plochy či jako objemy. Data lze vykreslit i jako vektory, když potřebujeme vykreslit směr a intenzitu.

  • Uživatel ovládá i způsob obarvování/vybarvování grafických objektů.

  • Ve filtru Kalkulátor se dají přepočítat data.

  • Paraview se dá řídit uživatelskými skripty v jazyce Python.

Ve finále se z výstupu vyrobí animace.

Podívejte se na neoficiální krátký český tutoriál k Paraview.

OpenFoam

Paraview se zjevně hodí především k předvedení technických, fyzikálních, chemických a jiných simulací. Vytvoření simulací záleží v řešení parciálních diferenciálních rovnic, čímž se věc redukuje na matematickou úlohu. Aplikace GNU Octave a jí podobné, které byly představeny v minulém dílu, dostačují pro méně náročná zadání. Pro náročnější zadání se hodí software OpenFOAM zaměřený přímo na CFD. OpenFOAM se skládá z jednotlivých utilit řešících přípravnou fázi (preprocesoring), vlastní zpracování (procesing), závěrečnou fázi (postprocesing) a napojení na Paraview jako na vizualizační frontend. Do preprocesingu náleží definice geometrie úlohy například importování modelu z CAD aplikace, pokrytí sítí, definování okrajových podmínek... Při postprocesingu se analyzují výsledky, připravují se podklady pro vizualizaci, stanovují se průměrné a agregované hodnoty...

Nejvýznamnější funkce popisují domovské stránky. Mezi základní rysy patří:

  • Primárně se ovládá přes textové rozhraní.

  • Řešitelé implementují různé numerické algoritmy (DNS, LES, Monte Carlo...), metody dynamické změny výpočetní sítě pro minimalizace zaokrouhlovacích chyb a podpora různých typů sítí.

  • Řešitelé počítají s různými situacemi. Jmenujme například těleso unášené a nadnášené tekutinou, sálání tepla, chemické reakce, problémy s více fyzikálními fázemi (např. sublimace, kavitace...), elektrostatika, chemické reakce...

  • Bez obtíží lze paralelizovat zátěž mezi různé stroje.

  • Obsažené programy dokážou provádět různé manipulace se sítěmi.

Zdrojové kódy byly napsány v klasickém C/C++ a svou koncepcí se plně hlásí k ideám příznivců open source. OpenFOAM lze snadno upravovat a doplňovat o další funkce. Označování symbolů vycházejí z matematické terminologie. Například:

  • Metoda fvm::ddt značí derivaci podle času.

  • Metoda fvm::div aplikuje operátor divergence.

  • Funkce solve provede řešení výrazu.

Těmito symboly se vyjadřují i přírodní zákony, podle nichž se provádí simulace.

Alternativní CFD řešení

Konkurentem jsou především nákladné produkty společnosti Ansys. Dosud zmiňovaný placený software se pohyboval v horizontu padesáti tisíc českých korun. Pořízení uceleného řešení od Ansys bude řádově dražší a cena rozhodně neodpovídá solventnosti obvyklé u fyzických osob. Softwarové portfolio Ansysu by mělo být chápáno jako kapitál, který v průmyslu zlevňuje proces inovování. V obratu průmyslových firem se snadno jeví statisícové částky jako zanedbatelné. Tato úvaha vysvětluje cenovou strategii profesionálního placeného softwaru.

OpenFOAM je vyhrazen pouze pro Unix, Linux a další unixové operační systémy. Několik iniciativ provádí úpravy jeho zdrojových kódů, aby tuto nevýhodu překonaly. Takto vznikly odvozeniny blueCFD, FreeFOAM a OpenFlow. (Deriváty však nemusí obsahovat všechny funkce originálu.)

Podívejte se na ukázky OpenFOAM s Paraview v akci (hledání na YouTube).

TeX

Slovutný typografický nástroj TeX bezesporu spadá mezi rodinné stříbro open source. Věřím, že pro známost softwaru bude stačit jen heslovitá prezentace.

Několik zajímavostí o TeXu

  • Na TeX navazuje nepřeberné množství nejrůznějších rozšíření. Jedná se o zdaleka nejkomplexnější řešení pro typografii vůbec.

  • Jde o jeden z nejstarších aktivně vyvíjených a široce užívaných open-source projektů. Produkční verze byla představena již v roce 1978.

  • K TeXu přísluší od roku 1992 repozitář CTRAN (Comprehensive TeX Archive Network). Jedná se o jeden z nejstarších veřejných repozitářů vůbec.

  • Na poli profesionální matematické sazby dokonale vytěsnil ostatní aplikace a nyní již nemá žádnou konkurenci. Ovládnutí „lingua franca“ matematiky (La)TeXu spadá mezi základní vzdělání matematika.

  • V názvu TeX se vyskytuje řecké písmeno chí, které se často nahrazuje vizuálně podobným X. Slovo TeX se proto vyslovuje Tech.

  • TeX navrhl prominentní počítačový vědec Donald Knuth, který mimo jiné píše popularizační knižní řadu Umění programování. Recenzi druhého dílu Seminumerické algoritmy naleznete v našem článku.

Základní komponenty

Editace LaTeXového dokumentu v Geany Editace LaTeXového dokumentu v Geany

  • Jádrový typografický nástroj se nazývá TeX. V jazykovém úzu se zanedbává rozdíl mezi programem a značkovacím jazykem pro formátování jeho vstupů, který se rovněž označuje jako TeX. Konvence jazyku TeX jsou značně archaické a nereflektují pozdější vývoj (např. technologii XML).

  • Vlastní TeX se sdružuje s dalšími doprovodnými aplikacemi. Připravené komplexní prostředí s TeXem se označuje distribuce TeXu. Linuxoví distributoři obvykle sahají po distribuci TeX Live.

  • Software LaTeX je sadou maker v jazyce TeX. Prací v TeXu se v běžné řeči míní právě zapisování LaTeXových maker.

  • Americká matematická společnost (AMS) připravila kolekci balíčků a tříd dokumentů AMS-LaTeX.

  • BibTeX je jednoúčelový databázový systém a souborový formát pro bibliografii. Slouží k zaznamenání databáze pramenů, vkládání citací do dokumentů, dodržení citačních pravidel podle dané třídy dokumentu, vygenerování seznamu pramenů...

  • Jazykem Metafont se popisují fonty.

  • LaTeXila, Kile, Texmaker, LyX, Gummi... – různé editory usnadňující práci s (La)TeXem (více v článcích Editory pro TeX: Staří mazáci, Editory pro TeX: Aplikace s grafickým rozhraním a LaTeXila vs. Gummi: Srovnání editorů LaTeXu).

Formáty výstupních souborů

  • Device independent file (.dvi) je nezdrojová forma dokumentu vzniklá kompilací TeXu. Soubor ve formátu dvi nezávisí na orientaci souřadnicového systému a dalších konvencích jednotlivých zobrazovacích/tiskových zařízení. Dvi se obvykle exportuje do PostScriptu.

  • Podobně jako SVG je PostScript (.ps) formátem vektorové grafiky. Přesněji řečeno PostScript je programovací jazyk, kterým se ovládají tiskárny s podporou PostScriptu.

  • Formát dokumentů Portable Document Format (.pdf) komplexně upravuje celý oběh elektronických dokumentů. Formát tedy umožňuje elektronické podepisováním dokumentu, komentování (vkládání poznámek) dokumentu na straně příjemce, formuláře obsahující interaktivní prvky, skriptovat chování dokumentu, zasílání informací skrz internet, zahrnutí definic použitých fontů do dokumentu, přiložení metadat (autor, licence, název dokumentu apod.) a mnoho dalšího.

Soubory dvi a ps nejsou žádnými kuriozitami a k jejich prohlížení stačí standardní prohlížeč dokumentů (např. v GNOME program Evince).

Na LinuxEXPRESu vychází množství článků ze světa TeXu. Hledejte pod tagem TeX.

Cenové srovnání

aplikace

zaměření

Extcalc

vědecká kalkulačka

Sage Math

komplexní matematický balík

Maxima

algebra

GNU Octave

numerické výpočty

R

vše okolo statistiky

QtiPlot

matematický tabulkový procesor

gnuplot

tvůrce grafů

Paraview

vizualizační nástroj (3D, animace)

OpenFOAM

matematické modelování

TeX

vědecká typografie

Představené produkty spadají do různých kategorií. Je zřejmé, že nabídka open-source produktů zasahuje do mnoha oblastí matematiky. Tento a předchozí článek navrhly možné základní vybavení matematikova počítače.

open source

nesvobodná alternativa

s open source ušetříte na licenci

ExtCalc

např. Microsoft Mathematics

0 Kč

Sage Math

Mathematica

cca 50 000 Kč

Maxima

Maple

cca 45 000 Kč

GNU Octave

Matlab

cca 40 000 Kč

R

neexistuje

--

QtiPlot

Origin

cca 40 000 Kč

gnuplot

obvykle ve větším celku (např. v Mathematice)

? (samostatně neprodejné)

Paraview + OpenFOAM

platforma společnosti Ansys (Fluent...)

řádově statisíce

TeX

neexistuje

--

Je zřejmé, že s open source jsou spojeny značné úspory.

Diskuze (2) Nahoru