From 2faca8df85861ea2531b9766e2bea844b72f892b Mon Sep 17 00:00:00 2001 From: wolf Date: Tue, 28 Mar 2006 02:06:15 +0000 Subject: [PATCH] Generate intro with doxygen, not latex. git-svn-id: https://svn.dealii.org/trunk@12694 0785d39b-7218-0410-832d-ea1e28bc413d --- .../step-15.data/img1.png | Bin 1037 -> 0 bytes .../step-15.data/img10.png | Bin 220 -> 0 bytes .../step-15.data/img11.png | Bin 751 -> 0 bytes .../step-15.data/img12.png | Bin 223 -> 0 bytes .../step-15.data/img13.png | Bin 368 -> 0 bytes .../step-15.data/img14.png | Bin 595 -> 0 bytes .../step-15.data/img15.png | Bin 270 -> 0 bytes .../step-15.data/img16.png | Bin 348 -> 0 bytes .../step-15.data/img17.png | Bin 596 -> 0 bytes .../step-15.data/img18.png | Bin 1068 -> 0 bytes .../step-15.data/img19.png | Bin 130 -> 0 bytes .../step-15.data/img2.png | Bin 1117 -> 0 bytes .../step-15.data/img20.png | Bin 1239 -> 0 bytes .../step-15.data/img21.png | Bin 1025 -> 0 bytes .../step-15.data/img22.png | Bin 814 -> 0 bytes .../step-15.data/img23.png | Bin 423 -> 0 bytes .../step-15.data/img24.png | Bin 208 -> 0 bytes .../step-15.data/img25.png | Bin 274 -> 0 bytes .../step-15.data/img26.png | Bin 347 -> 0 bytes .../step-15.data/img27.png | Bin 394 -> 0 bytes .../step-15.data/img28.png | Bin 547 -> 0 bytes .../step-15.data/img29.png | Bin 355 -> 0 bytes .../step-15.data/img3.png | Bin 1138 -> 0 bytes .../step-15.data/img30.png | Bin 291 -> 0 bytes .../step-15.data/img31.png | Bin 168 -> 0 bytes .../step-15.data/img32.png | Bin 1609 -> 0 bytes .../step-15.data/img33.png | Bin 215 -> 0 bytes .../step-15.data/img34.png | Bin 194 -> 0 bytes .../step-15.data/img35.png | Bin 1691 -> 0 bytes .../step-15.data/img36.png | Bin 287 -> 0 bytes .../step-15.data/img37.png | Bin 418 -> 0 bytes .../step-15.data/img38.png | Bin 521 -> 0 bytes .../step-15.data/img39.png | Bin 294 -> 0 bytes .../step-15.data/img4.png | Bin 1102 -> 0 bytes .../step-15.data/img40.png | Bin 827 -> 0 bytes .../step-15.data/img41.png | Bin 438 -> 0 bytes .../step-15.data/img42.png | Bin 724 -> 0 bytes .../step-15.data/img43.png | Bin 1047 -> 0 bytes .../step-15.data/img44.png | Bin 377 -> 0 bytes .../step-15.data/img45.png | Bin 233 -> 0 bytes .../step-15.data/img46.png | Bin 845 -> 0 bytes .../step-15.data/img47.png | Bin 372 -> 0 bytes .../step-15.data/img48.png | Bin 225 -> 0 bytes .../step-15.data/img49.png | Bin 296 -> 0 bytes .../step-15.data/img5.png | Bin 337 -> 0 bytes .../step-15.data/img50.png | Bin 2216 -> 0 bytes .../step-15.data/img51.png | Bin 1207 -> 0 bytes .../step-15.data/img52.png | Bin 142 -> 0 bytes .../step-15.data/img53.png | Bin 264 -> 0 bytes .../step-15.data/img54.png | Bin 331 -> 0 bytes .../step-15.data/img55.png | Bin 232 -> 0 bytes .../step-15.data/img6.png | Bin 305 -> 0 bytes .../step-15.data/img7.png | Bin 478 -> 0 bytes .../step-15.data/img8.png | Bin 317 -> 0 bytes .../step-15.data/img9.png | Bin 279 -> 0 bytes .../step-15.data/{intro.tex => intro.dox} | 97 ++- .../step-15.data/intro.html | 795 ------------------ 57 files changed, 48 insertions(+), 844 deletions(-) delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img1.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img10.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img11.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img12.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img13.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img14.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img15.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img16.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img17.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img18.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img19.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img2.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img20.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img21.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img22.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img23.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img24.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img25.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img26.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img27.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img28.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img29.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img3.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img30.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img31.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img32.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img33.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img34.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img35.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img36.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img37.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img38.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img39.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img4.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img40.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img41.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img42.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img43.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img44.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img45.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img46.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img47.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img48.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img49.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img5.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img50.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img51.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img52.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img53.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img54.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img55.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img6.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img7.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img8.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img9.png rename deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/{intro.tex => intro.dox} (92%) delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.html diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img1.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img1.png deleted file mode 100644 index e6db7d6b761f2fe93a09f935b013a2310448ff1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)RHR400001 zbW%=J06^y0W&i*Ki%CR5RCt{2SWjycK@@+RY<9QV>~0XzQYhpD6pecEBHfG7gF+BN z&_g45D0nbmpk)y(lvYi>>LE}N1i^R{FNuYEbx{glg!H5rX=oKaw8ZyjW;eT=tae)y zMDl~|%$xUbW_I6uGXdzq!`>l~=wS;&hcVG}04h!&@uNZKjRl}_FYO9zwIf+=$8sut z#x%$VsGImp3rR~iPV(6q4uDFstu$C)SGwZ$BTY0Bvay_2a$`BKW3*^}0sE%6`D=6d zD00p+HMn$ATf`l)g^kkhSl!(?C^B{UatKc& zu#`D)yhyB(!LUfElKZnr6jpMTu`uaY0ZPv1sxEE_(M~o?%dE1|b5O)!uL&74lZIVRQtV@~NNZJx2j{B-Py<@t?SaK)0nG{VZ9mw*^-L5CAfAQ$mBS%5HzjxBMAc==jpC#i~UCiSDc zIU}KpSx~kTs*LczBR>=`$q!OVp?@5Pm-ov<@S;@*?SXLG9)_2d-!ZkuCN-D#O8$_8 zKWQQEly;Xrdvdk(Gb|8+{F14p>mEPjVo@<0t9@h_0H%0Pv7@u~viem2$<32W+VS~# zfx3m|LnQVKLDA0uo1%L!V#V|>qMOhM6P-0wk+wT!kN*fKR!V;o3x67rRa^9}UOWX$ z0Fz|7gV^J|J7po%hE)FbWLHVP(h{HFq~LP{xXI$0C%sYKfR0&V5wSscj%W>QcpW+& zu&{ZDQ`pBgSF#F>V|n}yacL3JW!TxW&>_qNyK%H9R?9FGc9Qa6eiO{Bb1cBJq-Q5s zXGZY30XoJAFZs(V(|O|SEQ;0%d(n2I0=;k|{NMcdq1vn&j|}H(5rJNeNBEKx?|mWSa4zT;8*`kzGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0Xb2gE{-7;bCQAD9waq1^A?B|Gck*Oke{uOvfy@6;hD|>je=t5~S2$U-e(FPp%d9Id?Ga}ZiDYG17{hD+o%uY_ P5(WlOS3j3^P6RHR400001 zbW%=J06^y0W&i*JZAnByRCt{2R?TbFKooy5&2BcEWL5 z*WV*=(#-ylHTwx^a!H9C>QWL{@Cn0c=3hw=Q(qG^JR7NBUOkIKRji3(2@c@JygtV-<~WL-H* zpW^XPc-!U5+W0doP#@3j1%6rU&u&=Z{$X|3>gT_dwgj^Qa6UD9Abm$c%*0J%emR(? zks2PTI^R^_ZCGzYMs@Hc9YibcIb=*e$IB>2`E$C^uJR39(SeKsPo~);ub74qujLYuw(2M)e zNLHJ3F^k(ut&R3nyYjUrqeFDf-QF#==C$Ozkk#zGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0XearE{-7;bCMGnni<&GBH8Q=CQJJmnK`IP$QhUzY%nm8Fi>C&-^R-0!{%UEC(u8? zab{zqZeu4StH+%GD|r_cvq(tXYBYJyqOg$R$Umk4(HcG;o;L|$U;bx0I5OnPbG?0f Sta%#HA_h-aKbLh*2~7Z!LPD7U diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img13.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img13.png deleted file mode 100644 index d18458567c0ad48a59677ba973712a0492287cf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)RHR400001 zbW%=J06^y0W&i*H?ny*JRCt_YU;qMsh5!ZzP6jyOYhXYIU>RnHT?}}D0s{k^1BfIB zxFm23Twn-b0kH#sR&y~N0O~B5@Q?%O5Qk9W3?UY9@G!WtEns6f0Q46FlL3PPC&LDy zFc&{qw%`K;Ljph0cMYrz2@K4PYza&Z2|PRo5WS2DV>mGkra54o{~Sn4od2l}WKUq& z-vAQiVPLtykR!mr&<=K!JX9_71b52T O0000RHR400001 zbW%=J06^y0W&i*I(Md!>RCt{2RIy6LKoEVG+vF~1atT&;1_Tkc$OkB-vJy;hqlFe? zC)fy*POXe0f|cpCJR3VPU}s}G+iTQH$d#u^oNS_-!<-z5h2Vpoo!QwpGnw5iAQ01# zXvpyp%8~ByxDp}kb?G#sf^BFq-(H8}!0HokQ20WXV6;6s&yg2w4+WX6XB*WYrYl3- zGx3_(94>UoaME>Vc@s2MGUs6`dWVaZ+*uuX6 zoy)#e8(fN}NglkAxocR`O5Dr?+89F>KEHv6-1bA^=2-%6)(p;etw^}5#8$|(>u?qB zZkPdgvz75Iw{5P%QV`zcxm7oHS0{%HC7b1yf588;@{hp~8$vfqI-8+#`b2W%t~*7# zk85uru5@CN)W9OF(*f@AH(>NLZ@r6&K3sO5A2_O!njS6%+5qIHUDZBYQ`$;CPl9S4SFp-7CAY0|NhxLVu9es z*fx9WZzf3#i^(y?J0J^dcNG8d@9M<&VtR z(6Av%rD55ur;NcnaK%iazqFZA-{X_=X+~Byws-S+BAMhRBz~>mFUs(G=K)DC>vBehu2&Mm1~S`{ QfbL@OboFyt=akR{09zYZ-2eap diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img16.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img16.png deleted file mode 100644 index 585db798303cf535bdd5d5cf83416247f1f85c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*tjP)RHR400001 zbW%=J06^y0W&i*H+DSw~RCt_YV1NTY1e1ZEfuVun0*u44fdPmZco;Ci0=OcD0tN?| zD6aqm!wpQusNe&G12>3L0P{Haaev`p`~?y?#PI(A9|ndEgbaW>02#0|Fi3nwRlvsJ z$bhDXmw|y}LIaq?Z^iq8f$KAn)sO%d5CD2&0+=Pj!0`Y72L@KS#_tfXZv8-%!*Bs$ z&@iaukq4RHz{{``k31&>!~Vs18DxP>S3QPKAocz~5FB7&U=r8`5@ld>fT=yo u@CjKfBgALy2(zRnCLpBwxEh3zR09Cmk1`Z0R#+_n0000RHR400001 zbW%=J06^y0W&i*I(n&-?RCt{2RiRD;K@fet7P`G_*~1YG{QyF0@RtAy0&xa~Ie|h| zU`bXMcNlanh9D4?6=0zPO&WfH4G9S$BxPo=9NpvEv={_^Nq6SW+nMxkXZC;$n)D0c zI7*^)_m)+2QBI5oI@o)r%+ge81}?A!6s60gq1%9zTCvf*m_TEBo+yh_0?BA?6) z&N))AL}bpd-3E$R9~}9RT{462cXD9X86Nge;A*VAri_jiIfNWtMvb0Em9R^%e!0r0 zK(Gioh>fS?ws`b|{skI_TZ9}7&R8;sjWUGSOIg%`pF=v}u1g0)P~6QSyt~fxEa=Ei zg+!}A>{W}j`ZcZA+T^JiVv(jV_^LHZQfC48CZDJgT7jHwJc&4umEHdmT zf>RBXo=E4&A~sZVKjn}){u!vdoxI~0bzaLeDVpb|=b4+$4b!mG1#ZY5{z%AIZicmD zc<+r&MlHkwPpk+rjbb8HOZba%fiHyZ4Xi6*X9K5vSy!754IT^6144I_Vj|X`ed3!Q zxTTLBWgNhbMh0@Cl0-%ZueKE)`Lsi?o<&uD1-F|hsnJ?v6%)yzSJ_V-5e;p2#{^|8 ij?G$7vnX@SF&3Z2sf{QEf9xv&0000RHR400001 zbW%=J06^y0W&i*Ks!2paRCt{2S4)T#M;QM4G1KqqCWPQ+**=O0&PC9G(B!lj0!^-7 z=HMa8LFbT*w^C8qK(c$#dy5$Glm-z@AaN21h=L9w0Z+0jf{;rqL2_BwzpA>XduCjm z-ldU{{h+JXJHL2XRQUBDMYC`t?Q_I?W>smYEg$Mp1g{1I%*%EB_= z1h*HB?QBQ*+Ytnt7nGMq#(0HDwx{p{sy@|1-oeDlEQ2N^Ky7N?6I^o_&bgUNVV}@y zOeUuSTNWm(YsclX<01)Xs2%_hsd7%!bPQqU*o1-C4}~!=Vrd?~yC=cU2l3wUprL)L z`)M%gjw z>u`-fjMvi2lRZ;!3m?*l)u!su7S&#@Iu1!q44ah>c3Ee%Sq;+4b~g}Pwfu4(;YC0ExJ*d7LmkNveRsJC zQSf+0Y*I_WymQj(yv&Hl2P4_T{}cM1)>Dkz4gWLiUJ2Vw5bVzb zTyA*hYlPJnV+-j2w4K2owVh#^De2r?^0=m0{5RxB{^=NZHUu|I<0UW7&Sh9rb_Zt} zeFR*q)RXiBdllUTI2v(oj&_FJ=9xwJZXBz{`CAEp&1MLu-!D7;5=+1Z9HwgladY$$ zULZ3lGrq5g?kgn~(4(K0YCa*%Pd2zatYnt^ znjSs#p9w{iq4!lBrw`zMTG6G=6pZ$FbpCFe-62eIVl!?t!#8wq)EfVVE)M^T5xu2) m%U?L0dLFf$VGn!w58w@+slgTe~DWM4f6}2Wd diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img2.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img2.png deleted file mode 100644 index ef048b4e31d716332abd268f37ed204e1a3d6c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmV-j1fu(iP)0000mP)t-sv$M0P zsHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9JTNdYBqSsl7#Iu;3;+NC>RHR400001 zbW%=J06^y0W&i*K+et)0RCt{2S3Rg4RTTbaXLfe7v%7b|fFg=hi9cwzd|cmRUztM4*x9)RZ7j?NEX2k^(84CyXn1HM<2m5dA-jh^poulG7x-eY?5YWwY+J$skbgQt`);&{o?!K@k^!DL+ za2P5|sI2tbuO(Z)0e!b&SUpC$GaLBsZLWp<)rk-|Pi}=^0jjumjECr!3vcD#LOn7@ zZ@cUJ6y3a&JZ{^Eobhil|AeY<26+$L)R=gd*cxpnrZw8+vR6|xGdhW?=Zi{dk^^xt zO@}J~A)fknnosB_Iv6YWWt8^zEd{q4j`KRfs4QoA5b6pqN{FPfQmUpHq?og`vQ)Z3 z-i9bkcH25|Ab37xwSc^yHG0m)HMPe73zz>z%qSUFlXK>be;tv#0{)eklMp{M;Wo2u z+ifP>x(q8Sz<|p95bUxuNrQ5XTwo#~dWn)lAN5j*klJ0(He};y;k{pdluDN@no2xR zjh*KLeEE`pt?qc`HpB&|!v~l-^2{keTjEKH=Hp#3f^E6bffB zYGtM@#qcuVCwxKAcEuis?&xTgxsai!19>>T2`3wvt$}kK)~RN=UfzaTtWy*&xx((; zEZ}NM=l-9x>)!&O`{Ml=R}3tElFRj?yNxaOW`OJ{OS{4&fPHb-o8)%ka#?{v(n_ z|AB;%pvy8V8%$2VlAb_khH(1Ggz1mzI14Au03zS=zFIJ{rQxs?75%EJcRzyO(E^?6 zg0i}K@(o?ZJ2)YEM`LO@e)6;AX$&{{si-1OH&YO)_zKxFYD?{~9EDn$zy&&@Hq68I zved@~AE_@si?h_~XZCIKFwX6tka?|Nxb2?PJ!&FNsAhyQjyUgaSWE3tMO6-*&CZd> zo&qjLY5#+!aQ_k&U*iV!y|v^z`Ynq-&z45ErK}oh4t2^}CyiC+9NJNC%)C$aec^TL zZF^^t7bIIfe1W*Ye&^sO!av%=czpV@oA-XP`H$H#)1lP3gjbER0$WaHl|vQPQf8%m zNWT}BlsBG&%jNIb8}1t6=8oKpY#B9*1032?;vZWB5-qHV6?jLNzRms6UgUz2uyK$> jd`Eq+vBnx}+#mP{tA-J<5eRCA00000NkvXXu0mjf!#fy> diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img20.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img20.png deleted file mode 100644 index bf4729e60510f20bb04753575b0e183a65418670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcmV;|1StE7P)RHR400001 zbW%=J06^y0W&i*LRY^oaRCt{2SUrd&MHK#~r)Q?8f2Lcb6Lr7FtE{egN0*#uYTtL zZgzW*nG5Else13#`|4HIRKKceU=sP11t>w}@PKH{`V5>1p^|G36`gzW&w^xJt#c8g zg-`&3v9#&J&jdgBw6NazS#qC$g~xFQDqB3qqV`Vyg!1%lYFRgt1z==`K_Yd83`aeCAE@JQ8ij8 zl-i5D1MDcGm#1Cz1ofYIWXTa#O87g%1?4RhQC|O6Y0dgkKyTr{q$k&#cH<~S?(BMp zPU#qBeB8DzB+tj*cK957durTzZ$c!hHac?yWy>7%X5_zDhI5O}m<jD>+f3sd-}bTu%m%`0`k#@HSh>-bv*O^<{I#OkCVHdeU8IM@L6unzv}QemM2debwe0wdul+jtazt6=y|EsC_IZ?Rr->od3-jD zfbS{hdkFc2F%_4mqh5`*@bqMh)djxOQB!!wO=+zrQltu(A|}z}Cn_pMJNSgeR~32sN>aIXa&mH4McvXP)O$&`hl4Shs5G(9SgGlrwhb{HI^JfN4HN5vFj5x{ zS3Ej0SD$~K?=KDws(n)_o0>$ApZG72WSL6a5I2X8Kij=d|MOC;T&^~a^A$|MX-`@t z#AtP82Jf+PS25X6_-PaMjz$nWTyT3J`WyY3tM;NMMwRB z{yLP-`vv-p@L%iF&bO9ulfavQM)RFkSYd_b;(t|4@TJ6CgX91J002ovPDHLkV1i{c BPx1f& diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img21.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img21.png deleted file mode 100644 index 94ab4608803c838afcf42aa4d6e295648dc0fcfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmV+c1pfPpP)RHR400001 zbW%=J06^y0W&i*Ke@R3^RCt{2S3hVIVHAItT#`$2|8R4V##yCZia3--Ti7XRTU<8kYN3%IOoNt7~t1qliV1#FM%vI zV6&TyJzeXd9MT3`8kO-_+IY?vNPV84 zo{uNaM`mQQLat+1Q~BaS%!pKUyy(L#osuG#Sh*oOEh@K*?>_?6!wxguW2_-ggi>dd zqu7d1$)U^fNmB_u{zR(8k0Z~ecm&>e>V8-u5BLxGdC+99;#bPSLK?(E%+~WBF0Kh9 zvU9w`d&wxT2ftQZpPeZq$fY&}U*{=6J8& zB(Jhj6W#U`to#hG5F=VC&TdEx_Kg??Xb-2QPRF*xiJ56_h&>?)ydF3zl>FGFH-O?N z_z8S3Hfe|<+Ty%7pg_hzqU38ZYxlJHV`6&&s@WU;kE8W;!uNntr_TYzFYID`O1wCe ztW7Qd0#cz1J#C|Zo zWJ+*{2osVyEhT=xFvSsVu;V#7l@0}}RHR400001 zbW%=J06^y0W&i*JtVu*cRCt{2Ry%LhKoI`+>^tv0a%<6nK)DtP#Qg)@B9JgbqM^VA z6g22sIzxd{fN&cjC6Ks;vhbJ5K2q4{KD4M!CT ztw!Iet4&iY{3-Xam1sqbIt<6fPAY&dO}ZvPX*n503{%yzT*}ACu*XM`%QnF~E_IkQ z^c}O+4WLMq^81*Bq4^~{b0DbT2y-HL0&m{uNd9_h9nkMevCRK0_<2(Ixw(K>q`P}K znnk|bWjb@yk|`G0ASfuhka4EKub+~-g*CBkhsxkm#O$O?<2#|sKN%ve;@tBx&Ghqp z3pcsTBb z!{VibU~ttYIJLMPX?VfD*_nu>Vz1G>jbv$fL0;)Z&V~iq)P5=M^07*qoM6N<$g4iN`&;S4c diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img23.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img23.png deleted file mode 100644 index 1f400dc0daadc15aba24b99786f23ec2bb5fa949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)RHR400001 zbW%=J06^y0W&i*IB}qgt_={POal`j#TrgwggQa7 zE?5Zc0~vY2ulj)6o(dl>WX@zbYc`f`#NI(0({OeSgUV32U6>s-sBOb$5ZvW<&P@AK zzWuFR;Le%ox`?I)RlG`klIvXdINT5YpeiN@HTKD#d zrK9p*8mdHZ>z(iPH()<0k&nJvHXi)&1Ig!@EWBY{YWQBvZ|FnJ)lY|`%2m>NgZqV+SPd^%L#FVL@dc6hEi72E RkSqWI002ovPDHLkV1oZ8u=)T1 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img24.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img24.png deleted file mode 100644 index 07dabc405e4543007fd9ce4664ea88374435f0cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!py+HIB&`YPawx2z$e6Y^XAPfR;-vaXU>EP z6IxnYDk>^+a&i(95<)^kJUl#XY-|h+3{+H9BqStwct9q+iab3JNHLZK`2{mLJiCzw zp}?t diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img25.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img25.png deleted file mode 100644 index 72c8ce2e07bedb90abed481f6375a3ab97c0b63e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E#!py+HXj$4E3FH_A_=LD_-n@CmiWPI_%$YD@ zLQ6|aMMXtUPEJBXLP$u6hlhuajg5hUfr^TXgoFeS4-Zh&tH{&yfD~g%kY6x^!?PP{ zK+XhD7srr_ImrnO%zPZ7=L#4-iVQy(DKOR@<8@#<@gQ-=fd-YMtW(oG5*V~*{7u-; z-28`$jV+JOWxrxldiVEBcs4jUC{A`1OWAusPvGbTrs*kv7)rH7J`|dAD9+?#2(^+( UJn8wF5$HAsPgg&ebxsLQ000RHR400001 zbW%=J06^y0W&i*H*-1n}RCt_YV1NMu24v8{z_1sY|A2wtfdLm_2N4%QL^s0+Alb)Y zz`($PQ#l;4F)*+)G;mK~VEDk##KgeG+W=zmC@}DVWEDUJZc7OPp#5?{^9mRkco`Yq z3xK`E$gto8(18Y>91|EEY(W-qu))+b!mM)OuLWykVAue60TaxZbOB9Zl3xL6BL^f} zbRZJb85mL+_yQ_H?5kiA<_4ge04@d_5a$Dfs~$rqh{bpTY8247M;SiBm|$=K$dsCx t0A#T=K!w`iR>NbB-2uvAY+x8P002hoBQGgP87%++002ovPDHLkV1jX$dyN19 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img27.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img27.png deleted file mode 100644 index f23e1e4514b1b36099834e4e43931ad9332c768a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmV;50d@X~P)RHR400001 zbW%=J06^y0W&i*I2uVaiRCt_YV1R-E24X-168i&DI-r0TO0(KCf+zt7W)4!cBLOBL zW<%mTH1jhktYx^s@c;h@5QBlCJ&cFp6%*90uR!VzfXWyc$hDC~puoUTfXwFsVisfp zRt99Zu(QfBFh~n9GVuNXe*nl};AiAwVBm*I^MlkL01^UFGdKho7$$&20Leca7}yy= zp*my%djgnZY{03a14?sYkz-6?$a}`{nSp`xx7`8;mIX*sU=aoeZUJ^+Py&;z0FMI$ zYTAW}Fz_)XFdhL*M1!~o7(fy7|NkEbm0000mP)t-sv$M0P zsHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9JTNdYBqSsl7#Iu;3;+NC>RHR400001 zbW%=J06^y0W&i*Ip-DtRRCt{2R6k3@P!Rv6X_`MZO$P@j&8&kR-3*Qn5)hp83AErB zC^{$|w4xs%vr|DoKn6EK1#z~M;9>(^EL7sV%S&lfS`<3=2k(CO?%v%y-dzHWz}du9 z*f5w4&6s{jq`(Vv?8dW>O@NZtNok2y8F6%=i?uIzoU~OVY5pt!Oz3dov*xj^#Lz0S zxy+@+JBZ+&qKa-ZpbA2<944Qhbl(Jm zCW43_$(Ls`re0A)MBnxb4P9Fmy-$*?@5CLx$Wbh0RzrHkl)RSK4DqxL>7fflP94D3 zcn&10Lyae-jo}2299p3KK7byKnO4Sj#YhOH#eDIW+HQgKT%K@jN6j*sZC7oRMePAS z7@zD`0vvt-yAv_T%#QqIt&kK?Ty-M~t?J}(@-b>-EN0s!MQhgzkKbZ01LXl&683H) z5Xl%TWg7~`9R1t@_bB&adZMJuuWMOJ1|vz@xJp@l?hhwxgTy+X{Pf>b^m1=f@-c~% lOxYq)&%0;-Cl~k|egOu@XG7jjTrmIu002ovPDHLkV1l$t=O_RG diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img29.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img29.png deleted file mode 100644 index be6ae921d93759d7a34acee0d7508b8751147f38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^dO)no!py+HxFh^qAdq7a;1lAydGqEKD^|>zGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0XYvnT^vIy<|HRHFsZSb95{bqLo)L!0dZz#d1iC_!|ZHrr7uoxY+{+f_<5UwUP8h> zhXBL8178~*6ZGeNZ=4H+jY}I_8y_+-A7<&e(ZagNTw_C{%7JqS4t^9pn3`DNQXnEx zAt_nB+=s968^{U!GxXl|%~fD1DPa^V zTrl0D;ot`0BhR=T1lifn{5v}1l_iUWkz`7vkGL({T($)pnRYwaw2ADP<-VXGH6fve zMf^@!-17#VMt+`}7+$9r%iRHR400001 zbW%=J06^y0W&i*K@JU2LRCt{2S51ffQG?=T z@hWHwUR01hcoU=yI1s|d&M^mZj`6hZ&6{g5=d=gGo1>ryFX?FFf*9IYud1f2JJY)4 z;@>>zdavsJ)T^pj?^OdGu!%%$6Q0*YVgQ6$F61uJK;ET#BzTiPDKPTKX26&x?te%K zawsA1*7|NI=Ut`Q=c#!S13SU_mdv)rgVuP@V!`&s-8y#^82$+_TNqr531eQwo_6|C zKK zU{$$1v7N3R$W3HhXX2WK4x?V}*Bbs0u#e61ucaC=o{Zph4&2~xC)FVZVu^H*dQ*FG z5Q)O((J@Elu)bbXR?auvoiaAVY8$zP4(d`M;UY9QeASDsWWgC+`1M08muC~@x*}6} zTI-$;@%an!O=;~<$pPY(q&u$_lfJvEY@WVbbuv^?DT}Fx11=iQmf@z_R_SboD%S!_ z&yLggJw6+a&4n#-%&g~(NSWWTbqw0p0j^iS^OdK&&ext*O-0VIz>{vthlRPo_QuAz zHd%;@suz{r!y@0hVN2ap*#+!<7oy7h+$R}3X+QGz-UposQY@20;-v+FX5MHk-&r^n zx5F-eQj<|<-de*N{tFN+o4;Z1OKBHNx<(}4X#4$VnBA{$oW)9kXvV1b4e&~e$6Eb($NZpabFu7vZ71;s*p76<7pV@NGM(#HrC)gZ z?TP1}z&WBeQ@fNrigSBZg`K5zM#x-H7&W8km?yxG#)@ie)8 z@xe!cOCkxcUG==~U#8|Neg?lxD~-jCRD7B?7w@}O*A1=bn6j;)eczGE(yiuCqh8*} z{7QJ0rrMhmaoXpTBFg(Nrux^`jD)uk-SkChXD;JqyqCgOaJyTqXPJ23Q`l64eE1{T z4n8@~j~MNeFW?{I`}93a->C-QTST~D{el%>9|$g9#7d@WYuRAL3>^Z^?R%j5wPCh( z1y;d3+}h;?Y8CU|woc!P4X3LG5Z^JfhBd5V4gY-j17X7e?-)ZZwEzGB07*qoM6N<$ Ef>|pmWB>pF diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img30.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img30.png deleted file mode 100644 index dffebefcf271b3efc90a7f47eea2007f06afffe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^xzGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0XYjjT^vIy<|HRDFsZR|SR7zX+GiN?+-_iI{xtTvECWuk*+{FV$2N~7YaTv8X3aXqt ke&DO{(VAzU?O7!lLO(07Uvl?vBG9o6p00i_>zopr0O6=(ivR!s diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img31.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img31.png deleted file mode 100644 index 7a9d8adf2d458396655a99e7224c2662d78b6438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^+(697!py+HSmSZp0LW1c@Ck9LV`F1rV4$L+A|WBc!@~nqm9si+HIQN~3GxeOaCmkj4ahO|ba4!+n3J5~z#t}Z zvQyx3OZVbWvJDkX0_F-QHnVS?gbX`;rAT OfWgz%&t;ucLK6TPBrv)F diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img32.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img32.png deleted file mode 100644 index 4c816a1618d6d286a084ae87dd12b9ac8070dc72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 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 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img36.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img36.png deleted file mode 100644 index 5cde8c1a7082f8fa9ed3174e4e4deac05600a7ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^MnEjU!py+Hc(I646UZ?L@Ck96uZ%;tyqt#Wy4bbFQ%~O#k=)f1{(+lPL_WGn5@z#Ltwe zR?hv)v`pf-KO66{ulso>v{=;N)@2CdljXU6L4^B*MZ?Q}9d;1~rT71t4>Bq!OC5T@ j|DV{|Uwb#&OGq&63RK+^_*+^J=uievS3j3^P6RHR400001 zbW%=J06^y0W&i*IAW1|)RCt_YV1R=U3=GU*5*Y~aL8XuZClDt9@qYyaexMQt!T_j- z4MabH8pY4>pP>P2us^!-qym11i4F`L3&6%m3otAIQan&MgY4iCU~mAdYS{1q)h`@S z6&onCp9H{}0Jj(h7}nz>>oJ z&98u@A1oPv07-p-tGNJTFftqgQ6Hg7*c(vQNF;+;tYCu|Le(&SXW(UEM5x&gVsKx* z-vFf8w!-aVKL1mI;~fJ-|Nq|@*$k!z3^Gu;sDPstnU@iOP0jEC08OVwk)h5^DF6Tf M07*qoM6N<$f-5?l>i_@% diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img38.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img38.png deleted file mode 100644 index 7c36f1cda34b0064e28b6db5dabf0d605fb35f97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)RHR400001 zbW%=J06^y0W&i*IheA z46FQ2XDWz}9vj$} z(2&IM4F1Ei_)J8NC&sxf0IS55M4p8&8ps@1*h{lvIiXA9q~eONL&G(+bk_4YB6f=D zMkLe1l7XX6oqF7~r-zA(DoG!^b=*s+=3Wuz$~M#Fd*ajf)5b3Jo!YC-u_+l^59jGj zL+h=4V6n4_DoV_(BGL>zp>_!AL$dh|+mWfnI)(7)3=pn`MnK18Q300000 LNkvXXu0mjfs2c2_ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img39.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img39.png deleted file mode 100644 index 87468503612205978c913850e6d7679b10ddf753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZH!py+Hxa&=@6_8^P;1lAydGqEKD^|>zGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0Xa)NT^vIy<|HRDFtM_+@v(7SV1LA#aE)EyV0{KNvs40;;2njgsg8m!hKpA_Fw9uV ztHUcD(eQ=0?OwZaf%b8R>!J!@m^AiJPIh8G5mDFH*23vRHR400001 zbW%=J06^y0W&i*K%t=H+RCt{2R?UkXMHK(_OmBD3&h%6WA#VI&`sT%ihTy>jv@e2q zkV!5c9Z*!fIH&}2Ff=AclMtNv7qpOrdN890uNj3L17nO55aI-s;6W{u)!kr*wq8~B z=S=Tx5(zo%uj#JWuij@>z1Iy?z)Og!J32~lxI_|$f3TNyYhcxSc-5G?$dlBde!#I?+s5z%Q^GP~kk1419rZ|CkEz?X+ zHzH<+S;c#@SBQHDTEP2~CsMI`a1FHMc!b%ypj4)RTp{MvH?cO>d0i3pXm^F+Ep6Oc z=j%U-@y%fqr?1(qV)9LK2WZ8VPdh9xO#)p}M8y_(S4CYVEpX0{o>W;2o7BadD?;D) zdK>5v=G3Cm6rYN~>@H|`H(2c7YKC9rqyAH5*LN2+N?pbC8o>G--Yl+eN@@!a9^RAB z{sO7Z!SU#6=UF59biL&L2=IiWtbjDmR@t%!j|L@{uG>q=yFEco*~cq0`dP!d4*Z}= z)mN;qi=r!MQJ$>D0|@?FU7>?iNUhsrxxLKzY$wdH zF+w$t>oF|xBa1l4Hqe}f)6-*-{X!r)~XStIfMX$2!)asM%L=K1ZuIsg$grivwzHFXJ9v686Qb)Y>c`#(}N>*!zh80C@BM US{nu=w*UYD07*qoM6N<$f(e`y>;M1& diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img40.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img40.png deleted file mode 100644 index c395b14fcfdc3e80e280592292ae31009bffcf3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmV-B1H}A^P)RHR400001 zbW%=J06^y0W&i*Jxk*GpRCt{2Ry~N+KotHqn{2XwNeU5vjw7Yw6#<)T#6_&cVzpO- z)m0i1Ej8G9Alxn5%i76RCyH1Gw6Jr}#!iEUVBs0LM!_?_`N?E+oAdU%6YpC#nK$42 zX5LKRyabpEgTZuu0wZ|rW&s8eJ;IW|v&Kom-2qc{Xa!{)r>hQw4U>(4ixiEsn}DVR z#fxTPssQYh%CxwRzGOtGAKpqc@16OUeKm7OL+l=^pDYUUz$PpfOGiDQ8Tb^2E`nVXEYLv{GwRJ zpxJfaY|Ym}Ew>yv(TK2`Z}$HS&&%`nQzf4kJH)rzZZ>J3rB+daYS{>jZvL1|%TlRa zWQn0#W}QE10ZUCJvZLc)=0_~NkaXc>Ssq9_mOO-n`#R`>p0%MdN$L*8neUK__*Bs7 zi{iqkWcg&H9^-L4qI~F#r33MCk#6}hr*$?X(QNihr=KI@bOOH^C}bHZERRyO&7BJ9 z)d{+fe;HBv8Sff96s7jZU&hE7!3@g%@9uaLzK5#yxCGpqWNJ~~T0z(Cx>(%e@T4l9 zVMX5xum&rtU|RBC-@pUE^x*g<^+7b&1L!iM zmb|A_C!%(sy%FXj(%vFoU{1)|uF1X*Dn1Z|-YKh}(veP8B|GiqQ^0Z0Yk4J0jUm44 zvDX!*jiC0LDiJlmWtn`}jp?1TI%#002U%vXZ9Wsd&nYoBZ?84(&0r}3PW_;bd;is4 zxE^zRdHo?d-I!Q})VF&|ZLQNtzrRo&H2uzK-1mgIb+uP$L`C;#&gV9JJ45eHZj^ww zs?=D3EXrrMdfnYl&N0s};r6`cjazjVr1{qY_py&Xi$6Tkq45t0>6-um002ovPDHLk FV1mM7ik<)f diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img41.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img41.png deleted file mode 100644 index 7c3840ab4110ef9fc89884946b2fcfd8742236e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)RHR400001 zbW%=J06^y0W&i*IG)Y83RCt_YU_b?YX#5Kd3;_%b4M@WL9}rAdT@cAY2ynm*H-?F@ zLns~;ie$jfP*9+N;Ic75-2Z{~!Gr@)F`)YkfYbp7E`dh&1O^~tXn@GDfCy$V;$WZy zP*7k(a6oS2fMXRCFhX^&V&E0v6=3MV zZUz^aWd6)B2?!ZJGcfc|fQ2;zuq*&8T>#;IU|`{B;7(we0^vg9-~dP*2<#PLiWv9> ze3+OvcB2{vRL7A2cQb^u1sD&1>n?K62w>=Y01|+Z>;}j>v>}uh^9u$xu*)E%3#z$I g*gVIMO>kHN04V%4Ipf^91^@s607*qoM6N<$f;bVPkpKVy diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img42.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img42.png deleted file mode 100644 index dbe787d95cc79a74acf771be8e4d0eefa2bc8274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)RHR400001 zbW%=J06^y0W&i*JQb|NXRCt{2RlTd!KoI|3E+3mqE{To!@sM=B;uR^c^RN_))55|+ zg4L@uB5EhWMk`;?e;~G2PXy8KKnol3US;_Lf?(l!Y9;uLvzyB%_hHUXg&WB3eC^Ea z%`l*FMtXyAR-?D=aWD1xe|0`MI6C^Z!vwrTdvQ& z8zQV@w9x4)j1Ys`75@@2_!18#W+1X9q4FiMgVRhJ`^9=gX8T6{ErohLI#RzIcbSOTuAvE=%F&xe!r3CbFDe+FBT8n!*()UMd{GCf$r^ z+eM$qK@nNF*T*9(rV81$-X*71*%@ygAu|Vaw=D!_OooFR&!@Jq<}_8=9x>MN&qBOH zo}zp5>jHP_{I~XhXw*nI7bQnZg!$+!^O!EP_ZVFdtV#U>u=xV)J2p#6E5wx#=q)+Z z{)PuM#RKdlinMtc`Z&ayf>09jMvvtlo?)v{u{?wRV@7|`Tt~#<())|8Pd@~N90y_RRWUk0=lOI73pnK$=HPl~m2w7TIyU+!2f2y%K1H?j?vuBD zZHW6B;p2zEoyFj;9y}G%_rVTs@9B3pz{ZsPpC9SbUdNjvA2JCTZ3WQd>E9q+lDlbs zcE#3JUIN=ZJo;3bnp+F{J^ZForoj9RHR400001 zbW%=J06^y0W&i*Kl}SWFRCt{2Ry}AGQ4s!ivv>FI_iciR2*K4NAc(m}P(gTzf=%$y z(q;=4u}WcMp)86*5W~gFMz}PhT~KTU^%R1Q#UTimC)ScxqX>%Y%zL};?p@Rbu@G+H zcIM5`o0&KB<{q#n1pHZz7cQ-5LZ)UBuC2dL2s#GW-+6!qJeuYGPOaO%k&=hA{IY^7 z5ms0? zTHkU-ze#D~H7#V1h-UNq6SGH~eva>H2ZAc~A3?>SGE$tzUky;y&2le_K5Nc&6#4o9 zrN_&bq~mSWlf&f_H>EAwdL`x&mLEf{_*3xb1aWM?NU{pXzT;zuj!o7)NCzFPMBivv z@rB#R8#mT<6@n`Q`!p=Y#FUS5)VQQAR)7wq5XZVyC>ZqwI6yU+?hs=He*ukPE$)kT zTKmY}TB#dPU`$4lxxi5r>E^?i)q^p=YRdfRGLEHCP zhF}(5*5~%MT%8hW_3AxIENXlmw$eS^)mJKf#_AvVQjnLox}n?hLIbjyB-`#cs*o2% zPh0ozLOlr4WS_YH#w1R%S)5(2^Q0mPpF=UWZnZ1PK&&RmI6RnDLX>jsPuMY@l)-?F zVJNM^8^H+vEu6`%+IgY%w63x6erd1Y06c+uh5qmS40rcfkXxS4ONEiz-8|b&v6`aK zF2gAjz0WQ46)tBKvy77l9T?ap_2uQ3b!AX1uO;>O1b<$|tSi_3u=z>zph z{g$-uZccVE47PJ<>$*ErLjR8C=?Zv8rEkzc>2LD;oc@#iJX@yZ)fgus4_uK9LkvoE zae=+@Y9TLt39Ez4z_}r_1WHPyEx%MqzzY7Tl7Zq^7u!~y$lHj~2u3ghf**Gs)DdTu RJh%V=002ovPDHLkV1m|+_zwU8 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img44.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img44.png deleted file mode 100644 index 2c729c1f90505dcee98f215fa9fd4276b2506a53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmV-<0fzpGP)Z)0000mP)t-sv$M0P zsHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9JTNdYBqSsl7#Iu;3;+NC>RHR400001 zbW%=J06^y0W&i*H_en%SRCt_YV1NRC22>!x(7?bDfGP%5!|woPD==UKt_%zu5S9qY zK$iW?Se0Rd9SrP1vVnmcNOnA6X862-i|-pqzU}Iol zWMD7=F<_3qa1DpYVZmAA^JZ2L?ug10NU;fR%Hw0F`V2Gx@kCY~a1YPyjJU0pTQ| z&)KQtI5GeS$RS|+FR(rUF?k#q7?=(~BvXLcQUJt?24Y@lv~mP6m@*`QSjQRkL6NJ- zz3>79;{~XRtQ#1Xfs=(ii1z_1%HzNj8~}`u2P+sA7+4xmoR9#eQC(I7CK($T1~~u# XJlH7`Xj|v*00000NkvXXu0mjfiFtzX diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img45.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img45.png deleted file mode 100644 index 8ab2827851bb45a049c6d1e8a5d4e124cb83003c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^qChOm!py+Hcp#T64#+VG@Ck9LMmLRde16v!xvL zlIKj|yH`qqDohVG)Db^BWgNH)JN8cbu)+e>YF)c@M)5Io)UC cSBe=JJ{by3%=*K10%#?Jr>mdKI;Vst06jiSh5!Hn diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img46.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img46.png deleted file mode 100644 index 68555286af1217014e6bff1f2e36bd50c84d40bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)RHR400001 zbW%=J06^y0W&i*J%Sl8*RCt{2Rn2SEKooyT_9JaKJMmQ*flY0hl~TIgROW!2-G&? z619lhr0{VMEDWK@l&bFoU#XakVNqDda>Q@v{NO%Q z^}7Jott#oo>31Z(+a8BD9c5dTi>>i|IN2C&RqHUlzWiWuDIdc0T2o9vhqq@9^o{sg z?_{7j!|x>1rD)JAP`v_=x8>l#OeCCG6hxni#OI{4tMCT;Y$*f9(H$n4qTVEinyJ35 zA&VU%6#WK10>>5tcYavy30egBm2&&^cJDJLV9ReC5cLu_5QA&ff#>@5QOIyGs`{+Sl^#UIzh(SBIP62#1Y7 X)6dN-H?)J-00000NkvXXu0mjfJWYeX diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img47.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img47.png deleted file mode 100644 index 0f977006df65cfc2a388dbf70bb5eac0c7f04147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)RHR400001 zbW%=J06^y0W&i*H@<~KNRCt_YV88-+85$Tkm>N*T_^~O301gI*0tP-Xlbzu_MC>wd zR?0S1s!2lyq^YQW+Q3@jjmk)UA&027SC$8Z2dv4QOm01E|x ztYnDeM; zU|`?@3FiOZ%)qdPfuaBUTY;IaK!IYo4ccImX@Ok>1B(N~;wCt&fFf^F4*&pul_`0o S4M0Qy0000 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img48.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img48.png deleted file mode 100644 index 0dd0f4f9459a822a0be72f42b7193c1ff8d7f332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&N!py+HxcqY>h@%_e6XLpg^X3&RR?L|*XTpRD zEiEk-6%{!-ISB~~At50i9v(I}HYzGA5)u+TJUl=h+jiS^0x8ClAirP+hi5m^fSe>x z7srr_Imtjh3CRr%ZftC2Vg}uFCpK$7O}lUv`r9G_2P=-AoSsLH5w>`#OjqgHjxW2TnW^aBRcXF95@Xa2mS&Bn&?Q&_;p Ty#DV*pluAEu6{1-oD!MzGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0XfS&T^vIy<|HRDFwbLSvq(rw@MtKmkdWBH)L>#iiAjzll|f0O@x%j0=CT7kO7m*} z@GsJnd62+}FO-{2^5(3a^J$3u4>S)R&z$ybi^(&iudF|pD50FTbWBL^-X rcrd$)ah2b^#zgIA{jah;!VC;6%49#C+pT*C=wb#>S3j3^P6RHR400001 zbW%=J06^y0W&i*H&q+i%|YD$fQK;mlQut~3YgM+U) zP|GE13p}MHVYS{5Ox}jf*Cwg3;@}cO-c0H$?&|jR3T)v3Ig1FbnKRPm{p7gR5BV!f z`zua7ulBGOFnP$C;p`dChzkwq7^kQb5y6CY@&PShJDlv$r>u>^Z3!!w?v5VA=e%Yd j?BI2Uv0?e+hke5x<(nb}=juR>00000NkvXXu0mjfU#E>f diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img50.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img50.png deleted file mode 100644 index 9b39b65e3f11c0cb7f46913b63f2fd29f839267b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2216 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 VnHi^5^_c(w002ovPDHLkV1oPcK5zg4 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img52.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img52.png deleted file mode 100644 index f4bf86e61967eed135c9117f80a8d52c7e547d40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5#LU3JDEL6(B#^@s;1lAydGlri0|ONm6`+7% zQ-~LkVk`;r3ubV5b|VeQG4OP845^rtoY2tB>~P{h!kL7F4a^@D6iYNELo#Dt1sq^x mV-{I-kiq#4^JDfuKphcc+@15^9Nz}i%i!ti=d#Wzp$Py<$tV2) diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img53.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img53.png deleted file mode 100644 index 9f9242463b3807fd7429c26f596c23aa14e5de07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^+CZ$p!py+H$hUdTG9X7Qz$e6Y^XAPfR;-vXVM0qw zOGQORPEJljLPAJLh=+%Vfq{XFii(7U1P>1nP-6n*?;WGKKbb0CE&FiYRTaL!t7fzxJ;r^;p|>|*rg zjdf5zoEgWG@5C_W;K_pym|{Rrf};sT;{$ZC2@mWVsb#J@wJ$} z2M%b*HKcLqGgmV>TOJNENxZhXm&eLnGK;@)=Y|3)m4~ft3@Ln?6$dqQY=G`!@O1Ta JS?83{1OUc%fo6+-s3#-Q*R{j-FleC!Q+UD+9@=gDk;>42*+>2(gl$}&! ziENT9@M$QNux~i=`9BbFFR5huAv(jaLG{NDsg?;okJ4i_*|;*^G~_DU`-S`S9#AyB b!N{QJr*^aT$Ej~XPceA9`njxgN@xNA&vbeX diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img55.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img55.png deleted file mode 100644 index fb30b98b839eb157e0c563f1002bdf2080dc4057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz5!py+HsJ}ij0mv~3@Ck97srr_Imtk64-y)fRV}*fZ!xl!JYWbpIipXphl{VK;lgwt4h0}S3~(Xpp6Wku6{1-oD!MzGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0XgeET^vIy<|G5PC8Rho)G7R9NGdSaGBDUsV6dQ>p_N5p<$(idkMS&dYWU=!LSr$b z{EWa23m@`K$V%`?GB~hKMEZg7gI0?qX7y%RHR400001 zbW%=J06^y0W&i*ITuDShRCt{2ld(?2Kn#ZeOQUjalBPmTNEP7)5RcG>J#Rn<7PbyN zz^x33@&c%cg{>J_V1O*_8CekU1f1x=80=o!1SP2e!PYO5?ejVD#XbW$%?K|17&S;1 zI`r%I2|w`1q|UDeE7(gy>)}_|jHy{P8f}u1=EMQqPKs!@>HO;JKVSmkBy7l{*T;|^ zTSX8yvSPSEYi69h+Ri>2#`~o5w}SsZ?4K}%It|%q0;1sW+g(-)raJ};NFYZ_x9-q4 zuIcz$VzNt-1C2O~6N_uGK@H{J`DqG-bMHqId5@Huq2etFIC1HSa&b9U)IrU%hDC=A zSXR|db45Me%-2?I^g(6l2)MtTuf42;GOP%dT^yoE=H3pDc}%vQiv)tl=`AHFjn%#F zeNFX%_t`{kW$AK+S>->aH_rw%buU*UfUOFVowiyppIr_zUEV5jWHPGdQ7gX7Cl?q+ Uwp|UHpa1{>07*qoM6N<$g3<%bhX4Qo diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img8.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img8.png deleted file mode 100644 index 7769cd56220014052c8ff28299a696bac45cc315..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^IzTMI!py+H_(F6;5s+gL;1lAydGqEKD^|>zGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+TJUl>6uOd&+15%77L4Lsu4$p3+ z0Xe%pT^vIy<|HRDFy|TUY<$STEK*=#w1AnO&)Cijy z7?`ANW_HzUI2wCXM#6)USB8g)heu~+mczFu9zKPWYgAb_&6HmFOuC$D&fmuQ6`QBm zJ3RaNKX$?Y?Tw%F8JRt9Je$&VKA&;I4?ebI@;p8c;ms}f23I&6Bzaa#`ji=27#h6! z`~JYrgWsk*l`d!W*fHI8;cVVD{f(v!i970*oa>pG**>Htd~gzHW~f%wQ1Hs%q5$*; NgQu&X%Q~loCIDq^ZEOGl diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img9.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/img9.png deleted file mode 100644 index 3781f68634a880baf9962ed12e0e508ebf9515a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT&!py+H_}^S%H;|(n;1lAydGqEKD^|>zGiSnt z2`w!x6%`dZIXMXl2_YdN9v&VxHZ}$Z1}Z8l5)u+X9eU=aEI^8}B*-tA!Qt7BG$3b& zr;B4q#hl~>hGzDJB4*~E;|EVPu>3eMNnz4PMm>%YMTRAO9}G=CIPzqiNMoNQ?l5Ux z4j<2vCN{nejtUzTnwiyhHA=60AX(1T^RuDf!g#uUgCI{$zW9s1xesch89u7aNVswE zz>lWJlZ}j#Ii}4g{n*sm+V;Meu`p-goDiYk?PM-}q;w5qz~;X~lD{7CH8JJ0vFVF2 ZGF+RW5_H`l;4aXO44$rjF6*2UngF5xUUdKf diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.tex b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.dox similarity index 92% rename from deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.tex rename to deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.dox index 4d712e5f54..2c899f6cef 100644 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.tex +++ b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.dox @@ -1,9 +1,4 @@ -\documentclass{article} -\usepackage{amsmath} - -\begin{document} - -\section{Foreword} +

