Python. 20. května 2014

Podobné dokumenty
Abaqus a jeho základní nastavení

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Stručný návod k programu Octave

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

2 Datové typy v jazyce C

MAXScript výukový kurz

PSK3-9. Základy skriptování. Hlavička

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

AUTOMATICKÉ ŘÍZENÍ S INTERNETOVOU KOMUNIKACÍ V PHP Automatic Control with Internet Communication in PHP

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Nápověda k aplikaci EA Script Engine

Princip řešení soustavy rovnic

Visual Basic for Application

Informační a komunikační technologie pro učební obory ME4 a SE4. Makra

ALGORITMIZACE A PROGRAMOVÁNÍ

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Návod k práci s programem MMPI-2

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

8 Třídy, objekty, metody, předávání argumentů metod

Instalace a první spuštění Programu Job Abacus Pro

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Ukázka knihy z internetového knihkupectví

MS OFFICE MS WORD. Editor rovnic - instalace

Velmi stručný návod jak dostat data z Terminálu Bloomberg do R

VISUAL BASIC. Práce se soubory

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programy pro ˇreˇsen ı ulohy line arn ıho programov an ı 18. dubna 2011

Operace s vektory a maticemi + Funkce

8 Makra Příklad 4 Excel 2007

PHP tutoriál (základy PHP snadno a rychle)

Importy a exporty KLIENTSKÝ DOPLNĚK PRO PODPORU IMPORTŮ VERZE 3.2.0

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

20. května Abstrakt V následujícím dokumentu je popsán způsob jakým analyzovat problém. výstřelu zasáhnout bod na zemi v definované vzdálenosti.

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

BPC2E_C08 Parametrické 3D grafy v Matlabu

Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou...

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Histogram. 11. února Zadání

1. Jde exportovat Power pointové sekvence do *.avi?

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.

Výukový materiál zpracován v rámci projektu EU peníze školám

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

PROGRAM MAXIMA. KORDEK, David, (CZ) PROGRAM MAXIMA

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

StatSoft Jak vyzrát na datum

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ v Praze Ú12110 Ústav přístrojové a řídící techniky

Reliance 3 design OBSAH

3 KTE / ZPE Informační technologie

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

POČÍTAČE A PROGRAMOVÁNÍ

DUM 06 téma: Tvorba makra pomocí VBA

Tabulkový procesor. Základní rysy

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Programování v jazyku LOGO - úvod

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Základy programování: Algoritmizace v systému MATLAB

Používání u a Internetu

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Instalace a nastavení PDFCreatoru

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Uživatelská příručka

Základní popis Toolboxu MPSV nástroje

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Redakční systém Joomla. Prokop Zelený

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Automatické testování softwaru. Testujte svůj kód! Předpoklady: Příklad: sum_digits() Možnost 1: Zkusíme funkci použít v konzoli Pythonu.

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

Skripty - úvod. Linux - skripty 2

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Angličtina program k procvičování slovní zásoby

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Tiskový manažer - Printman

PRACUJEME S TSRM. Modul Samoobsluha

Vytvoření uživatelské šablony

Základy XML struktura dokumentu (včetně testových otázek)

6. Statistica (pokračování) Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová

Přechod z AutoCADu na CADKON+

Úvod do programovacího jazyka Python

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

ANOTACE vytvořených/inovovaných materiálů

Registrátor teploty a vlhkosti vzduchu a ovlhčení listů

Transkript:

Python Tomáš Kroupa 20. května 2014 Abstrakt Python je, podobně jako Matlab, interpretační jazyk, proto se nehodí na věci jako super-rychlé řešení obrovských soustav lineárních rovnic. Na podobné super-rychlé výpočty se hodí spíše programy napsané v programovacích jazycích jako Fortran nebo C. Ovšem díky obrovskému množství doplňků a celkem jednoduché syntaxi a volné šiřitelnosti, je to velice vhodný jazyk pro psaní čehokoliv obslužného a pomocného. Jedna drobnost stojí za zmínku už v abstraktu. Python je napsaný tak, že pole atd. indexuje od 0 a pokud chcete poslední prvek v poli stačí zadat index -1 (předposlední -2 atd). Pro řadu matematických problémů je toto skoro až překvapivě šikovná věc! Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Obsah 1 Instalace, šikovná rozšíření a rozběhnutí s Abaqusem 2 2 Struktura scriptu 4 2.1 Obecná struktura........................... 4 2.2 Jednoduše jako skript........................ 4 2.3 Jednoduše s funkcemi........................ 4 2.4 Komplikovaně a vychytrale jako program............. 4 3 Abaqusí rozšíření a databáze... 7 Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Důležité informace 1: Poznámka o Pythonu na začátek. Jakmile nainstalujete Python, lze využívat příkazový řádek (python command line), což je obdoba command window v Matlabu. Pokud něco zkoušíte a nějak to nefunguje, ořežte problém na dřeň a vyzkoušejte si to v příkazovém řádku. V 90% případů to pomůže a! a Zejména autorovi tohoto textu a to tím, že ho nebudete navštěvovat 5 denně kvůli řešitelným drobnostem;-)! 1 Instalace, šikovná rozšíření a rozběhnutí s Abaqusem Zde si řekneme několik obecných informací o instalaci Pythonu a několik obecných poznámek o používání tohoto programovacího jazyka se softwary jako Abaqus a MSC.Marc. Vše ukážeme zejména na příkladu s verzí Abaqus 6.11. S verzí Abaqus 6.11 dobře spolupracuje Python 2.7. Stáhnout instalační balíky lze z http://python.org/. Dobře spolupracuje znamená, že to funguje alespoň na autorově PC a že je na něm možné používat v rámci skriptů pro Abaqus i další rozšíření Pythonu jako například Numpy - Maticové a vektorové výpočty (http://numpy.scipy.org/). Scipy - Další vědecké výpočty (http://www.scipy.org/). Mathplotlib - Vykreslování grafů v Matlab stylu (http://matplotlib. sourceforge.net/). Bohužel tohle rozšíření asi nebude fungovat přímo ve skriptu, který je určený pro Abaqus. Některé knihovny se nemají rády a nechtějí spolupracovat. Postup v důležitých informacích 2 ukazuje, jak zprovoznit rozšíření Pythonu pro skriptování v Abaqusu. Podobně lze postupovat i pro MSC.Marc. 3

Důležité informace 2: Instalace pythonu a jeho rozšíření a rozběhnutí všeho v rámci Abaqusu pro Windows 7. 1. Nejprve nainstalujte Python, ideálně do defaultního adresáře. c:\python27\ 2. Poté nainstalujte rozšíření Numpy a SciPy http://www.lfd.uci.edu/~gohlke/pythonlibs/ Mathplotlib http://matplotlib.sourceforge.net/) Další vychytávky instalujte dle libosti. 3. Dále vše z adresáře rozšíření, pravděpodobně: c:\python27\lib\site-packages\ nakopírujte do adresáře rozšíření Abaqusího Pythonu, ve verzi 6.11-1 je to c:\simulia\abaqus\6.11-1\python\lib\site-packages\ nebo ve verzi 6.12-3 c:\simulia\abaqus\6.12-3\tools\smapy\lib\site-packages\ (NumPy by měla verze tohoto pythonu pro Abaqus obsahovat defaultne - zdroj L.Bek :-)) Adresář site-packages nemusí být v instalačním adresáři Abaqusu, proto je třeba ho během kopírování vytvořit. 4. Hotovo, jak je vidět, pokud se ví jak na to, není to žádná věda :-). 4

2 Struktura scriptu V této kapitole bude ukázáno, jak vypadají skripty v Pythonu. Opět se speciálním zřetelem na Abaqus 6.11. Důležité informace 3: Nutné vědět o Pythonu. V Pythonu se nepoužívá žádný end. Struktura programu/skriptu se vytváří odsazením textu. Proto používejte šikovný editor (například PSpad). 2.1 Obecná struktura Obecně lze strukturu programu v Pythonu rozdělit na dvě části 1. Import balíků 2. Samotný program Ovšem nemusí to být přímo takto, importovat balíky lze i na jiných místech. Lze importovat i části vlastních jiných skriptů. Dále lze napsat program tak, že začíná jednou funkcí main na konci a z ní volat vše ostatní, nebo tak, že běží od začátku do konce jako skript. Je vidět, že v Pythonu se příliš nepředepisují pravidla! 2.2 Jednoduše jako skript Ukažme malou ukázku (zdrojová data 1) toho, jak může vypadat Abaqusí skript v Pythonu. Lze ho napsat jako jednoduchý skript bez funkcí a složité struktury a funguje krásně. Nejprve se naimportují jednotlivé moduly (části rozšíření). To se provede příkazy ve stylu from něco import něco, nebo import něco. V následující ukázce jsou importovány výhradně moduly z Abaqusích balíků (package). Za znakem # lze zapsat poznámky a komentáře. Můžete si všimnout databázové struktury, ve které je uložený celý model v Abaqusu, k tomuto se vrátíme v kapitole 3. 2.3 Jednoduše s funkcemi Jednoduchý skript je fajn, ale pokud chce člověk vytvořit trochu složitější model a v něm například na více místech používat jednu část skriptu, hned se hodí si tuto část napsat jako funkci. Přidejme opět malou ukázku (zdrojová data 2). Zejména si všimněte, že volání funkce vytiskni cas() je až za místem kde je funkce definovaná. Funkce se označuje klíčovým slovem def, pak následuje název funkce a v závorce mohou být vstupní parametry a na závěr je nutná dvojtečka. Následující příkazy ve funkci jsou odsazeny a na závšr funkce lze pomocí příkazu return prvni vystupni velicina,druha vystupni velicina definovat výstupní veličiny/parametry/datové struktury. 2.4 Komplikovaně a vychytrale jako program Spustit program vytiskni cas.py ukázaný ve zdrojových datech 3, který je uložený v adresáři, ze kterého ho chceme spustit, lze spustit například příkazem uvedeným ve zdrojových datech 4. 5

