Loading [MathJax]/jax/output/HTML-CSS/jax.js

konačni elementi

25. broj časopisa e.math

Dragi čitatelji

izašao je 25 broj časopisa e.math.

U ovom broju donosimo vam članke vzane uz primjene matematike u srodnim znanostima. U članku o Jacobsthalovom nizu, autora Bojana Kovačića, Mirjane Špoljarić i Luke Marohnića s Tehničkog veleučilišta u Zagrebu, autori daju pregled klasičnih rezultata iz teorije brojeva. Nadalje, diskutiraju primjene i vezu s elementarnim staničnim automatima (elementary cellular automaton).

U članku Primjena teorije grupa u teoriji glazbe ili kako smjestiti Beethovena na torus, autora Maje Karage i A. Petrovečkog sa Sveučilišta u Zagrebu, dan je zanimljiv prikaz osnova teorije grupa i elementarne topologije. Također dane su definicije osnovnih pojmova iz teorije glazbe potrebnih za čitanje članka. Prikazana matematička teorija primjenjuje se, s konkretnim primjerima, na analizu glazbenih kompozicija. Članak je pisan pristupačnim jezikom i trebao bi biti samodostatan za čitanje.

Na kraju, u članku Metoda konačnih elemenata; teorija i praktična implementacija, autora Andreja Novaka sa Sveučilišta u Dubrovniku, dan je prikaz osnova teorije aproksimacija rješenja parcijalnih diferencijalnih jednadžbi metodom konačnih elemenata u jednoj prostornoj dimenziji. Posebno zanimljivo je da autor kao model primjer razmatra jednostavan model vibriranja klavirske žice.

 

U ime uredništva želim vam ugodno čitanje.

 

L. Grubišić

glavni urednik

Metoda konačnih elemenata; teorija i praktična implementacija

Andrej Novak
Sveučilište u Dubrovniku
1Uvod

Metoda konačnih elemenata je jedna od najpopularnijih numeričkih metoda za rješavanje parcijalnih diferencijalnih jednadžbi. Cilj ovog rada je na jednostavan način, kroz primjere, prezentirati metodu konačnih elemenata. U prvom dijelu rada je opisana Galerkinova metoda te je kroz jednostavan primjer skrenuta pozornost na opasnosti prilikom numeričke implementacije. U središnjem dijelu rada je opisana metoda konačnih elemenata kao poseban slučaj Galerkinove metode, a kroz primjer je dano numerički prihvatljivije rješenje primjera iz prvog dijela rada, samo što je jedan rub ostavljen slobodnim kako bi se prikazala implementacija raznih rubnih uvjeta. U završnom dijelu rada su dane neke ideje o implementaciji metode konačnih elementa na problemima koji uključuju više derivacije te par komentara vrijednih za praktičnu implementaciju.

2Galerkinova metoda

U ovom odjeljku ćemo postaviti scenu za metodu konačnih elemenata. Započinjemo kratkim opisom Galerkinove metode. Neka je V Hilbertov prostor, a(,):V×VR bilinearna forma koja je ograničena,
 

|a(u,v)|MuVvV u,vV

i V-eliptična,
 

a(v,v)cv2V vV

te l ograničeni linearni funkcional. Promatramo problem

(1)
uV,a(u,v)=l(v)vV.

Prema Lax-Milgramovoj lemi, varijacijski problem (1) ima jedinstveno rješenje. Općenito govoreći, nemoguće je naći egzaktno rješenje od (1) zato što je V beskonačno dimenzionalni prostor. Prirodno je probati konstruirati aproksimaciju rješenja u konačnodimenzionalnom prostoru VNV. Promotrimo projekciju problema (1) na VN,

(2)
uNVN,a(uN,v)=l(v)vVN.

Uz pretpostavke da je bilinearna forma a ograničena, V - eliptična i l ograničeni linearni funkcional, opet primjenom Lax-Milgramove leme slijedi da (2) ima jedinstveno rješenje uN.


Neka je {ϕi}Ni=1 baza konačnodimenzionalnog prostora VN, tada možemo zapisati

uN=Nj=1ξjϕj

za neke, trenutno nepoznate, skalare ξi, i=1,2,..,N.
Uzmimo da vVN budu baš ϕi te uvrstimo u (2). Dobivamo