Foreword

This program demonstrates a number of techniques that have not been shown in previous example programs. In particular, it shows how to program for @@ -26,43 +21,53 @@ to demonstrate techniques of programming with deal.II, which is indeed the focus here. -\section{The problem} +

The problem

Now for a description of the problem. In the book by Dacorogna on the Calculus of Variations, I found the following statement, which confused me tremendously at first (see Section 3.4.3, ``Lavrentiev Phenomenon'', very slightly edited): -\begin{quote} - \textbf{Theorem 4.6:} Let - $$I(u)=\int_0^1 (x-u^3)^2 (u')^6\; dx.$$ +@par Theorem 4.6: + + Let + @f[ + I(u)=\int_0^1 (x-u^3)^2 (u')^6\; dx. + @f] Let - $$ + @f[ {\cal W}_1 = \{ u\in W^{1,\infty}(0,1) : u(0)=0, u(1)=1 \} - $$ $$ + @f] + @f[ {\cal W}_2 = \{ u\in W^{1,1}(0,1) : u(0)=0, u(1)=1 \} - $$ + @f] + +@par + Then - $$ + @f[ \inf_{u\in {\cal W}_1} I(u) \ge c_0 > 0 = \inf_{u\in {\cal W}_2} I(u). - $$ + @f] Moreover the minimum of $I(u)$ over ${\cal W}_2$ is attained by $u(x)=x^{1/3}$. + - \textsc{Remarks.} - - [\ldots] +@par Remarks. + [...] +@par + ii) it is interesting to note that if one uses the usual finite element methods (by taking piecewise affine functions, which are in $W^{1,\infty}$) one will not be able to detect the minimum of some integrals such as the one in the theorem. -\end{quote} + + In other words: minimizing the energy functional over one space ($W^{1,\infty}$) does not give the same value as when minimizing over a larger space ($W^{1,1}$). Furthermore, they give a rough estimate of the value of the -constant $c_0$, which is $c_0=\tfrac{7^23^5}{2^{18}5^5}\approx 1.61\cdot +constant $c_0$, which is $c_0=\frac{7^23^5}{2^{18}5^5}\approx 1.61\cdot 10^{-6}$ (although by their calculation it is obvious that this estimate is far too small, but the point of course is just to show that it is strictly larger than zero). @@ -81,8 +86,8 @@ oscillate at cell frequency; these, however, do not converge in any reasonable measure.) So it took me a while to see where the problem lies. Here it is: While we are -able to approximate functions to arbitrary accuracies in \textit{Sobolev - norms}, this does not necessarily also hold with respect to the functional +able to approximate functions to arbitrary accuracies in Sobolev + norms, this does not necessarily also hold with respect to the functional $I(u)$! After all, this functional was made to show exactly these pathologies. @@ -92,7 +97,7 @@ interpolant $i_hu$ of the optimal solution $u=x^{1/3}$ into the functional $I(u)$: on the leftmost cell, the left end of $i_hu$ is tagged to zero by the boundary condition, and the right end has the value $i_hu(h)=u(h)=h^{1/3}$. So let us only consider the contribution of this single cell to $I(u)$: -\begin{eqnarray*} +@f{eqnarray*} \int_0^h (x-(i_hu)^3)^2 ((i_hu)')^6 dx &=& \int_0^h (x-(h^{1/3}x)^3)^2 ((h^{1/3}/h)')^6 dx @@ -104,7 +109,7 @@ let us only consider the contribution of this single cell to $I(u)$: h^{-4} (h^3/3-2h^5/5+h^9/7) \\ &=& {\cal O}(h^{-1}). -\end{eqnarray*} +@f} Ups, even the contribution of the first cell blows up under mesh refinement, and we have not even summed up the contributions of the other cells! @@ -136,29 +141,28 @@ would, then its energy would have to blow up. And we will see exactly this in the results section below. -\section{What to do?} +

