vizualizace prask´an´ı a rozlamov´an´ı objekt˚umartin kafka vedouc´ı diplomov´e pr´ace...

76
ˇ CESK ´ E VYSOK ´ EU ˇ CEN ´ I TECHNICK ´ E FAKULTA ELEKTROTECHNICK ´ A Vizualizace prask´ an´ ıa rozlamov´ an´ ı objekt˚ u Martin Kafka Vedouc´ ı diplomov´ e pr´ ace Ing. Jaroslav Sloup Katedra poˇ ıtaˇ u Rok obhajoby 2004

Upload: others

Post on 13-Jan-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

CESKE VYSOKE UCENI TECHNICKE

FAKULTA ELEKTROTECHNICKA

Vizualizace praskanı a

rozlamovanı objektu

Martin Kafka

Vedoucı diplomove prace Ing. Jaroslav Sloup

Katedra pocıtacu

Rok obhajoby 2004

Page 2: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Zadanı diplomove prace

Skolnı rok 2003/2004

Diplomant: Martin Kafka

Obor: Vypocetnı technika

Nazev tematu: Vizualizace praskanı a rozlamovanı objektu

Visual simulation of breaking and cracking objects

Zasady pro zpracovanı:

Vyznamnou oblast pocıtacove grafiky tvorı metody realisticke syntezy obrazu. Do teto ka-

tegorie patrı i techniky pro vizualizaci a simulaci deformacı objektu vznikajıcıch praska-

nım a rozlamovanım. Proved’te resersi literatury pojednavajı o teto problematice z hlediska

pocıtacove grafiky a mechaniky. Pozornost venujte zejmena metode popsane v disertacnı praci

Jamese F. O-Briena (doda vedoucı diplomove prace) a na jejım zaklade vytvorte aplikaci,

ktera umoznı simulovat praskanı a rozlamovanı objektu zpusobene deformacemi materialu.

Funkcnost aplikace overte alespon na trech ruznych modelech objektu.

Vedoucı diplomove prace: Ing. Jaroslav Sloup

Oponent: Ing. Roman Berka, Ph.D.

i

Page 3: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Cestne prohlasenı

Prohlasuji, ze jsem svou diplomovou praci vypracoval samostatne a pouzil jsem pouze pod-

klady uvedene v prilozenem seznamu.

Nemam zavazny duvod proti uzitı tohoto skolnıho dıla ve smyslu §60 Zakona c.121/2000

Sb., o pravu autorskem, o pravech souvisejıcıch s pravem autorskym a o zmene nekterych

zakonu (autorsky zakon).

V Praze dne 26. kvetna 2004

..................................

podpis

ii

Page 4: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Abstrakt

Cılem teto prace je vytvorit prehled ruznych metod pouzıvanych pri simulaci a vizualizaci

praskanı a rozlamovanı objektu. Prozkoumame tri diametralne odlisne metody a zjistıme je-

jich vyhody a nevyhody. Prvnı metoda se k problemu snazı pristupovat ciste fyzikalne a z toho

plyne vetsı slozitost teto metody. Druha metoda pouzıva prıstup zjednoduseny. Reprezentuje

simulovany objekt jako mnozinu tezist’ spojenych omezujıcımi podmınkami. Nevyhoda je, ze

nepocıta deformace a proto se hodı jen pro urcitou cast materialu. Tretı metoda je uzce specia-

lizovana, a to na praskanı povrchu (naprıklad vysychanı bahna). Tato specializace umoznuje

velkou rychlost vypoctu. Nemalou castı teto prace je implementace prvnı metody simulace.

Cast textu je tedy venovana popisu teto implementace. Take budou zmıneny problemy, ktere

pri implementaci nastaly.

Abstract

The aim of this thesis is to make overview of various methods for visual simulation of

breaking and cracking of object. There will be examined and described three different methods

and their advantages and disadvantages. First method is based on physical principes. This

approach makes this method more general and more complex. Second method represents

object to be broken as set of point masses connected by distance-preserving linear constraint.

In this method, there are not computed deformations, thus, this limits suitable materials to

brittle ones. Last method is specialized for cracking of surface of objects, such as drying of

mud. This allow great speed of simulation. Indispensable part of this work is implementation

of first method of simulation. Whole application is described in part of text. There will be

discussed some problems of implementation.

Page 5: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Obsah

Zadanı diplomove prace i

Cestne prohlasenı ii

Abstrakt iii

1 Uvod 1

2 Fyzikalnı principy 2

2.1 Teleso a material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2 Geometricke rovnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Staticke rovnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.1 Podmınky rovnovahy na elementarnım ctyrstenu . . . . . . . . . . . . 7

2.3.2 Podmınky rovnovahy na elementarnım kvadru . . . . . . . . . . . . . 8

2.4 Vztah mezi napetım a deformacı . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.1 Matematicky popis fyzikalnıch vlastnostı latky . . . . . . . . . . . . . 13

2.4.2 Obecny Hookuv zakon . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Porusenı souvislosti materialu . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.1 Separacnı tenzor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Metody simulace 22

3.1 Sıt’ ctyrstenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.1 Souradne systemy modelu . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.2 Tenzory deformace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.3 Tenzory napetı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1.4 Diskretizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.5 Koliznı sıly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1.6 Dekompozice sil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1.7 Pretvorenı sıte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

iv

Page 6: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Obsah Obsah

3.1.8 Rychlost sırenı praskliny . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2 Sıt’ spojenych elementu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Vypocet prasklin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.2 Vypocet rychlostı a pozic . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3 Praskanı povrchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.1 Inicializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.3.2 Vypocetnı smycka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Popis implementace 45

4.1 Hlavnı cast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.1.1 Inicializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.1.2 Hlavnı smycka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.1.3 Konfigurace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.1.4 Materialovy soubor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.1.5 Ostatnı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2 Obsluha modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2.1 Nacıtanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2.2 Binarnı strom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2.3 Koliznı sıly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.3 Vypocetnı jadro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.3.1 Vytvorenı praskliny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.4 Matematicka knihovna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5 Zhodnocenı a zaver 56

5.1 Metody simulace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.1.1 Sıt’ ctyrstenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1.2 Sıt’ spojenych elementu . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.1.3 Praskanı povrchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.2 Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A Prıklad vysledku 63

B CD-ROM 66

B.1 Dokumentace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

B.2 Zdrojove kody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

B.3 Vystupy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

B.4 Obrazky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

v

Page 7: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Obsah Obsah

B.5 Licence a autorska prava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Literatura 68

vi

Page 8: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Seznam obrazku

2.1 Element telesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Deformace elementarnıho kvadru . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3 Znazornenı vztahu vnitrnıch a vnejsıch sil . . . . . . . . . . . . . . . . . . . . 5

2.4 Rozklad napetı na tecnou a normalovou slozku . . . . . . . . . . . . . . . . . 6

2.5 Napetı na ctyrstenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.6 Napetı na kvadru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.7 Momenty na kvadru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.8 Zavislost σ na ε . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.9 Linearnı a nelinearnı material . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.10 Element zatızeneho prutu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.11 Tri mozne kombinace sil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.12 Tlakova a tahova slozka sıly . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1 Materialove souradnice objektu . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2 Znazornenı deformacnıch tenzoru . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3 Vlastnosti uzlu ctyrstenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4 Delenı elementu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.5 Delenı sousednıch elementu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.6 Rezidualnı propagace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.7 Spojenı elementu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.8 Vrstvy modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.9 Typy pruzin ve vrstvach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.10 Deformace elementu tahem ci tlakem . . . . . . . . . . . . . . . . . . . . . . . 42

3.11 Deformace elementu smykem . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.12 Topologie sıte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.1 Prekryvanı obalek uzlu stromu . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2 Prubeh orezavanı mnohostenu . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

vii

Page 9: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 1

Uvod

Pocıtacova grafika se v poslednı dobe rozvıjı zavratnym tempem. Umoznujı to zejmena vyspele

graficke akceleratory a vykonny hardware dnesnıch pocıtacu. Pocıtacova grafika nachazı upla-

tnenı skoro ve vsech odvetvıch prumyslu. Naprıklad vystupy programu pro stavebnı inzenyry

uz nejsou jen cısla, ale i pusobive animace, filmovı producenti uz nemusejı stavet drahe ku-

lisy, ale nechajı si film zhotovit na pocıtacıch. Na pocıtacıch uz lze velmi dobre produkovat

zobrazenı realnych i nerealnych procesu.

Vizualizacı prırodnıch jevu se zabyvajı metody realisticke syntezy obrazu. Mezi tyto tech-

niky patrı vizualizace a simulace deformacı objektu vznikajıcıch praskanım a rozlamovanım.

Moznostı, jak realizovat deformace a praskliny objektu, je nekolik. Lisı se od sebe kvalitou

vystupu a s tım souvisejıcı slozitostı vypoctu.

Jednak je zde moznost fyzikalne pocıtat deformace. Tato metoda ovsem nenı vhodna pro

resenı na pocıtacıch uz kvuli tomu, ze tato metoda hojne pouzıva takove pojmy jako integrace

nebo diferencial, tedy takove pojmy, ktere pocıtacum vubec nesedı. Lepsı vlastnosti majı

metody zalozene na metodach konecnych prvku (FEM ). Tyto metody jsou hojne vyuzıvany.

Umoznujı totiz spocıtat deformace relativne presne a pritom pomerne rychle. Dalsı metodou

je pouzitı pruzin simulujıcıch vazby mezi jednotlivymi elementy. Tyto metody ovsem nejsou

zdaleka tak kvalitnı jako predchozı metody. Kazda metoda se tedy hodı pro jine ucely.

V nasledujıcım textu se nejdrıve budeme snazit proniknou do vypoctu deformacı a vzniku

prasklin. Pak si popıseme tri odlisne metody pro simulaci praskanı. Jednak to bude metoda

O’Briena, ktera se snazı simulovat praskliny podle fyzikalnıch principu, druha metoda nenı

zalozena na fyzikalnıch vztazıch, ale simuluje trojrozmerne praskliny. Poslednı metoda je

specializovana na simulaci povrachovych prasklin, jako je treba vysychanı bahna. Soucastı

teto prace je implementace O’Brienovy metody simulace. Jejı popis najdeme v kapitole 4.

1

Page 10: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2

Fyzikalnı principy

Nejprve bude vhodne si vysvetlit, jak vubec deformace a nasledne i praskliny vznikajı. Po-

pis techto zalezitostı totiz zkoumane prace neobsahujı. Mozna z duvodu, ze jde o pomerne

znamou latku a s tımto tematem by mel byt (alespon ramcove) seznamen kazdy z predmetu

fyziky a podobnych. Presto se tomuto tematu budeme venovat, protoze potrebna znalost

presahuje ramec zakladnıch znalostı a tyto znalosti budeme potrebovat k pochopenı funkce

ve zkoumanych pracıch.

2.1 Teleso a material

Vypoctem deformacı se zabyva cast fyziky, ktera se nazyva mechanika teles. Mechanika teles

se zabyva studiem pusobenı vnejsı vlivu na telesa. Vnejsı vlivy mohou byt naprıklad sıly,

teplota, chemicke reakce, nebo elektricke sıly. Prıkladem sıly muze byt naprıklad gravitacnı

sıla, elektromagneticke sıly, nebo mechanicke sıly.

Dulezitou vlastnostı telesa je jeho material. Material je vlastne soubor mikroskopickych

castecek spojenych vnitrnımi silami. Temto casteckam se rıka atomy. Pro nase ucely je vsak

dobre predpokladat pohled na material z makroskopickeho hlediska. Tedy, ze material je

spojite medium, ve kterem se vliv jednotlivych atomu neprojevı. Podle prostorovych vlastnostı

mohou byt materialy homogennı, heterogennı a izotropnı. Homogennı material ma ve vsech

bodech prostoru stejne vlastnosti. Heterogennı material je pravym opakem homogennıho.

Material je obvykle slozen z nekolika nesourodych substancı. Prıkladem je treba beton, ktery

je slozen zejmena z cementu a sterku a tyto dve slozky vytvarejı nespojitou hmotu. Izotropnı

material je takovy material, ktery ma vlastnosti v bodu ve vsech smerech stejne.

2

Page 11: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.2. Geometricke rovnice

dw

h

Teleso

Obrazek 2.1: Element telesa

2.2 Geometricke rovnice

Vezmeme nejake teleso, ktere je vytvoreno z nejakeho konkretnıho materialu. Tento objekt po-

stupne zatezujeme nejakou vnejsı silou. Na objektu pote muzeme pozorovat, jak se deformuje.

Vezmeme elementarnı kvadr tohoto telesa, viz. obr 2.1. Pro deformaci telesa jsou charakteris-

ticke dva zakladnı deformacnı modely. Pri prvnım deformacnım modelu predpokladame, ze se

menı pouze delkove parametry kvadru. Uhly mezi stenami kvadru zustavajı zachovany. Tento

model se uplatnuje zejmena pri deformaci pod tlakem, ci tahem. Druhy deformacnı model

naopak predpoklada, ze se menı vzajemne uhly mezi stenami, ale delky hran zustavajı stejne.

Tato situace nastava pri namahanı smykem.

Pro vypocet je vhodne zavest relativnı zmeny rozmeru a uhlu. Deformace tahem ci tlakem

se tyka pouze delek hran. Proto je vyhodne zavest relativnı zmeny delek εx, εy a εz. Na

obrazku 2.2(a) je rez elementarnım kvadrem v rovine xy a vycteme z nej, jak tyto promenne

definujeme. Obrazek vyjadruje posun a deformaci elementarnıho kvadru o velikostech ∆x a

∆y. Pritom predpokladame, ze se kvadr posunuje a deformuje pouze v ose x. Vznikly posun

v bodu vyjadruje funkce u(x, y, z). Relativnı zmenu delky hrany ∆x vyjadrıme s ohledem na

infinitesimalnı rozmery kvadru jako

εx = lim∆x→0

∆u∆x

= lim∆x→0

u(x+ ∆x, y, z)− u(x, y, z)∆x

=∂u

∂x. (2.1)

Obdobne vzorce popisujı deformace ve smerech y a z. Zıskame je analogickym postupem,

cyklickou zamenou indexu (x→ y → z → x a u→ v → w → u, apod.)

εy =∂v

∂yεz =

∂w

∂z. (2.2)

Na obrazku 2.2(b) je vyznacena uhlova deformace γxy. Ta se vypocıta jako soucet deformacı

3

Page 12: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.2. Geometricke rovnice

y

x

∆x

∆y

u(x, y, z) u(x+ ∆x, y, z)

(a) Deformace v tahu

y

x

∆x

∆y

u(x, y + ∆y, z)

u(x, y, z) γ2

v(x

+∆x,y,z)

γ1

v(x,y,z)

(b) Deformace ve smyku

Obrazek 2.2: Deformace elementarnıho kvadru

γ1 a γ2. Pak muzeme videt, ze

γ1 = lim∆x→0

∆v∆x

= lim∆x→0

v(x+ ∆x, y, z)− v(x, y, z)∆x

=∂v

∂x

γ2 = lim∆y→0

∆u∆y

= lim∆y→0

u(x, y + ∆y, z)− u(x, y, z)∆y

=∂u

∂y

γxy = γ1 + γ2 =∂v

∂y+∂u

∂x= γyx . (2.3)

Uhlove deformace ve dvou zbyvajıcıch rovinach zıskame opet cyklickou zamenou indexu.

Vychazejı tedy

γyz =∂w

∂y+∂v

∂z= γzy, γzx =

∂u

∂z+∂w

∂x= γxz . (2.4)

Tyto rovnice se nazyvajı geometricke rovnice. Slozky deformace lze usporadat do ctvercove

matice

ε =

εx

12γyx

12γzx

12γxy εy

12γzy

12γxz

12γyz εz

. (2.5)

Lze ukazat, ze pri ortogonalnı transformaci souradnic se matice deformace ε transformuje

podle vzorcu

ε′ = T · ε ·T′ a ε = T′ · ε′ ·T , (2.6)

tedy jako symetricky tenzor deformace druheho radu.

Ze trı posunu u, v a w popsanych spojitymi a spojite diferencovatelnymi funkcemi lze jed-

noznacne vypocıtat slozky deformace. Opacne formulovana uloha, tedy ze sesti nezavislych

4

Page 13: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

∆A

~n

∆~F

−∆~F

vnitrnı cast

vnejsı cast

Obrazek 2.3: Znazornenı vztahu vnitrnıch a vnejsıch sil

slozek tenzoru deformace vypocıtat integracı tri posuny, nemusı mıt vubec resenı. K jedno-

znacnemu resenı je treba, aby byly splneny doplnujıcı podmınky vyjadrene derivacemi slozek

deformace, tzv. St. Venantovy rovnice kompatibility. Sest rovnic kompatibility lze odvodit

vyloucenım posunu z geometrickych rovnic.

2.3 Staticke rovnice

Nynı budeme hledat obecne podmınky, ktere je treba splnit, aby libovolna castice telesa

byla v rovnovaze. K sestavenı podmınek rovnovahy v okolı vnitrnıho bodu opet poslouzı

kvadr. Zıskame soustavu trı diferencialnıch rovnic, ktere se nazyvajı Cauchyho staticke rov-

nice. Podmınky rovnovahy v malem okolı hranicnıho bodu tvorı soustavu linearnıch alge-

braickych rovnic a pri jejich odvozenı vyjdeme z elementarnıho ctyrstenu.

V podmınkach rovnovahy se uplatnı dva druhy sil. Vnejsı sıly majı charakter zatızenı.

Pusobı bud’ na hmotu telesa, jako tzv. objemove sıly nebo jsou plosne rozdelene po povr-

chu telesa a nazyvajı se plosne. Prıkladem objemovych sil jsou v prve rade sıly gravitacnı,

setrvacne, elektricke, nebo magneticke. Vztahujeme je k jednotce objemu telesa, a proto majı

rozmer N/m3. Podobne plosne sıly majı rozmer N/m2 a liniove sıly N/m. Osamele pusobıcı

sıla se v prırode prakticky nevyskytuje. Obvykle je zavadıme jako limitnı prıpad limitnı prıpad

vyslednice sil, ktere jsou soustredeny na velmi male plose. Vnitrnı sıly pusobı plosne mezi

jednotlivymi casticemi a branı jejich vzajemnemu oddelenı.

Abychom mohli ukazat uzkou souvislost mezi vnejsımi a vnitrnımi silami, rozdelıme teleso

myslenym rezem na dve casti. Vnejsı cast pusobı na vnitrnı silami, jejichz vyslednice na

plosce ∆A oznacıme ∆~F. Podle Newtonova zakona akce a reakce pusobı vnitrnı cast na sve

okolı stejne velkou silou avsak opacneho smeru, tedy −∆~F. Cela situace je na obrazku 2.3.

V obou prıpadech se jedna o vnitrnı sıly, ktere zajist’ujı souvislost telesa podel mysleneho rezu.

Predstavme si dale, ze jsme vnitrnı cast vyjmuli. V takovem prıpade musıme nahradit silovy

5

Page 14: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

∆A

τ ~tσ ~n

Obrazek 2.4: Rozklad napetı na tecnou a normalovou slozku

ucinek obklopujıcı prostredı zatızenım ∆~F/∆A, ktere muzeme povazovat za vnejsı povrchovou

sılu na hranici vyjmute casti.

Dıky tomu, ze si predstavujeme material telesa jako kontinuum, muzeme rozmery plosky

zmensovat do nekonecna. Tak dojdeme k definici vektoru napetı v bode, ktery je definovan

vzorcem

~σ = lim∆A→0

∆~F∆A

[Nm2

]. (2.7)

Vektorem ~σ a normalou ~n k plosce ∆A je urcena rovina. Zaved’me tecny vektor ~t ke krivce,

ktera je prusecnicı teto roviny s povrchem ∆A. Pri teto uvaze nebudeme rozlisovat povrch

mysleneho rezu od skutecneho hranicnıho povrchu telesa. Budou-li vektory ~n a ~t jednotkove,

muzeme vektor napetı vyjadrit podle obrazku 2.4 takto

~σ = σ~n + τ~t , (2.8)

kde σ je normalova a τ tecna neboli smykova slozka vektoru napetı.

Dalsı moznostı, jak vyjadrit vektor napetı, je vyjadrit slozky px, py a pz jako prumety

vektoru ~σ do smeru souradnicovych os

~σ = px~e1 + py~e2 + pz~e3 = ~p , (2.9)

kde ~e1, ~e2 a ~e3 jsou bazove vektory lokalnıho souradnicoveho systemu. Ve zvlastnım prıpade,

kdy je normala k povrchu telesa rovna jednomu bazovemu vektoru, naprıklad kdyz ~n = ~e1, pak

slozka px = σx je normalovym napetım a zbyvajıcı dve slozky py = τxy a pz = τxz predstavujı

tecna smykova napetı. Oznacenı smykovych napetı dvema indexy je dano nasledujıcı umluvou.

Prvnı index ukazuje smer vnejsı normaly, druhy znacı smer napetı. Obdobne relace muzeme

sestavit i pro zbyvajıcı dva smery.

6

Page 15: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

y

z

x

∆A

N2

N3

N1

τxy

τyx

τzy

τzx

px

~ppy

pzτxz

σx

σz

τyz

σyQ

Obrazek 2.5: Napetı na ctyrstenu

2.3.1 Podmınky rovnovahy na elementarnım ctyrstenu

Uvazujme elementarnı ctyrsten na obrazku 2.5. Na plosku urcenou body N1, N2 a N3 pusobı

vektor napetı ~σ. Jestlize ∆A bude castı hranicnı plochy telesa (v limite ∆x → ∆y → 0

prejde bod Q na hranici), vektor napetı ~σ se ztotoznı s vektorem vnejsıch povrchovych sil ~p.

Dulezitou zavislost mezi devıti slozkami a tremi slozkami vektoru hranicnıho zatızenı v bode Q

odvodıme z podmınek rovnovahy sil pusobıcıch na elementarnı ctyrsten ve smeru os souradnic.

Plosky ∆A1(Q,N2,N3), ∆A2(Q,N1,N3), ∆A3(Q,N1,N2) jsou prumety roviny ∆A do ro-

vin yz, xz a xy a proto

∆A1 = ∆A · nx ∆A2 = ∆A · ny ∆A3 = ∆A · nz , (2.10)

kde nx, ny a nz jsou slozky jednotkoveho vektoru vnejsı normaly k ∆A a jsou urceny kosiny

uhlu, ktere svıra normala s osami souradnic (nx = ~n · ~x, ny = ~n · ~y, nz = ~n · ~z). Podmınka

rovnovahy sil v ose x je