(3)
Nj=1a(ϕj,ϕi)ξj=l(ϕi)i=1,...,N.

Očito, prethodnu tvdnju možemo zapisati kao linearni sustav

Kξ=b

gdje je vektor nepoznanica ξ=(ξj)RN, K=(a(ϕj,ϕi))RN×N matrica sustava te b=(l(ξi))RN desna strana.


Općenito je aproksimacija uN različita od rješenja u, stoga je prirodno tražiti približno rješenje uN u potprostoru VN što veće dimenzije. Za niz potprostora VNi takvih da vrijedi VN1VN2...VN, računamo pripadna rješenja uNi, i=1,2,.... Ovaj postupak nazivamo Galerkinovom metodom. Prvi korak u dokazu konvergencije Galerkinove metode je važan i elegantan teorijski rezultat.

Teorem 1. (Céina lema) Neka je V Hilbertov prostor, VNV,a(,) ograničena, V-eliptična bilinerna forma na V te l ograničeni linearni funkcional. Neka je uV rješenje od (1) i uNVN Galerkinova aproksimacija (2). Tada postoji konstanta C takva da
(4)
uuNVCinfvVNuvV.

Proof. Prema pretpostavci a(,) je V-eliptična, ograničena bilinearna forma pa za svaki vVN imamo, cuuN2Va(uuN,uuN)&=a(uuN,uv) MuuNVuvV. Dijeljenjem s cuuN slijedi tvrdnja, uuN2VCuuNVuvV gdje je C=M/c.
 

U slučaju kada je a(,) simetrična bilinearna forma ona definira skalarni produkt na V i njime induciranu normu va=a(v,v). Ako sada oduzimemo (2) od (1) zbog linearnosti slijedi

a(uuN,v)=0vVN.

Vidimo da je s obzirom na novi skalarni produkt pogreška uuN ortogonalna na potprostor VN. Drugim riječima, uN je ortogonalna projekcija egzaktnog rješenja u na potprostor VN.

Korolar 2. Uz pretpostavke prethodnog teorema pretpostavimo još da je dan niz potprostora VN1VN2... takvih da je ¯iVNi=V. Tada Galerkinova metoda konvergira, uuNi0 kad i.

Proof. Zbog pretpostavke gustoće postoji niz viVNi, i1, takav da uviV0 kad i. Primjenom Céine leme slijedi dokaz tvrdnje, uuNiVCuviV.
 

Promotrimo primjenu Galerkinove metode na jednostavnom primjeru.

Primjer 3. Zadan je rubni problem
(5)
{u+u=f na 0,1u(0)=u(1)=0.
Množenjem s test funkcijom vV=H10(0,1), integriranjem po cijeloj domeni te primjenom parcijalne integracije slijedi slaba formulacija uV,10(uv+uv)dx=10fvdx,vV. Ako definiramo a(u,v)=10(uv+uv)dx te l(v)=10fvdx iz Lax-Milgramove leme slijedi jedinstvenost rješenja ovako zapisane zadaće.
Moramo odabrati konačnodimenzionalni potprostor od V u kojem želimo tražiti aproksimaciju rješenja. S obzirom na to da je rješenje u rubovima nula jedan jednostavan potprostor je VN=span{xi(1x),i=1,2,...,N}. Onda je uN=Nj=1ξjxj(1x). Nepoznate koeficijente {ξj}Nj=1 odredit ćemo iz Galerkinovih jednadžbi 10(uNv+uNv)dx=10fvdxvVN, uzimanjem funkcija v=xi(1x),i=1,2,...,N za test funkcije. Dolazimo do sustava linearnih jednadžbi Kξ=b, gdje je ξ=(ξ1,...,ξN)τ vektor nepoznanica, bRN vektor desne strane čija je i-ta komponenta oblika 10f(x)xi(1x)dx te K matrica sustava čiji (i,j) element ima oblik 10[(xj(1x))(xi(1x))+xj(1x)xi(1x)]dx=iji+j1i(j+1)j(i+1)i+j+(i+1)(j+1)i+j+1 +1i+j+12i+j+2+1i+j+3. Valja odmah primijetiti da je matrica koeficijenata K popunjena elementima različitim od nule. No to nije sve, matrica je i loše uvjetovana što upućuje na ozbiljne opasnosti prilikom numeričkog rješavanja dobivenog sustava. U sljedećoj tablici je prikazana uvjetovanost matrice sustava za neke dimenzije potprostora.

NCond(K) 31.90102 57.88104 74.43107 107.871011 
Kao posljednji argument koji ide u prilog numeričkoj nestabilnosti implementacije Galerkinove metode pogledajmo sljedeće slike.


 
 
Slika 1: Rezultati numeričke implementacije Galerkinove metode za f(x)=x3 čije egzaktno rješenje je dano s u(x)=7exe1e+7exe1ex36x.
a) Za n=10, apsolutna pogreška je 7.87e1011, a uvjetovanost matice sustava je 4.02109
b) Za n=50, apsolutna pogreška je 1.111013 te uvjetovanost matice sustava je 5.281015
c) Egzaktno rješenje
d) Popunjenost matrice krutosti za n=25. Plava točkica označava ne-nul element u matrici na odgovarajućem mjestu.

 