What to do?

After this somewhat theoretical introduction, let us just once in our life have fun with pure mathematics, and actually see what happens in this problem when we run the finite element method on it. So here it goes: to find the minimum of $I(u)$, we have to find its stationary point. The condition for this reads -\begin{equation*} +@f[ I'(u,\varphi) = \int_0^1 6 (x-u^3) (u')^5 \{ (x-u^3)\varphi' - u^2 u' \varphi\}\ dx, -\end{equation*} +@f] for all test functions $\varphi$ from the same space as that from which we take $u$, but with zero boundary conditions. If this space allows us to integrate by parts, then we could associate this with a two point boundary value problem -\begin{equation} - \label{eq:equation} +@f{eqnarray*} -(x-u^3) u^2(u')^6 - \frac{d}{dx} \left\{(x-u^3)^2 (u')^5\right\} = 0, \qquad\qquad u(0)=0, \quad u(1)=1. -\end{equation} +@f} Note that this equation degenerates wherever $u^3=x$, which is at least the case at $x\in\{0,1\}$ due to the prescribed boundary values for $u$, but possibly at other places as well. However, for finite elements, we will want @@ -166,20 +170,20 @@ to have the equation in weak form anyway. Since the equation is still nonlinear, one may be tempted to compute iterates $u_{k+1}=u_k+\alpha_k\delta u_k$ using a Newton method for updates $\delta u_k$, like in -\begin{equation*} +@f[ I''(u_k,\delta u_k,\varphi) = -I'(u_k, \varphi). -\end{equation*} +@f] However, since $I''(u_k,\cdot,\cdot)$ may be an indefinite operator (and, as numerical experiments indicate, is in fact during typical computations), we don't want to use this. Instead, we use a gradient method, for which we compute updates according to the following scheme: -\begin{equation} +@f{eqnarray*} \left<\delta u_k,\varphi\right> = -I'(u_k, \varphi). -\end{equation} +@f} For the scalar product on the left hand side, there are multiple valid ways; we choose the mesh dependent definition $\left = \int_\Omega (uv + h(x)^2 \nabla u\cdot \nabla v)\; dx$, where the weight $h(x)^2$, i.e. using @@ -191,10 +195,9 @@ Laplace matrix. The step length $\alpha_k$ is then computed using a one-dimensional line search finding -\begin{equation} - \label{eq:linesearch} +@f{eqnarray*} \alpha_k = \arg\min_\alpha I(u_k+\alpha\delta u_k), -\end{equation} +@f} or at least an approximation to this using a one-dimensional Newton method which itself has a line search. The details of this can be found in the code. We iterate the updates and line searches until the change in energy $I(u_k)$ @@ -209,19 +212,17 @@ As for mesh refinement, it is instructional to recall how residual based error estimates like the one used in the Kelly et al.~error estimator are usually derived (the Kelly estimator is the one that we have used in most of the previous example programs). In a similar way, by looking at the residual of -the strong form of the nonlinear equation we attempt here to solve, see -equation \eqref{eq:equation}, we may be tempted to consider the following -expression for refinement of cell $K$: -\begin{eqnarray} - \label{eq:error-estimate} +the strong form of the nonlinear equation we attempt here to solve, we may be +tempted to consider the following expression for refinement of cell $K$: +@f{eqnarray*} \eta_K^2 &=& h^2 \left\| (x-u_h^3) (u_h')^4 \left\{ u_h^2 (u_h')^2 + 5(x-u_h^3)u_h'' + 2u_h'(1-3u_h^2u_h') \right\} \right\|^2_K - \notag \\ + \\ && + h \left| (x-u_h^3)^2 [(u_h')^5] \right|^2_{\partial K}, -\end{eqnarray} +@f} where $[\cdot]$ is the jump of a quantity across an intercell boundary, and $|\cdot|_{\partial K}$ is the sum of the quantity evaluated at the two end points of a cell. Note that in the evaluation of the jump, we have made use of @@ -248,7 +249,7 @@ contrived and pathological problem. Consider it an example in programming with deal.II then, and not an example in solving this particular problem. -\section{Implementation} +