px ·∆A− σx ·∆A1 − τyx ·∆A2 − τzx ·∆A3 = 0 . (2.11)

Dosadıme-li vztahy z rovnice (2.10) do rovnice (2.11), rovnovahova podmınka nabude, po

vynasobenı cinitelem 1/∆A, tvaru

px = σxnx + τyxny + τzxnz . (2.12)

7

Page 16: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

Zbyvajıcı dve podmınky rovnovahy obdrzıme cyklickou zamenou indexu.

py = τxynx + σyny + τzynz (2.13)

pz = τxznx + τyzny + σznz . (2.14)

Pokud se blıze podıvame na rovnice (2.12), (2.13) a (2.14), uvidıme, ze je lze jednoduse

prepsat do maticoveho zapisu. Tedy, ze

~p = σ~n , (2.15)

kde

σ =

σx τyx τzx

τxy σy τzy

τxz τyz σz

. (2.16)

Pri ortogonalnı transformaci souradnic nabude rovnice (2.15) tvaru

~p′ = σ′~n′ . (2.17)

Pretransformujeme-li vektory ~p′ a ~n′, zjistıme, ze matice σ se transformuje podle vztahu

σ′ = TσTT σ = TTσ′T , (2.18)

tedy jako symetricky tenzor druheho radu.

2.3.2 Podmınky rovnovahy na elementarnım kvadru

Staticke rovnice majı v analyze napjatosti telesa podobny vyznam jako geometricke rovnice

pro analyzu stavu deformace. Jestlize geometricke rovnice byly odvozeny za predpokladu, ze

v telese se menı spojite slozky posunu, pri odvozenı statickych rovnic musıme uvazit spojite

zmeny ve slozkach napetı. Na elementarnı kvadr Q M1 M2 M3 na obrazku 2.6 pusobı zbyvajıcı

cast telesa elementarnımi silami. Podobne jako v predchozım odstavci je i zde predpoklad,

ze slozky napetı (s ohledem na infinitesimalnı rozmery kvadru) v ramci teze steny nemenı.

To vsem znamena, ze na ploskach QM2 M3, QM3 M1 a QM1 M2, ktere jsou mimochodem

zaporne, jsou slozky napetı urceny svymi hodnotami v bode Q. Budou-li souradnice tohoto

bodu (x, y, z), muzeme pro plosku QM2 M3 psat

σx = σx(x, y, z) τxy = τxy(x, y, z) τxz = τxz(x, y, z) ,

pro plosku QM3 M1 analogicky

σy = σy(x, y, z) τyz = τyz(x, y, z) τyx = τyx(x, y, z) ,

8

Page 17: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

y

z

x

σy

σ′x

σ′y

σx

σ′z

σz

τ ′zy

τ ′zx

τxz

τxy

τ ′yz

τ ′yx

τ ′xz

τ ′xy

τzxτzy

τyz

τyx

∆z

∆x

∆y

Q

M3

M2

M1

Obrazek 2.6: Napetı na kvadru

a konecne pro plosku Q M1 M2

σz = σz(x, y, z) τzx = τzx(x, y, z) τzy = τzy(x, y, z) .

Jestlize posuneme stenu QM2 M3 paralelne do bodu M1, zmenı se souradnice x o ∆x,

takze slozky napetı (na kladne plosce) budou

σ′x = σx(x+ ∆x, y, z) τ ′xy = τxy(x+ ∆x, y, z) τ ′xz = τxz(x+ ∆x, y, z) ,

a analogicky na zbyvajıcıch ploskach posunutych o ∆y, resp. ∆z

σ′y = σy(x, y + ∆y, z) τ ′yz = τyz(x, y + ∆y, z) τ ′yx = τyx(x, y + ∆y, z),

σ′z = σz(x, y, z + ∆z) τ ′zx = τzx(x, y, z + ∆z) τ ′zy = τzy(x, y, z + ∆z) .

Carkou je vyznacena zmena polohy. Vedle povrchovych sil, zıskanych jako soucin velikosti

prıslusne elementarnı plosky a prıslusne slozky napetı, pusobı na elementarnı kvadr v jeho

tezisti jeste objemova sıla, kterou pro tuto chvıli oznacıme ~F a jejız slozky ve smerech os x,

y a z oznacıme Fx, Fy a Fz.

Rovnovazna soustava vsech sil pusobıcıch na kvadr na obrazku 2.6 musı splnovat sest

skalarnıch podmınek rovnovahy. Tri podmınky silove a tri momentove. Silove podmınky rov-

novahy se nazyvajı Cauchyho rovnice. Podmınku rovnovahy sil pusobıcıch ve smeru osy x

sestavıme (po uprave) ve tvaru

(σ′x − σx) ∆y∆z + (τ ′yx − τyx) ∆x∆z + (τ ′zx − τzx) ∆x∆y + Fx ∆x∆y∆z = 0

9

Page 18: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.3. Staticke rovnice

Po vydelenı teto rovnice objemem ∆x∆y∆z prejdeme k limite (∆x→ ∆y → ∆z → 0)

lim∆x→0

σx(x+ ∆x, y, z)− σx(x, y, z)∆x

+ lim∆y→0

σy(x, y + ∆y, z)− σy(x, y, z)∆y

+

+ lim∆z→0

σz(x, y, z + ∆z)− σz(x, y, z)∆z

+ Fx = 0 .

Z teto rovnice tedy dostaneme prvnı ze silovych podmınek rovnovahy

∂σx

∂x+∂τyx

∂y+∂τzx

∂z+ Fx = 0 . (2.19)

Zbyvajıcı dve podmınky dostaneme opet cyklickou zamenou indexu

∂τxy

∂x+∂σy

∂y+∂τzy

∂z+ Fy = 0 (2.20)

∂τxz

∂x+∂τyz

∂y+∂σz

∂z+ Fz = 0 . (2.21)

Nynı snadno odvodıme vektorovy zapis uvedenych rovnic

∂~σ1

∂x+∂~σ2

∂y+∂~σ3

∂z+ ~F = 0 . (2.22)

Dalsı tri podmınky rovnovahy jsou momentove. Ty sestavıme kolem lokalnıch os procha-

zejıcıch tezistem kvadru C a rovnobeznych s osami souradnic x, y a z. Lokalnı osy jsou urceny

polohovymi vektory ~r1, ~r2 a ~r3, jak muzeme videt na obrazku 2.7. Na obrazku jsou popsany

pouze elementarnı sıly vyvozujıcı vzhledem k ~r1 nenulovy moment. V tomto prıpade vychazı

−(τ ′zy + τzy) ∆x∆y∆z2

+ (τ ′yz + τyz) ∆x∆y2

∆z = 0 .

Tuto rovnici muzeme vydelit elementarnım objemem ∆x∆y∆z. Prejdeme-li nynı k limi-

tam ∆x→ ∆y → ∆z → 0, τ ′zy → τzy, τ ′yz → τyz, dostaneme vyslednou momentovou podmın-

ku. Zbyvajıcı dve podmınky dostaneme obdobnym postupem

τyz − τzy = 0

τzx − τxz = 0

τxy − τyx = 0 .

(2.23)

Tyto vztahy dokazujı, ze matice napetı (2.16) je symetricka. Jsou matematickym vyjadrenım

vety o vzajemnosti smykovych napetı, ktera rıka, ze smykova napetı na dvou vzajemne

kolmych ploskach jsou stejne velka a obe smerujı bud’ k prusecnici, nebo od nı.

Vektorovy zapis momentovych podmınek zıskame obdobnym zpusobem, jako vektorovy

zapis silovych podmınek. Po postupnem prenasobenı rovnic (2.23) jednotkovymi vektory ~e1,

~e2, ~e3 a sectenım takto upravenych rovnic vyjde

(τyz − τzy)~e1 + (τzx − τxz)~e2 + (τxy − τyx)~e3 = ~0 .

10

Page 19: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

y

z

x

∆z

∆x

∆y

M1

M3

M2Q

C ~r2

~r3

~r1

τ ′xy

τ ′yz

τxz

τzy

Obrazek 2.7: Momenty na kvadru

Prımym vypoctem se muzeme presvedcit, ze predchozı zapis je jen upravou rovnice

~e1 × ~σ1 + ~e2 × ~σ2 + ~e3 × ~σ3 = ~0 , (2.24)

ktera je vektorovym vyjadrenım vety o vzajemnosti smykovych napetı.

Rovnici (2.24) jsme mohli odvodit prımo pomocı obrazku 2.7. Moment sıly ~R k bodu C

je roven vektorovemu soucinu ~M = ~r× ~R. Polohovy vektor spojuje bod C s pusobistem sıly~R. Jelikoz platı

~r1 =∆x2~e1 ~r2 =

∆y2~e2 ~r3 =

∆z2~e3 ,

muzeme psat

∆x2~e1 × (~σ′

1 + ~σ1) +∆y2~e2 × (~σ′

2 + ~σ2) +∆z2~e3 × (~σ′

3 + ~σ3) = ~0 . (2.25)

Po vydelenı teto rovnice elementarnım objemem ∆x∆y∆z a limitnım prechodu, kde polozıme

∆x→ ∆y → ∆z → 0, vyplyne rovnice (2.24).

2.4 Vztah mezi napetım a deformacı

Pri odvozovanı geometrickych a statickych rovnic jsme predpokladali, ze teleso je souvisle

vyplneno hmotou. Je to predpoklad ryze geometricky, ktery nedava zadnou predstavu o me-

chanicko-fyzikalnıch vlastnostech zkoumane latky. Abychom mohli formulovat vztah mezi

tenzory napetı a deformace, fyzikalnı rovnice, musıme, na zaklade experimentalne zjistenych

materialovych konstant, vytvorit vhodny matematicky model fyzikalnıch vlastnostı latky.

11

Page 20: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

odtız

enı

σ

poru

senı

DC

B

A σp

cara σ× ε

εεp

σo

σe

σl

Obrazek 2.8: Zavislost σ na ε

Z fyzikalnıho hlediska budeme predpokladat, ze latka vyplnujıcı objem telesa je homo-

gennı a izotropnı. Tedy, ze latka ma fyzikalnı a chemicke vlastnosti nezavisle na poloze

castice v telese a ze fyzikalne mechanicke vlastnosti latky jsou ve vsech smerech, vychazejıcıch

z tehoz bodu, stejne.

Zakladnı materialove konstanty zıskame tahovou zkouskou tyce pocatecnı delky l0 a

prurezu A0. Pracovnı diagram na obrazku 2.8 zobrazuje zavislost mezi konvencnım napetım

σ =F

A0, (2.26)

kde F je tahova sıla, a konvencnı deformacı (relativnım prodlouzenım)

ε =l − l0l0

=∆ll0

, (2.27)

kde l je delka vzorku po deformaci.

Body A, B a C postupne znacı mez umernosti (σl), mez pruznosti (σe) a mez pev-

nosti (σp). Mez umernosti ohranicuje obor platnosti Hookova zakona

σ = E · ε pro σ ≤ σl , (2.28)

kde E je Younguv modul pruznosti. Mez pruznosti oddeluje pruznou oblast od oblasti plas-

ticke. U nekterych materialu (napr. ocel) je tento prechod zvyraznen mezı kluzu σo, jak je

teckovane vyznaceno na obrazku 2.8. Po jejım prekrocenı nastava plasticke pretvarenı ma-

terialu, ktere se vyznacuje tım, ze pri uplnem odtızenı zustavajı v telese trvale (plasticke)

deformace εp. Vedle pojmu plasticke pretvarenı se tez ujal ekvivalentnı nazev plasticke tecenı.

V souladu s tımto pojmem pak nazyvame napetı oddelujıcı pruznou a plastickou oblast mezı

tecenı, nebo mezı plasticity.

12

Page 21: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

σ=Eε

α

ε

σ

E = tgα

(a) Linearnı material

σ

αs

ε

Es = tgαs

Et = tgαtσs

εs

σ=σ(ε) αt

(b) Nelinearnı material

Obrazek 2.9: Linearnı a nelinearnı material

Zjevnym nedostatkem konvencnı deformace ε je jejı zavislost na pocatecnı delce vzorku

l0. Tento nedostatek odstranıme tak, ze uvazıme spojitou zmenu delky tyce behem pusobenı

sıly F ′ (0 ≤ F ′ ≤ F , l0 ≤ l′ ≤ l). Vysledne delce tyce l prıslusı deformace

ε =

l∫l0

dl′

l′= lg

l

l0= lg(1 + ε) .

Rozvedeme-li poslednı clen teto rovnice v mocninou radu, dostaneme nazorne vyjadrenı

zavislosti mezi skutecnou a konvencnı deformacı ve tvaru

ε = ε− 12ε2 +

13ε3 − · · · .

Nelinearnı cleny lze zanedbat jedine v prıpade malych deformace. Pruvodnım jevem velkych

delkovych zmen je i znacne zmensenı prurezove plochy zkusebnı tyce, takze je patrny i rozdıl

mezi skutecnym napetım

σ =F

A

a napetım konvencnım. Deformacnı cara zavislosti skutecneho napetı σ na skutecne deformaci

ε je na obrazku 2.8 vyznacena carkovane.

2.4.1 Matematicky popis fyzikalnıch vlastnostı latky

Material se nazyva pruzny, jestlize odtezovanı probıha po stejne draze jako zatezovanı. Na

obrazku 2.9(a) je uveden pracovnı diagram pro latku linearne pruznou, ktera se rıdı Hoo-

kovym zakonem (2.28). Deformacnı cara nelinearne pruzne latky, popsana rovnicı

σ = σ(ε) ,

13

Page 22: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

∆Fx

∆Fz = 0

∆Fx

∆z

∆y ∆x

du(x+ ∆x)

du(x)

∆Fy = 0

Obrazek 2.10: Element zatızeneho prutu

je na obrazku 2.9(b). Nelinearnı zavislost muzeme jednoduse prevest na linearnı vztah mezi

diferencialy obou promennych ve tvaru

dσ =∂σ

∂εdε , (2.29)

kde ∂σ∂ε = Et je tzv. tecnovy modul pruznosti, jımz je charakterizovana okamzita tuhost

materialu.

V praktickych aplikacıch se muzeme setkat jeste s tzv. secnovym modulem pruznosti,

ktery je podle obrazku 2.9(b) definovan jako

Es =σs

εs. (2.30)

S fyzikalnım vztahem 2.4.1 mezi napetım a deformacı uzce souvisı dulezity pojem z me-

chaniky poddajnych teles, tedy energie deformace. Smysl tohoto pojmu vysvetlıme na

prıklade prutu tazeneho silou F . Na obrazku 2.10 je vyznacen elementarnı kvadr, ktery jsme

rezem vyjmuli ze zkusebnı tyce, jejız osa je totozna s osou x. Silovy ucinek okolı je nahrazen

elementarnımi vnitrnımi silami ∆Fx, ∆Fy a ∆Fz. Za predpokladu, ze prurezova plocha prutu

je mala ve srovnanı s jeho delkou, muzeme povazovat prıcne slozky ∆Fy a ∆Fz za zanedbatelne

ve srovnanı s ∆Fx.

Necht’ vnejsı sıla F vyvodı v prurezu x posun u(x). Jestlize ji zvetsıme o dF , zvetsı se

posun u o du, jak je schematicky naznaceno na obrazku 2.10. Elementarnı vnitrnı sıly pusobıcı

v rezech x a x+ ∆x vykonajı na prırustcıch posunutı praci

∆Fx[du(x+ ∆x)− du(x)] = ∆Fx · d[u(x+ ∆x)− u(x)] = ∆Fx · d(∆u) ,

14

Page 23: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

ktera se formou energie deformace akumuluje ve hmote kvadru a snazı se tento kvadr uvest

zpet do tvaru pred pritızenım dF . Energii deformace akumulovanou v jednotce objemu prutu

nazveme hustotou energie (mernou energiı) a oznacıme W . Jejı infinitesimalnı prırustek

odpovıdajıcı protazenı hrany ∆x o d(∆u) bude

dW = lim∆V→0

1∆V

·∆Fx(∆u) = lim∆Ax→0∆x→0

∆Fx

∆Ax· d(

∆u∆x

)= σx · dεx . (2.31)

Diferencialnı symboly ”d“ a ∆ se vztahujı k ruznym velicinam. Zatımco ∆ je svazan s rozmery

konstrukce (elementarnı delkou nebo plochou), symbol ”d“ byl zvolen pro infinitesimalnı

prırustek vnejsıho zatızenı, a proto jsme jej mohli pri poslednı uprave vytknout pred zavorku.

Celkovou energii akumulovanou v objemove jednotce na konci zatezovacı drahy vypocteme

integracı vztahu (2.31) (index x v dalsım vypoustıme)

W =

ε∫ε0

σ′(ε) dε′ . (2.32)

V tomto vzorci ε0 znacı pocatecnı deformaci, ktera muze byt zpusobena napr. oteplenım nebo

smrst’ovanım.

V uvedenem prıpade jsme predpokladali, ze pocatecnı deformace byla udelena jeste pred

zavedenım tahove sıly F ′(0 ≤ F ′ ≤ F ), takze se neuplatnı pri vypoctu energie deformace.

Budeme-li naopak predpokladat, ze deformace ε0 je tyci udelena teprve po zavedenı vnejsı

sıly F ′ (naprıklad dodatecnym oteplenım), dojdeme k vyjadrenı hustoty doplnkove energie

deformace ve tvaru

W ∗ =

σ∫0

ε′(σ′) dσ′ . (2.33)

Jestlize uvedeme energeticke vztahy (2.32) a (2.33) v diferencialnı forme

dW = σ(ε) dε dW ∗ = ε(σ) dσ ,

muzeme podat energetickou formulaci fyzikalnıch rovnic pro pruzny material ve tvaru

σ =dW (ε)

dεε =

dW ∗(σ)dσ

. (2.34)

V prıpade linearnıho pruzneho materialu je

W =12E(ε− ε0)2 W ∗ = σ ε0 +

12E

σ2 , (2.35)

tedy skutecne

σ =dWdε

= E(ε− ε0) ε =dW ∗

dσ= ε0 +

σ

E. (2.36)

15

Page 24: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

2.4.2 Obecny Hookuv zakon

Pri formulaci fyzikalnıch vztahu pro ruzne materialy jsme se az dosud omezili na prıpad

jednooseho tahu. Predpoklad izotropie zada, aby tyto vztahy byly nezavisle na smeru pusobenı

vektoru napetı. To znamena, ze pri tlakovem namahanı musıme dostat tvarove stejny pracovnı

diagram jako pri tahovem namahanı.

Nynı prejdeme k formulaci fyzikalnıch rovnic pro obecny prıpad stavu napetı a deformace.

Pri protazenı valce pocatecnı delky l0 a prumeru b0 dochazı navıc ke zmensenı prumeru o ∆b.

Prıcna deformace (relativnı zuzenı) bude

εb = −∆bb0

< 0 .

Pomer ∣∣∣∣εbεl∣∣∣∣ = ν =

1m

, (2.37)

kde εl = ∆l/l0, znacı soucinitel prıcne kontrakce. Velicinu ν nazyvame tez Poissonovym

cıslem, pro m se ujal nazev Poissonova konstanta. Je-li relativnı prodlouzenı ve smeru osy

x oznacene εx, bude relativnı prodlouzenı izotropnı latky ve vsech prıcnych smerech stejne,

takze muzeme psat

εy = εz = −ν εx . (2.38)

V dalsım textu omezıme sve uvahy na linearne pruzne materialy, pro ktere je vzhledem ke

vzorci (2.28).

εx =1Eσx εy = − ν

Eσx εz = − ν

Eσx . (2.39)

Zatım jsme predpokladali, ze jedinym nenulovym napetım je σx. V prıpade obecneho stavu

napetı (σx 6= 0, σy 6= 0, σz 6= 0), obdrzıme rozsıreny Hookuv zakon superpozicı ucinku

jednotlivych slozek napetı. S prihlednutım k (2.39) vyjde

εx = +1Eσx −

ν

Eσy −

ν

Eσz =

1E

(σx − ν(σy + σz)

)εy = − ν

Eσx +

1Eσy −

ν

Eσz =

1E

(σy − ν(σz + σx)

)(2.40)

εz = − ν

Eσx −

ν

Eσy +

1Eσz =

1E

(σz − ν(σx + σy)

).

Temto vztahum muzeme dat ponekud jinou podobu, zavedeme-li relativnı zmenu objemu.

Elementarnı kvadr zmenı vlivem normalovych napetı svuj pocatecnı objem ∆V = ∆x∆y∆z

na hodnotu ∆V ′ = ∆x′ ∆y′ ∆z′, kde ∆x′ = ∆x + εx ∆x, atd. Relativnı zmena objemu tedy

bude

ω =∆V ′ −∆V

∆V=

(1 + εx)(1 + εy)(1 + εz)∆x∆y∆z −∆x∆y∆z∆x∆y∆z

= εx + εy + εz (2.41)

16

Page 25: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.4. Vztah mezi napetım a deformacı

Pri poslednı uprave jsme zanedbali souciny slozek deformace oproti linearnım clenum. Po

dosazenı (2.40) do (2.41) a po uprave dostaneme

ω = εx + εy + εz =3(1− 2ν)

E

σx + σy + σz

3=σx + σy + σz

3E0, (2.42)

kde E0 je tzv. objemovy modul pruznosti.

Spojenım vztahu (2.42) s prvnı rovnicı (2.40) muzeme jednoduse vyjadrit napetı σx jako

funkci slozek deformace ve tvaru

σx =E

1 + ν

(εx +

ν

1− 2 νω

)=

E

(1 + ν)(1− 2 ν)((1− ν)Ex + ν (εy + εz)

), (2.43)

odkud cyklickou zamenou indexu vyplynou dalsı dva obdobne vzorce pro napetı σy a σz.

Uhlove deformace γyz, γzx a γxy jsou zpusobeny smykovymi napetımi τyz, τzx a τxy.

Vzajemna souvislost mezi uvedenymi mimodiagonalnımi prvky tenzoru napetı a deformace je

vyjadrena vztahy

γxy =τxy

Gγyz =

τyz

Gγxz =

τxz

G, (2.44)

kde G je modul pruznosti ve smyku linearne pruzneho materialu.

Ze trı materialovych konstant E, ν a G jsou nezavisle dve. Vaze je totiz predpoklad

izotropie, ktera zada nezavislost fyzikalnıch rovnic na volbe soustavy souradnic. Necht’ α11,

α21, α31 jsou uhly, ktere svıra osa x s pootocenymi osami x′, y′, z′. Napetı σx vztazene

k soustave x, y, z vyjadrıme pomocı slozek tenzoru napetı σ′ z transformacnıho zakona (2.18).

Vzhledem k definici transformacnı matice T muzeme psat