Iako je s teorijske strane ovaj pristup jednostavan i elegantan, neke detalje ćemo ipak morati prilagoditi kako bismo osigurali spomenuta dobra svojstva i praktičnoj izvedbi.

3Metoda konačnih elemenata

U prethodnom primjeru prilikom numeričke izvedbe Galerkinove metode vidjeli smo da se rješavanje linearnog rubnog problema svodi na rješavanje sustava linearnih jednadžbi. No, matrica sustava je bila gusto popunjena i loše uvjetovana. Htjeli bismo prilagoditi Galerkinovu metodu tako da u konačnici dobijemo sustav koji je dobro uvjetovan i još po mogućnosti rijetko popunjen. Ipak, za računanje svakog elementa matrice potrebno je riješiti ponekad netrivijalan integral - što je vremenski skupo ukoliko je matrica gusto popunjena. Kada radimo sa sustavima čije su matrice rijetko popunjene otvara se još jedan bonus, mogućnost uporabe iterativnih metoda. Jedan način na koji možemo riješiti prethodna dva problema jest pažljivim odabirom baze konačnodimenzionalnog prostora VN. Zathjevat ćemo da je broj baznih funkcija čiji se nosači sijeku s nosačem proizvoljne bazne funkcije što manji mogući. Odlučit ćemo se za prostor VN koji se sastoji od funkcija koje su po dijelovima polinomi povezani s diskretizacijom domene Ω. Jednostavno govoreći, Galerkinova metoda uz prethodne pretpostavke na bazne funkcije postaje metoda konačnih elemenata.
Konvergencija metode konačnih elemenata može se postići povećanjem stupnja polinoma u baznim funkcijama, profinjavanjem diskretizacije domene ili čineći obje istovremeno. Ilustrirajmo sada na primjeru navedene ideje.

