ΑΣΚΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ, 00-0, 5 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ #4: ΠΑΡΑΒΟΛΙΚΑ ΠΡΟΒΛΗΜΑΤΑ (αρχικών και οριακών τιμών) ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ:..00 ΕΠΙΜΕΛΕΙΑ: Ιωάννης Λυχναρόπουλος Ζητείται να επιλυθεί η εξίσωση t r r r, 0r, t 0 () με αρχική συνθήκη την (0, r) 0 () και οριακές τις (,) t 0, t 0 (3) και r r 0 0, t 0 (συνθήκη συμμετρίας) (4) Το παραπάνω πρόβλημα μπορεί να περιγράψει τη μεταβατική πλήρως ανεπτυγμένη ροή σε κυλινδρικό αγωγό. Για την επίλυσή του χρησιμοποιείται ένα πλέγμα της ακόλουθης μορφής όπου στο οριζόντιο άξονα είναι το πλέγμα και στον κατακόρυφο ο χρόνος: t N Nr Nr t 3 Nr Nr t Nr Nr t =0 Nr Nr r i- i i+ 0 rnr Εφαρμόζοντας τον κανόνα Hospital έχουμε: r 0 γράφεται ως : t r lim r. Επομένως η () όταν r0 r r (5)
Ρητό Σχήμα Η εφαρμογή του ρητού σχήματος στην (5) δίνει για τον κόμβο i τη σχέση: t 0 r (6) Για την εκτίμηση του φανταστικού κόμβου 0 η συνθήκη συμμετρίας (4) 0 διακριτοποιείται και δίνει: 0 0 r Επομένως η (6) γίνεται διαδοχικά t r t t r t t 4 4 t r r (7) Η εφαρμογή στη συνέχεια του ρητού σχήματος στην () δίνει: i i i i i i i t r ri r t t t i i i i i i i r r ri t t t t t i i i it, i,..., Nr r r ri r r r ri Τέλος για τον κόμβο Nr έχουμε από την (3): Nr 0 (9) (8) Πεπλεγμένο Σχήμα Η σχέση (5) δίνει για τον κόμβοi (κάνοντας χρήση και πάλι της εξίσωσης του φανταστικού κόμβου): t r t t r t t 4 4 t (0) r r Η σχέση () δίνει για τους εσωτερικούς κόμβους την εξίσωση
i i i i i i i t r ri r t t i i i i i i i t r r ri t t t t t i i i i t () r r ri r r r ri Τέλος για τον κόμβο Nr έχουμε και πάλι από την (3) τη σχέση: Nr 0 () Το σύστημα που ορίζουν οι σχέσεις (0) και () αποτελεί ένα τριδιαγώνιο σύστημα Nr εξισώσεων με Nr αγνώστους, το οποίο επιλύεται αποδοτικά με τον αλγόριθμο Thomas. Επίσης, για τη επίλυσή του μπορεί να χρησιμοποιηθεί η γενικότερη επαναληπτική μέθοδος Gauss-Seidel (η οποία θα πρέπει να εφαρμοσθεί σε κάθε χρονικό βήμα). Ξαναγράψουμε τις (0) και () στην ακόλουθη μορφή ( k) ( k) t t 4 4 t (3) r r ( k) ( ) ( ) k k t t t t t i i i i t(4) r r r ri r r ri όπου με ( k ) δηλώνεται η k επανάληψη της μεθόδου Gauss-Seidel. Ο κώδικας Fortra που ακολουθεί επιλύει το δοσμένο πρόβλημα χρησιμοποιώντας ανάλογα με την τιμή της μεταβλητής method α) το ρητό σχήμα, β) το πεπλεγμένο σχήμα και τον αλγόριθμο Thomas, και γ) το πεπλεγμένο σχήμα και την επαναληπτική μέθοδο Gauss-Seidel. Program FTBS implicit oe iteger,parameter:: Nr=5!Arithmos diasthmatw. real,parameter::dt=0.! Xroiko Bhma iteger,parameter::tmax=00! Megistos arithmos xroikw bhmatw real::(nr+),old(nr+),r(nr+),x(nr),a(nr),b(nr),c(nr),d(nr),_seid elold(nr+) iteger::i,j,k,method=3,l,doe,maxi=00000,_to_prit= real::dr,aa,bb,cc,max,rel=0.0000 dr=./nr!bhma r do i=,nr+ r(i)=(i-)*dr ed do i (method==) the! rhto ope(,ile='res_rhto.txt',recl=0000)!arxikes times =0. do k=,tmax old= ()=(4*dt/dr**)*old()+(-4*dt/dr**+)*old()-dt
do i=,nr aa=dt/dr** + dt/(*dr*r(i)) bb=-*dt/dr** cc=dt/dr** - dt/(*dr*r(i)) (i)=aa*old(i+)+bb*old(i)+cc*old(i-)-dt ed do!()=()! Oriakh sytikh symmetrias (Nr+)=0.! Oriakh sythikh prit* prit '(A,I3,F0.4)','-------------',k, k*dt prit '(<Nr+>F0.4)', i (mod(k,_to_prit)==0) the write(,'(i5,",",<nr+>(f0.4,","))'),k,k*dt, ed i ed do close() elsei (method==) the! peplegmeo gauss-seidel ope(,ile='res_peplegmeo_gauss_seidel.txt',recl=0000) do k=,tmax old= l= doe=0 do while (l<=maxi.ad. doe==0)! Arxh gauss-seidel _seidelold= aa=(+4*dt/dr**)**(-) bb=4*dt/dr** ()=aa*(bb*()+old()-dt) do i=,nr aa=(+*dt/dr**)**(-) bb=dt/dr** + dt/(*dr*r(i)) cc=dt/dr** - dt/(*dr*r(i)) ed do (i)=aa*(old(i)-dt+bb*(i+)+cc*(i-))! elexos gia termatismo gauss-seidel max =maxval( abs((:nr) - _seidelold(:nr))) i (max<rel) the doe= ed i prit*,max,l l=l+ ed do!telos gauss-seidel (Nr+)=0.! Oriakh sythikh prit* prit '(A,I3,F0.4)','-------------',k, k*dt prit '(<Nr+>F0.4)', i (mod(k,_to_prit)==0) the write(,'(i5,",",<nr+>(f0.4,","))'),k,k*dt, ed i ed do
close() else! peplegmeo Thomas ope(3,ile='res_peplegmeo_thomas.txt',recl=0000) do k=,tmax old=! Ypologismos sytelestw algorithmou Thomas gia tous - eswterikous kombous! px gia =7 (6 eswterikoi komboi):! b() c() 0 0 0 0 d()! a() b() c() 0 0 0 d()! 0 a(3) b(3) c(3) 0 0 d(3)! 0 0 a(4) b(4) c(4) 0 d(4)! 0 0 0 a(5) b(5) c(5) d(5)! 0 0 0 0 a(6) b(6) d(6) B()=+4*dt/dr** C()=-4*dt/dr** D()=old()-dt do i=,nr A(i)=-(dt/dr** - dt/(*dr*r(i))) B(i)=+*dt/dr** C(i)=-(dt/dr** + dt/(*dr*r(i))) D(i)=old(i)-dt ed do call Thomas(Nr,A,B,C,D,X) (:Nr)=X(:) (Nr+)=0.! Oriakh sythikh prit* prit '(A,I3,F0.4)','-------------',k, k*dt prit '(<Nr+>F0.4)', i (mod(k,_to_prit)==0) the write(3,'(i5,",",<nr+>(f0.4,","))'),k,k*dt, ed i!read* ed do close(3) ed i cotais! Algorithmos Thomas subroutie Thomas(,a,b,c,d,x) iteger,intent(in) :: real, INTENT(INOUT) ::a(),b(),c(),d() real, INTENT(OUT) ::x() iteger::i real ::t(),u() t()=b() u()=d()/t()
do i=, t(i)=b(i)-a(i)*c(i-)/t(i-) u(i)=(d(i)-a(i)*u(i-))/t(i) ed do x()=u() do i=-,,- x(i)=u(i)-c(i)/t(i)*x(i+) ed do ed subroutie Thomas ed program Ενδεικτικά παρουσιάζονται τα ακόλουθα αποτελέσματα του κώδικα: Ρητό Σχήμα, t 0.00, Nr 5 (6 κόμβοι), t/ r 0.05 t r 0 r /5 r3 /5 r4 3/5 r5 4/5 r6 00 0.000-0.0953-0.0936-0.0876-0.0740-0.047 0.0000 00 0.000-0.6-0.56-0.405-0.6-0.066 0.0000 300 0.3000-0.996-0.94-0.706-0.36-0.0765 0.0000 400 0.4000-0.4-0.30-0.876-0.444-0.083 0.0000 500 0.5000-0.338-0.47-0.973-0.5-0.0856 0.0000 600 0.6000-0.408-0.33-0.08-0.550-0.0875 0.0000 700 0.7000-0.448-0.35-0.059-0.57-0.0886 0.0000 800 0.8000-0.470-0.37-0.077-0.584-0.089 0.0000 900 0.9000-0.483-0.384-0.087-0.59-0.0895 0.0000 000.0000-0.490-0.39-0.093-0.595-0.0897 0.0000 00.000-0.495-0.395-0.096-0.597-0.0899 0.0000 00.000-0.497-0.397-0.098-0.598-0.0899 0.0000 300.3000-0.498-0.398-0.099-0.599-0.0900 0.0000 400.4000-0.499-0.399-0.099-0.599-0.0900 0.0000 500.5000-0.499-0.399-0.00-0.600-0.0900 0.0000 600.6000-0.500-0.400-0.00-0.600-0.0900 0.0000 Ρητό Σχήμα, t 0.0, Nr 5 (6 κόμβοι), t/ r 0.5 t r 0 r /5 r3 /5 r4 3/5 r5 4/5 r6 0 0.000-0.0969-0.0953-0.0893-0.0755-0.048 0.0000 0 0.000-0.638-0.586-0.45-0.30-0.0668 0.0000 30 0.3000-0.08-0.945-0.73-0.338-0.077 0.0000 40 0.4000-0.3-0.46-0.889-0.453-0.088 0.0000 50 0.5000-0.350-0.58-0.98-0.58-0.0860 0.0000 60 0.6000-0.46-0.3-0.034-0.554-0.0877 0.0000 70 0.7000-0.453-0.356-0.063-0.574-0.0887 0.0000 80 0.8000-0.474-0.375-0.079-0.586-0.0893 0.0000 90 0.9000-0.485-0.386-0.089-0.59-0.0896 0.0000 00.0000-0.49-0.39-0.094-0.596-0.0898 0.0000 0.000-0.495-0.396-0.096-0.598-0.0899 0.0000 0.000-0.497-0.398-0.098-0.599-0.0899 0.0000 30.3000-0.499-0.399-0.099-0.599-0.0900 0.0000 40.4000-0.499-0.399-0.099-0.600-0.0900 0.0000 50.5000-0.500-0.400-0.00-0.600-0.0900 0.0000 Ρητό Σχήμα, t 0., Nr 5 (6 κόμβοι), ΑΠΟΚΛΙΝΕΙ t / r.5
Πεπλεγμένο Σχήμα (επίλυση συστήματος με Thomas), t 0.00, Nr 5 (6 κόμβοι) t r r /5 r3 /5 r4 3/5 r5 4/5 r6 0 00 0.000-0.0949-0.093-0.087-0.0736-0.0470 0.0000 00 0.000-0.607-0.557-0.400-0.3-0.0659 0.0000 300 0.3000-0.99-0.90-0.70-0.33-0.0763 0.0000 400 0.4000-0.0-0.7-0.873-0.44-0.08 0.0000 500 0.5000-0.335-0.45-0.97-0.50-0.0856 0.0000 600 0.6000-0.406-0.3-0.07-0.549-0.0875 0.0000 700 0.7000-0.447-0.350-0.058-0.57-0.0886 0.0000 800 0.8000-0.470-0.37-0.076-0.584-0.089 0.0000 900 0.9000-0.483-0.384-0.087-0.59-0.0895 0.0000 000.0000-0.490-0.39-0.09-0.595-0.0897 0.0000 00.000-0.494-0.395-0.096-0.597-0.0899 0.0000 00.000-0.497-0.397-0.098-0.598-0.0899 0.0000 300.3000-0.498-0.398-0.099-0.599-0.0900 0.0000 400.4000-0.499-0.399-0.099-0.599-0.0900 0.0000 500.5000-0.499-0.399-0.00-0.600-0.0900 0.0000 600.6000-0.500-0.400-0.00-0.600-0.0900 0.0000 Πεπλεγμένο Σχήμα, (επίλυση συστήματος με Thomas), t 0.0, Nr 5 (6 κόμβοι) t r 0 r /5 r3 /5 r4 3/5 r5 4/5 r6 0 0.000-0.0934-0.097-0.0856-0.07-0.046 0.0000 0 0.000-0.583-0.534-0.38-0.099-0.065 0.0000 30 0.3000-0.970-0.900-0.685-0.3-0.0758 0.0000 40 0.4000-0.94-0. -0.86-0.433-0.088 0.0000 50 0.5000-0.33-0.33-0.96-0.504-0.0853 0.0000 60 0.6000-0.398-0.304-0.00-0.545-0.0873 0.0000 70 0.7000-0.44-0.345-0.054-0.568-0.0884 0.0000 80 0.8000-0.466-0.368-0.073-0.58-0.089 0.0000 90 0.9000-0.480-0.38-0.085-0.589-0.0895 0.0000 00.0000-0.489-0.389-0.09-0.594-0.0897 0.0000 0.000-0.493-0.394-0.095-0.596-0.0898 0.0000 0.000-0.496-0.396-0.097-0.598-0.0899 0.0000 30.3000-0.498-0.398-0.098-0.599-0.0899 0.0000 40.4000-0.499-0.399-0.099-0.599-0.0900 0.0000 50.5000-0.499-0.399-0.099-0.600-0.0900 0.0000 60.6000-0.500-0.400-0.00-0.600-0.0900 0.0000 Πεπλεγμένο Σχήμα, (επίλυση συστήματος με Thomas), t 0., Nr 5 (6 κόμβοι) t r 0 r /5 r3 /5 r4 3/5 r5 4/5 r6 0.000-0.083-0.0794-0.0733-0.060-0.0389 0.0000 0.000-0.394-0.35-0. -0.0978-0.0588 0.0000 3 0.3000-0.786-0.75-0.537-0.06-0.0704 0.0000 4 0.4000-0.04-0.967-0.740-0.349-0.0776 0.0000 5 0.5000-0.07-0.3-0.870-0.440-0.08 0.0000 6 0.6000-0.3-0.3-0.953-0.498-0.0850 0.0000 7 0.7000-0.380-0.87-0.006-0.535-0.0868 0.0000 8 0.8000-0.43-0.38-0.040-0.558-0.0879 0.0000 9 0.9000-0.45-0.354-0.06-0.573-0.0887 0.0000 0.0000-0.469-0.37-0.076-0.583-0.089 0.0000.000-0.480-0.38-0.084-0.589-0.0895 0.0000.000-0.487-0.388-0.090-0.593-0.0897 0.0000
3.3000-0.49-0.39-0.094-0.596-0.0898 0.0000 4.4000-0.495-0.395-0.096-0.597-0.0899 0.0000 5.5000-0.497-0.397-0.097-0.598-0.0899 0.0000 6.6000-0.498-0.398-0.098-0.599-0.0899 0.0000 7.7000-0.499-0.399-0.099-0.599-0.0900 0.0000 8.8000-0.499-0.399-0.099-0.600-0.0900 0.0000 9.9000-0.499-0.399-0.00-0.600-0.0900 0.0000 0.0000-0.500-0.400-0.00-0.600-0.0900 0.0000 Αρχικά παρατηρούμε ότι το πεπλεγμένο σχήμα επιτρέπει τη χρήση μεγαλυτέρων χρονικών βημάτων t χωρίς πρόβλημα. Ενώ στο ρητό σχήμα θα πρέπει να ικανοποιείται η συνθήκη σύγκλισης t/ r. Για να γίνει σύγκριση των αποτελεσμάτων με το αντίστοιχο μόνιμο πρόβλημα (5) r r r βρίσκουμε αρχικά την αναλυτική του λύση. Με το Mathematica έχουμε DSolve''r 'r, 0, '0 0, r, r r r 4 r Η γραφική παράσταση της () r είναι η ακόλουθη 0. 0.4 0.6 0.8.0-0.05-0.0-0.5-0.0-0.5 Αναλυτική λύση του αντίστοιχου μόνιμου προβλήματος r r /5 r3 /5 r4 3/5 r5 4/5 r6 0-0.500-0.400-0.00-0.600-0.0900 0.0000 Παρατηρείται ότι, όπως ήταν αναμενόμενο, η λύση του μεταβατικού προβλήματος συγκλίνει σε αυτή του αντίστοιχου μόνιμου προβλήματος καθώς το t Ευστάθεια πεπλεγμένου (με 0 S ) (Βλέπε Άσκηση της 3 ης Εργασίας του ακ. έτους 006-7)
Συνοχή Πεπλεγμένου (με S 0 ) Είναι i i i i i i i (6) t r ri r Αναπτύσσοντας όλες τις ποσότητες της ΕΠΔ σε σειρά Taylor γύρω από τον κόμβο i και κρατώντας όρους μέχρι και 3 ης τάξης, έχουμε: 3 t t 4 i i t t tt ttt O[ t ]! 3! και 3 i i r t r t r t r t! r t 3! r t i i r r t t r rr rt rt t tt! 3 3 4 4 r rrr 3r t rrt 3 rt rtt t ttt O[ r, t ] 3! Για να διευκολυνθούμε στις πράξεις αρχικά υπολογίζουμε τις ποσότητες i i i 3 3 i r r t t r rr rt rt t tt r rrr 3r t rrt 3rt rtt t ttt! 3! 3 3 i r r t t r rr rt rt t tt r rrr 3r t rrt 3rt rtt t ttt! 3! 3 t t i t t tt ttt r rr r t rrt! 3! και i i 3 3 i r r t t r rr rt rt t tt r rrr 3r t rrt 3rt rtt t ttt! 3! 3 3 i r r t t r rr rt rt t tt r rrr 3r t rrt 3rt rtt t ttt! 3! 3 6 rr rtrt r rrr rt rtt 3! 3! Αντικαθιστούμε τις παραπάνω σχέσεις στην ΕΠΔ: i i i i i i i t r ri r 3 t t tt tt ttt r rr rtrrt t! 3! r 3 6 rr rt rt r rrr rt rtt ri r 3! 3! t t t tt ttt rr t rrt r t rt r rrr t rtt 6 ri 6 (7) και προκύπτει μία πρώτη μορφή της τροποποιημένης διαφορικής εξίσωσης. Η μορφή αυτή είναι αρκετή για τη μελέτη της συνοχής. Πράγματι διαπιστώνεται ότι καθώς t 0 και r 0 η (7) ανάγεται στην (). Επομένως το πεπλεγμένο σχήμα έχει συνοχή.