Zdrojová data 1: Ukázka skriptu v Pythonu. Nejprve import balíků a pak vytvoření jedné desky. #Import b a l i k u from part import from m a t e r i a l import from s e c t i o n import from assembly import from s t e p import from i n t e r a c t i o n import from load import from mesh import from job import from s k e t c h import from v i s u a l i z a t i o n import from connectorbehavior import #Samotny s k r i p t, v y t v o r e n i s k o r e p i n y j e n CAD model jedne desky mdb. models [ Model 1 ]. ConstrainedSketch ( name= p r o f i l e, s h e e t S i z e=20. 0) mdb. models [ Model 1 ]. s k e t c h e s [ p r o f i l e ]. r e c t a n g l e ( p o i nt1=( 5. 0, 1. 0), point2=(5. 0, 1. 0) ) mdb. models [ Model 1 ]. Part ( d i m e n s i o n a l i t y=two D PLANAR, name= Part 1, type=deformable BODY) mdb. models [ Model 1 ]. p a r t s [ Part 1 ]. B a s e S h e l l ( s k e t c h=mdb. models [ Model 1 ]. s k e t c h e s [ p r o f i l e ] ) Zdrojová data 2: Skript na vytisknutí datumu a času. from datetime import datetime def v y t i s k n i cas ( ) : print datetime. now ( ) v y t i s k n i cas ( ) Zdrojová data 3: Ukázka programové struktury v Pythonu. Nejprve import balíků, pak funkce a na závěr začátek programu. Celý program jen vytiskne datum a čas na dvou místech skriptu. from datetime import datetime def v y t i s k n i cas ( ) : print datetime. now ( ) i f name == main : print Ted vytiskneme cas poprve! v y t i s k n i cas ( ) print A na jinem miste programu budeme c h t i t v y t i s k n o u t cas znova, tak pouzijeme s t e j n ou f u n k c i. v y t i s k n i cas ( ) 6

Zdrojová data 4: Spuštění pythonu z příkazové řádky windows. Toto můžete také použít jako zvýrazňovač v PSPadu, abyste mohli spouštět skripty pomocí Pythonu rovnou z PSPadu. čistého C: \Python27\python. exe v y t i s k n i cas. py Další informace ohledně skrtiptování v Pythonu lze získat zde http://www. kme.zcu.cz/kmet/tutorials/01_25_marc_python.php a v [1]. 7

3 Abaqusí rozšíření a databáze...... aneb tohle musíte vědět a naučit se používat. V Abaqusu je celý model databáze. Když začnete vytvářet model, doporučuji pracovat následujícícm stylem 1. Nat ukám část modelu myší v Abaqus/CAE. 2. Kouknu se do souboru název modelu.rpy, jaké příkazy jsem vlastně nat ukal. 3. Zkopíruji právě vytištěné příkazy do svého skriptu. 4. Upravím skript podle svého. Jak se pracuje s databází je poměrně intuitivní, komplikovanější je zjistit, častěji spíše vytušit, co se přesně ukrývá v jednotlivých datových strukturách, aby člověk nemusel dlouze prohledávat manuál (Abaqus scripting manual ). Ve zdrojových datech 5 uved me jednoduchou ukázku, a to příkaz který změní jméno modelu. Kde lze tento příkaz provést myší je ukázáno na obrázku 1. Zdrojová data 5: Změna jména modelu pomocí příkazy v Pythonu. #Vytvoreni databaze mdb= Mdb( ) #Zmena jmena modelu mdb. models. changekey ( fromname= Model 1, toname= t e n s i l e ) Obrázek 1: Kde změní příkaz jméno modelu. 8