Primjer 4. Promatramo
(6)
{u+u=f na 0,1u(0)=0,u(1)=b
gdje je fL(0,1) te bR. Kao prije množenje s test funkcijom vV={vH1(0,1):v(0)=0}, integriranjem po cijeloj domeni te primjenom parcijalne integracije daje slabu formulaciju uV,10(uv+uv)dx=10fvdx+bv(1),vV. Opet, primjenom Lax-Milgramove leme slijedi da slaba formulacija ima jedinstveno rješenje.
Za NN načinimo diskretizaciju domene I=[0,1] tako da je 0=x0<x1<...<xN=1. Točke xi nazivamo čvorovi, a podintervale Ii=[xi1,xi] elementi. Označimo s hi=xixi1 te s h=maxi=1,...,Nhi. Rješenje ćemo tražiti u prostoru Vh={vhV:vh|IiP1(Ii),i=1,...,N}. Zato što su po dijelovima glatke funkcije u H1(I) ako i samo ako su u C(¯I), ekvivaletno možemo definirati Vh={vhC(¯I):vh|IiP1(Ii),i=1,...,N,v(0)=0}. Za bazne funkcije uvodimo tzv. hat funkcije ϕi(x)={(xxi1)/hi,xi1xxi,(xi+1x)/hi+1,xixxi+1,0,inače, i posebno za desni rub kada je i=N, ϕi(x)={(xxN1)/hN,xN1xxN,0,inače, Prethodne funkcije su neprekidne, po dijelovima glatke i očito linearno nezavisne. Lako se vidi da je prva slaba derivacija tako definiranih funkcija ϕi po dijelovima konstantna funkcija.
 
Slika 2: Grafovi funkcija baznih funkcija


Neka je zadan prostor konačnih elemenata Vh=span{ϕi:i=1,...,N} uz problem
(7)
uhVh10(uhvh+uhvh)dx=10fvhdx+bvh(1)vVh,
koji prema Lax-Milgramovoj lemi ima jedinstveno rješenje. Kao i u prethodnom primjeru, ako zapišemo aproksimaciju rješenja kao linearnu kombinaciju elemenata baze, uh=Nj=1ujϕj vidimo da se (7) može zapisati kao Nj=1uj10(ϕiϕj+ϕiϕj)dx=10fϕidx+bϕi(1),i=1,...,N. Lako je provjeriti istinitost sljedećih formula, a njihovo uvažavanje će biti ključno za sastavljanje matrice sustava. 10ϕiϕi1dx=1h,i=2,...,N, 10(ϕi)2dx=2h,i=2,...,N1, 10ϕiϕi1dx=h6,i=2,...,N, 10(ϕi)2dx=2h3,i=1,...,N1, 10(ϕN)2dx=1h, 10(ϕN)2dx=h3. Sada možemo problem (7) prikazati kao sustav linearnih jednadžbi Ku=b. K=[2h3+2hh61h h61h2h3+2hh61h &h61h2h3+2hh61h&h61hh3+h] je matrica sustava, b=(10fϕ1dx,10fϕ2dx,...,10fϕN1dx,10fϕNdx+b)τ vektor desne strane te u=(u1,...,uN)τ vektor nepoznanica. Zahtijevali smo da bazne funkcije imaju što manji mogući nosač, posljedica je rijetko popunjena matrica sustava K matrica. Dobra uvjetovanost matrice K pokazana u sljedećoj tablici.



NCond(K) 322.3962 522.3962 722.3962 1043.1613 

Na kraju primjera pogledajmo rezultate programske implementacije metode konačnih elemenata.


   
   
Slika 3: Rezultati numeričke implementacije metode konačnih elemenata za f(x)=x3 uz rubne uvjete u(0)=u(1)=0 čije egzaktno rješenje je dano s u(x)=9exe1+e9exe1+ex36x.
a) Egzaktno rješenje
b) Za n=4, apsolutna pogreška je 0.0015, a uvjetovanost matice sustava je 32.64
c) Za n=10, apsolutna pogreška je 9.62105 te uvjetovanost matice sustava je 150.25.
d) Popunjenost matrice K za n=25. Plava točkica označava ne-nul element na odgovarajućem mjestu u matrici.

4Još jedan primjer

U nastavku promotrimo jednadžbu koja opisuje otklon žice klavira pod utjecajem sile f. Žica klavira ima dva dijela; žičanu jezgru te žicu namotanu oko nje. Uzevši to u obzir, jasno je da se takav objekt ne ponaša isključivo kao tanka žica. Žica klavira vibrira dijelom zbog napetosti, a dijelom zbog same čvrstoće žice. Iz tog razloga modelu dodajemo član koji opisuje ponašanje tankog štapa.