Implementation

The program implements all the steps mentioned above, and we will discuss them in the commented code below. In general, however, note that formulating the @@ -257,7 +258,7 @@ consequences: we have to linearize around $u_k$ when we want to compute $\delta u_k$, and we have to sum up these two functions afterwards. However, they may be living on different grids, if we have refined the grid before this step, so we will have to present a way to actually get a function from one -grid to another. The \textrm{SolutionTransfer} class will help us here. On the +grid to another. The SolutionTransfer class will help us here. On the other hand, discretizing every nonlinear step separately has the advantage that we can do the initial steps, when we are still far away from the solution, on a coarse mesh, and only go on to more expensive computations when @@ -272,7 +273,7 @@ does not contain much new stuff, but if it explains a few of the techniques that are available for nonlinear problems and in particular 1d problems, then this is not so bad, after all. -\textbf{Note:} As shown below, the program starts the nonlinear solver from 10 different +Note: As shown below, the program starts the nonlinear solver from 10 different initial values, and outputs the results. This is not actually too many, but we did so to keep run-time short (around 1:30 minutes on my laptop). If you want to increase the number of realizations, you may want to switch to optimized mode @@ -293,5 +294,3 @@ should be done in optimized mode anyway. A slowdown of a factor of 7-8 is unusual, however. For 2d and 3d applications, a typical value is around 4. - -\end{document} diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.html b/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.html deleted file mode 100644 index 7abd38213e..0000000000 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-15.data/intro.html +++ /dev/null @@ -1,795 +0,0 @@ - -