Další informace, která Vám usnadní život je, zadávání například matic vytvořených pomocí NumPy do Abaqusu pomocí Pythonu. Toto je to občas svízelné, zejména v případě zadávání velké tabulky. Protože vývojáři chtějí zachovat jako nutné moduly k používaní v rámci Abaqusu jen ty svoje a to tak, aby jich bylo co nejméně, všechno číselné se ukládá do tzv. tuple. Tuple je obecný datový typ, ve kterém může být uloženo cokoliv, asi jako struktura v Matlabu. Základní rozdíl je v tom, že tuple nelze indexovat. Čili v běžné praxi je dobré pracovat s vektory a maticemi reprezentopvanými polemi v Numpy a před zadáním do Abaqusu z těchto polí vytvořit tuple a to pak uložit do databáze abaqusího modelu. Tabulka 1: Zadání obecné datové struktury (Python vs. Matlab). Matlab (struktura) Python (tuple) data={ Dromedar [10 20]} data=( Dromedar [10,20]) Ukázku jak vložit čísla do datového typu tuple, které obsahuje dva sloupce můžete vidět ve zdrojovych datech 6. Pro snažší zorientování zde uved me klíčové řádky. Klíčová je čárka v části ((syield,eqp), ), která je zde podtržená. Bez ní vkládání v cyklu nebude fungovat, protože tato čárka říká, že se jedná o tuple! Symbol plus v tomto případě není sčítání, ale provede přidání prvku do tuple. Další zmínku zaslouží datový typ float (tedy real). Vždy, když chcete aby proměnná byla číslo s plovoucí desetinnou čárkou, vždy ve zdrojovém kódu této proměnné přiřazujte číslo ve tvaru 1.0 nebo 1e0, nikdy ne jako 1. Desetinná tečka nebo symbol e jsou ukazatele, že se jedná o datový typ float. Zdrojová data 6: Vytvoření tabulky pro křivku plasticity a zadání do modelu. V datové struktuře d jsou jednotlivé parametry křivky zpevnění. Například počáteční mez kluzu je d.sy0. no eqp = 1000 eqp max = 10. 0 for i in range ( 0, no eqp+1) : eqp = ( f l o a t ( i ) / f l o a t ( no eqp ) ) eqp max AA1 = ( d. FZT0 eqp ) /( d. FES0+d. FES1 ( 1+(tanh ( d.fm ( eqp d. FEP0) ) ) ) ) ; AA1pow = pow(aa1, d.fn) AA1pow2 = pow ( ( 1.0+AA1pow), ( 1. 0/d.FN) ) s y i e l d = d. SY0 + ( d. FZT0 eqp ) /AA1pow2 ; i f i==0 : else : t a b l e p l a s t i c i t y = ( ( s y i e l d, eqp ), ) t a b l e p l a s t i c i t y = t a b l e p l a s t i c i t y +(( s y i e l d, eqp ), ) mdb. models [ d. name ]. m a t e r i a l s [ m a t e r i a l no umat ]. P l a s t i c ( t a b l e=t a b l e p l a s t i c i t y ) Vše ostatní musí přejít do krve během práce a seznamování se s Pythonem. 9

Snad jen dodejme, že v datovém poli Numpy 1 se vše čísluje od nuly a ne od jedničky jako v Matlabu (pokud si nenainstalujete nějaký modul, který umí indexovat od jedničky alà Matlab). Dále je šikovné, že záporné indexy indexují od zadu v poli (viz. Zdrojová data 7). from numpy import Zdrojová data 7: Indexování Numpy polí. #Toto j e zadani Numpy array, Matlabovsky e k v i v a l e n t j e a=[ 1 2 3 4 ] a = array ( [ 1, 2, 3, 4 ] ) #Toto v y t i s k n e j e d n i c k u print a [ 0 ] #Toto v y t i s k n e ctyrku print a [ 1 ] Dále se jistě bude hodit vědět, jak tisknout textové soubory. Ukázku tisku textových souborů lze opět najít výše. Čtení textových souborů funguje podobným způsobem a detaily lze snadno vyčíst na stránkách dokumentace Pythonu [2]. Zdrojová data 8: Tisk textových souborů. Pro čtení se použije parametr r. Pro další detaily ohledně čtení a tisknutí souborů odkažme na [2] #Otevreni souboru k z a p i s u f = open ( d. name+ data. abqp, w ) #Zapsani dvou radek s e znakem \n, k t e r y ukoncuje radku f. w r i t e ( no o f s t r i p s \n ) f. w r i t e ( s t r ( l e n ( d. t h e t a ) )+ \n ) Reference [1] Gautam, P.: Python Scripts for Abaqus, Learn by Example, http://www. abaquspython.com/ [2] http://www.python.org/ 1 Numpy array 10

Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky v rámci projektu č. CZ.1.07/2.2.00/28.0206 Inovace výuky podpořená praxí. Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.