σx = ~n′T σ′ ~n′ ,

kde ~n′ = (cosα11, cosα21, cosα31)T.

Po provedenı naznacenych maticovych operacı vychazı

σx = σ′x cos2 α11 + σ′y cos2 α21 + σ′z cos2 α31 +

+ 2(τ ′xy cosα21 cosα11 + τ ′yz cosα31 cosα21 + τ ′xz cosα31 cosα11

). (2.45)

Podobny vysledek plyne i ze vzorce (2.6)

εx = ε′x cos2 α11 + ε′y cos2 α21 + ε′z cos2 α31 +

+ 2(γ′xy

2cosα21 cosα11 +

γ′yz

2cosα31 cosα21 +

γ′xz

2cosα31 cosα11

). (2.46)

Vztahy (2.45) a (2.46) dosadıme do prvnıho vyjadrenı rovnice (2.43) s tım, ze relativnı zmena

objemu ω je (jakozto skalar) nezavisla na volbe souradne soustavy a ~n′T · ~n′ = 1, takze

ω = ω′ = ω′(cos2 α11 + cos2 α21 + cos2 α31

).

17

Page 26: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.5. Porusenı souvislosti materialu

(a) tlakove (b) tahove (c) ostatnı

Obrazek 2.11: Tri mozne kombinace sil

Rovnez rovnice (2.43) musı platit musı platit pro libovolny smer urceny uhly α11, α21, α31,

a proto koeficienty nasobene kosiny techto uhlu musı byt na obou stranach rovnice identicky

stejne. Identita clenu nasobenych kvadraty kosinu potvrzuje platnost trı vztahu typu (2.43).

Porovnanım koeficientu u soucinu cosα21 cosα11, cosα31 cosα21 a cosα31 cosα11 vyjde po-

stupne

τ ′xy =E

2(1 + ν)γ′xy τ ′yz =

E

2(1 + ν)γ′yz τ ′xz =

E

2(1 + ν)γ′xz .

Vratıme-li se zpet k soustave x, y, z, zjistıme z porovnanı se vztahy (2.44), ze

G =E

2(1 + ν). (2.47)

2.5 Porusenı souvislosti materialu

Predchozı odstavce popisujı vztah mezi vnejsımi silami a deformacemi telesa. Deformace

jsou nezbytne pro popis chovanı materialu, ktery je zatızen, ale nasım cılem nenı teleso je

deformovat, ale jıt dale za deformace a prozkoumat praskanı materialu. Matematicky popis

prasklin ale nenı vubec jednoducha technika, ktera presahuje ramec tohoto textu a proto se

omezıme jen na zakladnı informace, potrebne k pochopenı souvislostı.

Na element telesa pusobı vnitrnı sıly, urcene tenzorem napetı σ. Tyto sıly majı ruzny smer

a podle smeru je muzeme rozdelit do trı skupin. V prvnı skupine jsou sıly, ktere majı opacny

smer a pusobı proti sobe (viz obrazek 2.11(a)). Tyto sıly zpusobujı stlacovanı elementu. Dru-

hou skupinou jsou sıly, ktere majı take opacny smer, ale pusobı od sebe (viz obrazek 2.11(b)).

Tato skupina sil zpusobuje vznik prasklin v elementu. Poslednı skupinou jsou sıly, ktere nemajı

opacny protejsek a samy o sobe nemajı na praskliny vliv. Pouze zpusobujı posun elementu a

pro vypocet nejsou zajımave (viz obrazek 2.11(c)).

Prozkoumejme nynı chovanı elementu pri pusobenı jednotlivych skupin sil. Tahove sıly

zpusobujı vznik napetı v elementu. Pokud velikost tohoto napetı prekrocı urcitou hodnotu,

tak vznikne porusenı materialu, neboli prasklina. Rovina praskliny je kolma na smerovy vektor

sil. Pokud jiz element porusen je, snazı se sıly rozevrıt prasklinu jeste vıce a tak ji rozsırit.

Sıly ovsem ovlivnujı jen takovou prasklinu, ktera je kolma na smerovy vektor sil. Pokud na

18

Page 27: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.5. Porusenı souvislosti materialu

element pusobı tlakove sıly a element jeste porusen nenı, nedeje se nic. Ale pokud je element

porusen, pak tlakove sıly zpusobujı uzavıranı praskliny, tady praskanı nepokracuje. Ostatnı

sıly nemajı, jak uz bylo uvedeno vyse, na praskliny vliv. Samozrejme na element nepusobı

tyto skupiny sil jednotlive, ale vzdy nejaka jejich kombinace. Pak je podstatne, ktera skupina,

jestli tlakova, nebo tahova, prevazuje.

Abychom mohli urcit, jak se bude element chovat, potrebujeme nejakym zpusobem zıs-

kat sıly, ktere na element pusobı. Ty zıskame dekompozicı tenzoru napetı σ. Protoze σ je

ctvercova matice o dimenzi tri, ktera je pro izotropnı material symetricka, ma tri realna

vlastnı cısla. Oznacme tedy vi(σ), kde i nabyva hodnot 1, 2, nebo 3, i-tym vlastnım cıslem

matice σ a ~ni(σ) vlastnı vektor odpovıdajıcı vlastnımu cıslu vi(σ). Kladne vlastnı cısla pritom

odpovıdajı tahovym a zaporne tlakovym slozkam napetı.

Pro vektor ~a z R3 muzeme zkonstruovat 3× 3 symetrickou matici m(~a). Tato matice ma

jedno vlastnı cıslo rovne |~a| a odpovıdajıcı vlastnı vektor rovny ~a. Ostatnı vlastnı cısla ma

nulove. Tato matice je definovana jako

m(~a) =