Introduction

- -

-Foreword -

- -

-This program demonstrates a number of techniques that have not been shown in -previous example programs. In particular, it shows how to program for -one-dimensional problems, and some aspects of what to do with nonlinear -problems, in particular how to transfer the solution from one grid to the next -finer one. Apart from this, however, the program does not attempt to do much -more than to entertain those who sometimes like to play with maths. - -

-The application we chose is, as you will see, not even very well suited for -anything, since it is rather impossible to solve. When I started to write the -program, I was not aware of this, and it only turned out later that the -optimization problem we are looking at here is severely plagued by many, -likely even degenerate minima, and that we cannot really hope to find a global -one. What we do instead is to rather start the optimization from many initial -guesses (which is cheap since the problem is 1d), and hope that we can get a -reasonable best solution for some of them. While the whole thing, as an -application, is not very satisfactory, keep in mind that solving particular -applications is not the goal of the tutorial programs; rather, we would like -to demonstrate techniques of programming with deal.II, which is indeed the -focus here. - -

- -

-The problem -

- -

-Now for a description of the problem. In the book by Dacorogna on the -Calculus of Variations, I found the following statement, which confused me -tremendously at first (see Section 3.4.3, ``Lavrentiev Phenomenon'', very -slightly edited): - -

-

-Theorem 4.6: Let -