(8)
{u(4)u=f na 0,1u(0)=u(0)=u(1)=u(1)=0.

Slaba formulacija problema je

uV,10(uv+uv)dx=10fvdxvV,

gdje je V=H20(0,1). Ako želimo odabrati Vh, takav da je VhV, onda svaka funkcija u Vh mora bit barem klase C1. Pretpostavimo da se Vh sastoji od po dijelovima polinoma stupnja manjeg ili jednakog p. Uvjet da su funkcije u Vh klase C1 nameće 2(N1) uvjeta, a rubni uvjeti još 4 uvjeta. Sve skupa imamo

dim(Vh)=(p+1)N2(N1)4=(p1)N2

stupnja slobode da odaberemo bazne funkcije sa što manjim nosačem. Jasno je da je najmanji dozvoljeni p=2. Međutim odlučit ćemo se za p=3 da bismo povećali broj stupnjeva slobode za odabir baznih funkcija. Za p=3 prostor konačnih elemenata je

Vh={vhC1(¯I):vIiP3(Ii),I=1,...,N,vh(x)=vh(x)=0 za x=0,1}.

Možemo konstruirati bazne funkcije s malim nosačima koristeći uvjete interpolacije

ϕi(xj)=δij,ϕi(xj)=0,ψi(xj)=0,ψi(xj)=δij.

Kako bismo izbjegli tehničke komplikacije, poželjno je raditi na referentnom elementu. Ideja je sav posao obaviti na jednom elementu, tzv. referentnom elementu, a onda postignuto preslikati na ostale elemente. Neka je I0=0,1, preslikavanje

Fi:I0Ii,Fi(ξ)=xi1+hiξ

je bijekcija. Na referentnom elementu I0 konstruiramo polinome trećeg stupnja koji zadovoljavaju interpolacijske uvjete

Φ0(0)=1,Φ0(1)=0,Φ0(0)=0,Φ0(1)=0, Φ1(0)=0,Φ1(1)=1,Φ1(0)=0,Φ1(1)=0, Ψ0(0)=0,Ψ0(1)=0,Ψ0(0)=1,Ψ0(1)=0, Ψ1(0)=0,Ψ1(1)=0,Ψ1(0)=0,Ψ1(1)=1.

Jednostavnim računom određujemo da su tražene funkcije

Φ0(ξ)=(1+2ξ)(1ξ)2,Φ1(ξ)=(32ξ)ξ2,Ψ0(ξ)=ξ(1ξ)2,Ψ1(ξ)=(1ξ)ξ2.

Sad možemo odrediti bazne funkcije

ϕi={Φ1(F1i(x)),xIi,Φ0(F1i+1(x)),xIi+1,0,inače,

i

ψi={hiΨ1(F1i(x)),xIi,hi+1Ψ0(F1i+1(x)),xIi+1,0,inače,

Kao i u prethodnim primjerima, želimo formulirati sustav linearnih jednadžbi. Koeficijente matrice sustava računat ćemo preko referentnog elementa, npr.

ki1,i=10(ϕi1)(ϕi)+(ϕi1)(ϕi)dx=Ii(ϕi1)(ϕi)+(ϕi1)(ϕi)dx

koristeći definiciju baznih funkcija i funkcije Fi možemo izračunati

ki1,i=1h3iI06(2ξ1)6(12ξ)dξ+1hiI06ξ(ξ1)6ξ(1ξ)dξ=12h3i65hi.

Ostale elemente matrice možemo izračunati analogno, a tako dobivena matrica će biti petdijagonalna. Komentirajmo za kraj da je za višedimenzionalne probleme tehnika referentnog elementa neophodna, kako za teorijsku analizu greške tako i za praktičnu implementaciju. Valja primijetiti da smo u prethodnom jednodimenzionalnom primjeru zahtijevali da funkcije iz Vh budu polinomi trećeg stupnja kako bismo postigli da funkcije iz VhV budu klase C1. U višim dimenzijama je potreban još veći stupanj polinoma kako bismo to postigli. Jedan način kako je moguće riješiti taj problem jest korištenjem nekonformnih elemenata ([5]).
Za sam kraj, ostavljamo čitatelju jedan programerski podhvat.


Zadatak. Napravite programsku izvedbu metode konačnih elemenata za sljedeći problem

(9)
{u(4)u=x3 na 0,1u(0)=u(0)=u(1)=u(1)=0.

Egzaktno rješenje ovog problema je

u(x)=120(e3)(e1)ex(ex+2(x5+20x344x+44)2ex+1(2x5+40x365x+44) +ex(3x5+60x386x86)+86e2x21e2x+144e2+109e).

Zahvaljujem se prof.dr.sc. Josipu Tambači na detaljnom čitanju ovog članka i korisnim savjetima.

5Literatura

[1] Atkinson, Han. Theoretical Numerical Analysis: a functional framework. Vol 19. Springer, 2009.
[2] Dhatt, Gouri i Touzot, Gilbert. Finite Element Method. John Willey and Sons, 2012.
[3] Brenner, Susanne i Carstensen, Carsten. Encyclopedia of Computational Mechanics. Chapter 4, Finite Element Methods. John Wiley and Sons, 2004.
[4] Jurak, Mladen. Praktikum primijenjene matematike II. Skripta, PMF Matematički odsjek, 2008.

[5] Ciarlet, Philippe G. The finite element method for elliptic problems. Elsevier, 1978.