ΑΣΚΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ, 009-00, 5 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ # ΥΠΕΡΒΟΛΙΚΑ ΠΡΟΒΛΗΜΑΤΑ ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ: 5..00 ΔΙΔΑΣΚΩΝ: Δ. Βαλουγεώργης Επιμέλεια απαντήσεων: Ιωάννης Λυχναρόπουλος Να επιλυθεί η εξίσωση κύματος ης τάξης u t + cu = 0 με αρχική συνθήκη u(, 0) = si( π), 0 και περιοδικές οριακές συνθήκες με μία από τις παρακάτω τεχνικές πεπερασμένων διαφορών. Να βρεθεί η αντίστοιχη τροποποιημένη εξίσωση. Να σχολιασθούν η αριθμητική διάχυση και διασπορά του σχήματος. Επίσης, να βρεθεί το κριτήριο ευστάθειας και να υπολογισθούν οι συντελεστές ενίσχυσης και διαφορά φάσης. Να γίνουν τα αντίστοιχα διαγράμματα.. Πεπλεγμένη Euler. McCormack 3. La Wedroff.. Πεπλεγμένη τραπεζοειδής Λύση Εφαρμόζοντας τη μέθοδο των χαρακτηριστικών η αναλυτική λύση είναι: ut (, ) = si( π ( ct)) Το ίδιο πρόβλημα επιλύεται αριθμητικά με πέντε αριθμητικά σχήματα. Σε όλες τις περιπτώσεις η βασική παράμετρος είναι ο αριθμός CFL: v= cδt/ Δ, όπου Δt και Δ είναι το χρονικό και χωρικό βήμα διακριτοποίησης αντίστοιχα. Μέθοδος : Πρόδρομη στο χρόνο ανάδρομη στο χώρο (Ρητό σχήμα) ( ) ( ), u = u v u u, i =,..., N + i i i i u + = u v u u N i = Μέθοδος : ΜcCormack (Ρητό σχήμα) Το σχήμα αυτό αποτελείται από εξισώσεις: (και διόρθωση): / ui = ui v ui+ ui, i =,..., N / / / Διόρθωση: ui = ui + ui v( ui ui ), i =,..., N / i = : ( u u v u u ) και u = u + u v u u N / i = N + : un+ = un+ v( u un ) και un+ = un+ + un+ v un+ un Πρόβλεψη: ( ) = + + / / / ( + + ) / / / + ( )
Μέθοδος 3: Πεπλεγμένη Euler v v ui+ + ui ui = ui, i =,..., N v v i = : u + u un = u v v i = N + : u + un+ un = un + Λόγω των περιοδικών συνθηκών το σύστημα δεν είναι τριδιαγώνιο. Επομένως, για την επίλυσή του εφαρμόζουμε την επαναληπτική μέθοδο Gauss-Seidel. Γράφουμε το σύστημα στη μορφή: ( k) v ( k ) v ( k) ui = ui ui+ + ui, i =,..., N ( k) v ( k ) v ( ) u = u u + u k N ( k) v ( k) v ( ) un+ = un+ u + u k N, όπου με ( k), k =,,... δηλώνουμε την k -επανάληψη της Gauss-Seidel Μέθοδος : Πεπλεγμένη Τραπεζοειδής v u ( ),,..., i = ui ui+ + ui+ ui ui i = N v i = : u = u ( u + u un un) v i = N + : un+ = un+ ( u + u u N u N) Για την επίλυση του συστήματος εφαρμόζουμε την επαναληπτική μέθοδο Gauss- Seidel. Γράφουμε το σύστημα στη μορφή: ( + + ) ( N N) v k k ( N ) ( k) v ( k ) ( k) ui = ui ui + ui ui ui, i =,..., N ( k) v ( k ) ( k ) u = u u + u u u ( k) ( ) ( ) N+ N+ N u = u u + u u u
Μέθοδος 5: La-Wedroff (Ρητό σχήμα) v v ui = ui ( ui+ ui ) + ( ui+ ui + ui ), i =,..., N v v i = : u + = u ( u un) + ( u u + un) v v i = N + : un+ = un+ ( u un) + ( u un+ + un) Το ακόλουθο πρόγραμμα επιλύει το πρόβλημα αρχικών τιμών και με τις 5 μεθόδους: program ftbs_mac_cormack implicit oe! Variables real,allocatable:: u(:),uold(:),uprev(:),(:),u0(:), t(:,:), t(:,:), t3(:,:), t(:,:),t5(:,:) =00 real::v, d, dt, c, pi, t,ma,err iteger::i,, tma, m, doe, method character()::um tma=0 allocate(u(), uold(),uprev(), (), u0(), t(,tma),t(,tma),t3(,tma),t(,tma),t5(,tma)) c=0.8 dt=0.0 d=./ v=c*dt/d pi=3.5965 do i=, (i)=(i-)*d ope(,file='res_all.tt',recl=0000) write(,'(a3,i)') 'I= ', write(,'(a3,f8.5)') 'c= ',c write(,'(a3,f8.5)') 'dt= ',dt write(,'(a3,f8.5)') 'd= ',d write(,'(a3,f8.5)') 'i= ',v tma=0 do method=,5!=ftbs = Mac Cormack 3=peplegmeh Euler =Peplegmeh trapezoeidhs 5=La-Wedroff if (method==) the do i=, u(i)=si(*pi*(i)) do m=,tma uold=u do i=, if(i==)the u(i)=uold(i)*(.-v)+v*uold() else u(i)=uold(i)*(.-v)+v*uold(i-) edif t(:,m)=u elseif (method==)the 3
do i=, u(i)=si(*pi*(i)) do m=,tma uold=u do i=, if(i==)the u0(i)=uold(i)-v*(uold()-uold(i)) else u0(i)=uold(i)-v*(uold(i+)-uold(i)) edif do i=, if(i==)the u(i)=0.5*(uold(i)+u0(i)-v*(u0(i)-u0())) else u(i)=0.5*(uold(i)+u0(i)-v*(u0(i)-u0(i-))) edif t(:,m)=u elseif (method==3)the err=0.0000 do i=, u(i)=si(*pi*(i)) doe=0 do m=,tma uold=u!gauss-seidel do while (doe==0) uprev=u u()=uold()+(v/.)*u()-(v/.)*u() do i=, u(i)=uold(i)+(v/.)*u(i-)-(v/.)*u(i+) u()=uold()+(v/.)*u()-(v/.)*u()! prit*, uold(),uold(),u(),u()!read* ma=maval(abs(u-uprev))!prit*,m,ma if(ma<err) the doe= edif!gauss-seidel t3(:,m)=u elseif (method==)the err=0.0000 do i=, u(i)=si(*pi*(i)) do m=,tma!gauss-seidel uold=u doe=0 do while (doe==0) uprev=u u()=uold()-(v/.)*(u()+uold()-u()-uold()) do i=, u(i)=uold(i)-(v/.)*(u(i+)+uold(i+)-u(i-)-uold(i-))
u()=uold()-(v/.)*(u()+uold()-u()-uold()) ma=maval(abs(u(:)-uprev(:))) prit*,m,ma if(ma<err) the doe= edif!gauss-seidel t(:,m)=u ed do elseif (method==5) the do i=, u(i)=si(*pi*(i)) do m=,tma uold=u u()=uold()-c*dt*(uold()- uold())/(.*d)+(0.5*c***dt**/d**)*(uold()-.*uold()+uold()) do i=, u(i)=uold(i)-c*dt*(uold(i+)-uold(i- ))/(.*d)+(0.5*c***dt**/d**)*(uold(i+)-.*uold(i)+uold(i-)) u()=uold()-c*dt*(uold()- uold())/(.*d)+(0.5*c***dt**/d**)*(uold()-.*uold()+uold()) t5(:,m)=u edif!method do m=,tma t=m*dt write(,*) '------------------------------T=',t,'---------------------------' write(,*) 'i FTBS McCormack Peplegmeh_euler Trapezoeidhs La-Wedroff Aalytikh' do i=, if (mod(i,0)/=) cycle write(,'(i3,f0.,6f5.5)') i,(i),t(i,m),t(i,m),t3(i,m),t(i,m),t5(i,m),si(*pi*((i)-c*t)) write(um,'(i)') m ope(3,file="for_mathematica_t_m"//trim(adjustl(um))//".tt") do i=, write(3,'(3f5.5)') t,(i),t(i,m) close(3)!m prit*, 'Doe' ed program ftbs_mac_cormack Ακολουθεί πίνακας αποτελεσμάτων για 0 χρονικά βήματα με c = 0.8, Δ t = 0.0 και Δ = 00 : Πεπλεγμένη Πεπλεγμένη La Αναλυτική t i FTBS McCormack Euler ΤραπεζοειδήςWedroff Λύση 0.0 0-0.0503-0.0503-0.050-0.050-0.0503-0.050 0. 0.56 0.56 0.5577 0.563 0.56 0.5639 0. 0.9303 0.9333 0.9338 0.933 0.9333 0.9333 3 0.3 0.96508 0.96538 0.96 0.96537 0.96538 0.96538 0. 0.675 0.6768 0.668 0.6766 0.6768 0.6769 5 0.5 0.0503 0.0503 0.050 0.050 0.0503 0.050 5
0.0 0.03 0.0 0.05 6 0.6-0.56-0.56-0.5577-0.563-0.56-0.5639 7 0.7-0.9303-0.9333-0.9338-0.933-0.9333-0.9333 8 0.8-0.96508-0.96538-0.96-0.96537-0.96538-0.96538 9 0.9-0.675-0.6768-0.668-0.6766-0.6768-0.6769 0-0.0503-0.0503-0.050-0.050-0.0503-0.050 0-0.003-0.003-0.09996-0.007-0.003-0.0036 0. 0.5033 0.5036 0.509 0.5037 0.5036 0.5036 0. 0.966 0.955 0.93 0.958 0.955 0.95 3 0.3 0.97665 0.9776 0.9777 0.9775 0.9776 0.9777 0. 0.6656 0.66599 0.66 0.66595 0.66599 0.6660 5 0.5 0.003 0.003 0.09995 0.007 0.003 0.0036 6 0.6-0.5033-0.5036-0.509-0.5037-0.5036-0.5036 7 0.7-0.966-0.955-0.93-0.958-0.955-0.95 8 0.8-0.97665-0.9776-0.9777-0.9775-0.9776-0.9777 9 0.9-0.6656-0.66599-0.66-0.66595-0.66599-0.6660 0-0.003-0.003-0.09996-0.008-0.003-0.0036 0-0.50-0.509-0.93-0.50-0.509-0.503 0. 0.593 0.596 0.5805 0.597 0.596 0.5958 0. 0.8999 0.89386 0.89057 0.8939 0.89386 0.8938 3 0.3 0.98575 0.98668 0.989 0.98666 0.98668 0.98669 0. 0.7099 0.706 0.69983 0.7055 0.706 0.7065 5 0.5 0.50 0.509 0.93 0.5009 0.509 0.503 6 0.6-0.593-0.596-0.5805-0.597-0.596-0.5958 7 0.7-0.8999-0.89386-0.89057-0.8939-0.89386-0.8938 8 0.8-0.98575-0.98668-0.989-0.98666-0.98668-0.98669 9 0.9-0.7099-0.706-0.69983-0.7055-0.706-0.7065 0-0.50-0.509-0.9-0.50-0.509-0.503 0-0.997-0.9966-0.98-0.995-0.9966-0.997 0. 0.38 0. 0.57 0.5 0. 0.38 0. 0.86908 0.870 0.86596 0.8707 0.870 0.8708 3 0.3 0.9936 0.9936 0.98858 0.99359 0.9936 0.9936 0. 0.73659 0.7378 0.73359 0.73739 0.7378 0.7375 5 0.5 0.997 0.9966 0.98 0.995 0.9966 0.997 6 0.6-0.38-0. -0.57-0.5-0. -0.38 7 0.7-0.86908-0.870-0.86596-0.8707-0.870-0.8708 8 0.8-0.9936-0.9936-0.98858-0.99359-0.9936-0.9936 9 0.9-0.73659-0.7378-0.7336-0.73739-0.7378-0.7375 0-0.997-0.9966-0.98-0.995-0.9966-0.997 0-0.83-0.863-0.676-0.88-0.863-0.869 0. 0.36753 0.3688 0.3667 0.36833 0.3688 0.368 0. 0.899 0.836 0.8393 0.85 0.836 0.833 3 0.3 0.9965 0.9980 0.9973 0.9980 0.9980 0.99803 0. 0.7693 0.7707 0.765 0.77037 0.7707 0.7705 5 0.5 0.83 0.863 0.675 0.87 0.863 0.869 6 0.6-0.36753-0.3688-0.3667-0.36833-0.3688-0.368 7 0.7-0.899-0.836-0.8393-0.85-0.836-0.833 8 0.8-0.9965-0.9980-0.9973-0.9980-0.9980-0.99803 9 0.9-0.7693-0.7707-0.7653-0.77037-0.7707-0.7705 0-0.83-0.863-0.678-0.88-0.863-0.869 0.06 0-0.965-0.9697-0.937-0.9679-0.9697-0.970 6
0.07 0.08 0.09 0.0 0. 0.303 0.30 0.3896 0.39 0.30 0.309 0. 0.878 0.8638 0.805 0.869 0.8638 0.863 3 0.3 0.99803 0.9999 0.9938 0.9999 0.9999 0.9999 0. 0.80006 0.805 0.7955 0.80 0.805 0.8057 5 0.5 0.965 0.9697 0.936 0.9679 0.9697 0.970 6 0.6-0.303-0.30-0.3896-0.3-0.30-0.309 7 0.7-0.878-0.8638-0.805-0.869-0.8638-0.863 8 0.8-0.99803-0.9999-0.9938-0.9999-0.9999-0.9999 9 0.9-0.80006-0.805-0.7955-0.80-0.805-0.8057 0-0.965-0.9697-0.939-0.9679-0.9697-0.970 0-0.339-0.356-0.3-0.335-0.356-0.36 0. 0.73 0.7303 0.707 0.735 0.7303 0.795 0. 0.7853 0.7863 0.7797 0.7868 0.7863 0.7869 3 0.3 0.99708 0.9999 0.9905 0.9993 0.9999 0.9999 0. 0.8878 0.83055 0.899 0.830 0.83055 0.8306 5 0.5 0.339 0.356 0.3 0.335 0.356 0.36 6 0.6-0.73-0.7303-0.707-0.735-0.7303-0.795 7 0.7-0.7853-0.7863-0.7797-0.7868-0.7863-0.7869 8 0.8-0.99708-0.9999-0.9905-0.9993-0.9999-0.9999 9 0.9-0.8878-0.83055-0.83-0.830-0.83055-0.8306 0-0.339-0.356-0.3-0.336-0.356-0.36 0-0.390-0.398-0.38689-0.3905-0.398-0.3937 0. 0.367 0.36 0.6 0.6 0.36 0.7 0. 0.7533 0.753 0.7708 0.758 0.753 0.755 3 0.3 0.9936 0.996 0.9869 0.9966 0.996 0.9963 0. 0.85538 0.8577 0.886 0.8573 0.8577 0.85753 5 0.5 0.390 0.398 0.38688 0.3905 0.398 0.3937 6 0.6-0.367-0.36-0.6-0.6-0.36-0.7 7 0.7-0.7533-0.753-0.7708-0.758-0.753-0.755 8 0.8-0.9936-0.996-0.9869-0.9966-0.996-0.9963 9 0.9-0.85538-0.8577-0.886-0.8573-0.8577-0.85753 0-0.390-0.398-0.3869-0.3906-0.398-0.3937 0-0.359-0.370-0.357-0.3676-0.370-0.37 0. 0.79 0.753 0.7373 0.75 0.753 0.750 0. 0.78 0.7038 0.766 0.7058 0.7038 0.703 3 0.3 0.98765 0.9907 0.97938 0.9905 0.9907 0.9906 0. 0.8798 0.88 0.870 0.88 0.88 0.889 5 0.5 0.359 0.370 0.356 0.3676 0.370 0.37 6 0.6-0.79-0.753-0.7373-0.75-0.753-0.750 7 0.7-0.78-0.7038-0.766-0.7058-0.7038-0.703 8 0.8-0.98765-0.9907-0.97938-0.9905-0.9907-0.9906 9 0.9-0.8798-0.88-0.870-0.88-0.88-0.889 0-0.359-0.370-0.36-0.3677-0.370-0.37 0-0.807-0.865-0.7506-0.837-0.865-0.875 0. 0.9 0.55 0.5 0.577 0.55 0.533 0. 0.6836 0.6863 0.67653 0.6887 0.6863 0.6855 3 0.3 0.9798 0.983 0.970 0.9837 0.983 0.989 0. 0.9099 0.9077 0.8936 0.906 0.9077 0.9083 5 0.5 0.807 0.865 0.750 0.836 0.865 0.875 6 0.6-0.9-0.55-0.5-0.577-0.55-0.533 7
7 0.7-0.6836-0.6863-0.67653-0.6887-0.6863-0.6855 8 0.8-0.9798-0.983-0.970-0.9837-0.983-0.989 9 0.9-0.9099-0.9077-0.8936-0.906-0.9077-0.9083 0-0.807-0.865-0.7509-0.837-0.865-0.875 Η γραφική εξέλιξη της λύσης δίνεται στο ακόλουθο σχήμα:.0 0.5 0.00 t 0.05 0.0.0 0.5 0.0 y 0.0 y -0.5 -.0 0.00.0-0.5 -.0.0 0.05 t 0.5 0.0 0.5 0.0 0.0 Σχήμα : Εξέλιξη κύματος σε 0 χρονικά βήματα Το Σχήμα δημιουργήθηκε με Mathematica χρησιμοποιώντας τις ακόλουθες εντολές: Do[yData =ReadList["for_mathematica_t_m"<>ToStrig[]<>".tt",{Numb er,number,number}];g =ListPoitPlot3D[yData ],{,,0}]; t=table[g,{,,0}]; Show[t,PlotRage{{0,0.},Automatic,Automatic},AesLabel{"t","","y "}] Στη συνέχεια θα μελετηθεί η ευστάθεια και η συνοχή της μεθόδου Πεπλεγμένη Euler: Ευστάθεια: u =Ψ e k με a = a i ak ak ak ( +Δ ) ak ( ) Ψ e Ψ e + v( Ψ e Ψ e ) = 0 akδ ak Ψ Ψ + vψ e vψ e = 0 akδ ak Ψ + vψ e vψ e =Ψ Ψ ξ = = Ψ v ak ak ( e Δ e Δ + ) ak ak e e = [ cos( kδ ) + asi( k) ] [ cos( k) asi( kδ ) ] = asi( kδ ) avsiβ ξ = = + avsi( kδ ) + v si β Συντελεστής ενίσχυσης: avsi β avsiβ + v si β + v si ξ = = = = + v si β + v si β + v si β + si ( v β ) β 8
ξ = + v si β Επομένως, η μέθοδος είναι ευσταθής για κάθε τιμή του αριθμού CFL Γωνία φάσης: vsi β Im( ) Im( ) + si ϕ = Arcta = Arcta = Arcta Re( ξ) Re( ξ) + v si β ϕ = ta ( vsi β ) ξ ξ v β Συνοχή: Αναπτύσσοντας όλες τις ποσότητες της ΕΠΔ σε σειρά Taylor γύρω από τον κόμβο έχουμε: u i 3 Δt Δt ui = ui +Δ tut + utt + uttt + O[ Δ t ]! 3! 3 ui± = ui + ±Δ + Δ t u+ ±Δ + Δ t u+ ±Δ + Δt u t! t 3! t ui± = ui ±Δ u +Δ tut + ( Δ u ± Δ tut +Δ t utt) +! 3 3 + ( ±Δ u + 3Δ tut ± 3 Δ t utt +Δ tuttt ) + O[, Δt ] 3! Για να διευκολυνθούμε στις πράξεις αρχικά υπολογίζουμε τη διαφορά u u = i+ i 3 3 = ui +Δ u +Δ tut + ( Δ u + Δ tut +Δ t utt ) + ( +Δ u + 3 Δ tut + 3Δ t utt +Δt uttt )! 3! 3 3 ui +u Δtut ( u Δ tut +Δt utt ) ( Δ u + 3 Δtut 3Δ t utt +Δ t uttt ) =! 3! 3 6 Δ u + Δ tut + Δ u + Δt utt 3! 3! Αντικαθιστούμε τα αναπτύγματα και την διαφορά στην ΕΠΔ: v ui ui + ( ui+ ui ) = 0 3 Δt Δt v 3 6 Δ tut + utt + uttt + Δ u + Δ tut + Δ u + Δ t utt = 0! 3! 3! 3! Δt Δt c 3 6 ut + utt + uttt + Δ u + Δ tut + Δ u + Δ t utt = 0! 3! 3! 3! Δt Δt c 3c ut + cu = utt uttt cδtut u Δ t utt (ΤΔΕ)! 3! 3! 3! 9
Η παραπάνω εξίσωση αποτελεί μία πρώτη μορφή της τροποποιημένης διαφορικής εξίσωσης που αποδεικνύει ότι το πεπλεγμένο σχήμα Euler έχει συνοχή. Περαιτέρω επεξεργασία της ΤΔΕ οδηγεί σε περισσότερες πληροφορίες για το αριθμητικό σχήμα. Παραγωγίζοντας την παραπάνω εξίσωση διαδοχικά ως προς t και ως προς και κρατώντας όρους πρώτης τάξης βρίσκουμε τις διαφορικές εξισώσεις Δt Δt utt + cut = uttt cδ tutt και ut + cu = utt cδ tut Από τις οποίες με κατάλληλη επεξεργασία προκύπτει η διαφορική εξίσωση για τη η παράγωγο ως προς το χρόνο t t utt c u Δ Δ = uttt cδ tutt + c utt + c Δ tut Στη συνέχεια οι παράγωγοι ως προς t και οι μικτές παράγωγοι αντικαθίστανται με παραγώγους ως προς με βάση τις παρακάτω σχέσεις: u = u = u = u = cu = cu ( ) ( ) t t t t 3 ttt = tt = = t = = ( ) ( ) ( ) t t ( ) u u c u c u c cu c u u = u = cu = cu tt tt Αντικαθιστώντας τις παραπάνω εξισώσεις στην διαφορική εξίσωση για τη η παράγωγο ως προς το χρόνο προκύπτει t 3 3 3 t 3 3 utt cu Δ Δ = + cu Δ tcu + c u cδ tu = cu Δ tcu Τέλος, αντικαθιστώντας τη παραπάνω έκφραση και τις άλλες απαραίτητες ποσότητες στην ΤΔΕ καταλήγουμε στην τελική μορφή της τροποποιημένης διαφορικής εξίσωσης του σχήματος: Δt 3 Δt 3 Δt ut + cu =! c u c Δ tu + c u cδt c u cu 3! c 3 3 u Δtcu 3! 3! Δt 3 Δt 3 Δt 3 Δt c 3 Δt ut + cu = c + c Δ t u + c + c c c u 6 6 3 c ut + cu = c Δtu cδ + c Δ t u = c Δtu ( + ν ) u 6 3 6 Από την ΤΔΕ είναι προφανές ότι το σχήμα έχει συνοχή διότι για Δt 0, 0 η ΤΔΕ καταλήγει στην εξίσωση κύματος ης τάξης. Όμως γίνεται επίσης προφανές ότι ανεξάρτητα από την τιμή του αριθμού CFL, δηλαδή ανεξάρτητα της διακριτοποίησης που επιλέγεται το σχήμα έχει πάντα αριθμητικά απόσβεση και αριθμητική διασπορά αφού οι συντελεστές των παραγώγων u και u δεν μηδενίζονται. Πρόκειται λοιπόν για σχήμα που είναι πάντα ευσταθές αλλά που παράλληλα παρουσιάζει μεγάλη αριθμητική διάχυση (απόσβεση και διασπορά) και επομένως δεν διαθέτει καλή συνοχή. 0
ΑΣΚΗΣΗ Να λυθεί αριθμητικά η γραμμική εξίσωση u u u + c = μ, 0 L t > 0 c > 0 t με αρχική συνθήκη u(,0) = si( k) και περιοδικές οριακές συνθήκες εφαρμόζοντας το σχήμα πεπερασμένων διαφορών uj j uj j uj+ uj + uj + c = μ. Δt Να βρεθεί η τροποποιημένη εξίσωση και το κριτήριο ευστάθειας. Βοήθημα: Η αναλυτική λύση είναι u(, t) = ep( k μt) si k( ct) Λύση ΕΠΔ: ui+ ui + ui ui ui ui = μδ t + u i cδt μδt μδt μδt ui = + v u i + + v u i + ui, + i =,..., N μδt μδt μδt i = : u = + v u N + + v u + u μδt μδt μδt i = N + : un+ = + v u N + + v u N + u + Πρόγραμμα Fortra program rhto implicit oe! Variables real,allocatable:: u(:),uold(:), (:),t(:) real::v, d, dt, c, pi, t,ma,err,mi,k,coef iteger::i,, tma, m! Body of ftbs_mac_cormack =0 allocate(u(), uold(),(),t()) c=0.8 mi=. k=. dt=0.0 tma=0 pi=3.5965 d=*pi/ v=c*dt/d
do i=, (i)=(i-)*d ope(,file='res_ask.tt',recl=0000) write(,'(a3,i)') 'I= ', write(,'(a3,f8.5)') 'c= ',c write(,'(a3,f8.5)') 'dt= ',dt write(,'(a3,f8.5)') 'd= ',d write(,'(a3,f8.5)') 'i= ',v do i=, u(i)=si(k*(i)) u()=u() coef=(mi*dt)/d** do m=,tma t=m*dt uold=u u()=coef*(uold()-*uold()+uold())+uold()-v*(uold()- uold()) do i=, u(i)=coef*(uold(i+)-*uold(i)+uold(i-))+uold(i)- v*(uold(i)-uold(i-)) u()=u() write(,*) '------------------------------N=',m,'--t=',m*dt,'-----' write(,*) 'i FTBS Aalytikh Abs_Sfalma' do i=,!if (mod(i,0)/=) cycle write(,'(i3,f0.,3(f5.5))') i,(i),u(i),ep(-k*mi*t)*si(k*((i)- c*t)),abs(u(i)-ep(-k*mi*t)*si(k*((i)-c*t))) ed do!tma prit*, 'Doe' ed program rhto Αποτελέσματα για 0 χρονικά βήματα θέτοντας k =, L = π, c = 0.8, μ =, N = 0, Δ = π /0 και Δ t = 0.0: t i 0.0 Αριθμητική Λύση Αναλυτική Λύση Απόλυτο Σφάλμα 0-0.0078-0.0079 0.000 0.63 0.576 0.5755 0.0009 3.6 0.9373 0.939 0.0089.88 0.985 0.90 0.006 5.5 0.5867 0.58833 0.006 6 3. 0.0078 0.0079 0.000 7 3.77-0.576-0.5755 0.0009 8. -0.9373-0.939 0.0089 9 5.03-0.985-0.90 0.006 0 5.65-0.5867-0.58833 0.006 6.8-0.0078-0.0079 0.000
0.0 0.03 0.0 0.05 0.06 0-0.079-0.0568 0.0009 0.63 0.566 0.56339 0.007 3.6 0.935 0.976 0.0037.88 0.9368 0.93695 0.007 5.5 0.58557 0.58876 0.0039 6 3. 0.079 0.0568 0.0009 7 3.77-0.566-0.56339 0.007 8. -0.935-0.976 0.0037 9 5.03-0.9368-0.93695 0.007 0 5.65-0.58557-0.58876 0.0039 6.8-0.079-0.0568 0.0009 0-0.09-0.039 0.0038 0.63 0.5887 0.55 0.005 3.6 0.9 0.959 0.0059.88 0.935 0.9988 0.0063 5.5 0.583 0.58909 0.0077 6 3. 0.09 0.039 0.0038 7 3.77-0.5887-0.55 0.005 8. -0.9-0.959 0.0059 9 5.03-0.935-0.9988 0.0063 0 5.65-0.583-0.58909 0.0077 6.8-0.09-0.039 0.0038 0-0.0886-0.0307 0.0088 0.63 0.5369 0.53958 0.0039 3.6 0.8966 0.9038 0.007.88 0.93 0.98 0.00836 5.5 0.5899 0.5893 0.00633 6 3. 0.0886 0.0307 0.0088 7 3.77-0.5369-0.53958 0.0039 8. -0.8966-0.9038 0.007 9 5.03-0.93-0.98 0.00836 0 5.65-0.5899-0.5893 0.00633 6.8-0.0886-0.0307 0.0088 0-0.0356-0.0380 0.00 0.63 0.539 0.579 0.00399 3.6 0.8833 0.899 0.00886.88 0.90536 0.957 0.003 5.5 0.5857 0.5895 0.00788 6 3. 0.0356 0.0380 0.00 7 3.77-0.539-0.579 0.00399 8. -0.8833-0.899 0.00886 9 5.03-0.90536-0.957 0.003 0 5.65-0.5857-0.5895 0.00788 6.8-0.0356-0.0380 0.00 0-0.0-0.059 0.0095 0.63 0.57 0.5636 0.0065 3.6 0.870 0.88068 0.006.88 0.8963 0.9086 0.08 5.5 0.58006 0.5897 0.009 6 3. 0.0 0.059 0.0095 7 3.77-0.57-0.5636 0.0065 8. -0.870-0.88068 0.006 3
0.07 0.08 0.09 0.0 9 5.03-0.8963-0.9086 0.08 0 5.65-0.58006-0.5897 0.009 6.8-0.0-0.059 0.0095 0-0.0868-0.059 0.0035 0.63 0.997 0.5097 0.0056 3.6 0.8573 0.869 0.00.88 0.8873 0.905 0.08 5.5 0.5788 0.589 0.0093 6 3. 0.0868 0.059 0.0035 7 3.77-0.997-0.5097 0.0056 8. -0.8573-0.869 0.00 9 5.03-0.8873-0.905 0.08 0 5.65-0.5788-0.589 0.0093 6.8-0.0868-0.059 0.0035 0-0.0596-0.0590 0.0008 0.63 0.8789 0.937 0.00583 3.6 0.838 0.85789 0.035.88 0.87835 0.8938 0.060 5.5 0.5768 0.5895 0.03 6 3. 0.0596 0.0590 0.0008 7 3.77-0.8789-0.937 0.00583 8. -0.838-0.85789 0.035 9 5.03-0.87835-0.8938 0.060 0 5.65-0.5768-0.5895 0.03 6.8-0.0596-0.0590 0.0008 0-0.0607-0.06575 0.0068 0.63 0.766 0.86 0.00635 3.6 0.8367 0.8663 0.096.88 0.869 0.8876 0.0785 5.5 0.57507 0.58899 0.039 6 3. 0.0607 0.06575 0.0068 7 3.77-0.766-0.86 0.00635 8. -0.8367-0.8663 0.096 9 5.03-0.869-0.8876 0.0785 0 5.65-0.57507-0.58899 0.039 6.8-0.0607-0.06575 0.0068 0-0.0670-0.073 0.0059 0.63 0.68 0.765 0.0068 3.6 0.89 0.8355 0.0635.88 0.8605 0.880 0.096 5.5 0.5736 0.58865 0.0539 6 3. 0.0670 0.073 0.0059 7 3.77-0.68-0.765 0.0068 8. -0.89-0.8355 0.0635 9 5.03-0.8605-0.880 0.096 0 5.65-0.5736-0.58865 0.0539 6.8-0.0670-0.073 0.0059
Ευστάθεια: u =Ψ e k με a = a i μδt cδt μ v Επίσης, στην ΕΠΔ θέτουμε = = c ReΔ αριθμός Reyolds., όπου Re είναι ο αριθμητικός v v v Ψ e = + v Ψ e + + v Ψ e + Ψ e Re ReΔ Re ak ak ( ) ak ak ( +) v v v v e v e Re Re ReΔ Ψ v ak v v ak ξ = = v e v e + + + Ψ Re ReΔ ReΔ ak ak Ψ = + Ψ + + Ψ + Ψ v v v ξ = + v β a β + v+ β + a β Re Re ReΔ ( cos si ) ( cos si ) v v v v v ξ = + v cos β a + v si β + v+ cos β + a si β Re Re Re Re ReΔ v v v v v ξ = + v cos β + v+ cos β + α + v si β + si β Re Re ReΔ Re ReΔ v v ξ = vcos β + v+ cos β + αvsi β Re Re Επομένως για να έχει το σχήμα ευστάθεια θα πρέπει να ισχύει: ξ v v v cosβ v v si ReΔ ReΔ < + + + < β Συνοχή: 3 Δt Δt ui = ui +Δ tut + utt + uttt + O[ Δt ]! 3! 3 ui± = ui ±Δ u + u ± u + O[ Δ ]! 3! 3 3 ui+ ui + ui = ui +Δ u + u + u ui + ui Δ u + u u =! 3!! 3! ( ) =Δ u + O Αντικαθιστώντας στην ΕΠΔ προκύπτει 3 3 Δt Δt u i i i +Δ tut + utt + uttt u u u Δ u + u u i! 3!! 3! + c = Δt = μ ( Δ u ) + O( ) 5
Δt Δt ut + utt + uttt + cu c u + c u = μu 6 6 Δt Δt ut + cu = μu utt uttt + c u c u + O( Δ ) 6 6 Δt utt + cut = μut uttt + c ut + O( Δt, Δ ) Δt ut + cu = μu utt + c u + O( Δt, Δ ) Δt Δt u = c u + μu u + c u cμu + c u c u 3 u = cu, u = c u, u = c u tt t ttt t tt t ttt tt 3 Δt 3 Δt utt = c u cμu + c u c u cμu + c u c u 3 u = c u cμ c Δ t+ c Δ u ( ) tt ΤΔΕ: t 3 3 t ut cu μu Δ c u ( cμ c t c ) u c Δ u c Δ + = Δ + Δ + + u c u 6 6 Δt 3 ut + cu = μ c + c u + cδtμ c Δ t + c Δt c u 3 6 c ν ut + cu = μu + ( ν) u c 6 + ν 3ν u 6 ReΔ ΑΣΚΗΣΗ 3 Εφαρμόστε ένα σχήμα πεπερασμένων διαφορών στην διδιάστατη εξίσωση κύματος: u u u + c + = 0 t y Στη συνέχεια βρείτε την αντίστοιχη τροποποιημένη εξίσωση και μελετείστε την ευστάθεια του προτεινόμενου αριθμητικού σχήματος. Λύση: Ευστάθεια: Βλέπε απαντήσεις της ης Εργασίας του 005-6, Άσκηση 3. Συνοχή Ρητού Σχήματος ui, j = ui, j v( ui, j ui, j) vy( ui, j ui, j ) () Αναπτύσσουμε σε Taylor γύρω από το u i, j 3 Δt Δt i j = i j+δ t+ tt+ ttt+ Δ u, u, tu u u O[ t ]! 3! 3 ui, j = ui, j Δ u + u u + O[ Δ ]! 3! τους όρους: 6
και u u yu Δy Δy u u! 3! O y 3 i, j = i, j Δ y+ yy yyy+ [ Δ ] Αντικαθιστώντας στην () παίρνουμε: 3 3 Δt Δt ui, j+δ tut+ utt+ uttt= ui, j v ui, j ui, j+u u+ u! 3!! 3! 3 Δy Δy vy ui, j ui, j +Δyuy uyy + uyyy! 3! 3 3 Δt Δt Δ tut + utt + uttt = v u u + u 6 6 3 Δy Δy v Δyu u + u 6 y y yy yyy 3 Δ tut + vδ u + vyδ yuy = v u + u 6 3 3 Δy Δy Δt Δt vy uyy + uyyy utt uttt 6 6 Δy Δy Δt Δt u + c( u + u ) = c u c u + c u c u u u 6 6 6 t y yy yyy tt ttt () Κρατώντας στην () όρους πρώτης τάξης και παραγωγίζοντας ως προς t, και y παίρνουμε τις σχέσεις Δy Δt utt + c( ut + uyt ) = c ut + c uyyt uttt Δy Δt ut + c( u + uy ) = c u + c uyy utt Δy Δt uty + c( uy + uyy ) = c uy + c uyyy utty Από τον συνδυασμό των οποίων προκύπτει η: ( ) ( ) ( ) u + c u + u cu c u + u cu c u + u = tt t yt t y ty y yy Δy Δt Δy Δt Δy Δt c ut + c uyyt uttt c u c uyy + c utt c uy c uyyy + c utty u = c u + c u + c u + tt y yy Δy Δt + c ut + c uyyt uttt Δy Δt Δy Δt c u c u + c u c u c u + c u yy tt y yyy tty Στη συνέχεια αντικαθιστούμε στην (3) τις χρονικές με χωρικές παραγώγους. (3) 7
Ξεκινώντας από τη σχέση ut c( u uy) 0 u t = ( u t ) = c ( u u y ) + = c ( u u + y ) uyyt = c( uyy + uyyy ) + + =, έχουμε: ( ) ( ) t ( ) t ( ) ( ) u = u = c u + u = c u + u = tt t y t yt = c c u + u c u + u = c u + c u + c u y y yy y yy ( ) u = u = cu + cu + cu = ttt tt t t yt yyt ( y ) ( y yy ) ( yy yyy ) 3 3 3 c u u c u u c u u = + + + u = c u + c u + c u tt y yy u = c u + c u + c u tty y yy yyy Αντικαθιστώντας τις παραπάνω σχέσεις στην (3) παίρνουμε: u = c u + c u + c u tt y yy Δy c( u + uy ) c( uyy + uyyy ) Δt 3 3 3 c ( u uy ) c ( uy uyy ) c ( uyy uyyy ) + + + + + () Δy Δt c u c uyy + c ( c u + c uy + c uyy ) Δy Δt c uy c uyyy + c ( c uy + c uyy + c uyyy ) Τελικά για να πάρουμε την ΤΔΕ αντικαθιστούμε την () στην () και μετατρέπουμε όλες τις υπόλοιπες χρονικές παραγώγους σε χωρικές. Έτσι καταλήγουμε στη σχέση: u + c u + u = ( ) t y Δt 3 c = c c u c Δt c ΔtΔ + u + 3 6 Δy Δt 3 cδy + c c uyy c Δt c ΔtΔ y+ uyyy + 3 6 + c Δt c Δ t u + c ΔtΔy c Δt u c Δtu η οποία γράφεται και ως 3 3 y yy y ( ) u + c u + u = t y c = c ( v ) u ( v 3v + ) u + 6 c + c ( vy) uyy ( vy 3vy + ) uyyy + 6 ΔΔ t ΔΔ t y + c ( ν) u + c ( ν) u c Δtu y yy y 8