-

-
-$\displaystyle I(u)=\int_0^1 (x-u^3)^2 (u')^6\; dx.$ -

-

- Let -

-

-
-$\displaystyle {\cal W}_1 = \{ u\in W^{1,\infty}(0,1) : u(0)=0, u(1)=1 \}
-$ -

-

-

-
-$\displaystyle {\cal W}_2 = \{ u\in W^{1,1}(0,1) : u(0)=0, u(1)=1 \}
-$ -

-

-

-

Then -

-

-
-$\displaystyle \inf_{u\in {\cal W}_1} I(u) \ge c_0 > 0 = \inf_{u\in {\cal W}_2} I(u).
-$ -

-

- Moreover the minimum of $ I(u)$ - over -$ {\cal W}_2$ - is attained by - -$ u(x)=x^{1/3}$ -. -
-

-

REMARKS. -
-

-

[...] -
-

-

ii) it is interesting to note that if one uses the usual finite element - methods (by taking piecewise affine functions, which are in -$ W^{1,\infty}$ -) - one will not be able to detect the minimum of some integrals such as the one - in the theorem. - -
-In other words: minimizing the energy functional over one space -( -$ W^{1,\infty}$ -) does not give the same value as when minimizing over a larger -space ($ W^{1,1}$ -). Furthermore, they give a rough estimate of the value of the -constant $ c_0$ -, which is -$ c_0=\tfrac{7^23^5}{2^{18}5^5}\approx 1.61\cdot
-10^{-6}$ - (although by their calculation it is obvious that this estimate is -far too small, but the point of course is just to show that it is strictly -larger than zero). - -