{aaT/|a| pokud ~a 6= 0

0 jinak, (2.48)

kde a je 3 × 1 matice, ktera ma slozky stejne jako vektor ~a. Tuto matici pak vyuzijeme pri

rozkladu tenzoru napetı na tlakove a tahove slozky.

Kdyz uz mame mechanizmus, kterym dokazeme rozlozit matici na slozky a pak ji opet

slozit, muzeme rozlozit tenzor napetı σ na tahovou a tlakovou slozku. Tahova slozka tenzoru

napetı σ+ je urcena jako soucet jednotlivych tahovych castı, ktere zıskame z rozkladu tenzoru

σ. Obdobne tlakova slozka σ− je urcena souctem tlakovych castı. Jednotlive casti zkonstruu-

jeme z vlastnıch cısel a odpovıdajıcıch vlastnıch vektoru tenzoru σ. Pritom tahove slozky jsou

ty, jejichz vlastnı cıslo je kladne a tlakove slozky majı odpovıdajıcı vlastnı cıslo zaporne.

σ+ =∑

i∈{1,2,3}vi>0

vi(σ) ·m(~ni(σ)) (2.49)

σ− =∑

i∈{1,2,3}vi<0

vi(σ) ·m(~ni(σ)) . (2.50)

Ted’, kdyz mame k dispozici tlakovou i tahovou slozku tenzoru napetı σ+ a σ−, muze-

me vypocıtat prıslusne tlakove a tahove sıly, ktere na element pusobı. To muzeme provest

pouzitım rovnic rovnovazneho stavu, jakou je take rovnice 2.22. Z teto rovnice, ktera vy-

jadruje vztah mezi zmenou napetı a sılou, a z rovnice 2.7 odvodıme, ze sıla, ktera odpovıda

nejakemu napetı σ, se vypocıta integracı napetı pres plochu elementu. Tahovou slozku sıly

19

Page 28: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.5. Porusenı souvislosti materialu

∆A

~F+

~F

~F−

Obrazek 2.12: Tlakova a tahova slozka sıly

tedy dostaneme jako~f

+=∫∫∆A

σ+ · ~ndS , (2.51)

kde ∆A je plocha elementu a ~n je normalovy vektor elementarnı plosky dS. Obdobne tlakovou

slozku sıly na element dostaneme zamenou slozky napetı za tlakovou

~f−

=∫∫∆A

σ− · ~ndS . (2.52)

Znazornenı vzajemneho vztahu mezi tlakovou, tahovou a celkovou vnitrnı sılou muzeme videt

na obrazku 2.12.

2.5.1 Separacnı tenzor

Celkova vnitrnı sıla je tedy rozlozena do tahove a tlakove komponenty a ted’ potrebujeme

urcit nejakou hranici, kdy zacne prasklina vznikat a prıpadne take rovinu, ve ktere prasklina

vznikne. Toho docılıme pres separacnı tenzor, jak muzeme odvodit z [4]. Separacnı tenzor ς

je specialnı variantou tenzoru napetı σ, ktera popisuje jen tahove a tlakove slozky napetı. Ale

nepopisuje ostatnı nevyvazene sıly.

Protoze tahove a tlakove sıly pusobı na povrchu elementu, muzeme kazdemu elementu

priradit sadu tlakovych a tahovych sil. Jednu, ktera odpovıda elementu a ostatnı od sousednıch

elementu. Soucet sady tlakovych, resp. tahovych sil je nevyvazena tahova, resp. tlakova sıla~F

+, resp. ~F

−. Sadu tahovych sil oznacıme {~f

+} a sadu tlakovych sil oznacıme jako {~f

−}.

Separacnı tenzor je urcen nasledujıcım vztahem

ς =12

−m(~F+) +

∑~f∈{~f+}

m(~f) + m(~F−)−

∑~f∈{~f−}

m(~f)

. (2.53)

20

Page 29: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 2. Fyzikalnı principy 2.5. Porusenı souvislosti materialu

Separacnı tenzor nepopisuje nevyvazene sıly, ktere zpusobujı translaci elementu. Take je in-

variantnı vuci transformacım.

Ze separacnıho tenzoru ς prımo urcıme, zda ma prasklina vzniknout. Protoze matice m(~v),

libovolneho vektoru ~v, je realna a symetricka, tak jı muzeme urcit tri, ne nutne ruzna a nenu-

lova, vlastnı cısla. Nejvetsı kladne vlastnı cıslo tenzoru ς oznacıme v+. Pokud je hodnota v+

vetsı, nebo rovna hodnote vlastnosti materialu, ktere budeme rıkat pevnost τ , tak material

v tomto elementu selze a vznikne prasklina. Pro spojite systemy prasklina vznika presne ve

chvıli, kdy

v+ != τ ,

tedy v momente, kdy se velikost vlastnıho cısla v+ presne rovna velikosti pevnosti materialu τ .

Orientace roviny, ve ktere prasklina vznikne je urcena vlastnım vektorem ~n+, odpovıdajıcım

vlastnımu cıslu v+. V prıpade, ze se nekolik vlastnıch cısel rovna pevnosti τ , vznika v elementu

nekolikanasobna prasklina, kazda orientovana podle odpovıdajıcıho vlastnıho vektoru.

Tento vyklad vypoctu prasklin zdaleka nenı kompletnı a je zde jeste spousta aspektu, ktere

ovlivnujı vznik a vyvoj praskliny telesa. Jednım takovym omezenım je maximalnı rychlost

sırenı praskliny, ktera je tesne spjata s rychlostı sırenı zvuku v materialu telesa. Tyto casti

teorie ale nebudeme probırat, protoze jsou to pomerne rozsahle casti a presahujı ramec tohoto

textu. Navıc je pro pochopenı nasledujıcıho textu a tım padem i jednotlivych metod simulace

a vizualizace nepotrebujeme.

21

Page 30: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3

Metody simulace

Aby bylo mozne simulovat deformace a praskanı na pocıtaci, je treba pouzıt diskretnı metody

vypoctu. Tyto metody nam ale nevypocıtajı simulaci presne. Pouze se snazı realite co nejvıce

priblızit. Nektere metody davajı vysledky lepsı, ale zase jsou slozite a potrebujı prılis casu na

vypocet. Nektere metody jsou naopak rychle, hodı se pro simulaci v realnem case, ale vysledek

zase nenı uplne realisticky. Navıc existujı specializovane metody, ktere se hodı do specialnıch

konkretnıch situacı. V nasledujıcım textu si popıseme a rozebereme tri ruzne metody. Prvnı

je zalozena na fyzikalnıch principech. Proto se nejvıce priblizuje realite. Zato ovsem zaplatıme

vetsı slozitostı. Druha metoda je zalozena take na simulaci trojrozmerneho objektu, ale uz

ne podle fyzikalnıch vztahu. Vyuzıva tedy nejake zjednodusenı a dıky tomu je rychlejsı. Dıky

tomu ma vsak znacne nevyhody. Poslednı metoda je specializovana na simulaci povrchoveho

praskanı, ktere najdeme naprıklad pri vysychanı bahna. Dıky teto specializaci je velmi rychla.

3.1 Sıt’ ctyrstenu

Pokud budeme chtıt simulovat deformace a praskanı objektu, logicky pouzijeme metodu

zalozenou na metode konecnych prvku (FEM). Tato metoda rozdelı objekt do sıte elementu, se

kterymi pak pracuje. James F. O’Brien v [4] upravil a rozvinul metodu konecnych prvku k si-

mulaci a hlavne k vizualizaci realistickeho praskanı. Jeho metoda dokaze simulovat praskanı

jak krehkych, tak plastickych materialu. K tomu je potreba propracovat nejen model vytvarenı

a rozsirovanı prasklin, ale i vypocet deformacı.

3.1.1 Souradne systemy modelu

Metoda simulacı deformacı byla odvozena tak, ze nejdrıve byl stanoven model chovanı defor-

macı pro spojite kontinuum a pote na tento model byla aplikovana metoda konecnych prvku.

V metode se pouzıva sıt’ ctyrstenu. Ctyrsteny majı oproti jinym elementum nektere vyhody.

22

Page 31: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

V

UW

~u

~u′

~u′′

V

UW

~u

~u′

~u′′

Obrazek 3.1: Materialove souradnice objektu

Naprıklad jako pomocı trojuhelnıku dokazeme aproximovat jakykoliv plochu, tak ctyrsteny

dokazı vyplnit jakykoliv objem. Nevyplatı se totiz pouzıvat elementy vyssıch stupnu, protoze

vypocet na slozitejsıch elementech je relativne komplikovany a vysledek nenı o tolik lepsı.

Rozdelıme tedy objekt do sıte ctyrstenu. Proces vzniku takoveto sıte je podobny tri-

angulaci plochy, rozsıreny do tretıho rozmeru. Kazdy uzel teto sıte ma polohu vuci telesu

urcenou pomocı materialovych souradnic ~u = (u, v, w)T. Jak je videt z obrazku 3.1, tyto

souradnice uzlu se nemenı. Pohybujı se vlastne s materialem v okolı tohoto uzlu. Deformace

materialu je definovana funkcı ~x(~u) = (x, y, z)T, ktera transformuje materialove souradnice

na souradnice svetove. Tam, kde je material existuje, je tato funkce spojita, ale tam kde

material nenı, naprıklad v mıste porusenı materialu, je hodnota teto funkce nedefinovana.

3.1.2 Tenzory deformace

Pro reprezentaci lokalnıch deformacı materialu pouzijeme tzv. Greenuv tenzor napetı ε. Ten

muze byt reprezentovan jako symetricka realna ctvercova matice 3× 3. Je definovan jako

εij =(∂~x∂ui

· ∂~x

∂uj

)− δij , (3.1)

kde δij je Kroneckerova delta, ktera je definovana nasledovne

δij =

{1 pro i = j

0 jinak.

Tento tenzor reprezentuje pouze deformace. Je invariantnı vuci transformacım telesa ve sve-

tovych souradnicıch a je roven jednotkove matici, pokud nenı teleso deformovano. Protoze je

to tenzor, tak nenı zavisly na volbe orientace materialovych ci svetovych souradnic. Tenzor

ε poskytuje nelinearnı model konecne deformace a tato nelinearita umoznuje pouzitı jak

pro tuhe materialy, ktere se deformujı pouze nepatrne, tak i pro mekke materialy, ktere se

deformujı vıce.

23

Page 32: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

Pro deformace, krome tenzoru deformace, jeste potrebujeme tenzor rychlosti deformace ν,

ktery reprezentuje rychlost, jakou se tenzor deformace menı. Je odvozen jako derivace tenzoru

ε podle casu

νij =

(∂~x∂ui

· ∂~x∂uj

)+

(∂~x∂ui

· ∂~x

∂uj

), (3.2)

kde ~x je derivace svetovych souradnic ~x podle casu, tedy rychlost bodu ve svetovych sourad-

nicıch.

Tenzor deformace ε popisuje deformace materialu, ale obsahuje take urcitou odchylku.

Tato odchylka je zmena objemu elementu. Protoze pevne telesa pri deformacıch prakticky

nemenı objem, musıme tuto odchylku popsat a odecıst. Upraveny tenzor deformace ε′ bez

teto zmeny je definovan jako

ε′ij = εij −13

3∑k=1

εkk δij . (3.3)

Pri deformacıch prodelava material dve faze. V prvnı fazi jsou deformace elasticke. V teto

fazi jsou zmeny materialu vratne. To znamena, ze kdyz teleso odtızıme, vratı se do puvodnıho

tvaru. V druhe fazi jsou deformace plasticke. Tyto zmeny jsou nevratne. Mez, kdy elasticke

deformace prechazejı v plasticke je urcena konstantou k1. Pokud je mıra deformace vyssı

nez konstanta k1, pak jsou deformace plasticke. Konstanta k2 ohranicuje mnozstvı plasticke

deformace.

Pro porovnavanı tenzoru deformace ε′ potrebujeme nejakou velicinu, se kterou bychom

porovnali konstantu k1. Velikost tenzoru deformace ε′ je presne ta velicina, kterou potrebujeme

a je definovana takto

J(ε′) =3∑

i=1

3∑j=1

ε′ij ε′ij . (3.4)

Dokud platı J(ε′) ≤ k1, tak se material chova elasticky. Ale jakmile J(ε′) prekrocı k1, tak

rozdelıme tenzor deformace ε do dvou komponent. Prvnı cast εe popisuje elasticke deformace

a druha cast εp popisuje plasticke deformace. Dohromady davajı

ε = εe + εp . (3.5)

Na pocatku vypoctu je tenzor εp roven nulove matici a jak se material deformuje zmena

tenzoru εp je urcena nasledujıcım vztahem

∆εp =

(ε′−εp)

(√J(ε′−εp)−k1

)√

J(ε′−εp)pro

√J(ε′ − εp > k1

0 jinak. (3.6)

24

Page 33: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

k1

k2

(a) elasticka

k1

k2

(b) plasticka

k1

k2

(c) plasticka

k1

k2

(d) limit k2

k1

k2

εp

ε′

nulova deformace

Obrazek 3.2: Znazornenı deformacnıch tenzoru

Tenzor plasticke deformace εp pak aktualizujeme tak, aby se v nem promıtla hranice plasticke

deformace k2, tedy podle nasledujıcıho vzorce

εp = (εp + ∆εp) min

(1,

k2√J(εp + ∆εp)

). (3.7)

Chovanı deformacnıho modelu vidıme na obrazku 3.2. Kazdy podobrazek reprezentuje

urcity stav bodu v materialu, ktery je deformovan. I kdyz k zobrazenı hodnot tenzoru ε′

je zapotrebı petidimenzionalnı prostor, tak rovina obrazku zjednodusene reprezentuje mozne

hodnoty tenzoru. Stredovy bod, resp. krız, reprezentuje nulovou deformaci, resp. nulovy ten-

zor ε′. Vnitrnı kruznice reprezentuje stav, kdy J(ε′) = k1, vnejsı kruznice pak stav, kdy

J(εp) = k2. Na obrazku 3.2(a) je znazornen stav pri elasticke deformaci. Tenzor εp, znazorneny

ctvereckem, zustava ve stredu kruhu, zatımco tenzor ε′, znazorneny carkou s teckou na konci,

se pohybuje uvnitr. Jakmile se tenzor ε′ dostane za hranici elasticke deformace k1, zacına se

material deformovat plasticky. Ctverecek reprezentujıcı tenzor plasticke deformace εp opustı

stredovy bod a zacne se pohybovat ve smeru carky. Vzdalenost je stejna, jakou urazı tecka

na konci carky, tedy zmena je stejna jako u tenzoru deformace ε′. Celou situaci ilustrujı

obrazky 3.2(b) a 3.2(c). Ale tenzor plasticke deformace εp nemuze opustit vnejsı kruh, k2, jak

ukazuje obrazek 3.2(d). Deformace za touto hranicı se chovajı jako elasticke. Nutno pozna-

menat, ze prasklina muze vzniknout kdekoliv v regionu elasticke i plasticke deformace.

25

Page 34: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

3.1.3 Tenzory napetı

Tenzory deformace ε a zmeny deformace ν poskytujı hrubou predstavu o vnitrnıch sılach ma-

terialu, ale nezohlednujı vlastnosti materialu. Tenzor napetı σ kombinuje informace o defor-

macıch a parametry materialu a urcuje vnitrnı sıly v telese. Podobne jako tenzory deformace

jej lze zapsat jako matici 3 × 3. Tenzor napetı σ je slozen ze dvou castı. Jednak z tenzoru

elastickeho napetı σε, ktere odpovıda elastickym deformacım a z tenzoru viskoznıho napetı

σν , ktery je umerny tenzoru rychlosti zmeny deformacı ν. Celkove vnitrnı napetı je soucet

techto dvou castı

σ = σε + σν . (3.8)

Tenzory σε a σν jsou obecne urceny jako

σεij =

3∑k=1

3∑l=1

Cijkl εekl (3.9)

σνij =

3∑k=1

3∑l=1

Dijkl νkl , (3.10)

kde C je tenzor ctvrteho radu, ktery urcuje vztah mezi tenzory εe a σε a D je tenzor ctvrteho

radu, ktery definuje tlumıcı vlastnosti materialu.

V trojrozmernem prostoru muze byt kazdy tenzor ctvrteho radu reprezentovan jako 81

nezavislych skalarnıch hodnot, ale protoze oba tenzory εe i σε jsou symetricke, vetsina slozek

C je nadbytecna, nebo zavisla, takze muzeme C redukovat na 36 nezavislych hodnot, ktere

urcujı vztah mezi sesti nezavislymi hodnotami εe a sesti nezavislymi hodnotami σε. Pokud

se jeste omezıme na izotropnı material, zjistım, ze dalsı slozky C jsou zavisle a tenzor C

kolabuje do dvou nezavislych hodnot µ a lambda, ktere autor nazyva Lame konstantami

materialu, viz [4]. Konstanta µ pritom urcuje tuhost materialu a konstanta λ urcuje odolnost

proti zmenam elementu. S predpokladem izotropie tedy vzorec (3.9) vypada takto

σεij =

3∑k=1

λ εekk δij + 2µ εeij . (3.11)

Podobne, jako tenzor C, muzeme redukovat i tenzor D. Zbydou nam dve nezavisle hodnoty

φ a ψ. Vzorec (3.10) pak vypada takto

σνij =

3∑k=1

φ νkk δij + 2ψ νij . (3.12)

Parametry φ a ψ urcujı, jak rychle material distribuuje vnitrnı kinetickou energii. Protoze

se σν vztahuje pouze k rychlosti zmen tenzoru deformace ε, tak netlumı pohyby, ktere jsou

26

Page 35: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

~m4

~m2

~m3

~m1 ~p1

~p2

~v1

~v2

~v4~p4

~v3

~p3

Obrazek 3.3: Vlastnosti uzlu ctyrstenu

lokalne pevne, tedy kdy se pohybuje element jako celek, a ma vhodne vlastnosti pro sırenı

vnitrnıch vibracı materialu.

Narozdıl od rovnic, ktere urcujı vztah polohy uzlu a deformacı elementu, jsou vztahy

na vypocet tenzoru napetı linearnı. Tento linearnı model je postacujıcı pro popis chovanı

vetsiny materialu. Ale pro nektere materialy, naprıklad pro biologicke tkane, je tento popis

nedostacujıcı. V takovych prıpadech nebudou koeficienty, urcujıcı vztah mezi deformacemi a

napetım, konstanty, ale budou funkcemi deformacı.

Z tenzoru deformace ε a ν a z tenzoru napetı σ muzeme vypocıtat hustotu elastickeho

potencialu η a hustotu potencialu tlumenı κ. Ty jsou v jakemkoliv bode v materialu dany

vztahy

η =12

3∑i=1

3∑j=1

σεij εij (3.13)

κ =12

3∑i=1

3∑j=1

σνij νij . (3.14)

Elasticky potencial je v podstate vnitrnı kineticka energie materialu a potencial tlumenı se

vztahuje ke kineticke energii z nız byly odstraneny slozky zpusobujıcı pohyb telesa, jako celku,

a ktera je prizpusobena hustote materialu.

3.1.4 Diskretizace

Kazdy ctyrsten sıte ma ctyri uzly a kazdy tento uzel ma ctyri vlastnosti. Jednak pozici

v materialu, kterou udavajı materialove souradnice ~m, pozici ve svetovych souradnicıch ~p

a rychlost uzlu ve svetovych souradnicıch ~v. Pro oznacenı uzlu v ramci prıslusneho ctyrstenu

budeme pouzıvat dolnı index. Takze oznacenı ~m[2] oznacuje materialove souradnice druheho

uzlu elementu. Celou situaci muzeme videt na obrazku 3.3.

Pro vypocet jakehokoli bodu uvnitr ctyrstenu s vyhodou pouzijeme barycentricke sourad-

nice. Vysledny bod je tak definovan jako linearnı kombinace bodu ctyrstenu. Mejme tedy vek-

27

Page 36: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

tor ~b = (b1, b2, b3, b4)T, ktery urcuje barycentricke souradnice bodu, ktery se pak vypocıta

jako (~u

1

)=

(~m[1] ~m[2] ~m[3] ~m[4]

1 1 1 1

)~b . (3.15)

Barycentricke souradnice muzeme pouzıt take k interpolaci pozice uzlu ve svetovych sourad-

nicıch, i k interpolaci rychlosti(~x

1

)=

(~p[1] ~p[2] ~p[3] ~p[4]

1 1 1 1

)~b (3.16)

(~x

1

)=

(~v[1] ~v[2] ~v[3] ~v[4]

1 1 1 1

)~b . (3.17)

Pokud naopak chceme urcit barycentricke souradnice bodu uvnitr ctyrstenu, ktery je urcen

naprıklad materialovymi souradnicemi, pak stacı invertovat vztah (3.15). Dostaneme tak

~b = β

(~u

1

), (3.18)

kde β je matice 4× 4 definovana jako

β =

(~m[1] ~m[2] ~m[3] ~m[4]

1 1 1 1

)−1

. (3.19)

Kdyz slozıme vzorec (3.18) se vzorcem (3.16) a se vzorcem (3.17), dostaneme vztahy,

ktere interpolujı polohu ve svetovych souradnicıch a rychlost v zavislosti na materialovych

souradnicıch

~x(~u) = P β

(~u

1

)(3.20)

~x(~u) = V β

(~u

1

), (3.21)

kde matice P, resp. V jsou matice 3× 4 a jsou definovany jako

P =(~p[1] ~p[2] ~p[3] ~p[4]

)(3.22)

V =(~v[1] ~v[2] ~v[3] ~v[4]

). (3.23)

Jeste poznamenejme, ze matice β musı byt vypocıtana jen tehdy, kdyz je element vytvoren,

nebo se zmenı materialove souradnice uzlu elementu. Pro nedegenerovane elementy je zaru-

ceno, ze matice β je regularnı, ale pro elementy, jejichz steny jsou skoro rovnobezne, muze

byt matice β spatne podmınena, coz muze neprıznive ovlivnit numerickou stabilitu vypoctu.

28

Page 37: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

Vztahy pro vypocet tenzoru deformace ε a ν obsahujı parcialnı derivace polohy ~x a rych-

losti ~x vzhledem k materialovym souradnicım uzlu ~u, ktere jsou dany nasledujıcımi vztahy

∂~x∂ui

= Pβ ~δi (3.24)

∂~x∂ui

= V β ~δi , (3.25)

kde ~δi = (δi1, δi2, δi3)T. Protoze interpolace barycentrickymi souradnicemi je linearnı, jsou

tyto parcialnı derivace po celem elementu konstantnı.

Elasticke a tlumıcı vnitrnı sıly elementu pusobı v jeho uzlech. Elasticka sıla i-teho uzlu~f

ε

[i] je definovana jako zaporna cast hustoty elastickeho potencialu η, s ohledem na polohu

uzlu ~p[i] a integrovana pres cely element. Mame tenzor σε, matici β a pozice ve svetovych

souradnicıch ~p[i] vsech ctyr uzlum takze elasticka sıla uzlu i pak bude

~fε

[i] = −V2

4∑j=1

~p[j]

3∑k=1

3∑l=1

βjl βik σεkl , (3.26)

kde V je objem elementu definovany smısenym soucinem vektoru hran, tedy jako

V =16

( (~m[2] − ~m[1]

)×(~m[3] − ~m[1]

) )·(~m[4] − ~m[1]

). (3.27)

Obdobne je definovana tlumıcı sıla ~fν

[i] jako zaporna cast hustoty potencialu tlumenı κ, integ-

rovaneho pres cely element s ohledem na rychlost ~v[i]. Vztah tedy vypada takto

~fν

[i] = −V2

4∑j=1

~p[j]

3∑k=1

3∑l=1

βjl βik σνkl . (3.28)

Soucet techto dvou komponent nam da celkovou vnitrnı sılu, kterou element pusobı na uzel i

a vypocıtame ji jako

~f [i] = −V2

4∑j=1

~p[j]

3∑k=1

3∑l=1

βjl βik σkl . (3.29)

Celkova internı sıla, ktera pusobı na tento uzel, je souctem sil od vsech elementu, jimz uzel

nalezı.

Pro vypocet zrychlenı, rychlostı a novych pozic uzlu jeste potrebujeme hmotu prıslusneho

uzlu. Tu vypocıtame jednoduse tak, ze hmotu elementu, ktera se vypocıta jako ρ V , kde ρ

je hustota materialu a V je objem elementu definovany ve vzorci (3.27), vydelıme 4mi, tedy

jako ρ V/4.

29

Page 38: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

3.1.5 Koliznı sıly

K simulaci chovanı materialu potrebujeme jeste interakci s vnejsım okolım. Navıc v materialu,

krome vnitrnıch sil, take pusobı sıly mezi elementy. Tyto vnejsı sıly jsou pocıtany penalizacnı

metodou. Tato metoda ma samozrejme nevyhody, ale pro tuto metodu byla shledana jako

dostacujıcı. Vyhoda totiz je, ze je pomerne rychla a snadna pro implementaci.

Penalizacnı metoda pracuje tak, ze se vypocıta mıra presahu dvou interagujıcıch elementu

a z toho se odvodı sıla, kterou na sebe tyto elementy pusobı. Dıky tomu, ze vzajemne sıly

zacnou pusobit az tehdy, kdyz se do sebe elementy proniknou, tedy az s urcitym zpozdenım.

Pokud jsou konstanty pro vypocet nastaveny dobre, pak se tato chyba neprojevı. Pro vypocet

sıly je potreba pouzıt nejakou mıru od ktere odvodıme velikost vzajemnych sil. Pro tento

ucel je mozne vyuzıt bud’ hloubku vzajemne penetrace elementu, nebo take objem mno-

hostenu, ktery vznikne jako prunik elementu. Hloubka penetrace elementu je pro vypocet

snazsı, ale nenı prılis vhodna pro komplexnı interakce v systemu. Naproti tomu vypocet ob-

jemu prunikoveho telesa je sice slozitejsı, ale chovanı teto metody je pak realistictejsı.

Sıla je urcena tremi kvantitami. Jednak velikostı, pak smerem a jeste bodem, kde tato

sıla pusobı. Pusobiste sıly je vypocteno jako teziste prunikoveho telesa. Velikost sıly je prımo

umerna objemu pruniku elementu. Necht’ F = {Fi} je mnozina sten, kterymi je definovano

prunikove teleso a Pi ={~pij

}je seznam bodu, ktere definujı stenu Fi, orientovany po smeru

hodinovych rucicek. Objem takoveho telesa se pak vypocıta jako

vol(F) =|F|∑i=1

|Pi|∑j=3

( (~pi,j − ~pi,1

)×(~pi,j−1 − ~pi,1

) )·(~q− ~pi,1

), (3.30)

kde ~q je zvolen jako jeden z bodu ~pi,j . Vedlejsı efekt volby bodu ~q, jako jednoho z vrcholu

mnohostenu, je, ze nekolik castı vztahu (3.30) bude pak nulovych a tım se znacne zjednodusı.

Smer, ve kterem koliznı sıla pusobı je odvozen z normal sten prunikoveho mnohostenu.

Rekneme, ze na sebe pusobı dva elementy A a B. Mnozina sten FA je podmnozinou mnoziny

F a steny, ktere patrı do mnoziny FA odpovıdajı stenam, ktere vznikly ze sten elementu A.

Mnozina FB je definovana obdobne pro teleso B. Smer koliznı sıly, ktera pusobı na teleso B

je urcena takto

fB

=

∥∥∥∥∥∥∥|FA|∑i=1

|PAi |∑

j=3

(~pA

i,j − ~pAi,1

)×(~pA

i,j−1 − ~pAi,1

)∥∥∥∥∥∥∥ . (3.31)

Vektor smeru pusobenı sıly je urcen jako soucet normal sten z mnoziny FA. Protoze platı

FA ∪FB = F , FA ∩FB = ∅ a soucet vsech normal sten mnohostenu F je nula, tak fA

= fB

.

Pusobiste koliznı sıly je urceno jako teziste koliznıho mnohostenu. Vypocet tohoto teziste

30

Page 39: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

je urcen takto

center(F) =

|F|∑i=1

|Pi|∑j=3

vol(~q, ~pi,1, ~pi,j−1, ~pi,j)(~q + ~pi,1 + ~pi,j−1 + ~pi,j

)4 vol(F)

, (3.32)

kde vol(F) je objem prunikoveho mnohostenu, ktery se vypocıta podle vzorce (3.30) a kde

vol(~q, ~pi,1, ~pi,j−1, ~pi,j) je objem ctyrstenu urceneho body ~q, ~pi,1, ~pi,j−1, ~pi,j a spocıta se

jako sestina smıseneho soucinu vektoru hran.

Koliznı sıla ovsem muze pusobit pouze na uzly elementu a sıla, kterou jsme vypocıtali

pusobı v mıste teziste pruniku elementu. Proto musıme tuto sılu distribuovat do uzlu. To

provedeme s pomocı barycentrickych souradnic takto

~f [i] = b[i]~f , (3.33)

kde ~b = (b[1], b[2], b[3], b[4]) je barycentricka souradnice teziste mnohostenu, kterou vypocı-

tame podle vzorce (3.18). Jednotlive sıly v uzlech musı byt rovnobezne, protoze samy o sobe

nezpusobujı deformaci elementu, ale pouze jeho posun, ci rotaci. Soucet ucinku techto sil je

shodny s pusobenım jedne sıly v tezisti mnohostenu.

Koliznı sıla je v tomto modelu slozena ze trı slozek. Z opravne, tlumıcı a ze trecı sıly.

Opravna sıla ~f err napravuje prunik, neboli nutı kolidujıcı telesa, aby se vratily do polohy, ve

ktere spolu kolidovat nebudou a je linearne zavisla na objemu pruniku elementu. Vypocıta se

jako

~fA

err = kerrfA

vol(F) (3.34)

~fB

err = kerrfB

vol(F) , (3.35)

kde kerr je koeficient, ktery urcuje velikost odezvy v zavislosti na velikosti pruniku. Tlumıcı

sıla urcuje ~fdmp modeluje rozprostrenı energie v prubehu narazu. Take pusobı ve smeru fA,

ale jejı velikost je urcena kombinacı rychlostı vrcholu elementu a prunikoveho mnohostenu.

Je tedy popsana nasledujıcım vztahem

~fA

dmp = −kdmpfA

vol(F)

(4∑

i=1

bA[i]~vA[i] −

4∑i=1

bB[i]~vB[i]

)· fA

, (3.36)

kde kdmp je tlumıcı koeficient, b[i] je barycentricka souradnice teziste pruniku vzhledem k ele-

mentu A, ~vA[i] je rychlost i-teho uzlu v elementu A. Obdobne jsou definovany promenne b[i]

a ~vB[i], ale pro element B. Sıla ~f

B

dmp muze byt spocıtana tak, ze ve vzorci pro ~fA

dmp zamenıme

hornı indexy, nebo take stacı negovat tento vztah. Poslednı slozkou je sıla trecı ~f frc. Ta se

vypocıta takto

~fA

frc = −kfrc

∣∣∣~fA

err

∣∣∣ 4∑i=1

bA[i]wA[i] , (3.37)

31

Page 40: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

kde wA[i] je cast relativnı rychlost i-teho uzlu, ktera je kolma ke smeru pusobenı sıly f

Aa kfrc

koeficient trenı mezi dvema objekty. Abychom mohli rozlisit mezi statickym a dynamickym

trenım, pouzıvame dve hodnoty koeficientu kfrc. Jeden koeficient se pouzıva do doby, nez je

soucet ve vzorci (3.37) prekrocı urcitou hranici a druhou konstantu pouzijeme, pokud je tento

soucet vetsı.

Tato metoda vypoctu koliznıch sil nepridava do systemu zadnou energii, protoze vysledny

moment sil je nulovy. Pracuje spolehlive az do doby, kdy nektera dvojice projde skrz. Pak je

smer sıly nedefinovany a chovanı teto metody tım padem take. Vysledky teto metody take

nezavisı na rozlisenı sıte, protoze velikost koliznı sıly zavisı pouze na objemu pruniku, coz

je geometricka kvantita. V metodach, ve kterych je velikost sıly funkcı hloubky pruniku, je

velikost celkove sıly, ktera pusobı na teleso, zavisla na jemnosti delenı sıte.

3.1.6 Dekompozice sil

Abychom mohli urcit, kde prasklina vznikne, potrebujeme zjistit jednak mısto, ve kterem

prasklina vznikne a jednak smer jımz je urcena rovina praskliny. V teto metode muze prasklina

vzniknout pouze v uzlu sıte, takze vzhled prasklin je predem dan. Ale dıky lokalnımu pretvore-

nı sıte nemusı prasklina postupovat pouze po hranicıch mezi elementy, takze tato nevyhoda je

pomerne dobre kompenzovana. Mısto, ve kterem prasklina vznikne, urcıme analyzou vnitrnıch

sil v okolı uzlu.

Sıly, ktere pusobı na uzel muzeme rozdelit na tlakove, tahove a ostatnı (nevyvazene).

Tahove sıly zpusobujı vznik praskliny, nebo rozsırenı jiz existujıcı praskliny. Tlakove zpusobujı

uzavıranı existujıcı praskliny. Ostatnı sıly nas nezajımajı, protoze zpusobujı pouze posun uzlu,

resp. elementu jako celku a nemajı na praskliny vliv. Pro tenzor napetı σ daneho elementu

sıte muzeme vypocıtat tri vlastnı cısla vi(σ), ktere jsou, dıky tomu, ze matice σ je realna a

symetricka, realne. Kazdemu vlastnımu cıslu odpovıda vlastnı vektor ni(σ).

Pri rozkladu tenzoru σ na tlakovou a tahovou slozku vyuzijeme konstrukci matice m(~v)

z vektoru ~v podle vztahu (2.48). Tahova, resp. tlakova slozka tenzoru napetı σ+, resp. σ− se

vypocıta podle

σ+ =3∑

i=1

max(0, vi(σ))m(ni(σ)) (3.38)

σ− =3∑

i=1

min(0, vi(σ))m(ni(σ)) . (3.39)

Z tenzoru tahoveho napetı σ+ a tenzoru tlakoveho napetı σ− muzeme vypocıtat vnitrnı

tahovou slozku sıly ~f+

a vnitrnı tlakovou slozku sıly ~f−, kterymi element pusobı na jednotlive

32

Page 41: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

prıslusne uzly. K tomu vyuzijeme modifikovany vzorec (3.29)

~f+

[i] = −V2

4∑j=1

~p[j]

3∑k=1

3∑l=1

βjl βik σ+kl . (3.40)

Obdobne muzeme spocıtat take tlakovou sılu uzlu ~f−, ale s vyhodou vyuzijeme toho, ze platı

σ = σ+ + σ−, takze muzeme tlakovou slozku vypocıtat efektivneji tak, ze ji vypocteme ze

vzorce ~f [i] = ~f+

[i] +~f−[i].

Kazdy uzel tak bude mıt sadu tahovych a tlakovych sil od ctyrstenu, ke kterym patrı.

Tyto mnoziny oznacıme jako {~f+} a {~f

−}. Nevyvazena tahova ~f+, resp. tlakova ~f

−sıla uzlu

je souctem sil z mnoziny {~f+}, resp. {~f

−}. Sıly, ktere pusobı na uzel popisuje varianta tenzoru

napetı, ktere budeme rıkat stejne, jako autor [4], tedy separacnı tenzor ς. Tento tenzor popisuje

vyvazene tlakove a tahove sıly v uzlu a tedy nepopisuje nevyvazene sıly, ktere zpusobujı posun

uzlu. Vypocıtame ho podle tohoto vztahu

ς =12

−m(~f+) +

∑~f∈{~f+}

m(~f) + m(~f−)−

∑~f∈{~f−}

m(~f)+

. (3.41)

Protoze je to tenzor, tak je invariantnı k transformacım materialovych i svetovych souradnic.

Ze separacnıho tenzoru prımo urcıme, zda ma v prıslusnem uzlu vzniknout prasklina.

Nejvetsı vlastnı cıslo ς oznacıme v+. Pokud je hodnota v+ vetsı, nez hodnota pevnosti ma-

terialu τ , pak v tomto uzlu material selze. Vznikne prasklina, ktera je urcena rovinou, ktera

je kolma k vlastnımu vektoru n+ matice ς, ktery odpovıda vlastnımu cıslu v+. V prıpade, ze

hodnotu τ prekrocı zaroven nekolik vlastnıch cısel, muze byt vytvorena nasobna prasklina.

Nejdrıve se vygeneruje prvnı, pak se tenzor prepocıta a znovu se urcuje, zda prasklina vznikne.

3.1.7 Pretvorenı sıte

V teto metode prasklina nemusı postupovat po hranicıch mezi elementy, ale elementy jsou

rozdeleny tak, aby rozdelenı kopırovalo rovinu praskliny. Takove pretvorenı sıte je treba

provest tak, aby byla zachovana jejı konzistence.

Nejdrıve je uzel, ve kterem prasklina vznikne, zdvojen, takze mısto jednoho uzlu mame

dva. Prvnı n+, ktery nalezı kladnemu poloprostoru roviny praskliny a n−, ktery nalezı za-

pornemu poloprostoru. Oba tyto uzly majı stejne materialove i svetove souradnice a stejnou

rychlost. Majı ale ruznou hmotnost, ale ta bude vypocıtana pozdeji. Prasklina tak bude

prochazet mezi temito novymi body.

Vsechny elementy, jimz nalezı puvodnı uzel musejı byt prozkoumany a musıme jim urcit

pozici vzhledem k rovine praskliny. Elementum, ktere lezı na zaporne strane roviny, bude

33

Page 42: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

(a) pred delenım (b) rovina praskliny (c) prvnı cast

(d) druha cast

Obrazek 3.4: Delenı elementu

prirazen uzel n− a elementum na kladne strane roviny priradıme uzel n+. Ne vsechny elementy

vsak budou jednoznacne na urcite strane roviny. Takove elementy nejdrıve musıme podle

roviny praskliny rozdelit.

Postup a vysledek rozdelenı elementu vidıme na obrazku 3.4. Element pred delenım je

na obrazku 3.4(a). Na obrazku 3.4(b) je element pred delenım, ale se zakreslenou rovinou

praskliny. Sipky znazornujı pusobenı tahovych sil na uzel. Pak rozdelıme element podle ro-

viny praskliny, pricemz spravne priradıme novemu ctyrstenu uzel n+, nebo n−. Druha cast

puvodnıho ctyrstenu musı byt take jeste rozdelena. Ale oba nove elementy uz jsou na stejne

strane roviny. Mezi temito dvema elementy totiz nenı prasklina. Tyto dve casti delenı ele-

mentu znazornujı obrazky 3.4(c) a 3.4(d).

Nakonec jeste musıme rozdelit elementy, ktere sousedı s puvodnım elementem, jinak

by byla porusena konzistence sıte. Tyto elementy muzeme rozdelit do dvou skupin, viz

obrazek 3.5(a). Jedna skupina sousedı s prasklym elementem celou stenou. Tyto elementy,

respektive jeden element, protoze kazda stena elementu ma maximalne jednoho souseda,

rozdelıme stejne, jako praskly element, ale nevytvarıme dvojici uzlu. Jak je element rozdelen

muzeme videt na obrazku 3.5(b). Druha skupina elementu (a tech vıc byt muze) sousedı

s prasklym elementem pouze hranou. Takove elementy rozdelıme na dve casti, jak je zna-

zorneno na obrazku 3.5(c). Toto sekundarnı delenı elementu nevytvarı zadne nove uzly. Tım

predejdeme kaskadnımu delenı cele sıte a delenı elementu koncı jeho sousedech.

Pokud prasklina dorazı na okraj sıte, to znamena, ze deleny element se nachazı na okraji

sıte, je potreba duplikovat prıslusne uzly tak, aby prasklina pokracovala za hranice sıte.

Tak muze byt element oddelen od sıte a vznikajı ulomky telesa. Kvuli numericke stabilite

34

Page 43: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.1. Sıt’ ctyrstenu

(a) pred delenım (b) rovina praskliny (c) prvnı cast

Obrazek 3.5: Delenı sousednıch elementu

je potreba zohlednit jeste jednu vec. Pokud bude rovina praskliny hodne blızko nejakemu

uzlu, pak delenım vzniknou spatne podmınene elementy. To muze mıt za nasledek nestabilitu

systemu. Proto, pro male vzdalenosti roviny od uzlu, primkneme rovinu k uzlu, jako by rovina

tımto uzlem prochazela.

Po dokoncenı delenı je potreba prepocıtat vsechny ulozene parametry prıslusnych uzlu a

elementu. U uzlu je potreba prepocıtat hlavne hmotnost. U elementu je potreba prepocıtat

transformacnı matici β a matice P a V.

3.1.8 Rychlost sırenı praskliny

V predchozıch odstavcıch jsme urcili smer sırenı praskliny, ale jeste nevıme, jakou rychlostı

by se prasklina mela sırit. Delka praskliny, ktera vznikne v jednom casovem kroku, je zatım

urcena velikostı elementu v sıti. Protoze ale prasklina muze postupovat rychleji nez je pomer

velikosti elementu a casoveho kroku, tak musıme zavest jeste nejakou techniku, ktera zarucı, ze

rychlost sırenı praskliny bude nezavisla na velikosti elementu, ani na velikosti casoveho kroku.

Pokud bychom tento problem nebrali v uvahu, pak mohou v telese vzniknout nezadoucı efekty,

jako je skokove vytvarenı prasklin, nebo vibrace v okolı rozdeleneho uzlu.

K vyresenı tohoto problemu je pouzita heuristika, ktera urcuje rezidualnı propagaci pras-

kliny. Pokud by casovy krok byl nekonecne maly, tak by prasklina vznikla presne ve chvıli,

kdy v+ = τ . Protoze je casovy krok konecny, tak prasklina nastava ve chvıli, kdy v+ ≥ τ ,

Takze v uzlu zustava nejaky zbytek v∗ = v+ − τ . Tato heuristika distribuuje tento zbytek

do nove vytvorenych uzlu v okolı praskliny. Obrazek 3.6 tuto situaci schematicky ilustruje.

Do vypoctu je tento zbytek zahrnut takto. Mame uzel se separacnım tenzorem ς a zbytkem

v∗, ktery praskne podle roviny s normalou n+. Modifikujeme separacnı tenzor uzlu podel

praskliny na tenzor ς ′ podle nasledujıcıho vztahu

ς ′ = ς +α

nm(n+) v∗ , (3.42)

kde n je pocet uzlu podel praskliny, ktere jsou spojeny hranou s uzlem, ktery prasknul a

35

Page 44: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.2. Sıt’ spojenych elementu

(a) pred prasknutım (b) po prasknutı

Obrazek 3.6: Rezidualnı propagace

α ∈ 〈0, 1〉 je koeficient, ktery urcuje jak hodne se prasklina sırı. Vetsı hodnoty α jsou pro

krehke materialy, jako je sklo, polystyren, a podobne, ktere praskajı hodne, kdezto male

hodnoty α jsou pro tvarne materialy, ktere praskajı mene.

3.2 Sıt’ spojenych elementu

Tuto metodu predstavili Jeffrey Smith, Andrew Witkin a David Baraff v roce 2000 a je

popsana v [8]. Oproti metode popsane v predchozım textu pouzıva sıt’ ctyrstenu, ktere

jsou mezi sebou svazany omezujıcımi podmınkami. Schematicke znazornenı dvou sousednıch

ctyrstenu je na obrazku 3.7. Tyto spoje mezi elementy nejsou pruzne. Proto tato metoda

nepocıta deformace a hodı se na praskanı takovych materialu, ktere se prılis nedeformujı.

Takovym typickym materialem je naprıklad sklo.

Pred vypoctem je potreba zjistit, ktere elementy spolu sousedı a mezi nimi vytvorit spoj.

Protoze spoje jsou vytvareny mezi tezisti elementu, musıme jeste vypocıtat stred hmoty ele-

mentu. Teziste muzeme vypocıtat tak, ze nejprve vypocıtame teziste jedne strany. Teziste

elementu pak lezı v jedne tretine usecky z teziste strany a poslednıho vrcholu. Spoje mezi

elementy jsou vytvorene jako pevne a majı hranici pevnosti. Po prekrocenı hranice zatızenı

spoje je spoj zrusen a mezi elementy vznika prasklina. Hranice pevnosti spoje nenı konstantnı

pro vsechny elementy, ale je urcena jako kombinace objemu spojovanych elementu a plochy

steny, kterou tyto dva sousednı elementy sdılejı. Tato provazanost mezi geometriı objektu

a hranicı pevnosti je potrebna pro realistickou simulaci. Vyslednou simulaci muzeme take

ovlivnit aplikacı nejake funkce na hodnotu hranice pevnosti. Muzeme pak nasimulovat ani-

zotropnı material, nebo jine specialnı chovanı materialu. Autori uvadejı, ze obdrzeli velmi

dobre vysledky po aplikaci sumovych a turbulentnıch funkcı. Vysledek vypoctu tedy velmi

zavisı na volbe hranice pevnosti jednotlivych spoju.

Vlastnı vypocet probıha tak, ze pro kazdy spoj vypocıta hodnotu vnitrnı sıly a porovnava

36

Page 45: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.2. Sıt’ spojenych elementu

spojenı elementu

teziste

Obrazek 3.7: Spojenı elementu

velikost sıly s hranicı pevnosti. Pri prekrocenı hranice je spoj zrusen a tak vznika prasklina.

Vystupem jednoho kroku je tedy opet sıt’ elementu a spoju mezi nimi. Ty jsou parametry

vypoctu v prıpadnem dalsım kroku, i kdyz tato metoda pracuje i v jednom kroku a vsechny

praskliny jsou vypocıtany najednou.

3.2.1 Vypocet prasklin

Autori v [8] formulujı zakladnı problem vypoctu sil, ktere pusobı na tuhe spoje jako jedno

resenı zjednodusenych Lagrangeovych multiplikatoru do nasledujıcı rovnice

JWJT~λ = −JWQ , (3.43)

kde W je inverznı matice hmoty a Q je globalnı vektor vnejsıch sil. Ten popisuje jaka sıla

pusobı na ten ktery element v prubehu narazu. Matice J je definovana jako

J =∂C∂p

, (3.44)

kde C je vektor funkcı spoju. Pro kazdemu spoji v systemu prıslusı jedna funkce ve vektoru C.

Hodnota pro jeden spoj je nulova, kdyz je spoj nezatızeny a nenulova v ostatnıch prıpadech.

Pokud chceme do systemu pridat nejake pocatecnı zatızenı, pak modifikujeme vztah (3.43).

Pocatecnı nastavenı vektoru C nebude nulove, ale budou v nem nejake nenulove polozky.

Rovnice (3.43) pak bude vypadat nasledovne

JWJT~λ = −JWQ− kC , (3.45)

kde k je nejaky normalizacnı koeficient. Slozky vektoru spoju jsou definovany jako rozdıl

vzdalenostı tezist’ a delky spoje, ktera se vypocıta jen na pocatku vypoctu. Matematicky

vztah pro vypocet vektoru spoju je tedy takovyto

Ci(pa,pb) = ‖pa − pb‖ − di , (3.46)

kde pa a pb jsou polohy tezist’, ktere spoj spojuje a di je delka spoje i.

37

Page 46: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.2. Sıt’ spojenych elementu

Vektor ~λ najdeme vyresenım rovnice (3.43). Ten obsahuje velikosti sil, ktere pusobı na

spoje. Pouzijeme jej k urcenı, ktery spoj zrusıme, pokud je sıla na spoj vetsı, nez jeho pevnost.

Nutno poznamenat, ze spoje v krehkem materialu vydrzı osmkrat vetsı sılu v tlaku, nez v tahu

a to musıme zohlednit pri rozhodovanı jestli spoj zrusıme.

Kdyz zname vektor ~λ, tak muzeme spocıtat vektor Q, ktery popisuje sıly, ktere pusobı na

kazde teziste elementu, v reakci na sıly Q

Q = JT~λ . (3.47)

Hodnota vektoru Q spolu s vektorem vnejsıch sil Q dohromady davajı velikost celkove sıly,

ktera pusobı na element. Tato sıla muze byt pouzita pro dalsı vypocet po vzniku praskliny,

naprıklad k simulaci odletavajıcıch fragmentu telesa, nebo jako vstup pro dalsı kroky simulace.

Rovnice, kterou resıme, tedy

JWJT~λ = b (3.48)

ma pro dane b nekolik resenı ~λ, ktere rovnici splnuje. Ale to jeste neznamena, ze jakekoliv

resenı je fyzikalne realizovatelna kombinace vnitrnıch sil na spoje. Resenı, ktera nam vyhovujı

majı jistou strukturu. Protoze spoje mezi elementy jsou tuhe, tak sıly, ktere jsou vytvareny

nejakym posunem elementu δp, mohou jedine vzrustat. Tyto posuny odpovıdajı tahovym

sılam na spoje ~λ = Jδp. Muzeme tedy rıci, ze vsechny fyzikalne vyhovujıcı resenı, pro nejake

posunutı δp, mohou byt zapsany jako

~λ = Jδp .

Jinak receno, vektor ~λ se musı nachazet ve sloupcovem prostoru matice J a tım padem take

ve sloupcovem prostoru matice JWJT, nehlede na to, ze musı mıt stejnou dimenzi. Resenı

rovnice (3.48) ~λ, ktere lezı ve sloupcovem prostoru matice JWJT, je take optimalnı resenı a

protoze linearnı rovnice ma pouze jedno optimalnı, pak metodou, kterou vypocıtame jedno

optimalnı resenı, dostaneme take fyzikalne spravne resenı.

Autori k resenı pouzıvajı metodu vazanych gradientu. Vıce se o teto metode muzeme

dozvedet v [7], nebo v [5]. Tato numericka metoda hleda optimalnı resenı. Nejenom, ze tato

metoda dava spravne resenı, ale vyuzıva rozptylenosti matice JWJT k rychlejsımu nalezenı

resenı.

Simulace narazu muze byt vypoctena v jedinem kroku nalezenım vektoru Q. Pokud ale

chceme pokracovat ve vypoctu, naprıklad simulacı systemu po odtızenı, nebo simulacı po-

maleho zatezovanı, muzeme vypocet rozlozit do nekolika kroku. Tımto zpusobem muzeme

simulovat beh casu. Cas potrebny k vyvazenı sil v materialu je mnohokrat mensı, nez prubeh

narazu, a tak muzeme casove kroky rozdelit do mensıch bez ztraty moznosti nalezt resenı.

38

Page 47: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.2. Sıt’ spojenych elementu

Autori uvadejı 50 kroku jako optimalnı pocet. Vetsı pocet kroku je zbytecne narocny, bez

viditelneho zlepsenı.

U krehkych materialu je energie, potrebna k vytvorenı praskliny, podstatne vetsı, nez

energie potrebna k rozsırenı jiz existujıcı praskliny. To je take duvod, proc se sklo rozlomı

do nekolika velkych kusu a ne do mnoha malych kousku. Abychom podporili zvetsovanı jiz

existujıcıch prasklin, musıme modifikovat algoritmus. Po odstranenı spoje, ktery nevydrzel

napetı, snızıme pevnost okolnıch spoju, takze v dalsım kroku mnohem snadneji prasknou.

Jednou moznostı, jak snızit pevnost okolnıch spoju, je snizovanı az dvakrat podle nasledujıcıho

vztahu

sinew = si

old

(1− 1

2sin(2Θ +

π

2

)),

kde Θ ∈ 〈−π2 ,

π2 〉 je uhel mezi prasklym spojem a sousednım i-tym spojem. Promenne si

old,

resp. sinew je pevnost v predchozım kroku, resp. nova pevnost spoje.

3.2.2 Vypocet rychlostı a pozic

Ze sıly Q, ktera pusobı v mıste narazu a z hmotnostı elementu muzeme vypocıtat jejich

vysledne linearnı a uhlove rychlosti. Pro dany bod i platı

~pi = ~vi + ~ωi × ~pi , (3.49)

kde ~pi je rychlost bodu, ~vi je prıma linearnı rychlost bodu, ~ωi je uhlova rychlost bodu a ~pi

je pozice bodu. Takze pokud mame teleso slozene ze trı, nebo vıce elementu s tezisti ~p0, ~p1,

~p2, . . . , ~pn, muzeme vyresit nasledujıcı soustavu rovnic pro prımou rychlost ~vsolid a uhlovou

rychlost ~ωsolid telesa

I −p∗0I −p∗1I −p∗2...

...

I −p∗n

(~vsolid

~ωsolid

)=

~p0

~p1

~p2...

~pn

, (3.50)

kde I je jednotkova matice 3 × 3, ~vsolid a ~ωsolid je prıma a uhlova rychlost telesa a ~p0, . . . ,

~pn jsou rychlosti jednotlivych elementu a p∗ jsou matice vektoroveho soucinu ve tvaru

p∗ =

0 −pz py

pz 0 −px

−py px 0

.

Pomocı tohoto vztahu muzeme vypocıtat rychlost pevneho telesa. To ale znamena, ze pokud

chceme pocıtat rychlosti jednotlivych ulomku, musıme tento vztah pouzıt pro kazdy element

zvlast’.

39

Page 48: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.3. Praskanı povrchu

vnejsı vrstva

vnitrnı vrstva

Obrazek 3.8: Vrstvy modelu

3.3 Praskanı povrchu

Metoda, kterou spolecne zverejnili Koichi Hirota, Yasuyuki Tanoue a Toyohisa Kaneko v [3],

nenı urcena pro simulaci trojrozmernych prasklin, neboli pro destrukci telesa, ale pro si-

mulaci povrchoveho praskanı. Takove praskanı muzeme aplikovat naprıklad na vysychanı

bahna, nebo jakekoli rozpınanı, ci kontrakci telesa, naprıklad vlivem teploty. Tato metoda

nenı zalozena na FEM, jako predchozı metody. Dıky tomu muze byt velmi rychla.

V teto metode je pro vypocet pouzita sıt’ elastickych pruzin, ktere spojujı elementy.

Napınanı pruzin simuluje vnitrnı napetı v materialu a prasklina vznikne prekrocenım pevnosti

pruziny a jejım naslednym prerusenım. Protoze vetsina prasklin vznika na povrchu objektu,

probıha simulace praskanı pouze na povrchu telesa. Dıky tomu ma tato metoda nızke naroky

na vypocetnı sılu pocıtace. Na druhou stranu touto metodou nelze simulovat destrukci telesa.

Teleso je rozdeleno na dve vrstvy (viz obrazek 3.8). Jednak na vnitrnı vrstvu, ktera dıky

pusobenı vnitrnıch sil praska, a na vnejsı vrstvu, kde praskliny nevznikajı. Vnejsı vrstva je

rozdelena na male elementy a jednotlive elementy jsou propojeny se sousednımi z vnitrnı vr-

stvy. Take v ramci vnejsı vrstvy jsou mezi sebou elementy propojeny. V tomto pruzinovem

modelu jsou elementy reprezentovany uzly. Propojenı mezi sousednımi elementy je repre-

zentovano pruzinami. Propojenı s elementy z vnitrnı vrstvy je reprezentovano smykovymi

pruzinami. Schematicke zobrazenı obou typu pruzin je na obrazku 3.9. Svisle pruziny zna-

zornujı smykove pruziny. Ostatnı znazornujı pruziny mezi sousednımi elementy ve vnejsı vr-

stve. Body na koncıch pruzin jsou teziste jednotlivych elementu vnejsı vrstvy. Prıcina vzniku

praskliny je zmena fyzikalnıch parametru telesa, jako je treba kontrakce pri vysychanı po-

vrchu. Postupna kontrakce povrchu telesa je realizovana jako zmensovanı nezatızene delky

pruzin.

Simulace probıha ve dvou fazıch. V prvnı fazi jsou vypocıtavany polohy a rychlosti uzlu.

V teto fazi je pouzita casova konstanta τ . V druhe fazi jsou vycısleny kontrakce a expanze

materialu. Pritom je pouzita casova konstanta T . Pritom platı, ze T > τ .

40

Page 49: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.3. Praskanı povrchu

m

h

k

Obrazek 3.9: Typy pruzin ve vrstvach

3.3.1 Inicializace

Prvnım krokem simulace je samozrejme inicializace. V te jsou vypocıtany fyzikalnı a geomet-

ricke konstanty, ktere jsou dany parametry materialu a simulace. Pred zacatkem simulace jsou

dany nasledujıcı konstanty. Material definuje hustota materialu ρ, Younguv modul pruznosti

E a modul pruznosti ve smyku G. Pruziny ovlivnujı konstanty κ, coz je prumerna hodnota

maximalnıho povoleneho napetı, σ2, ktera vyjadruje rozptyl maximalnıho povoleneho napetı

na plochu a H, coz je hloubka vnejsı vrstvy elementu. Dalsı parametry ovlivnujı presnost

vypoctu. Patrı k nim T a τ , jako casove kroky, γ je kontrakce vnejsı vrstvy v ramci jednoho

casoveho intervalu T a δx vyjadrujıcı unosnou chybu pozice uzlu.

Pomocı techto koeficientu muzeme vypocıtat ostatnı koeficienty a inicializovat promenne.

Nejdrıve vypocıtame koeficienty pruzin kij a koeficienty smykovych pruzin hij podle nasledu-

jıcıch vztahu

kij =Aij

Lij(3.51)

hi =BiG

H, (3.52)

kde Aij je plocha steny mezi dvema prıslusnymi elementy i a j ve vnejsı vrstve, Bi je plo-

cha mezi elementem i ve vnejsı vrstve a prıslusnym elementem ve vnitrnı vrstve a Lij = l0ij

je vzdalenost tezist’ krajnıch elementu pruziny v nezatızenem stavu v case t = 0. Situaci

znazornujı obrazky 3.10 a 3.11.

Maximalnı napetı, ktere pruzina mezi elementy i a j, vydrzı je definovana takto

κij = κ+σ√Aij

Gauss() , (3.53)

kde Gauss() je funkce, ktera generuje normalizovana nahodna cısla, ktera majı Gaussovo

rozdelenı. Hmotnost uzlu mi se vypocıta jako soucin hustoty materialu ρ a objem BiH.

Do vypoctu je jeste zahrnuto trenı. Dıky nemu je pohyb uzlu stabilnı. Koeficient trenı c se

41

Page 50: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.3. Praskanı povrchu

Lij

Aij

(a) bez zatızenı

lij

(b) se zatızenım

Obrazek 3.10: Deformace elementu tahem ci tlakem

vypocıta jako

c = 2α√kmaxmi , (3.54)

kde kmax je maximalnı hodnota konstant pruzin κij , kterou muzeme modelu nalezt. Koeficient

α ovlivnuje utlum oscilacı materialu. Podle autoru je treba tuto konstantu volit citlive, protoze

pri hodnotach mensıch nez 6 zacına byt model nestabilnı. Pri hodnotach vetsıch nez 20 se

chovanı modelu menı jen malo. Proto je tato konstanta nastavena na zhruba 20.

3.3.2 Vypocetnı smycka

Smycka delsıho casoveho kroku T probıha, pokud jsou vsechny uzly stabilnı a sıly, kterymi

na ne pusobı pruziny, jsou v rovnovaze. Rovnovaha sil nastane tehdy, kdyz je soucet sil, ktere

na uzel pusobı je nulovy. Pred vypoctem je definovana konstanta, ktera vyjadruje maximalnı

velikost sıly, ktera je jeste v rovnovaze. Tato konstanta δF se vypocıta jako

δF = kminδx , (3.55)

kde kmin je nejmensı hodnota konstant vsech pruzin v modelu. Vysychanı vnejsı vrstvy je

simulovana zmensovanım delky pruziny v nezatızenem stavu. Pomer nove a stare nezatızene

delky pruziny r v case t se vypocıta podle nasledujıcıho vztahu

r(t) = γt/T . (3.56)

Sıla Fi, ktera pusobı na uzel i, je definovana jako soucet sil jednotlivych pruzin, ktere jsou

k uzlu pripojeny a smykove sıly

Fi =∑

j

kijxi − xj

|xi − xj |(|xi − xj | − Lij)− hi (xi −Xi) , (3.57)

42

Page 51: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.3. Praskanı povrchu

H

Bi

(a) bez zatızenı

di

(b) se zatızenım

Obrazek 3.11: Deformace elementu smykem

kde xi a Xi jsou pozice tezist’ vnejsıho a vnitrnıho elementu a xj je pozice teziste sousednıho

elementu ve vnejsı vrstve. Lij je delka pruziny mezi elementy i a j v nezatızenem stavu.

Model je ve stabilnım stavu pokud jsou sıly pusobıcı na uzly mensı nez δF . V tomto stavu

se provadı vypocet posunutı uzlu. Posunutı uzlu i je vypocıtano podle nasledujıcıch vzorcu

vt+τi = vi +

(vi −

Fi

c

)(e−

cmi

τ − 1)

(3.58)

xt+τi = xi −

mi

c

(vi −

Fi

c

)(e−

cmi

τ − 1)

+Fi

cτ , (3.59)

kde xt+τi a vt+τ

i je pozice a rychlost i-teho uzlu v dalsım casovem intervalu.

Pruzina praskne ve chvıli, kdyz zacne platit

lijLij

> κij .

Prerusenı praskliny muze byt implementovano tak, ze se nastavı koeficient pruziny na 0.

Predpokladame, ze smykove pruziny prasknout nemohou.

Pro simulaci muzeme pouzıt ruzne topologicke usporadanı propojovacıch pruzin. Toto

usporadanı ovlivnuje tvar vytvarenych prasklin. Topologicke usporadanı je vlastne dano

zpusobem, kterym delıme vrstvy do elementu. Nejjednodussı je pouzıt delenı na ctverce,

ci sestiuhelnıky. Sıt’ ctvercu je pruzinami propojeno se ctyrmi sousedy. Pokud jako zakladnı

element pouzijeme sestiuhelnıky, bude kazdy element k sousedum pripojen sesti pruzinami.

Na obrazku 3.12 je videt rozdıl mezi usporadanım do tetragonalnı a do hexagonalnı sıte.

Sırka trhliny je urcena jako rozdıl delek nezatızene a zatızene pruziny pred prasknutım.

43

Page 52: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 3. Metody simulace 3.3. Praskanı povrchu

(a) tetragonalnı sıt’ (b) hexagonalnı sıt’

Obrazek 3.12: Topologie sıte

Predpokladame, ze prasklina vznika ve stredu spoje. V prıpade, ze okolnı pruziny jeste

nepraskly, umıstıme konce praskliny do stredu okolnıch bodu. Pokud jiz sousednı pruziny

praskly, spojıme prasklinou jejich stredy. Pokud se protına vıce prasklin, umıstıme jejich

prusecık do stredu bodu.

Pokud budeme porovnavat tetragonalnı a hexagonalnı modely, zjistıme, ze sıt’ zalozena

na ctvercıch ma sklon generovat rovnobezne s mrızkou a vytvarı vıce malych nespojenych

prasklin. Oproti tomu sıt’ zalozena na sestiuhelnıcıch generuje vıce izotropnı vzory prasklin.

Tento rozdıl je zpusoben faktem, ze v tetragonalnı sıti nevznikajı smykove sıly ve vnejsı vrstve.

Pro simulaci je tedy vhodnejsı hexagonalnı sıt’.

Zmenou materialovych parametru E aGmuzeme ovlivnit hustotu prasklin. Pokud budeme

simulovat material, ktery nenı izotropnı, majı praskliny v ruznych smerech ruzne chovanı.

Toho muzeme docılit tak, ze tuhost pruzin nebude ve vsech smerech stejna, ale bude se se

smerem menit. Takove chovanı materialu je podobne naprıklad praskanı stromove kury.

44

Page 53: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4

Popis implementace

Nezanedbatelnou castı teto prace je implementace O’Brienovy metody simulace praskanı a

rozlamovanı objektu. Cely program je napsan v jazyce C++ a je primarne urcen pro operacnı

system Linux. Je ale napsan tak, ze jde prelozit i pod operacnım systemem Microsoft

Windows, i kdyz jen s omezenou funkcnostı.

Navaznost prekladu programu a systemu, v Linuxu, zajist’ujı softwarove balıky AutoConf

a AutoMake. Dıky nim je preklad pomerne jednoduchy, protoze konfiguraci knihoven a

prekladace zajist’ujı prave tyto pomocne programy. Podrobnejsı informace o prekladu lze

nalezt prımo v archıvu programu v souboru INSTALL.

Abychom mohli program prelozit a nasledne i spustit, potrebujeme mıt nainstalovanou

knihovnu SDL (viz http://www.libsdl.org/). Ta je vyuzıvana k zobrazovanı modelu pres

OpenGL. Pokud chceme nacıtat modely komprimovane programem GZip, musıme mıt jeste

nainstalovanou knihovnu ZLib (viz http://www.gzip.org/zlib/). Ta ale nenı povinna a pri

kompilaci v Linuxu je zapınana automaticky. Pri prekladu pod Windows je potreba upravit

podmınky prekladu. Program podporuje vystup do nekolika formatu. Jednım z nich je vystup

do rastrovych obrazku ve formatu BMP. Obrazky jsou ukladany pres funkce z knihovny SDL,

takze funguje pod Linuxem i pod Windows. Hlavnım vystupem je vystup do videa ve formatu

MPEG. Kodovanı do tohoto formatu zarizuje knihovna FFMPEG, kterou muzeme najıt na

adrese http://ffmpeg.sourceforge.net/. Tato knihovna je soucastı projektu a preklada se

do staticky pripojovane knihovny. Tuto knihovnu ale nelze prelozit pro operacnı system Win-

dows, takze vystup do MPEGu je podporovan pouze v Linuxu. Pokud mame nainstalovanou

knihovnu libquicktime, muzeme zapnout vystup do formatu Apple QuickTime. Vystup

do tohoto formatu je ale opet podporovan pouze v Linuxu. Tuto knihovnu najdeme na adrese

http://libquicktime.sourceforge.net/.

Program se sklada z nekolika celku. Jednou z nich je hlavnı cast, ktera se stara o inicializaci,

nacıtanı modelu a udalosti klavesnice. Hlavnım ucelem teto trıdy je ale zobrazovanı dat a

45

Page 54: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.1. Hlavnı cast

spoustenı vlastnıho vypoctu. Dalsı castı je vlastnı model. Ten reprezentuje elementy a uzly

modelu. Poslednı a nejdulezitejsı je cast, ktera se stara o vlastnı vypocet.

4.1 Hlavnı cast

Tato cast se sklada z nekolika trıd. Jednou takovou trıdou je CMain. Jak uz nazev napovıda,

jedna se o hlavnı trıdu. Tato trıda zajist’uje inicializaci programu, inicializaci vsech knihoven

pro vystup, inicializaci grafickeho vystupu na obrazovku a OpenGL a obsluhu udalostı od

uzivatele. Take implementuje hlavnı smycku programu.

4.1.1 Inicializace

Rozhranı teto trıdy je velmi jednoduche. Jednou funkcı rozhranı je funkce na inicializaci. Tuto

funkci zastava konstruktor. Ten zajist’uje nactenı konfigurace, kteremu se budeme venovat

pozdeji, inicializaci knihovny SDL a nastavenı okna pro zobrazovanı. Pritom pro toto okno

zapına podporu OpenGL. Konfigurace OpenGL je umıstena do zvlastnı funkce. Tam jsou

nastaveno stınovanı, z-buffer, svetlo a take je nastavena projekcnı matice. Dale inicializace

pokracuje nactenım souboru ve kterem jsou ulozeny vlastnosti materialu. Tento soubor za-

pouzdruje zvlastnı trıda. Pote nasleduje inicializace video vystupu. Kazdy vystup do souboru

je inicializovan jen tehdy, kdyz je povolen. Takze inicializujeme knihovnu pro MPEG soubory

FFMPEG. Pritom alokujeme pamet’ pro uchovavanı aktualnıho obrazu. Pak pokracuje inicia-

lizace knihovny pro QuickTime. Ta pouzıva na vstupu jiny format, nez FFMPEG, takze ma

svuj specialnı buffer pro obraz. Poslednı je inicializace bufferu pro vystup do BMP. Kdyz je

nainicializovan vystup, tak nacteme soubory s modely. Nejdrıve nacteme model, ktery budeme

simulovat, pak model okolnı podpory modelu. Ta slouzı k interakci okolı s hlavnım modelem.

Tento model je nepohyblivy a ani se nedeformuje. Poslednım nacıtanym modelem je model

projektilu. Tento projektil pak bude zpusobovat deformace a rozlamovanı hlavnıho modelu.

Zbyva uz jen nainicializovat vypocetnı system.

4.1.2 Hlavnı smycka

V hlavnı smycce je cela scena zobrazena, spoustı se jednotlive vypocetnı kroky a obsluhujı

udalosti od uzivatele. Tuto cinnost obsluhuje metoda Run a dalsı pomocne funkce. Metoda

Run provadı smycku, ktera se sklada ze trı castı a to ze zobrazenı, provedenı vypocetnıho

kroku a obsluhy udalostı. Protoze vypocet jednotlivych kroku probıha v radu milisekund az

mikrosekund a zobrazenı stavu vypoctu se deje kazdych zhruba deset az sto milisekund, tak

vypocet probıha v kazdem pruchodu smyckou, kdezto zobrazenı probıha jednou za nekolik

iteracı. Pomer mezi poctem vypoctenych a zobrazenych kroku udava framerate videa a casovy

46

Page 55: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.1. Hlavnı cast

krok simulace. Kazdy pruchod smyckou je aktualnı cas simulace inkrementovan o urcitou

konstantu, neboli o casovy krok simulace. Pokud je aktualnı cas vetsı, nez cas, ve kterem se

ma zobrazit snımek, provedeme zobrazenı. Tato metoda ma sice nevyhodu v male nepresnosti,

ale tato nepresnost nenı vetsı nez velikost casoveho kroku. Navıc ma tato metoda vyhodu

v tom, ze hodnota framerate a casoveho kroku jsou nezavisle. Vypocet jednotlivych kroku

zajist’uje jina trıda, takze kazdy krok je vypocten zavolanım jiste metody trıdy pro vypocet.

Zobrazenı ma na starosti metoda RenderScene. Ta nejdrıve vycistı buffery OpenGL a

nastavı polohu kamery, respektive nastavı transformace modeloveho souradneho systemu

OpenGL. Take nastavuje pozici svetla ve scene. Pote vola funkci na zobrazenı kazdeho mo-

delu. Tato funkce se jmenuje RenderMesh a jako parametr ma model, ktery prave zobrazuje.

Metoda RenderMesh umı zobrazovat model nekolika zpusoby. Jednak umı zobrazit model

jako soubor plosek, tedy jako vyplnene teleso, nebo jako dratovy model. Kazdy tento zpusob

ma jeste tri moznosti. Muzeme zobrazit material telesa, tedy tak jak ho vidıme v realnem

svete, nebo muze zobrazovat hodnoty deformace jednotlivych elementu, nebo zobrazuje ve-

likosti tahovych sil na uzly. Poslednı dve metody zobrazujı hodnoty jako barevne spektrum,

kde zelena je nejnizsı, nebo nulova hodnota a cervena je kriticka hodnota. Pritom pri defor-

macıch je hranicnı hodnota uroven, pri ktere se jiz material zacına deformovat plasticky. Pri

zobrazenı tahovych sil je cervena hodnota hranicı, pri ktere material v uzlu selze. Po zobra-

zenı modelu je cely obsah obrazove pameti ulozen do bufferu, prıpadne zpracovan a ulozen do

vystupnıch souboru. Pri ukladanı do rastrovych obrazku musıme provest vertikalnı preklopenı

obrazu (kvuli tomu, ze OpenGL ma vertikalnı souradnou osu prevracenou, nez funkce SDL

pro ukladanı obrazu). Pri ukladanı pres FFMPEG musıme obraz prevest z RGB do YUV.

K tomu slouzı zvlastnı funkce, kterou nebudeme rozebırat, protoze bychom si museli vysvetlit

i cely format YUV. Pro zapis do QuickTime videa musıme obraz take otocit, ale navıc funkce

pro kodovanı chtejı obrazove data usporadany do pole radku.

Kazdy pruchod hlavnı smyckou jsou take obslouzeny udalosti od uzivatele. Tyto udalosti

jsou v SDL organizovany do fronty. Vybıranı udalostı z fronty a volanı prıslusne obsluhy

ma na starosti metoda ProcessEvents. Ta obsahuje smycku, ktera se provadı dokud nenı

fronta udalostı prazdna a podle typu udalosti je zavolana prıslusna obsluzna funkce. Pro

podrobnejsı popis mechanizmu udalostı a funkcı na obsluhu fronty udalostı bych odkazal

ctenare na dokumentaci ke knihovne SDL, kde jsou prıslusne struktury a funkce podrobne

popsany. V programu jsou obslouzeny udalosti z klavesnice, udalosti mysi a systemova udalost

SDL QUIT, ktera slouzı k ukoncenı vypoctu a tım i celeho programu. Udalosti mysi jsou ob-

slouzeny prımo ve funkci ProcessEvents. Mysı muzeme ovladat natocenı sceny.

Udalosti klavesnice jsou obslouzeny ve funkci HandleKeyDown. Podle stisknute klavesy se

provedou prıslusne akce. Tlacıtky Escape, nebo q ukoncıme provadenı programu. Sipkami na-

47

Page 56: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.1. Hlavnı cast

horu a dolu muzeme menit vzdalenost kamery od stredu modelu. Mezernıkem pak spoustıme,

ci zastavujeme vypocet. Nutno poznamenat, ze po spustenı programu je vypocet automa-

ticky spusten. Klavesou c menıme zpusob zobrazenı objektu. Opakovanym stiskem klavesy

se prepıname mezi zobrazenım materialu, deformacı a pevnosti. Klavesou r prepıname mezi

zobrazenım dratoveho a vyplneneho modelu.

4.1.3 Konfigurace

Nastavenı programu muzeme ovlivnit konfiguracnım souborem. Ten je nacıtan pri iniciali-

zaci trıdy CMain a je zapouzdren ve trıde CConfig. Tato trıda obsahuje mnoho promennych,

kterymi ovlivnujeme beh programu. Do techto promennych jsou nacıtany hodnoty z konfi-

guracnıho souboru. Ten ma velice jednoduchy format. Je textovy a kazda polozky je zapsana

na samostatnem radku. Kazda promenna je zapsana ve formatu promenna = hodnota. Pritom

pocet mezer nenı podstatny, protoze jsou ignorovany. Pokud polozka obsahuje textovou hod-

notu, muzeme hodnotu uzavrıt do uvozovek a tım program donutıme, aby mezery neignoro-

val. Do souboru take muzeme zapisovat komentare. Zbytek radku od znaku # je bran jako

komentar. Dalsı ignorovanou polozkou jsou oznacenı sekcı. Ty jsou uzavreny do hranatych

zavorek. Kazda polozka ma tedy sve jednoznacne jmeno. Jmena polozek ale nejsou citliva na

velikost pısmen.

V konfiguracnım souboru muzeme menit mnoho vlastnostı programu. Ten je totiz puvod-

ne koncipovan tak, ze vubec nemel byt reagovat na ovladanı uzivatele a vsechny parametry

vypoctu jsou nastaveny pred spustenım. Protoze pocet moznych polozek je pomerne velky,

odkazuji zajemce na na soubor example.cfg, prıpadne na zdrojove soubory trıdy CConfig,

kde je ukazan prıklad pouzitı jednotlivych polozek.

Pri nacıtanı souboru je nejdrıve vsem promennym nastavena vychozı hodnota pro prıpad,

ze by v konfiguracnım souboru nebyla uvedena. Pote jsou cteny jednotlive radky souboru. Ty

jsou upraveny tak, ze se z nich odstranı komentare a mezery. Pak jsou rozdeleny na jmeno

promenne a jejı hodnotu. Podle jmena je hodnota prirazena prıslusne promenne trıdy.

4.1.4 Materialovy soubor

Obsluhu materialu ma na starosti trıda CMaterialFile. Soubor, v nemz jsou uvedeny pa-

rametry jednotlivych materialu ma podobny format, jako soubor konfiguracnı. Rozdıl ale je,

ze nazvy sekcı nejsou ignorovany a oznacujı jmeno materialu. Materialy jsou tedy cteny do

pole specialnıch struktur CMaterial. Tato struktura ma polozky pro jmeno materialu, pro

parametry zobrazenı jako je hodnota ambientnı, difuznı, odrazova a mıra odrazu a hodnoty

fyzikalnı jako Lame konstanty, tlumıcı konstanty, hustotu, pevnost a mıru rezidualnı pro-

48

Page 57: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.2. Obsluha modelu

pagace. Trıda CMaterial obsahuje jeste metody pro nastavenı materialu pro zobrazenı a

operator prirazenı.

Trıda CMaterialFile obsahuje, krome funkcı pro ctenı souboru, ktere pracujı obdobne

jako funkce ve trıde CConfig, metodu pro hledanı materialu podle jmena a metodu pro

nastavenı materialu v HSL barevnem modelu, ktera se pouzıva pri zobrazenı deformacı, ci

pevnosti.

4.1.5 Ostatnı

Do teto casti programu patrı jeste nekolik pomocnych trıd a globalnıch funkcı. Mezi trıdy patrı

zejmena trıda CInFile. Ta zajist’uje transparentnı praci se soubory pri zapnute podpore kom-

prese i bez komprese. Protoze je urcena pro ctenı textovych souboru (at’ uz komprimovanych,

nebo nezabalenych), obsahuje, krome metod pro otevıranı a zavıranı souboru, metodu pro

ctenı radky ze souboru.

Mezi pomocne funkce patrı funkce pro konverzi barevnych modelu (z RGB do YUV). Ta

se jmenuje RGB24toYUV420 a jak uz vyplyva z nazvu, konvertuje obrazova data z RGB24

do YUV420. Dalsı funkcı, ktera provadı upravy obrazu, je funkce FlipImage. Ta prevracı

obrazek podle horizontalnı osy. Dalsı funkcı konverze mezi barevnymi modely je HSL2RGB. Jak

uz nazev napovıda, jedna se o funkci, ktera prevadı data v barevnem modelu HSL do RGB.

Ta ale nesouzı ke konverzi celeho obrazku, ale pouze prevadı jednu hodnotu. a je vyuzita pri

zobrazovanı. Dalsı funkce jsou prıtomny pouze kvuli rozdılnosti operacnıch systemu Linux a

Windows. Mezi ty patrı funkce FileExists, ktera vracı true, pokud soubor, ktery je jejım

parametrem, existuje.

4.2 Obsluha modelu

Dalsı cast programu se venuje sprave modelu. Trıda CMeshFile poskytuje rozhranı k celemu

modelu. Tato trıda se stara o nacıtanı modelu a obsahuje vlastnı data modelu. Vnitrne jsou

data reprezentovana jako dynamicke pole specialnıch trıd. Pro uzly je to trıda CNode. Tato

trıda obsahuje vsechna potrebna data uzlu jako je pozice uzlu ve svetovych souradnicıch,

pozice uzlu v materialovych souradnicıch, rychlost a zrychlenı uzlu ve svetovych souradnicıch.

Dale obsahuje vektory sil, ktere na uzel pusobı, separacnı tenzor ς a jeho vlastnı cısla a

vektory. Poslednı polozkou, ktera prımo souvisı s vypoctem, je hmotnost uzlu. Obdobna trıda

CVolume udrzuje data kazdeho elementu. Krome indexu prıslusnych uzlu, normal na jednotlive

steny a indexu sousednıch elementu obsahuje matice poloh a rychlostı uzlu, inverznı matici

materialovych souradnic uzlu β a promennou, ktera obsahuje objem elementu. Dalsımi daty,

ktere tato trıda obsahuje, jsou tenzory plasticke deformace εp, tenzor napetı σ a jeho tlakovou

49

Page 58: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.2. Obsluha modelu

a tahovou slozku σ− a σ+. Obe tyto trıdy majı samozrejme podpurne funkce, ktere se starajı

o prepocıtavanı potrebnych hodnot, jakymi jsou naprıklad normaly sten elementu.

Rozhranı trıdy CMeshFile je pomerne jednoduche. Krome konstruktoru, ktery se stara

o nacıtanı modelu a jeho inicializaci, v teto trıde najdeme metody pro praci s uzly a ele-

menty. Jedna skupina metod slouzı k prıstupum k jednotlivym uzlum, nebo elementum.

Druha skupina umoznuje uzly pridavat. Funkce pro odebıranı elementu neexistuje. To proto,

ze pri simulaci pouze nove elementy vznikajı, ci jsou zmeneny, ale nikdy nejsou odstranovany.

Uzly ale odstranovat potrebujeme. Kvuli rychlosti vsak nenı odstranenı realizovano fyzickym

uvolnenım pameti, ale pouze nastavenı uzlu do neaktivnıho stavu. Tento postup sice nechava

uzly v pameti, ale protoze pocet odebranych uzlu je pomerne maly (vzhledem k poctu novych

uzlu) se tato technika jevı jako vyhodnejsı.

4.2.1 Nacıtanı

Konstruktor trıdy CMeshFile slouzı k inicializaci modelu. Nejdrıve nastavı spravny material

pro model. Pote se snazı model nacıst ze souboru. Soubor je v teto trıde opet reprezen-

tovan trıdou CInFile, takze modely mohou byt komprimovany. Vlastnı ctenı provadı metoda

ReadFile. Format souboru s modelem je textovy. Kazdy zaznam je na samostatnem radku.

Prvnı radek urcuje pocet uzlu modelu. Pak nasleduje tolik radek, kolik je uzlu a na techto

radcıch jsou zapsany polohy jednotlivych uzlu. Jednotlive slozky polohoveho vektoru jsou

oddeleny mezerou. Za poslednım uzlem je zapsan pocet elementu modelu. Za touto radkou

jsou opet jednotlive elementy. Kazda radka popisuje jeden element a kazdy element je popsan

ctyrmi udaji. Prvnı z nich je pro nas nezajımave, ale ostatnı ctyri jsou podstatne. Jsou to

totiz indexy prıslusnych uzlu modelu. Ostatnı casti souboru pro nas nejsou zajımave, takze

je nebudeme popisovat. Takze ctenı modelu probıha tak, ze nejprve vytvorı pole uzlu a pak

cte elementy a prirazuje jim spravne uzly.

Protoze modely mohou obsahovat velke mnozstvı elementu a tım padem by vykreslovanı

bylo velmi pomale, je v programu zabudovan mechanizmus, ktery zarucuje vykreslovanı jen

tech elementu, ktere jsou na povrchu telesa jsou tedy videt. Nejprve ale musıme zjistit, ktere

elementy jsou na povrchu telesa. To udelame tak, ze projdeme vsechny elementy a zjistıme

jejich sousedy. Pokud element nema ctyri sousedy, tak je alespon jedna jeho strana na po-

vrchu telesa a element bude vykreslen. Protoze zjist’ovanı sousednıch elementu je pomerne

zdlouhave, umoznuje program nacıtanı informacı o sousednıch elementech z predpocıtaneho

souboru. Format tohoto souboru je obdobny formatu modelu. Prvnı radka udava pocet ele-

mentu a ostatnı radky obsahujı indexy sousednıch elementu.

V dalsı fazi nacıtanı se vynulujı, nebo spravne nastavı vsechny parametry uzlu i elementu.

Vypocıta se objem kazdeho elementu a podle hustoty nastaveneho materialu je vypoctena

50

Page 59: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.2. Obsluha modelu

Obrazek 4.1: Prekryvanı obalek uzlu stromu

hmotnost kazdeho uzlu. Take je treba vypocıtat inverznı matici materialovych souradnic a

normalove vektory sten elementu. Ostatnı polozky jsou nastaveny na nulu.

4.2.2 Binarnı strom

Pro rychlejsı vypocet kolizı je v teto casti take zabudovana stromova struktura, ktera velmi

ulehcuje vyhledavanı v modelu. Tento strom je implementovan ve trıde CBtree a je to v pod-

state modifikovany BSP strom. Modifikovany musı byt proto, ze model se sklada z ctyrstenu

a podprostor tedy nelze jednoduse rozdelit plochou. Je to ale strom binarnı, takze kazdy uzel

ma dva potomky. Zkonstruovany strom ale nemusı byt vyvazeny.

Kazdy uzel ma obalku, ktera obepına vsechny elementy v podstromu a jejı hrany jsou

rovnobezne s osami. Tato vlastnost umoznuje velmi rychlou detekci zda se zkoumany objekt

nachazı v prostoru obalky. Dalsı parametr uzlu je stred obalky. Podle tohoto stredu jsou

pak vnitrnı elementy rozdeleny do dvou skupin a delenı rekurzivne pokracuje na techto dvou

skupinach. K rozdelovanı elementu do skupin potrebujeme nejen stred, ale i rovinu, podle

ktere budou elementy roztrıdeny. Tato rovina je kolma na nejdelsı hranu obalky uzlu. Tım je

zarucena co nejlepsı vyvazenost stromu.

Postup konstrukce stromu je tedy takovy, ze nejdrıve vypocteme stred vsech elementu

v danem uzlu. Pritom pocıtame nejvetsı odchylku od stredu. Tato odchylka nam poslouzı pri

rozhodovanı, podle ktere osy budeme elementy rozdelovat. Pak rozdelıme elementy na dve

poloviny, podle toho na ktere strane rozdelovacı roviny element lezı. Pak zacneme rekurzivne

rozdelovat obe skupiny elementu. Rekurze koncı kdyz je v uzlu jeden element. Pri navratu

z vytvarenı podstromu jeste vypocıtame hodnotu obalovacıho kvadru a to tak, ze obalka

aktualnıho uzlu bude obepınat vsechny obalky potomku.

Dıky tomu se mohou obalky sousednıch uzlu prekryvat (viz obrazek 4.1). To ale znamena,

ze chybne vyhodnotıme nekolik uzlu. Nastestı je pocet techto chyb zanedbatelny a strom i tak

velmi urychluje hledanı kolizı mezi modelem a jinym objektem. Pri hledanı kolidujıcıch ele-

mentu postupujeme tedy tak, ze prochazıme strom od korene a vsechny uzly, s jejichz obalkou

objekt nekoliduje preskakujeme. Tım ale zjistıme pouze potencialne kolidujıcı elementy. Pak

jeste musıme projıt vsechny nalezene elementy a vypocıtat kolize presneji. K prohledavanı

stromu a vyhledavanı potencialnıch kolizı je urcena funkce GetPotentialCollisions. Pokud

51

Page 60: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.2. Obsluha modelu

(a) pred orıznutım (b) orıznuty mnohosten (c) po orıznutı

Obrazek 4.2: Prubeh orezavanı mnohostenu

chceme zjistit kolize mezi dvema modely, musıme pouzıt jejı pretızenou verzi, ktera vracı

specialnı strukturu CBtree::CCollisionStack, coz je zasobnık obsahujıcı vsechny dvojice

elementu z obou modelu, ktere spolu potencialne kolidujı.

Pote co zjistıme ktere elementy spolu potencialne kolidujı, musıme zjistit presne, zda spolu

opravdu kolidujı. Ke zjist’ovanı kolizı mezi dvema ctyrsteny je urcena funkce GetCollision

trıdy CBTree. Tato funkce ma jeden parametr, a sice druhy strom, se kterym kolize zjist’ujeme.

Ovsem oba stromy musejı byt listy stromu, protoze presne zjist’ovanı kolizı ma smysl jen mezi

dvema elementy. Zpusob zjist’ovanı, zda dva ctyrsteny kolidujı, je zalozena na metode uvedene

v [1]. Je to metoda, ktera je velmi rychla, takze se vyplatı vypocıtat nejprve zda spolu elementy

kolidujı a pak teprve zjist’ovat mıru teto kolize.

4.2.3 Koliznı sıly

Velikost koliznıch sil je odvozena z objemu pruniku dvou elementu. K vypoctu velikostı ko-

liznıch sil je urcena trıda CCollisionVolume. Tato trıda vypocıta mnohosten, ktery repre-

zentuje prunik elementu. Vypocet probıha tak, ze postupne orezavame jeden element stenami

druheho elementu.

Vlastnı orezanı probıha tak, ze se uzlum nastavı prıznak podle toho, na ktere strane

orezavacı roviny jsou. Pak prochazıme pres vsechny hrany mnohostenu a podle jejı polohy

vuci orezavacı rovine je bud’ odstranena, to v prıpade, ze se oba koncove body hrany nachazejı

na zaporne strane roviny, nebo je cela ponechana, kdyz jsou oba koncove body na kladne

strane, nebo je rozdelena na dve casti dalsım bodem, ktery lezı na orezavacı rovine. Zapornou

cast pak odstranıme.

Po tomto orıznutı nam zbyde torzo mnohostenu a my ho opet musıme uvest do kon-

zistentnıho stavu. To provedeme tak, ze mezi uzly, ktere lezı na orezavacı rovine hledame

dvojice, ktere jsou koncovymi body hran, ktere majı spolecnou stenu. Pak tyto uzly spojıme

hranou. Nakonec pridame jednu stenu, ktere priradıme nove hrany. Cely postup je znazornen

52

Page 61: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.3. Vypocetnı jadro

na obrazku 4.2. V prvnı casti je orezavacı plocha s mnohostenem. V druhe casti je orıznuty

mnohosten a ve tretı je novy mnohosten.

Po orezanı elementu vsemi stenami druheho elementu nam zbyde mnohosten, ktery repre-

zentuje prunik zkoumanych elementu. V dalsım kroku vypocıtame objem tohoto mnohostenu

a jeho stred. Pak z normal prıslusnych sten mnohostenu vypocıtame smer pusobenı koliznı

sıly a nakonec jednotlive vektory koliznıch sil ~f err, ~fdmp a ~f frc. Ty pak secteme a tım zıskame

celkovy vektor koliznı sıly.

4.3 Vypocetnı jadro

Tretı cast programu je implementacı vlastnıho vypoctu. O vypocet kroku se stara trıda

CSolver. Vypocet jednoho casoveho kroku je realizovan jednou metodou, ktera se jmenuje

ComputeStep. Ta obsahuje cykly pres vsechny elementy, nebo pres vsechny uzly a v kazde

smycce se vypocıta urcita cast kroku. V prvnı smycce jsou vypocıtany tenzory napetı a defor-

mace. to zarıdı funkce ComputeTensors. Tato funkce pracuje tak, jak je popsano v popisu me-

tody simulace. V dalsı smycce se vypocıtajı tahove a tlakove slozky vnitrnıch sil. A to ve funkci

ComputeFractureForces. Pak jsou prıslusne uzly rozdeleny a vytvoreny praskliny. To ob-

stara funkce ComputeFracture. Pak, s pomocı funkce ComputeInternalForces, vypocıtame

vnitrnı sıly, ktere pusobı na jednotlive uzly. V dalsı casti jsou vypocıtany koliznı sıly mezi

objekty. To se odehrava ve funkci ComputeExternalForces. Zbyva uz jen, pomocı funkce

ComputePositions, vypocıtat nove zrychlenı, rychlosti a polohy jednotlivych uzlu a prepocı-

tat vlastnosti elementu.

Funkce pro vypocet tenzoru, internıch sil a poloh jsou celkem jednoznacne dany metodou

simulace. Zajımavejsı jsou funkce pro vypocet prasklin a externıch sil. Funkce pro vypocet

externıch sil totiz nepracuje ve smycce, ale pomocı metod trıdy CBtree zjistı potencialne ko-

lidujıcı dvojice elementu a pak smyckou pres tyto dvojice zjist’uje konkretnı kolize. Vypocet

koliznıch sil zastava jiz popsana trıda CCollisionVolume. Koliznı sıly jsou nakonec distri-

buovany do uzlu. Funkce pro vypocet prasklin vypocıta vlastnı cısla a vlastnı vektory tenzoru

ς a podle velikosti nejvetsıho kladneho vlastnıho cısla se pak rozhodne, zda uzel selhal, ci

ne. Pokud ano, je zavolana funkce SplitElements. Tato funkce vytvarı trıdu specializovanou

pro vytvarenı prasklin CSplitter. Hned po vytvorenı teto trıdy jsou nalezeny vsechny ele-

menty s nimiz zpracovavany uzel inciduje. Pak je zahajeno vlastnı vytvarenı praskliny. Pote

se prepocıtajı hodnoty tenzoru v rozdelenych elementech a pokracuje se ve vypoctu.

Pro vypocet je naimplementovano nekolik pomocnych funkcı. Mezi tyto funkce patrı

naprıklad funkce ComputeJ, ktera vypocıta invariant J pro zadany tenzor. Take sem patrı

funkce ComputeSigma pro vypocet tenzoru napetı σ. Dalsı funkce slouzı k vypoctu internıch

53

Page 62: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.3. Vypocetnı jadro

sil z tenzoru napetı a jmenujı se ComputeF a ComputeFIter. Vypocet sil totiz pracuje jako

nekolik iteracı pres jednotlive slozky matic a je vyhodne umıstit cely vypocet do zvlastnıch

funkcı. Poslednı pomocnou funkcı je MatrixFromVector, ktera vracı matici m(~a) ze zadaneho

vektoru ~a.

4.3.1 Vytvorenı praskliny

Trıda CSplitter zajist’uje spravne vytvorenı praskliny prıslusnych elementu v okolı uzlu,

v nemz selhal material. Data trıdy tvorı seznam elementu, ktere s uzlem incidujı. Pro svuj ucel

ma trıda definovane vnitrnı pomocne trıdy CVertex, CVol a CEdge. Tyto trıdy reprezentujı

body, elementy a hrany. Pred zacatkem delenı jsou tedy vytvoreny jednotlive pole vsech

ctyrstenu, jichz se delenı tyka, jejich hran a uzlu. Tyto tri pole dohromady davajı strukturu

podobnou okrıdlene hrane. V metode SplitVolumes se tedy nejdrıve inicializujı potrebna

pole uzlu, elementu a hran. Pritom se vypocıta pozice kazdeho uzlu vuci delıcı rovine.

Nasleduje smycka pres vsechny elementy, kde se podle pozic uzlu stanovı, zda ma byt

element prerazen k uzlu, ktery patrı na zapornou stranu delicı roviny, nebo se ponecha na

kladne strane, nebo je potreba jej rozdelit. Pritom je vytvareno pole elementu, ktere prımo

neincidujı s rozdelovanym uzlem, neboli jsou v druhe vrstve, ale je potreba je take rozdelit.

Po rozdelenı vsech elementu probehne aktualizace modelu. Vypocıtajı se hlavne sousednı

elementy tak, aby byla obnovena konzistence dat modelu.

Pokud je treba element rozdelit, zavola se metoda SplitVolume. Zde je urcena poloha

elementu vuci delıcı rovine a podle toho je element rozdelen. Pokud delıcı rovina protına

element ve dvou uzlech, rozdelı se element na dva. Jinak je rozdelen na tri tak, jak je uvedeno

v popisu metody. Pri rozdelovanı jsou take rozdeleny sousednı elementy, ktere s aktualnım

elementem sousedı stenou. Elementy, ktere s danym elementem sousedı pouze hranou jsou

pridany do pole a jsou pak rozdeleny zvlast’. Vlastnı rozdelenı pracuje tak, ze jsou puvodnımu

elementu prirazeny patricne nove uzly a novym elementum jsou prirazeny zbyvajıcı. Tım

padem nenı potreba odstranovat elementy. Muze se ale stat, ze vytvorıme uzel, ktery pak

nevyuzijeme, nebo puvodnı uzel nebude patrit zadnemu elementu. Pak tento uzel musıme

odstranit. Rozdelenı sousednıch elementu probıha stejne, pouze prirazenı uzlu je modifikovano

tak, ze s uzly, ktera nejsou na spolecne stene se nepracuje a zustavajı stejne.

Po rozdelenı a prirazenı elementu je potreba prepocıtat indexy sousednıch elementu.

Rozdelenı elementu je ale lokalnı a proto nenı potreba prepocıtavat cely model. Stacı si pouze

pamatovat vsechny zpracovane elementy a jejich sousedy a jim upravit informace o sousedech.

To zarizuje metoda UpdateAdjacentVolumes. Nejprve vytvorı pole vsech elementu, kterych

se rozdelovanı tyka. Pak toto pole prochazı a hleda dvojice sousedu.

54

Page 63: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 4. Popis implementace 4.4. Matematicka knihovna

4.4 Matematicka knihovna

Cely program hojne vyuzıva sluzeb matematicke knihovny 3DMath++. Tuto knihovnu jsem

vytvoril pro praci s vektory a ctvercovymi maticemi dimenze 2 az 4. Je to knihovna, ktera

se hodı pro praci v trojrozmernem a dvojrozmernem prostoru. Cela knihovna je soucastı

projektu a pri prekladu je staticky je pripojena k programu. V nasledujıcım textu popıseme

zakladnı operace, ktere tato knihovna umoznuje.

Pro praci s vektory jsou implementovany trıdy Vector2f, Vector3f a Vector4f a je-

jich obdoba pro dvojitou presnost Vector2d, Vector3d a Vector4d. Kazda trıda ma sadu

zakladnıch metod pro vytvarenı vektoru, prıstup k jednotlivym slozkam vektoru a nulovanı

vektoru. Pak jsou v techto trıdach naimplementovany operatory pro praci s vektory jako je

scıtanı, odcıtanı, skalarnı nasobenı, nasobenı a delenı skalarem, porovnavanı a prirazovanı.

Nakonec ma kazda trıda sadu metod pro rozsırenou praci s vektory. Mezi tyto metody patrı

funkce pro vypocet velikosti vektoru, normalizaci vektoru, vypocet symetrickeho vektoru po-

dle osy, extrakci kolme slozky na osu a linearnı interpolaci. Vektory dimenze 3 majı take

metodu pro vypocet vektoroveho soucinu. Vsechny trıdy majı take definovany operatory pro

konverzi mezi odpovıdajıcımi presnostmi a funkce pro konverzi mezi ruznymi dimenzemi (po-

kud to ma smysl). K teto casti patrı take sada konstantnıch promennych, ktere reprezentujı

nulovy vektor a jednotlive jednotkove vektory rovnobezne s osami.

Trıdy pro praci s maticemi jsou implementovany obdobne. Existujı trıdy matic Matrix2f,

Matrix3f a Matrix4f a v dvojite presnosti Matrix2d, Matrix3d a Matrix4d. Vsechny trıdy

majı opet sadu metod pro prıstup k jednotlivym slozkam, ci sloupcum nebo radkum matice.

Take majı operatory pro unarnı i binarnı operace s maticemi jako scıtanı a odcıtanı, nasobenı

maticı, nasobenı a delenı skalarem a porovnavanı a prirazenı. Krome metod pro vynulovanı

matice jsou implementovany metody pro vypocet determinantu, transpozici matice, vypocet

matice doplnku a inverznı matice.

Pro praci s prostory jsou implementovany funkce, ktere umoznujı nasobit matici s vekto-

rem zleva i zprava. Cela knihovna je koncipovana pro praci se sloupcovymi vektory a proto je

potreba si davat pozor, zda nasobıme matici zleva, nebo zprava. Pak jsou naimplementovany

funkce, ktere umoznujı jednoduse vytvaret matice afinnıch transformacı, jako je posunutı, ro-

tace, zvetsovanı, ale i jinych jako je naprıklad transformace stredove a ortograficke projekce

a nektere dalsı. Pro vypocet je dulezita jeste jedna funkce. Je to funkce pro vypocet vlastnıch

cısel matice dimenze 3. Je to funkce, ktera implementuje metodu Jakobiho rotacı, a proto je

urcena pouze pro realne a symetricke matice. U tech je zaruceno, ze majı realna vlastnı cısla.

55

Page 64: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5

Zhodnocenı a zaver

Z predchozıho textu je videt, ze tema simulace praskanı a rozlamovanı je pomerne rozsahle a

obtızne jak po fyzikalnı strance, tak po strance simulace, ktera nemusı vzdy sledovat fyzikalnı

principy. Popis fyzikalnıch principu do vetsıch detailu presahuje ramec tohoto textu. Ale pro

zakladnı predstavu stacı. Pokud bychom vsak prece jen chteli simulovat chovanı materialu

presne podle fyzikalnıch rovnic, velmi brzo bychom narazili na problemy uplne jineho cha-

rakteru, jako je naprıklad diskretizace a vubec otazka realizace diferencialnıho a integralnıho

poctu na pocıtaci. Proto je daleko vyhodnejsı pouzıt nejakou diskretnı metodu simulace, jako

naprıklad metoda konecnych prvku, ktera sice neposkytuje naprosto presne vysledky, ale pro

vetsinu aplikacı stacı. Stejne nejsme schopni obsahnout vsechny detaily a pokud bychom zasli

do krajnosti, museli bychom simulovat chovanı jednotlivych atomu a vzajemnych vztahu mezi

nimi. To ovsem, v makroskopickem merıtku, ani veda na dnesnı urovni nedokaze. Takze se

snazıme pouzıvat techniky, ktere nejakym zpusobem cely problem zjednodusı. Ale tak, aby-

chom dostali dostatecne kvalitnı vysledky.

5.1 Metody simulace

V kapitole o metodach simulace praskanı najdeme tri diametralne odlisne metody. Kazda

metoda vyuzıva jinych technik a jinych zjednodusenı. Kvuli tomu bude take kazda metoda

vhodna pro jinou situaci. K problemu simulace praskanı muzeme pristupovat z ruznych po-

hledu. Pokud chceme fyzikalne verohodny model simulace, musıme pocıtat s tım, ze bude

mıt odlisne naroky na vypocetnı vykon pocıtace, nez metody, ktere k problemu pristupujı

z ciste vizualizacnı stranky. Metody zamerene na vizualizaci nikdy nebudou fyzikalne korektnı,

ale pokud chceme simulovat praskanı nejakeho objektu jen pro graficke potreby, muzeme se

s vystupem takove metody spokojit.

56

Page 65: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.1. Metody simulace

5.1.1 Sıt’ ctyrstenu

Ze zkoumanych metod je tato metoda simulace praskanı nejvıce fyzikalne korektnı. Autor

totiz vychazı ze fyzikalnıch vztahu a vyvinul metodu, ktera vypocıtava fyzikalnı vlastnosti

jednotlivych elementu. Z tech pak zase pomocı fyzikalnıch vztahu vypocıtava fyzikalnı vlast-

nosti uzlu. Konecnym vysledkem jsou sıly, respektive zrychlenı a rychlost jednotlivych uzlu,

ktere ovlivnujı deformace objektu a vnitrnı dekomponovane sıly, jejichz velikost je prımou

prıcinou vzniku praskliny.

Dıky tomu, ze v teto metode pracujeme s tenzory, maticemi a vektory jednotlivych velicin,

je tato metoda pomerne narocna na vypocet. Pocıtanı s temito velicinami totiz zahrnuje velky

pocet operacı s jednotlivymi slozkami kazde veliciny. I kdyz je tedy slozitost teto metody

srovnatelna s ostatnımi, tak obsahuje velky pocet skrytych konstant a tım padem je daleko

pomalejsı.

Na druhou stranu je tato metoda promyslena do vsech detailu a v materialu, ktery jsem

mel k dispozici je popsano velke mnozstvı technik, ktere pomahajı urychlit vypocet. Prıkladem

muze byt prace se stromy ohranicenı elementu, ktere jsou v textu [4] popsany velmi dukladne

a vcetne ruznych zaludnostı, se kterymi se muzeme pri implementaci setkat.

Dıky tomu, ze je tato metoda vypracovana na zaklade fyzikalnıch principu, je pomerne

obecna a dovoluje simulovat velke mnozstvı ruznych materialu. I kdyz je popis metody

primarne zameren na homogennı a izotropnı materialy, muzeme modifikovat algoritmus na

vypocet i pro anizotropnı materialy. Nehomogennı materialy lze simulovat zmenou vlastnostı

materialu v ruznych uzlech, ci elementech. Vetsina materialu je ale homogennı a izotropnı a

proto nam zakladnı model simulace stacı.

Pri implementaci teto metody bychom jiste museli resit i takove problemy, jako je in-

terakce objektu mezi sebou. Na to autor teto metody take myslel a popsal vhodne resenı

interakcı objektu. Interakce probıha vyhradne pres kolize objektu, takze jednotlive objekty

na sebe pusobı pomocı koliznıch sil. Ty jsou vyreseny pres penalizacnı metodu. Ta funguje

tak, ze jeden objekt na druhy pusobı sılou o velikosti umerne velikosti presahu objektu. Tato

metoda sice nenı uplne fyzikalne presna, protoze telesa na sebe zacnou pusobit az ve chvıli,

kdy do sebe telesa proniknou, mısto ve chvıli, kdy do sebe narazı. Vzhledem k tomu, ze jed-

notlive elementy jsou pomerne male, tak tuto nevyhodu muzeme prehlednout. Navıc muzeme

ovlivnovat velikost sıly prıslusnymi koeficienty a tak ovlivnovat chovanı teles pri vzajemnem

stretu.

Samotny zakladnı algoritmus neposkytuje dokonale vysledky. Bez technik jako je rezi-

dualnı propagace, ci ovlivnovanı smeru sırenı praskliny muzeme simulovat materialy, ktere

nejsou prılis krehke. U tech se totiz tyto techniky projevı podstatnou merou. Prıkladem

57

Page 66: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.1. Metody simulace

muze byt naprıklad sklo, ve kterem, bez pouzitı rezidualnı propagace, v jednom casovem

kroku vznikne prasklina o delce rovne velikosti elementu. Pritom ale z praxe vıme, ze pokud

sklo zacne praskat, sırı se praskliny velmi rychle. Simulaci takoveho chovanı umoznuje prave

technika rezidualnı propagace. Tato technika ale vyzaduje pomerne velkou znalost topologie

v okolı vzniku praskliny. Dıky tomu je tato technika pomerne narocna na implementaci.

Podobne je na tom i technika ovlivnovanı smeru sırenı praskliny. Ta ma za nasledek

to, ze prasklina se muze sırit pouze ”dopredu“ a nevznikajı neprılis realisticke efekty, jako je

zalomenı praskliny v ostrem uhlu. Pri implementaci teto techniky potrebujeme znat jednotlive

praskliny v danem uzlu, coz vyzaduje nemale usilı pri navrhu a nasledne implementaci.

Vypocetnı smycka algoritmu je slozena ze ctyr castı. V prvnı casti jsou vypocıtany tenzory

elementu. Tato cast ma tedy slozitost O(n), kde n je pocet elementu. Dalsı cast pro vsechny

uzly vypocıta vnitrnı sıly, takze ma slozitost O(m), kde m je pocet uzlu modelu. V dalsı casti

jsou vypocteny externı sıly. Protoze muzeme najıt maximalne n elementu, na nez pusobı sıla,

tak je slozitost tohoto kroku O(n). Poslednı castı je vypocet zrychlenı, rychlosti a pozic vsech

uzlu. Slozitost tohoto kroku je tedy O(m). Celkova slozitost algoritmu je tedy O(n + m),

coz nenı mnoho, ale v jednotlivych castech algoritmu jsou velke skryte konstanty. Proto je

simulace praskanı touto metodou nejpomalejsı ze zkoumanych metod.

5.1.2 Sıt’ spojenych elementu

Tato metoda pracuje take se sıtı ctyrstenu. Jednotlive elementy ale nejsou simulovany podle

fyzikalnıch principu, ale jsou spolu svazany pomocı pevnych omezenı. Pokud je zatızenı tohoto

omezenı vetsı, nez urcita mez, tak toto omezenı zrusıme. Jako dusledek vznikne prasklina.

Tato metoda nenı v materialech, co jsem mel k dispozici, prılis dobre popsana. Princip me-

tody je sice jasny, ale matematicke vztahy a hlavne promenne v nich nejsou vubec vysvetleny.

Dıky tomu muzeme pouze usuzovat, jak ktera promenna vypada a tudız se mohou vyskytnout

nejasnosti a nedorozumenı.

Metoda umoznuje simulovat bud’ jednorazove zatızenı impulsem sıly, ktere je vyreseno

v jednom kroku. Druhou moznostı je podstoupit vysledky kroku dalsımu vypoctu a tak

muzeme simulovat naprıklad pomaly rust zatızenı. Pokud bychom pouzili simulaci v jednom

kroku, pak na vystupu dostaneme vysledny stav objektu, tedy jak tento objekt popraska.

Ale to se prılis nehodı na vytvarenı animacı. V tom prıpade je lepsı pouzıt simulaci ve vıce

krocıch.

Z popisu metody je videt, ze nepocıta deformace. Proto se hodı predevsım na krehke

materialy, jako je sklo. Pro materialy, ktere se nejdrıve deformujı a pak teprve prasknou, jako

je naprıklad olovo, nebo guma, musıme pouzıt jinou metodu. Dıky tomu, ze metoda nenı

zalozena na fyzikalnıch postupech, muze byt velmi rychla. Navıc tato metoda nenı omezena

58

Page 67: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.1. Metody simulace

volbou casoveho kroku, jako tomu bylo v prıpade metody predchozı. Prakticky se v teto

metode pojem casovy krok vubec nezavadı.

Slozitost teto metody je vlastne slozitost pouzite metody pro resenı soustavy linearnıch

rovnic. Autori pouzıvajı metodu svazanych gradientu, ktera by mela nejpozdeji po n vratit

presne resenı, kde n je pocet rovnic. Soustava rovnic je slozena z tolika rovnic, kolik je spoju

mezi elementy. Protoze kazdy element ma ctyri steny, muzeme predpokladat, ze pocet spoju

je 4n, kde n je pocet elementu. Tento vztah nenı uplne presny, protoze nekolik elementu

se nachazı na povrchu telesa a tedy nema vsechny ctyri sousedy. Pocet techto elementu je

vzhledem k celkovemu poctu elementu zanedbatelny. V dalsı casti algoritmu je vypocet pozic

a rychlostı uzlu. Tam take hledame resenı soustavy n linearnıch rovnic. Slozitost teto metody

je tedy O(n). Opet se jsou v metode velke skryte konstanty, takze vypocet (ac radove rychlejsı,

nez O’Brienova metoda), je pomerne zdlouhavy.

5.1.3 Praskanı povrchu

Poslednı metoda se specializuje na simulaci praskanı povrchu. Dıky tomu, ze nevyuzıva prin-

cipu mechaniky je opet velmi rychla. Navıc nesimuluje chovanı celeho trojrozmerneho telesa,

ale jen jeho povrchu, coz jı umoznuje pouzıt pomerne snadny vypocet. Princip metody je

zalozen na rozpınanı, ci smrst’ovanı povrchove vrstvy modelu, coz ma za nasledek vznik napetı

a vnitrnıch sil v teto vrstve. V dusledku pak vznikajı praskliny.

Simulace nenı zalozena na fyzikalnıch vztazıch, ale jednotlive elementy jsou spojeny pruzi-

nami. Kazda pruzina ma danou tuhost a maximalnı hodnotu povoleneho napetı. Po prekrocenı

tohoto napetı je pruzina zrusena a mısto nı vznika prasklina.

Vypocet je rozdelen do dvou castı. V prvnı casti jsou vypocıtany sıly pusobıcı na uzly a

posunutı jednotlivych uzlu. V druhe casti jsou vypocıtany zmeny delek jednotlivych pruzin

a napetı kazde pruziny. V teto casti se take urcı, ktera pruzina bude zrusena a tudız kde

vzniknou nove praskliny.

Pri popisu metody je zmınena moznost pouzıt ruzne topologicke utvary. Na volbe tvaru

elementarnıch teles totiz pomerne hodne zalezı. Pri volbe tetragonalnı sıte se neuplatnujı

smykove sıly, coz jiste nenı zanedbatelne. Oproti tomu praskliny vygenerovane hexagonalnı

sıtı se jevı daleko realistictejsı. Takze i pres problematictejsı implementaci se jevı tato sıt’ jako

vyhodnejsı.

Pokud chceme simulovat anizotropnı materialy, stacı tuto metodu velmi jednoduse mo-

difikovat. Jednotlive elementy pak nebudou mıt ve vsech smerech konstantnı parametry, coz

ma za nasledek mırne zeslozitenı vypoctu. Nastestı tato zmena nenı nijak drasticka.

Cely algoritmus probıha ve dvou smyckach a kazda smycka pocıta parametry m pruzin.

Pocet pruzin je pritom zavisly na volbe topologie sıte. Pokud zvolıme hexagonalnı sıt’, pak

59

Page 68: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.2. Implementace

je pocet pruzin 6n, kde n je pocet elementu v sıti. Celkova slozitost algoritmu je tedy take

O(n). Rozdıl v metodach je tedy pouze v poctu elementu. Protoze ale pocet elementu muze

dosahovat tisıcu, tak je tento rozdıl podstatny. V tom je vyhoda specializovanych metod a

proto se jevı, tam kde to jde, vyhodnejsı vyuzitı specializovane metody. Samozrejme cena za

rychlejsı zpracovanı je bud’ mensı obecnost metody, nebo horsı kvalita vysledku.

5.2 Implementace

Vlastnı program je clenen do nekolika logickych castı. Vetsina z techto castı ma pouze po-

mocny charakter. Mezi tyto casti patrı zejmena konfigurace a podpora nacıtanı modelu. Dalo

by se rıci, ze do teto casti patrı take hlavnı cast, ktera se hlavne stara o zobrazenı. Pri

implementaci pomocnych trıd nenastaly vetsı problemy, protoze system prace techto trıd je

jednoduchy. Zajımavostı je system zobrazenı, zalozeny na detekci viditelnych sten. K tomu

je nutne tyto steny zjistit, ale to se provede pouze pri inicializaci a prıpadne po vytvorenı

praskliny. To uz je ale jen lokalnı vypocet, takze je pomerne rychly.

Az prekvapive jednoducha je implementace vypoctu. To proto, ze se jedna o implementaci

matematickych vztahu. Presto, ze pocet radek jednotlivych funkcı je pomerne velky, dıky

pouzitı matematicke knihovny jsou tyto funkce pomerne prehledne a snadno pochopitelne.

Pri implementaci vypoctu se objevily problemy se stabilitou vypoctu, protoze pracujeme

s cısly, ktera jsou v pomerne velkem intervalu. Hodnoty deformacı jsou totiz v radu desetin

az setin, ale velikosti vnitrnıch sil se z deformacı vypocıtajı nasobenım konstant v radu 109,

takze je treba davat pozor na pretecenı.

Take implementace binarnıho stromu modelu byla pomerne bezproblemova. Vytvarenı

stromu probıha rekurzivne, coz predstavuje potencialnı riziko v tom, ze nektere elementy mo-

hou byt v neprıznive poloze a vlivem nepresnosti vypoctu se muze vypocet zacyklit. To vyustı

v pretecenı zasobnıku a nasledny pad programu. Proto je tuto techniku potreba naimplemen-

tovat tak, aby bylo takove riziko minimalnı. Toho je docıleno, mimo jine, pouzitım dvojite

presnosti. Pri vypoctu se neustale vypocıtava stred podmnoziny elementu, coz je pomerne

narocne. Snaha je tedy takova, aby se strom nemusel porad konstruovat znovu. V prubehu

vypoctu se model vetsinou pouze deformuje. To znamena, ze se menı pouze poloha elementu

a ne jejich pocet. Proto nemusıme vytvaret cely strom znovu, ale stacı pouze prepocıtat

hranice jednotlivych uzlu stromu. Autor jde jeste dal a modifikuje strom tak, ze obalka v jed-

notlivych uzlech je trochu vetsı, nez by bylo potreba. Tım je zaruceno, ze nenı potreba strom

prepocıtavat kazdy krok, ale jen obcas. Velikost presahu obalky je urcena kombinacı rych-

losti jednotlivych uzlu a multiplikativnı konstanty. Tuto techniku jsem z casovych duvodu

nenaimplementoval. Je take treba poznamenat, ze vypocet stromu nenı nejnarocnejsı.

60

Page 69: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.2. Implementace

Nejslozitejsı se ukazala implementace trıd pro vypocet koliznıch sil a pro vytvarenı pras-

kliny. Trıda pro vypocet koliznıch sil nejdrıve vypocıta prunik elementu. Tento prunik je

vlastne obecny mnohosten, ktera vznikne orezanım jednoho elementu stenami druheho ele-

mentu. Pokud se orezavacı rovina nachazı prılis blızko uzlu, nastane problem s presnostı

vypoctu prusecıku hrany a roviny. Dıky tomu vznikalo mnozstvı problemu a vypocet nepra-

coval spravne. Nakonec jsem tento problem vyresil tak, ze vypocet vzajemne pozice uzlu a

orezavacı roviny probehl pouze jednou. Podle pozice se ulozı kazdemu uzlu prıznak a pak uz se

pracuje pouze s tımto prıznakem. Dalsım problemem je rekonstrukce rozdeleneho mnohostenu

do konzistentnıho stavu. Musıme vyhledat prıslusne dvojice uzlu a mezi nimi vytvorit hrany

a stenu. Jakakoliv nepresnost v implementaci ma za nasledek dalsı chyby a ve vysledku al-

goritmus muze zpusobovat nemale problemy. V tuto chvıli bych vytknul jednu vec autorovi

teto metody. Pri jejım popisu totiz neuvedl konstanty pro vypocet koliznıch sil. Jejich zıskanı

stalo nemale usilı metodou pokus omyl. Vzhledem k tomu, ze se jedna o pet konstant, tak

zıskanı alespon priblizne funkcnı kombinace je pomerne problematicke. Tyto konstanty majı

totiz podstatny vliv na vzajemne pusobenı teles a mala odchylka ma za nasledek neprirozene

chovanı.

Dalsı podobnou technikou je metoda delenı elementu v okolı uzlu, v nemz selhal ma-

terial. Tato technika opet vypocıtava prusecıky hran a roviny, takze je opet potreba venovat

nalezitou pozornost presnosti vypoctu. Polohy jsou opet vypocteny predem a jen jednou.

Nastava zde ale jeden horsı problem a to v mnozstvı moznych kombinacı vzajemnych poloh

elementu a delıcı roviny. Z toho plyne pomerne velka slozitost teto techniky a tedy potencialnı

zdroj neprıjemnych chyb. Pro snadnou implementaci teto techniky je bezpodmınecne nutna

vhodne navrzena datova struktura modelu. Je potreba brat ohled zejmena na snadne urcenı

sousednıch elementu a prıslusnost uzlu k elementu. S temito dvema informacemi se totiz, pri

rozdelovanı elementu, intenzivne pracuje.

Dıky nedostatku casu v programu nejsou implementovany nektere velmi dulezite tech-

niky. Dıky tomu nenı vystup programu bez chyb. Jedna se zejmena o techniku rezidualnı

propagace. Da se rıci, ze tato technika je zivotne dulezita pro simulaci krehkych materialu,

jako je naprıklad sklo. Ale protoze implementace deformacı a hlavne koliznıch sil a vytvarenı

praskliny byla pomerne problematicka, tak na tuto techniku nezbyl cas. Navıc jejı implemen-

tace take nenı zrovna trivialnı. V teto technice pracujeme totiz se vsemi uzly a elementy

podel praskliny a to opet znamena potrebu velmi dobre znalosti topologie v oblasti kazde

praskliny. dalsı potrebnou technikou je eliminace zpetnych prasklin. Ta take nenı naimple-

mentovana a to opet z duvodu nedostatku casu. Tato technika vylepsuje vysledny vzhled

prasklin, takze se vyznamnou merou podılı na vysledku. Pro implementaci potrebujeme znat

vsechny praskliny v okolı nove vytvarene, takze opet potrebujeme nejakou strukturu, ktera

61

Page 70: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Kapitola 5. Zhodnocenı a zaver 5.2. Implementace

udrzuje prehled o vsech prasklinach. Jsou ale materialy, kde se tyto techniky projevujı mene.

Takovymi materialy jsou naprıklad guma, ci olovo.

Pro simulaci je jeste potreba nejaky externı objekt, ktery bude simulovat projektil, ci

jine teleso. Toto teleso narazı do simulovaneho objektu a tım vyvola deformace a nasledne

porusenı materialu. Protoze nove teleso by se melo take chovat podle zakonu fyziky, je potreba

naimplementovat take chovanı tohoto telesa. To ale znamena simulovat dalsı teleso. Proto do

systemu nenı takove teleso zahrnuto, ale je nahrazeno hmotnym bodem. Ten ma konecnou

hmotnost, rychlost, zrychlenı a smer, takze jedine, co potrebujeme vypocıtat je posun tohoto

bodu a kolize se simulovanym telesem. Velikost sıly, kterou tento bod pusobı na objekt je

odvozena z jeho rychlosti. Protoze se nejedna o teleso, ma tento postup i nevyhody. Ty se

projevı zejmena v tom, ze se simulovane teleso ”proborı“. Je to zpusobeno prılis malym

pomerem plochy bodu a elementu, na ktery bod pusobı.

Testovanı aplikace probıhalo zkousenım ruzne slozitych modelu s ruznymi parametry

vypoctu. Pri testovanı ruzne slozitych modelu se potvrdilo, ze slozitost metody je linearnı.

Simulace s modelem, ktery mel kolem 700 elementu, trvala zhruba 20 minut. Simulace modelu

o cca 1400 elementech trvala zhruba 40 minut. Pritom vsechny ostatnı parametry byly stejne.

Pri testovanı se ovsem projevily problematicke casti vypoctu, ktere jsou citlive na stabilitu

vypoctu. Pri slozitejsıch modelech bylo potreba pouzıt mensı casovy krok, nez u jednodussıch

modelu. U slozitejsıch modelu bylo potreba pouzıt casovy krok okolo jedne mikrosekundy,

kdezto u jednodussıch modelu bohate stacilo 50 mikrosekund.

Kvuli absenci implementace rezidualnı propagace nema smysl simulovat krehke materialy.

Pokud takovy material chceme prece jen simulovat, nebudou vysledky prılis realisticke. Pro

simulaci v aktualnım stavu aplikace se hodı materialy jako je guma, ci olovo. Pritom se

tyto dva materialy podstatne lisı. Navıc na takovych materialech jsou videt prednosti teto

metody simulace. Tyto materialy totiz patrı do skupiny, kdy je material nejdrıve deformovan

a teprve pak zacne selhavat a tedy praskat. Pritom guma je elasticky material. To znamena, ze

se deformuje elasticky. Plasticka deformace se uplatnuje pouze v male mıre. Olovo je naopak

plasticky material, ktery se prakticky nedeformuje elasticky. Vystup simulace techto materialu

muzeme videt na CD-ROM (prıloha B).

62

Page 71: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Dodatek A

Prıklad vysledku

V teto prıloze muzeme videt prıklad vysledku simulace. Protoze primarne je program urcen

pro vystup videa, je vetsina vystupu ve formatu DivX na CD-ROMu v B. Zde si ukazeme

pouze jeden prıklad vystupu. Je to stredne velky model desky z gumy o zhruba 700 elementech,

do ktere narazı hmotny bod. Celkova doba simulace je priblizne 0,1 sekundy.

Na prvnı sade obrazku je videt simulace desky v nekolika casovych okamzicıch. Na prvnım

obrazku vidıme pouze malou deformaci desky. Na dalsım uz zacına deska praskat. Na dalsıch

obrazcıch se prasklina rozsiruje a vznikajı dalsı, nove praskliny. Na poslednıch obrazcıch je uz

deska pomerne hodne rozpraskana.

Na dalsı serii obrazku muzeme videt tu samou situaci, ale pri zobrazovanı namahanı

jednotlivych elementu. Zelena barva je pritom nulove zatızenı a cervena barva oznacuje mısto,

ktere je blızko hranice vzniku praskliny. Z obrazku muzeme videt, ze vzdy po vzniku praskliny

je postizeny element odlehcen a nenı deformovan ani namahan.

63

Page 72: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Dodatek A. Prıklad vysledku

64

Page 73: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Dodatek A. Prıklad vysledku

65

Page 74: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Dodatek B

CD-ROM

CD-ROM, na kterem jsou vsechny nıze uvedene materialy je ulozen v knihovne Graficke

skupiny na Katedre pocıtacu, kde je mozne si ho, po dohode s vedoucım diplomove prace

zapujcit.

B.1 Dokumentace

Text teto prace vcetne zdrojovych kodu nalezneme v adresari cdrom://text. Tento adresar

obsahuje dve verze tohoto textu. V souboru dipl.ps najdeme verzi urcenou pro tisk a je

ve formatu PostScript. Tento soubor byl vytvoren sazecım programem LATEX. Druha verze

se nachazı v souboru dipl.pdf. Ten je urceny pro prohlızenı na pocıtaci. Tento soubor byl

vytvoren programem pdfLATEX.

Dale je zde adresar cdrom://text/sources. Ten obsahuje zdrojove kody tohoto textu,

vcetne obrazku. Hlavnım souborem je dipl.tex, ale preklad se spoustı automatizovane pres

prıkaz make. Pro preklad je nutne mıt nainstalovany styl pro BibTEX, ktery je v souboru

csplain.bst a nastroj pro konverzi obrazku do PDF.

B.2 Zdrojove kody

V adresari cdrom://sources se nachazejı zdrojove kody implementace O’Brianovy metody

simulace. Zdrojove kody jsou urceny pro operacnı system GNU/Linux, ale jdou prelozit

i pro operacnı system MS Windows. Pod operacnım systemem Linux jsou pro preklad

nutne knihovny AutoConf, AutoMake a hlavne SDL. Preklad se provede posloupnostı

prıkazu ./configure a make. Pro detailnejsı popis moznostı je mozne se podıvat do souboru

INSTALL, do kapitoly tohoto textu o implementaci a do vypisu prıkazu ./configure –help.

66

Page 75: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Dodatek B. CD-ROM B.3. Vystupy

B.3 Vystupy

Na CD-ROM take muzeme najıt vystupy implementace a to v adresari cdrom://outputs.

Vsechny soubory byly vygenerovany ve formatu MPEG a prevedeny do formatu DivX.

Tento adresar obsahuje podadresare, ktere rozdelujı vystupy podle materialu pouzitych pri

simulaci. Dalsı delenı je podle typu zobrazenı.

B.4 Obrazky

Obrazky vkladane do tohoto textu ve formatu EPS1, ktere jsou pouzity pri vytvarenı posts-

criptove verze tohoto textu a obrazky ve formatu PDF2 (pro PDF verzi textu) jsou vytvoreny

vektorovym kreslıcım programem XFig a jsou v souborech s prıponou FIG. Ostatnı obrazky

ve formatu PNG3 jsou vytvoreny aplikacı a jsou prevedeny z formatu BMP. Vsechny obrazky

potrebne pro preklad jsou na patricnych mıstech v adresari se zdroji tohoto textu.

B.5 Licence a autorska prava

Veskere texty, vcetne zdrojovych kodu programu, byly psany textovym editorem VIM. Pro

preklad textu byl vyuzit sazecı program LATEX, pdfLATEX a BibTEX. Vsechny obrazky jsou

rucne kreslene programem XFig. Program pro preklad vyuzıva prekladac GCC a podpurne

systemy AutoConf, AutomMake a make. Soucastı programu je knihovna FFMpeg, ktera

je vyuzıvana pro vystup do videa. Program ke svemu behu vyuzıva knihovnu SDL a prıpadne

take libquicktime. Vsechny vyse jmenovane programy a knihovny jsou volne siritelne pod

licencı GPL.

1Encapsulated PostScript2Portable Document Format3Portable Network Graphics

67

Page 76: Vizualizace prask´an´ı a rozlamov´an´ı objekt˚uMartin Kafka Vedouc´ı diplomov´e pr´ace Ing. Jaroslav Sloup Katedra poˇc´ıtaˇc˚u Rok obhajoby 2004. Zad´an´ı diplomov´e

Literatura

[1] Fabio Ganovelli, Federico Ponchio, Claudio Rocchini. Fast tetrahedron-tetrahedron over-

lap algorithm. Journal of Graphics Tools, 7(2):17–26, 2002.

[2] J. H. Heinbockel. Introduction to Tensor Calculus and Continuum Mechanics. Department

of Mathematics and Statistics, Old Dominion University, 1996.

[3] Koichi Hirota, Yasuyki Tanoue, Toyohisa Kaneko. Generation of crack patterns with a

physical model. The Visual Computer, 14(3):126–137, 1998.

[4] James F. O’Brien. Graphical Modeling and Animation of Fracture. PhD thesis, Georgia

Institute of Technology, Cerven 2000.

[5] William H. Press, Saul A. Teukolsky, Willian T. Vetterling, Brian P Flannery. Numerical

Recipes in C: the art of scientific computing. Cambridge university press, 2nd edition,

1992.

[6] Prof. Ing. Jirı Sejnoha, DrSc. Doc. Ing. Jitka Bittnarova, CSc. Pruznost a pevnost 10.

Vydavatelstvı CVUT, 1997.

[7] Jonathan Richard Shewchuk. An introduction to the conjugate gradient method without

the agonizing pain. Carnegie Mellon University, Pittsburgh, 1994.

[8] Jeffrey Smith, Andrew Witkin, David Baraff. Fast and controllable simulation of the

shattering of brittle objects. Graphics Interface, May 2000.

[9] Jeffrey Smith, Andrew Witkin, David Baraff. Fast and controllable simulation of the

shattering of brittle objects. Computer Graphics Forum, 20(2):81–91, 2001.

Vysazeno systemem pdfLATEX.

68