-While the theorem was not surprising, the remark stunned me at first. After -all, we know that we can approximate functions in $ W^{1,1}$ - to arbitrary -accuracy. Also, although it is true that finite element functions are in - -$ W^{1,\infty}$ -, this statement is not really accurate: if the function itself -is bounded pointwise by, say, a constant $ C$ -, then its gradient is bounded by -$ 2C/h$ -, and thus -$ \Vert u_h\Vert _{1,\infty} \le 2C/h$ -. That means that we should be -able to lift this limit just by mesh refinement. Finite element functions are -therefore only in -$ W^{1,\infty}$ - if one considers them on a fixed grid, not on -a sequence of successively finer grids. (Note, we can only lift the -boundedness in $ W^{1,1}$ - in the same way by considering functions that -oscillate at cell frequency; these, however, do not converge in any reasonable -measure.) - -

-So it took me a while to see where the problem lies. Here it is: While we are -able to approximate functions to arbitrary accuracies in Sobolev - norms, this does not necessarily also hold with respect to the functional -$ I(u)$ -! After all, this functional was made to show exactly these -pathologies. - -

-What happens in this case is actually not so difficult to understand. Let us -look at what happens if we plug the lowest-order (piecewise linear) -interpolant $ i_hu$ - of the optimal solution $ u=x^{1/3}$ - into the functional -$ I(u)$ -: on the leftmost cell, the left end of $ i_hu$ - is tagged to zero by the -boundary condition, and the right end has the value -$ i_hu(h)=u(h)=h^{1/3}$ -. So -let us only consider the contribution of this single cell to $ I(u)$ -: -
-

- - - - - - - - - - - - - - - - - - -
$\displaystyle \int_0^h (x-(i_hu)^3)^2 ((i_hu)')^6 dx$$\displaystyle =$$\displaystyle \int_0^h (x-(h^{1/3}x)^3)^2 ((h^{1/3}/h)')^6 dx$
 $\displaystyle =$$\displaystyle h^{-4} \int_0^h (x^2-2hx^4+h^2x^6) dx$
 $\displaystyle =$$\displaystyle h^{-4} (h^3/3-2h^5/5+h^9/7)$
 $\displaystyle =$$\displaystyle {\cal O}(h^{-1}).$
-
- -Ups, even the contribution of the first cell blows up under mesh refinement, -and we have not even summed up the contributions of the other cells! - -

-It turns out, that the other cells are not really problematic (since the -gradient is bounded there by a constant independent of $ h$ -), but we cannot -really avoid the trouble with the first cell: if instead of the interpolant we -choose some other finite element function that is closer on average to -$ x^{1/3}$ - than the interpolant above, then we have to increase the slope of -this function, since we have to obey the boundary condition at the left -end. But then we are hit by the weight $ (u')^6$ -. This weight is simply too -strong! - -

-On the other hand, the interpolation of the linear function -$ \varphi(x)=x$ - -connecting the boundary values has the finite energy -$ I(i_h\varphi)=1/10$ -, -independent of the mesh size. Thus, -$ i_hx^{1/3}$ - cannot be the minimizer of the -energy as -$ h\rightarrow 0$ -. This is also easy to see by noting that -the minimal value of $ I$ - cannot increase under mesh -refinement: if it is finite for some function on some mesh, then it must be -smaller or equal to that value on a finer mesh, since the original function is -still in the space spanned by the shape functions on the finer grid, as finite -element spaces are nested. However, the computation above shows that we should -not be surprised if the value of the functional does not converge to zero, but -rather some finite value. - -

-There is one more conclusion to be drawn from the blow-up lesson above: we -cannot expect the finite dimensional approximation to be close to the root -function at the left end of the domain, for any mesh we choose! Because, if it -would, then its energy would have to blow up. And we will see exactly this -in the results section below. - -

- -

-What to do? -

- -

-After this somewhat theoretical introduction, let us just once in our life -have fun with pure mathematics, and actually see what happens in this problem -when we run the finite element method on it. So here it goes: to find the -minimum of $ I(u)$ -, we have to find its stationary point. The condition for -this reads -

-
- - - - -
$\displaystyle I'(u,\varphi) = \int_0^1 6 (x-u^3) (u')^5 \{ (x-u^3)\varphi' - u^2 u' \varphi\}\ dx,$ -   
-

-for all test functions $ \varphi$ - from the same space as that from which we -take $ u$ -, but with zero boundary conditions. If this space allows us to -integrate by parts, then we could associate this with a two point boundary -value problem -

-
- - - - -
$\displaystyle -(x-u^3) u^2(u')^6 - \frac{d}{dx} \left\{(x-u^3)^2 (u')^5\right\} = 0, \qquad\qquad u(0)=0, \quad u(1)=1.$ -(1)
-

-Note that this equation degenerates wherever $ u^3=x$ -, which is at least the -case at -$ x\in\{0,1\}$ - due to the prescribed boundary values for $ u$ -, but -possibly at other places as well. However, for finite elements, we will want -to have the equation in weak form anyway. Since the equation is still -nonlinear, one may be tempted to compute iterates - -$ u_{k+1}=u_k+\alpha_k\delta u_k$ - using a Newton method for updates -$ \delta
-u_k$ -, like in -

-
- - - - -
$\displaystyle I''(u_k,\delta u_k,\varphi) = -I'(u_k, \varphi).$ -   
-

-However, since -$ I''(u_k,\cdot,\cdot)$ - may be an indefinite operator (and, as -numerical experiments indicate, is in fact during typical computations), we -don't want to use this. Instead, we use a gradient method, for which we -compute updates according to the following scheme: -

-
- - - - -
$\displaystyle \left<\delta u_k,\varphi\right> = -I'(u_k, \varphi).$ -(2)
-

-For the scalar product on the left hand side, there are multiple valid ways; -we choose the mesh dependent definition -$ \left<u,v\right> = \int_\Omega (uv +
-h(x)^2 \nabla u\cdot \nabla v)\; dx$ -, where the weight $ h(x)^2$ -, i.e. using -the local mesh width, is chosen so that the definition is dimensionally -consistent. It also yields a matrix on the left hand side that is simple to -invert, as it is the sum of the well-conditioned mass matrix, and a Laplace -matrix times a factor that counters the growth of condition number of the -Laplace matrix. - -

-The step length $ \alpha_k$ - is then computed using a one-dimensional line search -finding -

-
- - - - -
$\displaystyle \alpha_k = \arg\min_\alpha I(u_k+\alpha\delta u_k),$ -(3)
-

-or at least an approximation to this using a one-dimensional Newton method -which itself has a line search. The details of this can be found in the code. -We iterate the updates and line searches until the change in energy $ I(u_k)$ - -becomes too small to warrant any further iterations. - -

-The basic idea that you should get in all this is that we formulate the -optimization method in a function space, and will only discretize each step -separately. A number of subsequent steps will be done on the same mesh, before -we refine it and go on to do the same on the next finer mesh. - -

-As for mesh refinement, it is instructional to recall how residual based error -estimates like the one used in the Kelly et al. error estimator are usually -derived (the Kelly estimator is the one that we have used in most of the -previous example programs). In a similar way, by looking at the residual of -the strong form of the nonlinear equation we attempt here to solve, see -equation (1), we may be tempted to consider the following -expression for refinement of cell $ K$ -: -
-

- - - - - - - - - -
$\displaystyle \eta_K^2$$\displaystyle =$$\displaystyle h^2 \left\Vert
-(x-u_h^3) (u_h')^4 \left\{ u_h^2 (u_h')^2 + 5(x-u_h^3)u_h'' + 2u_h'(1-3u_h^2u_h') \right\}
-\right\Vert^2_K
-\notag$ -(4)
  $\displaystyle +
-h \left\vert (x-u_h^3)^2 [(u_h')^5] \right\vert^2_{\partial K},$ -(5)
-
- -where $ [\cdot]$ - is the jump of a quantity across an intercell boundary, and - -$ \vert\cdot\vert _{\partial K}$ - is the sum of the quantity evaluated at the two end -points of a cell. Note that in the evaluation of the jump, we have made use of -the fact that $ x-u_h^3$ - is a continuous quantity, and can therefore be taken -out of the jump operator. - -

-All these details actually matter - while writing the program I have played -around with many settings and different versions of the code, and the result -is that if you don't have a good line search, good stopping criteria, the -right metric (scalar product) for the gradient method, good initial values, -and a good refinement criterion, then the nonlinear solver gets stuck quite -readily for this highly nonlinear problem. Initially, I was hardly able to -find solutions for which the energy dropped below 0.005, while the energy -after the final iteration of the program as it is is usually around 0.0003, -and occasionally down to less than 3e-5. - -

-However, this is not enough. In the program, we start the solver on the coarse -mesh many times, with randomly perturbed starting values, and while it -converges it yields a different solution, with a different energy every -time. One can therefore not say that the solver converges to a certain energy, -and we can't answer the question what the smallest value of $ I(u)$ - might be in - -$ W^{1,\infty}$ -. This is unsatisfactory, but maybe to be expected for such a -contrived and pathological problem. Consider it an example in programming with -deal.II then, and not an example in solving this particular problem. - -

- -

-Implementation -

- -

-The program implements all the steps mentioned above, and we will discuss them -in the commented code below. In general, however, note that formulating the -Newton method in function spaces, and only discretizing afterwards has -consequences: we have to linearize around $ u_k$ - when we want to compute - -$ \delta
-u_k$ -, and we have to sum up these two functions afterwards. However, -they may be living on different grids, if we have refined the grid before this -step, so we will have to present a way to actually get a function from one -grid to another. The SolutionTransfer class will help us here. On the -other hand, discretizing every nonlinear step separately has the advantage -that we can do the initial steps, when we are still far away from the -solution, on a coarse mesh, and only go on to more expensive computations when -we home in on an solution. We will use a -very simplistic strategy for when we refine the mesh (every fifth nonlinear -step), though. Realistic programs solving nonlinear problems will have to be more -clever in this respect, but it suffices for the purposes of this program. - -

-We will show some of the things that are really simple in 1d (but sometimes -different from what we are used to in 2d or 3d). Apart from this, the program -does not contain much new stuff, but if it explains a few of the techniques -that are available for nonlinear problems and in particular 1d problems, then -this is not so bad, after all. - -

-Note: As shown below, the program starts the nonlinear solver from 10 different -initial values, and outputs the results. This is not actually too many, but we -did so to keep run-time short (around 1:30 minutes on my laptop). If you want to -increase the number of realizations, you may want to switch to optimized mode -(by setting the ``debug-mode'' flag in the Makefile to ``off''), and increase -the number of realizations to a larger value. On the same machine as above, I -can compute 100 realizations in optimized mode in about 2 minutes. For -this particular program, the difference between debug and optimized mode is -thus about a factor of 7-8, which can be explained by the fact that we ask the -compiler to do optimizations on the code only in the latter mode, but in most -part due to the fact that in optimized mode all the ``Assert'' checks are -thrown out that make sure that function arguments are correct, and that check -the internal consistency of the library. The library contains several -thousands of these checks, and they significantly slow down debug -computations, but we feel that the benefit of finding programming errors -earlier and including where the problem exactly appeared to be of significantly -greater value than faster run-time. After all, all production runs of programs -should be done in optimized mode anyway. - -

-A slowdown of a factor of 7-8 is unusual, however. For 2d and 3d applications, -a typical value is around 4. - -- 2.39.5