From a0854f326e18b77a4734ee1fe9f4c0e5fb046dd6 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 18 Dec 2019 13:31:00 +0000 Subject: [PATCH] Take out old html docs --- README => README.md | 7 +- docs/html/contents.png | Bin 278 -> 0 bytes docs/html/crossref.png | Bin 147 -> 0 bytes docs/html/img1.png | Bin 2801 -> 0 bytes docs/html/img10.png | Bin 252 -> 0 bytes docs/html/img11.png | Bin 461 -> 0 bytes docs/html/img12.png | Bin 212 -> 0 bytes docs/html/img13.png | Bin 294 -> 0 bytes docs/html/img14.png | Bin 1028 -> 0 bytes docs/html/img15.png | Bin 299 -> 0 bytes docs/html/img16.png | Bin 668 -> 0 bytes docs/html/img17.png | Bin 559 -> 0 bytes docs/html/img18.png | Bin 300 -> 0 bytes docs/html/img19.png | Bin 277 -> 0 bytes docs/html/img2.png | Bin 370 -> 0 bytes docs/html/img20.png | Bin 197 -> 0 bytes docs/html/img21.png | Bin 218 -> 0 bytes docs/html/img22.png | Bin 7344 -> 0 bytes docs/html/img23.png | Bin 419 -> 0 bytes docs/html/img24.png | Bin 230 -> 0 bytes docs/html/img25.png | Bin 256 -> 0 bytes docs/html/img26.png | Bin 319 -> 0 bytes docs/html/img27.png | Bin 430 -> 0 bytes docs/html/img28.png | Bin 324 -> 0 bytes docs/html/img29.png | Bin 381 -> 0 bytes docs/html/img3.png | Bin 219 -> 0 bytes docs/html/img30.png | Bin 201 -> 0 bytes docs/html/img31.png | Bin 1978 -> 0 bytes docs/html/img32.png | Bin 447 -> 0 bytes docs/html/img33.png | Bin 571 -> 0 bytes docs/html/img34.png | Bin 1607 -> 0 bytes docs/html/img35.png | Bin 263 -> 0 bytes docs/html/img36.png | Bin 533 -> 0 bytes docs/html/img37.png | Bin 534 -> 0 bytes docs/html/img38.png | Bin 270 -> 0 bytes docs/html/img39.png | Bin 837 -> 0 bytes docs/html/img4.png | Bin 745 -> 0 bytes docs/html/img40.png | Bin 280 -> 0 bytes docs/html/img41.png | Bin 263 -> 0 bytes docs/html/img42.png | Bin 572 -> 0 bytes docs/html/img43.png | Bin 2817 -> 0 bytes docs/html/img44.png | Bin 253 -> 0 bytes docs/html/img45.png | Bin 497 -> 0 bytes docs/html/img46.png | Bin 259 -> 0 bytes docs/html/img47.png | Bin 547 -> 0 bytes docs/html/img48.png | Bin 414 -> 0 bytes docs/html/img49.png | Bin 319 -> 0 bytes docs/html/img5.png | Bin 668 -> 0 bytes docs/html/img50.png | Bin 275 -> 0 bytes docs/html/img51.png | Bin 310 -> 0 bytes docs/html/img52.png | Bin 290 -> 0 bytes docs/html/img53.png | Bin 606 -> 0 bytes docs/html/img54.png | Bin 243 -> 0 bytes docs/html/img55.png | Bin 278 -> 0 bytes docs/html/img56.png | Bin 598 -> 0 bytes docs/html/img57.png | Bin 664 -> 0 bytes docs/html/img58.png | Bin 406 -> 0 bytes docs/html/img59.png | Bin 1295 -> 0 bytes docs/html/img6.png | Bin 614 -> 0 bytes docs/html/img60.png | Bin 296 -> 0 bytes docs/html/img61.png | Bin 422 -> 0 bytes docs/html/img62.png | Bin 314 -> 0 bytes docs/html/img63.png | Bin 309 -> 0 bytes docs/html/img64.png | Bin 303 -> 0 bytes docs/html/img65.png | Bin 617 -> 0 bytes docs/html/img66.png | Bin 454 -> 0 bytes docs/html/img67.png | Bin 257 -> 0 bytes docs/html/img68.png | Bin 301 -> 0 bytes docs/html/img69.png | Bin 579 -> 0 bytes docs/html/img7.png | Bin 1308 -> 0 bytes docs/html/img70.png | Bin 657 -> 0 bytes docs/html/img71.png | Bin 699 -> 0 bytes docs/html/img72.png | Bin 212 -> 0 bytes docs/html/img73.png | Bin 228 -> 0 bytes docs/html/img74.png | Bin 242 -> 0 bytes docs/html/img75.png | Bin 276 -> 0 bytes docs/html/img76.png | Bin 469 -> 0 bytes docs/html/img77.png | Bin 219 -> 0 bytes docs/html/img78.png | Bin 231 -> 0 bytes docs/html/img79.png | Bin 387 -> 0 bytes docs/html/img8.png | Bin 274 -> 0 bytes docs/html/img80.png | Bin 372 -> 0 bytes docs/html/img81.png | Bin 223 -> 0 bytes docs/html/img82.png | Bin 218 -> 0 bytes docs/html/img83.png | Bin 283 -> 0 bytes docs/html/img84.png | Bin 281 -> 0 bytes docs/html/img85.png | Bin 207 -> 0 bytes docs/html/img86.png | Bin 608 -> 0 bytes docs/html/img87.png | Bin 259 -> 0 bytes docs/html/img88.png | Bin 218 -> 0 bytes docs/html/img89.png | Bin 218 -> 0 bytes docs/html/img9.png | Bin 277 -> 0 bytes docs/html/img90.png | Bin 607 -> 0 bytes docs/html/img91.png | Bin 638 -> 0 bytes docs/html/img92.png | Bin 339 -> 0 bytes docs/html/img93.png | Bin 642 -> 0 bytes docs/html/index.html | 184 -------- docs/html/next.png | Bin 245 -> 0 bytes docs/html/next_g.png | Bin 272 -> 0 bytes docs/html/node1.html | 117 ----- docs/html/node10.html | 67 --- docs/html/node11.html | 80 ---- docs/html/node12.html | 163 ------- docs/html/node13.html | 324 -------------- docs/html/node14.html | 415 ----------------- docs/html/node15.html | 289 ------------ docs/html/node16.html | 237 ---------- docs/html/node17.html | 315 ------------- docs/html/node18.html | 174 -------- docs/html/node19.html | 138 ------ docs/html/node2.html | 131 ------ docs/html/node20.html | 968 ---------------------------------------- docs/html/node21.html | 133 ------ docs/html/node22.html | 164 ------- docs/html/node23.html | 177 -------- docs/html/node24.html | 215 --------- docs/html/node25.html | 93 ---- docs/html/node26.html | 125 ------ docs/html/node27.html | 79 ---- docs/html/node28.html | 94 ---- docs/html/node29.html | 92 ---- docs/html/node3.html | 208 --------- docs/html/node30.html | 67 --- docs/html/node31.html | 127 ------ docs/html/node32.html | 85 ---- docs/html/node33.html | 186 -------- docs/html/node34.html | 75 ---- docs/html/node35.html | 98 ---- docs/html/node36.html | 207 --------- docs/html/node37.html | 67 --- docs/html/node4.html | 105 ----- docs/html/node5.html | 81 ---- docs/html/node6.html | 128 ------ docs/html/node7.html | 133 ------ docs/html/node8.html | 136 ------ docs/html/node9.html | 292 ------------ docs/html/prev.png | Bin 279 -> 0 bytes docs/html/prev_g.png | Bin 327 -> 0 bytes docs/html/up.png | Bin 211 -> 0 bytes docs/html/up_g.png | Bin 231 -> 0 bytes docs/html/userhtml.css | 30 -- docs/html/userhtml.html | 184 -------- 142 files changed, 5 insertions(+), 6985 deletions(-) rename README => README.md (97%) delete mode 100644 docs/html/contents.png delete mode 100644 docs/html/crossref.png delete mode 100644 docs/html/img1.png delete mode 100644 docs/html/img10.png delete mode 100644 docs/html/img11.png delete mode 100644 docs/html/img12.png delete mode 100644 docs/html/img13.png delete mode 100644 docs/html/img14.png delete mode 100644 docs/html/img15.png delete mode 100644 docs/html/img16.png delete mode 100644 docs/html/img17.png delete mode 100644 docs/html/img18.png delete mode 100644 docs/html/img19.png delete mode 100644 docs/html/img2.png delete mode 100644 docs/html/img20.png delete mode 100644 docs/html/img21.png delete mode 100644 docs/html/img22.png delete mode 100644 docs/html/img23.png delete mode 100644 docs/html/img24.png delete mode 100644 docs/html/img25.png delete mode 100644 docs/html/img26.png delete mode 100644 docs/html/img27.png delete mode 100644 docs/html/img28.png delete mode 100644 docs/html/img29.png delete mode 100644 docs/html/img3.png delete mode 100644 docs/html/img30.png delete mode 100644 docs/html/img31.png delete mode 100644 docs/html/img32.png delete mode 100644 docs/html/img33.png delete mode 100644 docs/html/img34.png delete mode 100644 docs/html/img35.png delete mode 100644 docs/html/img36.png delete mode 100644 docs/html/img37.png delete mode 100644 docs/html/img38.png delete mode 100644 docs/html/img39.png delete mode 100644 docs/html/img4.png delete mode 100644 docs/html/img40.png delete mode 100644 docs/html/img41.png delete mode 100644 docs/html/img42.png delete mode 100644 docs/html/img43.png delete mode 100644 docs/html/img44.png delete mode 100644 docs/html/img45.png delete mode 100644 docs/html/img46.png delete mode 100644 docs/html/img47.png delete mode 100644 docs/html/img48.png delete mode 100644 docs/html/img49.png delete mode 100644 docs/html/img5.png delete mode 100644 docs/html/img50.png delete mode 100644 docs/html/img51.png delete mode 100644 docs/html/img52.png delete mode 100644 docs/html/img53.png delete mode 100644 docs/html/img54.png delete mode 100644 docs/html/img55.png delete mode 100644 docs/html/img56.png delete mode 100644 docs/html/img57.png delete mode 100644 docs/html/img58.png delete mode 100644 docs/html/img59.png delete mode 100644 docs/html/img6.png delete mode 100644 docs/html/img60.png delete mode 100644 docs/html/img61.png delete mode 100644 docs/html/img62.png delete mode 100644 docs/html/img63.png delete mode 100644 docs/html/img64.png delete mode 100644 docs/html/img65.png delete mode 100644 docs/html/img66.png delete mode 100644 docs/html/img67.png delete mode 100644 docs/html/img68.png delete mode 100644 docs/html/img69.png delete mode 100644 docs/html/img7.png delete mode 100644 docs/html/img70.png delete mode 100644 docs/html/img71.png delete mode 100644 docs/html/img72.png delete mode 100644 docs/html/img73.png delete mode 100644 docs/html/img74.png delete mode 100644 docs/html/img75.png delete mode 100644 docs/html/img76.png delete mode 100644 docs/html/img77.png delete mode 100644 docs/html/img78.png delete mode 100644 docs/html/img79.png delete mode 100644 docs/html/img8.png delete mode 100644 docs/html/img80.png delete mode 100644 docs/html/img81.png delete mode 100644 docs/html/img82.png delete mode 100644 docs/html/img83.png delete mode 100644 docs/html/img84.png delete mode 100644 docs/html/img85.png delete mode 100644 docs/html/img86.png delete mode 100644 docs/html/img87.png delete mode 100644 docs/html/img88.png delete mode 100644 docs/html/img89.png delete mode 100644 docs/html/img9.png delete mode 100644 docs/html/img90.png delete mode 100644 docs/html/img91.png delete mode 100644 docs/html/img92.png delete mode 100644 docs/html/img93.png delete mode 100644 docs/html/index.html delete mode 100644 docs/html/next.png delete mode 100644 docs/html/next_g.png delete mode 100644 docs/html/node1.html delete mode 100644 docs/html/node10.html delete mode 100644 docs/html/node11.html delete mode 100644 docs/html/node12.html delete mode 100644 docs/html/node13.html delete mode 100644 docs/html/node14.html delete mode 100644 docs/html/node15.html delete mode 100644 docs/html/node16.html delete mode 100644 docs/html/node17.html delete mode 100644 docs/html/node18.html delete mode 100644 docs/html/node19.html delete mode 100644 docs/html/node2.html delete mode 100644 docs/html/node20.html delete mode 100644 docs/html/node21.html delete mode 100644 docs/html/node22.html delete mode 100644 docs/html/node23.html delete mode 100644 docs/html/node24.html delete mode 100644 docs/html/node25.html delete mode 100644 docs/html/node26.html delete mode 100644 docs/html/node27.html delete mode 100644 docs/html/node28.html delete mode 100644 docs/html/node29.html delete mode 100644 docs/html/node3.html delete mode 100644 docs/html/node30.html delete mode 100644 docs/html/node31.html delete mode 100644 docs/html/node32.html delete mode 100644 docs/html/node33.html delete mode 100644 docs/html/node34.html delete mode 100644 docs/html/node35.html delete mode 100644 docs/html/node36.html delete mode 100644 docs/html/node37.html delete mode 100644 docs/html/node4.html delete mode 100644 docs/html/node5.html delete mode 100644 docs/html/node6.html delete mode 100644 docs/html/node7.html delete mode 100644 docs/html/node8.html delete mode 100644 docs/html/node9.html delete mode 100644 docs/html/prev.png delete mode 100644 docs/html/prev_g.png delete mode 100644 docs/html/up.png delete mode 100644 docs/html/up_g.png delete mode 100644 docs/html/userhtml.css delete mode 100644 docs/html/userhtml.html diff --git a/README b/README.md similarity index 97% rename from README rename to README.md index f8b2f1c8..b0def0e7 100644 --- a/README +++ b/README.md @@ -70,9 +70,12 @@ NOTES settings, but the rest of the application needs not be changed. -Contributors +The MLD2P4 team. +--------------- +Project lead: +Salvatore Filippone -Salvatore Filippone +Contributors: Pasqua D'Ambra Daniela di Serafino Ambra Abdullahi Hassan diff --git a/docs/html/contents.png b/docs/html/contents.png deleted file mode 100644 index 0c752c66c876acaa2131d43788a7406f5979f746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmV+x0qOpUP)n_8B^;cn$O_g|3BG{!1Fj&^JiWpJWLeA$WK=+#U`gfB`ZJpvc?v;;IiS zWN}RlBW%jSmz3^2R|i?JM0KMv+9z;7ee@a!R<*>X0K7&N_)1@@}28%Z6=9 t-O~MHw|5t0`TuI#<-T9Me##YR_J!+(UN4n;@(5@ygQu&X%Q~loCIFb&G|K=0 diff --git a/docs/html/img1.png b/docs/html/img1.png deleted file mode 100644 index 6e9422be46dd5feaabe1234912e6636eebaa92c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2801 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 D7x$~q diff --git a/docs/html/img12.png b/docs/html/img12.png deleted file mode 100644 index 3649dbe84ee0b0750be2b0a33976c2a342fb4767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^d_c_4!py+H7-)O>B9LPc;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Lce=x;Tb#%uG&5c#zV-w2W6l=)_aOga+m^frF13RJf){Okm{ic)%{mbEaloF)=xTfys=G<;LD>b7m_b$=q{Nq(PCJ{f)z!QwI(#J#gT_*#ieoGc5bi zcvoQqV`z_bXW3(y4d!!PrY>i@&~%B9N8tGK7E5RoLG|(D-4d4ugR}*R4GOhi)n?9w`%-BT6YMFiU)vmcQ*M=LX1; z8Gs<#x4OdqIYfd@Qa-vk`pnfi#jr`gqBN4o;hCi`q(l4>r|?~kwh{e$27GY48~0Oe z(g4S8fCKC^$+Jwt-D2Da^r;L%(?TJgAXdCfX{;PFmfa)PM4>u98eFaiq+k;>(BeOU zXt2qEpHd6=TL+kX?!ionAEAp0+~JF zG|IA`roj^+T5Y(r-$uvdkGm*#C<+mr1expP4v7zSJvT`Pw7UHHWSPzN9LaXc_46p* z!*}y4ZA7?Gw&^H8qSzr*{1m)69)lBjZRod628xInHhV9s59TJ zmR1<8xPf=fUp+^HSn2?5@NS@oKEFCa7EjzifFRyxSY$islU$uqRapzkxu zIF@7#8$_mOG?ri#piNGFXB$vQa_`(AY8*$pwTt!wxI>TlsTs+DkI=I@#IJ-VGPL%I zFmL%v@+aIor^Q?HoixlApBHQM%UM8YIUN}*1yM6@kn?#cE){=Q_yIpYV(nDiYwv!t zEK>xH@j`!fjegLUhb@9G-&?r7IoNg3%aqSwO+4{+Lmgi38o|!8U;qv)3TVs^AZtBEB7pPzDeH0000BZ3`njxgN@xNAm=bGK diff --git a/docs/html/img16.png b/docs/html/img16.png deleted file mode 100644 index c026878a94816284ecb58b8d56a5d6f732f32561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)6XOpUz%$6(q3{>Nc4{vVFmaG^z$k|gx9`i38l9W z=rE{j(jJp)MGq=Z>n>`infx@4^CxH?JC;G8OYfN4yf)oI{s=h6 zcM{yeVPdfrWk z**&p-23e>E0f)Cmzt-@X*c$atm!h2v{c#$$*We#eXV~!vWpOIUcmFo^$sUQ*!Rl+H zDPELiwbbwA@Shug)t(x57uby}&2e05J-f!PxKO?{{UR_89%N!Lm)P=+el#uv2ZpYJ z8QS4Bg-e4k#gPX7K3LWrnXO>{!F!`}-r~&_zmK0>cx8M`H#6P<0000C=e2D0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*Itw}^dR5*?8R6S3_Kn#7krfHKjO=hOk4Mm88q6#6gWn^He7?D6_ zLqe#CnSq~>ouxBVDGY3_m>Ba9=)ez%#KHvlE(xUH3uWq)?#}kJ6Z>KZNMO^lq#%GM zrXxf}dGZ;&0^0&U-XX}T;UC8HT<4&p_9_@X#y%m@!~LrXxNw+2M|zoY>k-PP%nyi2LsMzq7}3yYXKvSM^< z+;JKzLjP&2F3$2A} zaVt>b+Jm@@@i^wjA~^M)sK@0FwV6*J^*oynMq|}uN5N>ofL4hUQt9w zJHwHwvt--c0)^(MaU8?-VO(b1rr4hRAF7eQ78_Bj=cXM!IQ^*sX0EPWfY}A>YvTdd xO;SP%*PnRgI7YK91`7jNE2rp-U$DZz;v0#DMxr##?fL)!002ovPDHLkV1l7o0IC20 diff --git a/docs/html/img18.png b/docs/html/img18.png deleted file mode 100644 index 2efc6035ff6d06a61fe6e31bf961997599714662..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ex!py+Hxc}kD??8@0fKQ0)|NsAI&YW3ZULG16 z`tIF3V`JkpXU+%;3a(nUs-vSLEiDbG(8a~&?%lgeN=mzT@0OQUoC*|TED7=pW^j0R z10=u7)5S4FVrp_iLc#-q)P#xy4Ll+XBpB^%3K9~ynT;d@LqFLkJP5nNkYu>gz~}=f zL*~0SUY-hu6EVwpdFJa|Fi7S|ONh)6YjEK!$a%1j!KmJe=}KD+JEOte14ld0+ZZH7 zHtQ8J9gCQI;J|||t&R2xLPuiGt>)s%DHk*NaHiqcgwB@?&WGP~^UROz(Q9CR_9;Ih w#iI4mlV15B-w*BFQ`N|$_UBcmdKI;Vst0RCBWk^lez diff --git a/docs/html/img19.png b/docs/html/img19.png deleted file mode 100644 index 50f1ef675dc5d57a8a08bfb58ff80b5e461aa471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^azM<_!py+HST;Gx638(K@CkAK|NsBYnKR4F%R@s$ z-@SWhY;1hy%o#yJ!BwkPb#!#3rKJHCy12O9y?a+lNon`)-SV=EQ-MN^B|(0{3=Yq3 zfaE88x;Tb#%uG&5NO%yQ)X>DM&{WUdb6SAmNn=JHn;Tn7LBql3M5YPP7&CV=q`c77 zF9=FF!1cr4K*K=CA?ysVnS{=#rH#Tzew@F+wyk5o$85)!%w@$b+q8@fUgQKNT#n;- zX52XEB-a)bL8bG&oA%#sY-D`Jmn$H6zopr07`3U&;S4c diff --git a/docs/html/img2.png b/docs/html/img2.png deleted file mode 100644 index b704a4b39001669fd6a0489f83c36051142cf40a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmV-&0ge8NP)0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*H@JU2LR49>SV1NT228II+LIMnW4Co*MLj(kv7l24e7P9vMI3B z$MtjvlQ4yNtzj(2Ggx#eL1`8NVDjZucGNsT%Pagi qqhaH={DzHI34Tmk$wr9@3=AhF*cV0d1zrIf&EV9^LLUR1}Clf!T#L*PSRLc$F0w3SU;nj@_nCh;Xq6JnP3;9y|+z*Qsha`qgc OH4L7velF{r5}E)dR!eyR diff --git a/docs/html/img22.png b/docs/html/img22.png deleted file mode 100644 index aa79b4b297056d0d6d10eca475d4417a63d1a4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7344 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 N002ovPDHLkV1jNUkEQ?s diff --git a/docs/html/img24.png b/docs/html/img24.png deleted file mode 100644 index 71aa6915b5360c3c53e0a0d5fdbda5862f5653cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^!a&T=!py+H*qnQ_6UfmG@CkAK|Nnn^d3k7P=(~6C zjE#-YoH-*XD7b3Xs*aA1w6rv!Di;@*yLay@DJkvVy<6)e-#4HTV@Z%-FoVOh8zA{~ zPZ!4!j+w~`2?-C_lGw!9+F00F5?GQF+1SkdS^}6nWZ9YZCrl9%NpN81%_)d9+n^)e z%nTs- diff --git a/docs/html/img25.png b/docs/html/img25.png deleted file mode 100644 index 80614919fe2db2c04adfc33fc830b945d5350a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)k!py+Hc);K>8<3+L;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8P}Qc~Kzd$-@rvML~-u_VYZn8D%M4UlA` zr;B3<$IRq}goFoa4UH@o-Hy!XvVgo@2M(-kSR=q8VXnEcNs{YMj&!4lHM8FV9;F$4 zGdDD5__4hU=Slb~$?jmXUC2dHIOLzopr0K;fn A{Qv*} diff --git a/docs/html/img26.png b/docs/html/img26.png deleted file mode 100644 index c7bfe75bdffa16e21d79344d5e5c99342fedfd79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^+CVJC!py+H=*|cdXD|rx332`Z|NqRHGt0}%LqkK~ zy?bYDY<%X-89_n8RjXEYbabSpr2!SXxVYTCdsj(GY4`5k^0JCkfkKQWL4Lsu4$p3Y zV1QNzBP001Wh0{{R4f3VIQ0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*H!bwCyR49>SV88(E3m8%gkOf$Il|d9ArqTxttPHXY3`{`82oqDl zR0cB#L=-SMdrSb*oD2bA!P5*o;0hXWYQ+QoL#PWtyo60a?EwSO;0-&#j@zIHbj$$; zkafJgObon0dK32ssJ_2Qj$&ZoBFAcCz!NAfwP@7`295;~jyBM>(jQojAiO<5%zfY= zTkHoAPZ}sEegUSP_W%Q%0RzN)3=H;-3`{>JpjyDDbO4#lxd54W9f{3bw1g6m-~j;F WP$g2DryWoL0000foU&Lc0a==Z~!qVEdUa{ zM<6P=4*-chObu^Aa!ib%cwmK@2hvpwGwL6R;DPb(Ffb&;ZP{`Y$w1~G0u1_{sLq8t bV`KvWlZ`Gh+ZKNr00000NkvXXu0mjf5lxCb diff --git a/docs/html/img3.png b/docs/html/img3.png deleted file mode 100644 index 27acb69bee007ff78018675df42eea47dabb59a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^fgec5OG^VPba8RHd-v|{-MjbM$eaf98B2ovf*Bm1-2h3( zc)B=-aLi0jNJx0VoWz#L#wMq5^i%_b4~N=)Hi4BaO5q>H3>Pp=Fl+Nxcyy0>fto6- zz~zR diff --git a/docs/html/img30.png b/docs/html/img30.png deleted file mode 100644 index 79d5c4c51be1b2ecc486acb4f8199c5e6f391077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bE!py+H$PvSN0mxAg@CkAK|NsBYnKR4F%R@s$ z-@SWhY;1hy%$ZfIR&{iAq@|?+RVgVc?cTk6ef8X_Kn`O`kY6x^!?PP8nE+20#}JO0 z$q5Wip$<9+HZUAXVH4!>;o*r%IHt8hf#n0kMzyBX2e=kS$TUD2EOM!%HVVZv8__`+#OMc)I$ztaD0e0s!t6L9_q> diff --git a/docs/html/img31.png b/docs/html/img31.png deleted file mode 100644 index abff1e55b4b95ffa6e4e618a18ae33c21531fa6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1978 zcmV;r2SxaaP)U86J@?#u6M)&o2ujsz)oX9@>EVj18=~HU8kLf~ zcIauYqR2kjs6rhJ87Q{n3?S&5EN1yfQoff0B~$pBHcbO`pg$(*K;tEVJlOp~t6f{% zF7;lQ`j9kgHcUaqwrMC?k1?n*f6K@MmJ@2d#h&d#0!JGCspP57!j5hO$>_+t0gg&M zpRqJD4xR(n0ABShb7`xKbRYJ1sWS0;_evUX_AuFV_pCjG9@c6|`CuzBB&#kdhE2=G z7VkdB{ z6tZ-IAS-0%LJ2maWc_6d`-ciXRhY8*UiK@Hre1Z6bV>*O(_1>pSZ*+!V@Gd8#YW zYdMTihhmIAeJ~nN0pBJjFm;_wAq*`PCV3cM32BGAnL`TMF=6zGTElKxVp6v`YR=wo zX~T-kI=Or`dwPZK6)Gy%`RwTMBU^ypC(?J74FS{lW4y{V6w02&;Wu2kzK%+!fm+(# zctD)>Ap3T}2U1f$wrGhuuW?#NY3x#SRIziqz84YXjCtH;+77hxYoSr{Sn6PVU1WB{ z(nBnXdA6UI6%ru<%`N(#5ZZ#XzYRY>yUOg4_vM~tfXvrtmq9XLe|>t2CAAusp7z3i z5oUay3xt^gNyb9uq3#Gla?$)&C3jYY(7-9l)~1dKQImQ3P&y){MxkMgavds81<%P9 zryXHU*^nDmwuz+_WvM6-`~bm*GRx;4co*^GgDGI!VmRyVT2z++*I zf?uUN)KPNegU`(pg2Ia>wnErNM;YR0f_y=`=t0aX3oJQ9rp%qG1{j*H5{Ebqhpm$j zK3{SssLlhxMk#?u)FMYnWU_28Zv=;mL&0q&9c+kqQ*w4jz)-oHxPjIjj}4v=y2}u< zcu8a)kH;FE6le|$LmkHDZI9e5@W$7zuc!id=uOLOK*wZQkFgyCc52wP8yiaRaRh^U zEJa7PiXmd(^L4@rm${z2h_3t!dqc6*5Vzv6J-q!| zEbg3EgotFy#n2m9(HxuRybwZg+4^Pp;WJ-EddM1Q*fZ|hvO*&Cb`t0TVQsWxQ8M46 zA`G&}xqWFL>K{NKg!g^|1ZGLMl3=>0MLsnM^8Hl6TGB0sgBs9RSW~8upzKy zN(#`V@CZ7ckvE+s0kGm62yUD&V}#}&^&m}Zw{s+{o{p*MCQXd(9gkP z8i>5m+v2d+p|TdNO|yw5C?p=ji&v)6j2U+$r0rLQesdOVP|n$+jI(eM{(!bwFbMfN zNBx$o>ds?$$7u;TKkLCxc^4EEuCZ@a_rq26!EpI?lJrKia1~PJX;3PSFa?7Y;3tBo z!VdsX=*?M}u43XTXgOwF^2(gT&o68kF9>3L$m!@>0GeKrEE5+wmFj6Qs&YYX<6bXY z{jt5Tps!j};1uo%zA=g!P(7YfN$=2c(eUY$n^sKT8h>L&csZxPncBusa4qDH3ks{s z(wk%jItc&nA|_n#B_p+qFD-oros;SrzOV77D|ZsV^Xd#bRqmdVKv0MU3FvA^`1nfp zkz{I$(+=K)aM$7^?E4D8gTe%hBhjS3U%SOeY?!g=NMR3)vh4bBUHZWBUc8CQ+#E2B zwhQ@lQB-iFcgOWnkYjP<6Hm~s2HF~NX(VUhESKNC+HC} zFoKjL^aw~SYt3oh}|`%w!A!6_dNv@zp=5lXM9TP4;<-zFlkzLOdB)Z;ORvTUR}REB?^jnqxsBuZl}1mo)70a z2BV|>%3PhHyK`&L8^);)IktO*#E7C=dA@u4^P)KR544#KotI(CTWu&<97G(kY&Cvp}9RYw5JBWE}~&?SmqN%w!B z`TvCJu*|m$wDuvjp}W5D4D3pyRGKw=i&;@Ljjlm5Gdv2UP^ZVVO}atOb8@l7pbM=d zDH{x~U7otd^DB=k;tiSL28LRuOAnJ^n-Ufwu80t7hdw7|O^24MG#426$tTdkf5rNb zR6S=-Ummj`=B|R1xr29FfmHrds~u4vupT@?Pxwb|sd-(X!R;N}KbEbx`d%HXqB`>h;@*+aWru4m$V^-T*FJQkovD*R%it002ov JPDHLkV1l*K0-^u_ diff --git a/docs/html/img34.png b/docs/html/img34.png deleted file mode 100644 index 15a5966fe31548109a914954d3841147d4eb59bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1607 zcmV-N2Dtf&P)}0c>$?R;cR8X|1lU_7w$u_AEMWmy) zf}~*D2k}90ut-4-4Sj20Tq9y76@%25R%J{@v51aI(UKCglp=zH+u-HNb}3SP5sxXY zV!-&HGq}Wx3;~js1q>jc15jcewVwiY zwt;}PXaji4;v_0Tl?vd9OqtM98%8ty2;%A3fhLW(+cw48PcNGUM`t~ODju|hC%olp zjfZ7!Z1UqG?c-QST#={KmTG~eIp6kMwA+W8DH&l zDDnrLi&rYTNyRR8f~xjmmQYcXcLgO$2^drSS@bM_kS@_|qbe&QE_$47Aieqgu&DbQ z^=Lc+(%YuEqR~1^9*En^Ubq8wv}{jTD2c?vKMuHJ#p)N~Ly=;`%#Ly$rwtA0|Bh@i zL0DRbBe8u%+I;*Xt}36#m)MQkyfM`ME^)V`6q^LLC)|s)UjE_*7oi) z9P#C+FDe6kT!uejeU3KmD7`SjPY68kp$whu!R8q;2iCaly#%lOl?KgA7B$zeaA8Cp zQc9Di}Xo>|ljJKa=1{v4yx7M*M(f)elTy*4Q5!5aaI}M^RvBbG@<~m8pDt zbsYg*t3bHzl$UViH$-fuY1kp6M>1jbF81EN($@o?d7uOHn$BDQRo53M2~IG!|x zqeexs0K37r<&K7Bld=v8K(i-QX&yc4w^BHA!tU(OP3U)m@%Y4_H*Pz_)+k*u&UVO! zqw$VZC_1`%({h|l?onU`RjWXQ5RQVYfQo044s*Qvy`8{vJ&n3?9nqitQd+Uj>cDL3 zK-C6jcEdyFG8`phtU*Uh9gvwN1d_a%iY@`Ekulw?lK8r`+BsiB-|2>}>P#H$Qoy$_xts~P| zGZCZw4~vbU|6VuvmL~b+d8E#75hiBdT71-c_#r;17W4Au;lAehz)t?Im+}sWltSSd z9ILz)sLg(37~jE$=YFfTcF$L`?h`yRgV#n0igU7BkB`K;&5#3E>84@Pc>^R+a=*ZAx-0q zMq9xr9yo(v#AK+d3{^!*zDA$H|M%C$EUbaQz6jNRiFZr*$En4YsYp!>c3kJ*Sn`)3 zT@vg4L@1h_!hIzDQbnGHHGJl4-aKU76~||JSX);T*;su(J>s_r9aOo-nd%pmY3M`3 z^Xv$*Q$>6&nZbWCO@kMtRw0p(sGJvj_Y9d?m}h*6{@SrG$9L{KzN9@13o{X;*68OvulD(7RdN!{ecZQ zIi8X-nk->_B~{{rnwMSXD%w=n8<1lV;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Liy{x;Tb#%uG&5NO+Le(8yxZ?Z|vC3&^WFaA0M_8UYRobIpxSl3aIkq#H%7nf(s% zD9zxTxuG$`kL_JNPr_G8b_bK~LN0>BAsz;&x$Q3xPneE$nr%Y_ zyUF!FPiID@>3-nC|KF1t{BeCcI&326o&6=8mbtlp162QhfM`njxg HN@xNA__10I diff --git a/docs/html/img36.png b/docs/html/img36.png deleted file mode 100644 index 097c43186aa9c7c26c4139412020f3de08008ccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmV+w0_y#VP)MLWzyoKh|8UEyMBhjJynrdm&~@NsDQ*B8G5n8s+2@H zN@V*=s!7orp-;nUQn8F`<-R0Qsq-)lJG5n7T6CX7_c)MR2$cF)AqqsKatCBI%|~ENoknsU%a|Z6+-A zIS9V*0=7+0T~IYiOFOiLF><`&Ghv{}b5Po!^t}K0UQF8)xvQp`ZJoqabI&jLYkhi5 zV-=5S0A=j54$1nScySJ1(zcv+nnyy8p-%)V^wVa7!v`VXMLLSfTUfzfwf5#hGB(g7 zA*Rl*tC6eHy*>D?7bUj%z-8AZM>N2!8)NtKyq3qb;0Ee;kMwI(^A}@+Vu*V1kH3Wv Xuu58@SWnAL00000NkvXXu0mjfnsxFL diff --git a/docs/html/img37.png b/docs/html/img37.png deleted file mode 100644 index 5c33696239176d80f258397c74fca66ac5d2531a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)*R6R?>Kp1|KwCP7$TAW;ja5~slF!%$ci-=n%T{E~j zSo#YB{((9dq&SEmLM%c>M2bUae}bDJ6pA7^iT7TvN!nhJE`kr-llLB;yZ7$Rn*b6` zK5PnnKE@QM5y9kR8_*1oOs)?lO28xJx)KbvDH)#NRG0VwXagBKQEsn*uC!=^8$`N| z%|$aP&<>-lV9JPNoO@C|EaYuia2QSe9b(4#lg>fnJ$MOAl;yt@I|h>+qiOhn6<&9s#GiH{$jjf1kC2>z9Sz0*<`dGnn_`(f9{# z-c2UC9$Qx&+1%(q%iN4bn~8tH9C-U$vRhhly;E1YZ;%?w+_#}vQ8^Q#|89w4Wg$0y Y0P?g&c{UR%1poj507*qoM6N<$f)0P?*8l(j diff --git a/docs/html/img38.png b/docs/html/img38.png deleted file mode 100644 index 6f37179c17eb55e0922e508dead3913fc49a7e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^l0YoP!py+HsLdY13gj3B_=LFr|NnpH%$eoo<)NXW z@7}#LHa0$U=8T}A;Hp)tIyySi($atmU0hu5-o2}&q_lhYZh2Y7sX!sdk|4ie28U-i zK=M7FE{-7_Gm{e-ni$wP5|R@v7*dVSG#E4PZ5Wcoma=j;h$tUsVpceM>cIJ5jg5`hrF8x`O8aP9BwgoY`fsQ3dEFriJ5HV| zp03Dz#XYh-Je@k$Rtt+R?e;e?&{R2m_e(Wn%znEG<&5X7cX;e%JjKGW-dsj%=c8$F Qf$n1PboFyt=akR{0DbLRvj6}9 diff --git a/docs/html/img39.png b/docs/html/img39.png deleted file mode 100644 index 126db528cf239c1c3ffb24694b781ba0042682fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)KR!wLVK@|Qn*=)Mqq#LTIp2qF1^(ROW1i_Wkn}@15 zK?#B&D%wkrLhvH>6cF$6q!%HCqJoNxryg>Mr3Y`_L(ekwHq8DMc#e0=I##o%Z+!EEWhB)fjQn z551b}c#;eL5O^cu6)Nvha5)Mjv{RWInML>5c^}UP22zRZHT85;$ZGNr2`5Y%j@=DaC@__7b#(pJ@Y|9O3m)#b4657`C z^Tn9rrsM`)81!Rz6xj!M2$BqS=6v5zm0M`abj!+*Gu#tL^?m{Ueh5*I@nMAdyh0HO zH&qUGBv|88nc?J68FfY@Vm>{3tf%Y#GwD>XFG)vD(A#29+%xickG5pZcmm9h=4tEX z`T$Fl$p7uH+FURN$ur7X~+YUZZ-pcLbrccQc@8 z131|57cZc6p8D3+8{-dRVLOaj(p~}gz3A>R;l5=1B#tP`xagNiHa6} z+SM#&8^VwvTh4iHnt7yJm#N4<0Zc1-xsQh9ea_DM#mAN@+{-%Z1>|XF4=9y#J)5aE zt7d;0dXGm=o8`XcZMwm%Rw{IfN*|{1J(Z8Qu5a+Ku&$X2=f^s6@Z;P?-K3?EX}t`z zn_UWLpvJ4zu2@*9nVOSrHSd-JgK;Q#WO&t0ZH=sBjricJ`8(!-f69IX%TkD(l3oL< P00000NkvXXu0mjf9x0E2 diff --git a/docs/html/img4.png b/docs/html/img4.png deleted file mode 100644 index e6f697e8093e4a763e104b38805a7cd00906e095..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVKRX>Q+U=)8fZOZkTe8J_0A_m<&2XU=KaMj@^5d;Z{ z(=9pdA_rRhgOd!1OCx28*H z8|B}@CfKMOqxpKk*BSieu*yRQdCGigASpOM-9QSs`>JtL)Ti1O%y|y|mnbz;>-Z=o z81s@xE8;j5Xy9;MUP9vB(RHf1oXA_^U9e)JjEB76KDhLPBP)71WC@b4`MjMye;6l6Qs@Q>et$V9hkt?r*78- z(2tN7m&qsyf>vaT@}f~_$M7FeJ}WsV$K2~k8#N6%=R<8V(&h{WY9Tnp722VsrF7UE zYK2YO&OVCpgGW&Sm3P9vT}1)cSci6A@sovy;3&}dHmc*Xg`a+`)IP;O_iYw7S7%i& zu)v`M<$)b!)~{RBvZ|9^Z>`*I$G#6bn=+$|{3{$ zzl4odGxP90Wvl1r b;XA@Fb(z=2kz6c&00000NkvXXu0mjfF=k)> diff --git a/docs/html/img40.png b/docs/html/img40.png deleted file mode 100644 index 834b2218651f8cedaa838014a89ff6d80a966dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZE!py+Hcvf$+BamYd;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Lf4Dba4!kn3|lBknkYx00S!{&m4s=&JKGCg9Qv?Y;0x%XU{h2oQhv^W&`69ivt@P z{Tmt^XEwGoiU%;vlu0@EfZ@{g17}z^O>J-N{LOSCgsp6Yl-!DcH4B12FibOD@kiL; zm>*l)7w$idljRyJeOMLF7&|j6o#b0m$z``$B9@^zo%!Q?{sQAJ2?>e$2Q2oinmuI; c%K{mOg(>2*Iqc7G0J@OD)78&qol`;+0P93%IRF3v diff --git a/docs/html/img41.png b/docs/html/img41.png deleted file mode 100644 index 17b9e5c3fa8d32325c46c8b0f6f7cf95594a5215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)k!py+Hc);K>8<1lV;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Liy{x;Tb#%uG&jV7kM@V`H$*B<2evvvV`!jH9O;nD`1DU+~I5YE+Rv%*H0u!0NNf z(4-+#txdte_Wz;H+zOuC_!IQlo0(?JJ5azd-I9mr&-;m$dl(DU&NH&9Z7daE@Myl7 zK}ESwgV*1u_s=gllE(7TKvOfrl diff --git a/docs/html/img42.png b/docs/html/img42.png deleted file mode 100644 index 77bd82e9babb6de4bd3a0a8ba5e3dd0c098b3458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)D;LVtQISX;GRhlMM?+ftZv1@ zIp9B#KOu^Ph(j!0wc_N^A%8+f5ryKYAilf&=ou4q6#BuvyZ7$Pd+*-895Bab$00p;beY;KT zFd_qF_ZxoTRK$KxKNXVWl(y!6zVE{K~mpa^B$?*N8hQ9w3 zmSkm^tdcudz)Kt+gSy3y%rj>A?|yiH`fN33ldju<=monyB=yZO=)Rb;Uxny3-MF8} zQO+>z_>{^@&^-pjRbrPy_-hO#rei_Y7>jL65 zZ(}E=7Xsk$2dfiKT_GV_;&Ovz39ymH8`Y0r3R~6i`{3;Wpd=0000< KMNUMnLSTZDX9wf} diff --git a/docs/html/img43.png b/docs/html/img43.png deleted file mode 100644 index 588abb24516e6a14508b6cdaa2745d54ea3c3471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2817 zcmV+c3;y(pP)d$s00DGTPE!Ct=GbNc019nML_t(|ob6qUnzJYmhJaLe!TtGN z?*CSo03t`V({?(Y&-Z!8wh%caA%uVqAy0$0eB24^t+anu`-#}D{62NHp zWx(%*ujy&?sQ++zEW2BfInO4`Ub8F|S=3@_^#R@Q1G4E0z2?cM6{6)g*NGZrSUgQG ze=AkIZV79qBL5~gLd;!)Kv5<7pjAq&!t20PWJ{trkqS6@8H`oPSK>&yUkSPDj!}-c z?x($g9g(V|4_^nQ3ga+rI)%1jHuj^`0lEo2&9XLT`wX9nAf+Qu^(Z~v=h*pd$Bv6!o*@!U`JGQY|zi?pW5Iy_xJt#Hn)9`XD z5JrZdg55|=6pd=M(J#~$SNjBBKcyX%*Z^1GgjZ_@%nQ{AYln=(!IDh!wB9sqM$7#P z1`S{+$i{r;E8KtH2;Xj6iPA(zD?qr# zQpNeTB+>PA8ya;mx+$sDTl%`2fmt~*KFwoZ50f*sNo7r&tZXF|MrkQTMwBK}0-+s) zs6G8Pp}`g@tw8}|g!R`gXS4!yGXn)_o%hiIhrVOja)@`w`Y^WmSp}J*wPH~vnhf=c z2cBut^|8uPcro}1fmBj9xo;EPZDk(@+whFy9_+wJ2WZCDl=q|Y)?nP*VC^3KZ4L6D zw-JQ+wpj0l3%?b2#i3srwEh;bWMaF+XlnZL7B<_>7HL?|`qRw2hq?PXVxNU4MsG&a zkBrG>&Y&tCn@pjnuyB%t>#-x|!O#7`$tL!kS{DJb)sJ=A{a(0FjO#^o+i{sA+!l1&)8C7=$wpVJQWa!Qix>sp68s5~`QatNNvt}_)V-W;1n1Wx)EevA4A6YqdF~O(E*z3Kn^|k7tWk7YK_{10Bk41kQXu z?xQZP4piY$lBjveGo?7OG$T`zW@s;0Q)r#18roA9q-D!oq*;Tv+k0I{G$V?Q*y+~Z zP)Re0IVU8R<;kw61AfaF=&hht4|{P5y^a$DxUR%6Sb1-6BJl^dma%qIHhtGvV8e1H ziP{&`iouSh{hNx{M zZJd40bfifb=2qr^`HH5oD|40TPi&bYnm45omDC-!l-2M}6TQrRFn214MHG7X{0gm^ zbF`%fTfxbUV70n=V+a@L^@nJAzrAjM#D%S`xKoNGaf{A2HdEMEPVcbt{c1r8Z5))_ zGjMinHe=7F+*O+CfE1Mt4vCw^hI&>_JejhG6HHbU>@dMoM@(89u)shUOE(ZVINMqlE0GihlgBbEDJvI@OeSa-Qy=wG{DKG0?q<+usjG~2cSq8}#?g0$px8xvmqkkf^LuE@#2x*jC;&qf28HZe`Noxuyrue1ftN;dwJ&V*w`SYIyd zx1cL?vk)=py@OHRHw%b?7V-zGwqqHwT{1(mNG{{YQ+WaQaVdZ zTl*`e%>6m409l66+zC>ns2}EAfqtCdZ0hU>zz-PbaC&+7TixcPj%b*v18-sr05 zIx!%4BBn)j3$+JQwEgt5=m@eRdpRJgG0I7|dEzI4|Dpa=OZ#a^6@@B}{fi*s&w} zi>;(l-K@o(9$?RQJCz?v{EzC$(#BdI?`Bw@eH_c6F--_4y> zwkb_K#f@vC@vN2~AIE6U=5IkzPD(^!c~WBmvBCFwgYK0~!x{CykHMtn%Bef6>`}%C z)}0gV^1TZtckNFv?D_+-oq5lFjeLGEOG$nP1`m#UL27i3cbHZ%SReY_WBa-IvdVr* zUCOm!>i~0BKg!?7-49H>3o>YDG0bV+RmJ_(;cWY9hnVBJzneb_cYu2t+!$2Owx6%E zN9k-kP2EA~dMuuS6WaG{>*&Jj*~7}DRY0c{_G1|gW)@|{%@oL*?0r|jV?GKUy6HOV-~i;~8e zNkv0pogF!Zw<}{ly{QH4{g%o+|K-m=3hWK>_LC@O?uMV)-(wMOlT2HG()j0Grk!*#OvcSGMmI+yJ_&3oa(g-7upZBR)_ TvE~i000000NkvXXu0mjfJN|>f diff --git a/docs/html/img44.png b/docs/html/img44.png deleted file mode 100644 index 29d0180323b4f188097d78797e4685c7c5699783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^5gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0LfQ-x;Tb#%uG&TXyWBr!xNyuq$DHp0MymY_*PU~AzZ0X+Y=)0Ya_pKD yTIcZa@Jsx25;ZV1Fx_zQ&WVV11-~R(I2qoY5poRSO#cpa27{-opUXO@geCwYCsf`5 diff --git a/docs/html/img45.png b/docs/html/img45.png deleted file mode 100644 index 7f6097393c2eedc6a0430223d1dcfc592a32a5f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV6W+jzm{{o0p&L;|CB{g+Kp5Ej z2%VX_F(Fy(MNvlJE26L{`Wac75=KM9bS5TE4xKilU!0}MaZNAQ6T-os(y zeJ}%>R-vHs{LZKXh&~B>i_p-VqDvOK!c8S{;o&L!GWk1bAYs-)i&?9Hb`U*Mfn)GN zQGtZY4E(0H@y<+8iD{N@lOl~tf%h13`mbE+N9e9a#l$o9gc?#HFX+BgZiuTf5s;)G zO!(EMcB$lc5^TsGG7@!zlSlhhD<}#&Bx5!p)`Kv#YB-;&xKXh0 z`6tm$UMah@Itu7R!~<(Op|z;o;)+NB41sI-(%24}*|BX-*gpmKSlgiv#e=Xsromep z{~5^dM79~Y$Z-zeP9S#(?Kr-axJTs=ip>nCSo;Z-KZn`>1`lITIn{qz))ln*9}ca& ns;%={+A_3n=U diff --git a/docs/html/img46.png b/docs/html/img46.png deleted file mode 100644 index 2e5b8d8288334c4688c0857336dd0633f836c1cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^VnD3U!py+H*tdJ?G$2PSz$e7@|Ns9pXU;4yFAoh3 zefRF2v9a;0RjWEWI?~e8fJ$6kT<+eztE8l~d-v`a?iqnVA;yv*zhDN3XE#9d?Vc`< zAre!Q6BwG9*!DDBZ)g;b?P2bS*${8d%q-rL6wZ*D!oJy*=fD(3#kDgI za64^uT*1wikR^G;_l%lC9OIFV!rz)!x^fDX3W!h0ljU^a?6hS)n9^0yU{Eo2jpa^$ zj)oaJ?h<*2p6nEo=t+DtTY83Q!kecY$`zb!hFcjJ&gBU%w7>Z0B+y9=p00i_>zopr E0DPfY*Z=?k diff --git a/docs/html/img47.png b/docs/html/img47.png deleted file mode 100644 index 242ad6522cff8569b601d8ece19d43d58e85b92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)NxOd;Zy!-CE9|7jbM|~HW zD2FKE)D85N?`x9VGK01O0USqDnDp#)8E8vx078fp4yPfJX;L-;+nO8e9xD-2`cFYi zV;$OJL2Z~Yi#BYfec+nAJ{3?(jJay4CTN2y_tLAigu97)lo!i+e+>$$xWyz3&8e#U zOf@FH{#yA~MCt_Z0eGhdj90ZKQlH8kAfQL|=JnvxJ&mB5rDB}ki*rKkC@nx=J}Fm@ zx+V->zbD4KJeKK7_RJ2uvIaFZsn@fR9Bd;|r{6kDRx*fUZDyF>xHnj;xvwDNEc?E02f~6D l28XL+CbWmGFFOAb;}cM@Q!D=xgc<+<002ovPDHLkV1m{F?@#~$ diff --git a/docs/html/img48.png b/docs/html/img48.png deleted file mode 100644 index 71c0f11f12ded8ec9ede7a8a628d0bd778fe63dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)DKfHC+1FVF}cB(4H?1B!r>5(A2g-wx^*HeBK1;bj%L025=m zfTD#yfDgeuZ~#cKqVf+gu0`haZ}6Ca%>S@K!2p@Bw1ELxKNCX$g8|Tgj2{xg{8hX~ z3^#zR3p@-Lp!P9wf|UAyfZ5MYEsqT@z~_KPkcR;h-8l>lU0}umAjFjC&}Lu=R=_Pk z;r9jp2dVdQ$vZM+!?FN2dA0@yZUqL$GiS~yV3nT>q=BL*85kPC@^kMj&~%xA;(j3D z-=qUEADBmP3qW%!l01(9FVy}_r3*QW63{||f3+Hx@EO(s0A*H93Z&$C+9_=LFr|NnpH%$eoo<)NXW z@7}#LHa0$U=8T}A;Hp)tIyySi($atmU0hu5-o2}&q_lhYZh2Y7sX!sdk|4ie28U-i zK=OM%T^vI+CMG8|FvPK0JcvASAnQN_Po1{$0|tJF7M&@FSr(cUYPvD45$LLKKF(s` zoXPBxAet|Dn0JL#p3<3vod29(awkk`cjSF@$(zUez@OjpS4156!h#yKj1!U!5+2+? z6mt6PYX-3gOhWh8FV7k`4n6h%ac%WE8|4?oh%s*adqOSM zz#u0nVS;7xGXWP<1Br7C&52CR?3-5I_hJutW6!~>r}1N}W@Cwc03So(b>+*&jXP%m PJ;LDW>gTe~DWM4fVKRKIJ~P#pgx_ma!qy)+qItOzkyk%AC9b_!A#Q9SFU zg9iTq?dIYT+=V!FsEdbmE5);PYrza!ggYgO?gvh8MT(0EzL&ft_wEia=OS1?B;W7* z@%{Ba?*|~mdVhJq^))01n1&V?F~J%ra5U9i!YM9#@X*Fvc}D-O-`*&?)$)bxZvz^x zf;5J5cwA^{)8yjlv}wSHReJiURZB5L(N!JeOp#0lncBaT0BW%WL4buzHd6-hi93?R z@Rrhq!+rGJ23F811IHwokdkxpwZ;|cA6BjNUq?=MGgD3~Y40|Zp%_zziC?HjpV`#5 zy*0gq6MXD>lFfNo46|S{57TryfwH1%Z2O2VDDSEyv6bwG0riEl6hmZ3x0R+8CiGcp z66NQ{tGAvE?iY!a&iKlBxrvdNI}zyu?L6&q$Jkx|hCqBIas{-O)Xo0r`2ETlQx-FaL22F#S24j_xlN(8_H)c?QG)0000gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Lf4Eba4!kn3|l>z~H8Fm+c5IkHLXs2aYs|ZjfV`xGcd;zD)H*!{piX4>Ee_KX@8+ z!z02{@xbrqPHC6T5+6Pph%iX9a>?)tH+*SfQe$K7kWz~~^;S{nOjdBzg%pm*g;jD1 z7AGH^J#b+j!?VrmAM6tXk`gl7JkBRRn0a7>;zY%N;kuIq|7eR$@O@G^VU~k4J2S)H XUt%WH4!AA^I*!59)z4*}Q$iB}0>o#K diff --git a/docs/html/img51.png b/docs/html/img51.png deleted file mode 100644 index 5ed4400749ceb6560b1a6d12533cfebf201158e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)P001Wh0{{R4f3VIQ0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*Hv`IukR49>SU;qLK24vv608N0EwFpxc7!)utLq(Yw3xK2nrV=E; z3DFXu0pS#Y1$Q&-g~=P@)r|`%AgB-?hn)`?7y=jylz_Yk3;|pX3=9YOK~Ci0*qbdz$Cx`b~*zCn|>n$*T)a2HcUEz%=2?V<^?rS!3%@|0Ana1eTRB;=Kufz07*qo IM6N<$g0LEL$N&HU diff --git a/docs/html/img52.png b/docs/html/img52.png deleted file mode 100644 index fcaf7a6859408c6ec09136d449b3037a5cd7fed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E+!py+H$Xx$O6UZ?L@CkAK|NsBYnKR4F%R@s$ z-@SWhY;1hy%o#yJ!BwkPb#!#3rKJHCy12O9y?a+lNon`)-SV=EQ-MN^B|(0{3=Yq3 zfaDi=x;TbtOiWGyfI+-999(pOulf{%i zOTN!f+;RLsAY0OAiw2KtoH|>1WY{=V-}2ni6OQ<=zyH92gKQ!z^;K@|RWv%7BGSrZ$JtA+^Pf#DDdf}jvAtUQz} zEG)vNIF4Ln@E6EkqlFOs1zT8&qNuel5~D>B5wW^L?F5Sj8#{e7yGbr;Vsdw4;|Kfp z&3oUs^D+Ad2w?%n0ONQO1$^T@lHURuxVxngRgzHBa(&W@r~%x%m6f3o8w0eiK}ujN zfC`u}lEPk`mIg2%vM>H&-}b;7w>&G#fl`p?U5{Q0^iCGYHbpF#DNfQe))A3BjTHFk z?~8nt2nTxp>4)wAW&Z6k(X44U?8KZ|pUaGSBkG{-P_~io<>#`5*`wejndi}w3*_L$ zWnvj8DJ~`ltoT*c7YaBv;d;}HQmOeOmW%WVdDaLll!W$P@#!B$<(|ur{mf}Y2=@Gb z_1k@Fxamc>Zq|IqDhx73+*&|aevqd8*G zZTDHC s2)WQ|crGnNgec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0Ld46x;Tb#%uG&TXkz6l2w+eWk(j|G;KbwOFo$6Yi^PORW{+n=-&qBAH!?~mGzHud z=n`F$xJl@+v%=96jADb0+%=?CP~&GyDF5NbyH@ odaNp6x63}5Rv;r})Fj2q(80}rJMiDpexT(Hp00i_>zopr04@nq?f?J) diff --git a/docs/html/img55.png b/docs/html/img55.png deleted file mode 100644 index 1378d964c0eaadec4a67c96c2633f7bb3b0bfcd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^VnD3U!py+H*tdJ?G$6+yz$e7@|Ns9pXU;4yFAoh3 zefRF2v9a-)GiL+^1y`+F)zQ(BmX-!o=;GpX_wHRKC8gcFcgxEvP6Y}vmIV0)GdMiE z0g|8M>Eak7F*P}Xp^1g9jg!aX06UvsGmB4RokCjGfddzo960cTA?5R9Kr`jQ(|qQy8ymhBiOfk1a5S6bEZVuapUXO@geCyqp=&Du diff --git a/docs/html/img56.png b/docs/html/img56.png deleted file mode 100644 index 6a787014224645f06b10925410f52c0c576e8165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)=e2D0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*I)Ja4^R5*?8R6R=rK@ffS;l(rAoIhb*ErN;!I|VUKz(zO}#PSeC z#3sK$0(OFspAf`WI0VH;Okt-*tSn7oqt#(yW8>^@?o7@TKZu?0*zC@}ow>I&a{)B+ zG~5@UEfBVmjR1FQ=2@iIorlMOk^{kEM$KD!G@`-ii9QLN1%1|pNdZP?lyTir;RQrQ zt9njrCZlF3o@vkG58m>9uy_$DSq7pODMQW5*Y&;&gchmgt`?pkPgIy#Q=`e!#Z)BF zlg)$PcQ6
    Zm#OEgsjLg@8SyxD-fW#H(WG)9bLy-(TUR;6hwFS3eD4NbW86iQTF zOImsOybM!NE7{1|QH{f&)I_fgTlPvA2d*LZFuVqZ@#Q{Sc|Y&6S*+7s@7i`5i7IOU z_tIHOsie9`Rh57I0>#Q_%$}YWSjf0qJ)es4BkZS+*-c`0#rOo)$l9Q9!{X3Ey)*iz zu*&-#sx+KSV!Wq-+^Gk)Vye&rJNG)9_k9kFG^`e!t3nV`*-5}$OuZh8`bXum-*&`| z-!*$X@<#r!EQfi3L@lQrq|gkIB6+CipOLH@~7 kT2mM*W$OBZ`p2N~2Gkc#P1<=9wg3PC07*qoM6N<$g86n8i~s-t diff --git a/docs/html/img57.png b/docs/html/img57.png deleted file mode 100644 index 9427a62e0c1290a90d911f9afa3248188480fb2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!e+P)KQ@?8zK@|R++dc30H#SznIA_ktHHVN!EH)r$CE>6Y zLn=WC7fV4HQV4d7f5DPc5Y~`FM9J1-ai+1bNCZJFge`?bZa)dlWg#IE=xC{^1L z^vlh1yW)q(u2&aK*Fhrle4**OukoXOJEN4~SU;qLxS0J&00Tu8uFz};_EC7=qcp*G}4hDQ6VZ#I< zdE&kS0|V0r1_L3Gm;zoMXy5>pzQk~gVG@MN$qg4}P-SL%%W#*0nFY${WKc+$K#KVU z0m}gdy8%LNU{K*_f>;;8c7O*W%A~-sf!PVnWO_aYJ(I*H24AUk*oSM|QC-m9usUwxtwp&GvL1v@bI$amc`T5gXS`X?*q;s@*UPt ztpW{0@v9Z|bkiIocVDPwca`KMNW;JhPA)AV!666lQp04D=Rx@_XGafaojr3m7o4xR z>%FooU3?ZOV(}B%5G8`w^faG0I_pIUM$Mw=nd%YaFK7{i(Q|-yMX8{qEUC^wjJ5YA zjMH$&#&}iTRSf?G#?C|jbtu;C#XAp9ePftG)p6XTmRh9bS`9$?agVQdVGVNW^eRW;0)o1(?4T-k!ImJL(EcqQpiV`;_Z8{AKhbqUw+jBVi!3E3Y?Jdv zPco9plpdPGD}?OsOw@D85cV7HHr`}|!g2dKjXuH%mW)<0k6eA>N-4}|vXxKlf#RMd%y%4!Q!%I* zi=yvIdt}$uj^gtppnc3P#~qt()v$jl0L}7rTCOAx>oz$Vpzeg09vwDCMuax}4$3}v zDV0~!o`}-t8yJtnk%6Pvgxyz@(Hd0R(M>Iu;8>z52km{)b;}@1+V2OQ^g5V{L57s; z$1Lr110S!lRCu0#=>7JcxUaZ?Oz>GL9nbF0f|+-}&I@bjA(;qv9x?*vx-6GmPJ4X0 z>KAq%_6QF#5df5zi2x5gt!aW5ktegU;`B z3&0!Sp?FkxK8Cu>F}gdiTuf5SAxytYcL!M$Hy8w!5-$gEeo(5ZP|LqE*w=mBvrntL zgQ5SnjhqGDB_2sz`oDC70xqXQ$UfhyaXOljQu(>Wo!J;8eio&OJPkTN z&xg)W(5No=-z+a90yT06SLO1W{6E}GS>c6_#54O_Fd*NNlE|!002ovPDHLk FV1lJeZGZp( diff --git a/docs/html/img6.png b/docs/html/img6.png deleted file mode 100644 index 952b5ef194cf2fc0237d9b534e6b0f9f831204af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)KR544#KotHG+q5>;6C6Z~kY*DF72K_(xMWvQoE$Uw z1L8j@;t#0eLIrrK5a z#&R6TEt!23hmSm5IbbMJoUD*o<*_(;fNt9s&ppp=2V*G^jD2iK1`~|VaP>SA`-u`6 z$WBvUMuM9`7_vWR_1X+>J2$4}%)}yny~hNFXW2nhF?f2KW)I_q7;m<%7}$)LsfIYi zM_ta(C8H5Df(c9nD3^6eje=kl^_bBpdR*hmjN+(R&)B{yK&PLD1-N>6*Ps}5-U!c> zP*#yf(1PB4U?s)&hcW6J`vvCCF4{>;i{^T0n_cp<|Ef8nTciW6BsD&%nbJhXaG5Q^ zWMSQMzMm;El`iqLa(o&|R49s>L}{^|Sc2Z*Mw&$Z66(b%707*qoM6N<$f`_je AHvj+t diff --git a/docs/html/img60.png b/docs/html/img60.png deleted file mode 100644 index f6e845e6319414ddf9b108b1584f0eb247987d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4TE!py+HIHkQ*0?084@CkAK|NsBYnKR4F%R@s$ z-@SWhY;1hy%o#yJ!BwkPb#!#3rKJHCy12O9y?a+lNon`)-SV=EQ-MN^B|(0{3=Yq3 zfaI5Xx;TbtOiWHVz;H)cVn%@Lo}CU)SbdgqIqc!@u#~VkcuC%1ssdxj${y(%4!0zF zNz4)GzV8Q%_spT+R s$im(<#^roQ{ZBcK`a_$AmJ9PTT=$bu@2ttF1iF~P)78&qol`;+0Pn+Xpa1{> diff --git a/docs/html/img61.png b/docs/html/img61.png deleted file mode 100644 index a681445d51f94e0456885c25f21bf10de8032047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)V1PRj=(Il!i=eIof(;DJS|5;|&RD<{z<`hk z>wm$3;YAvP0yv8iL>RDuNNykoy7LmluL}ZDt^xzY9sUNeA`tfi10y#N7dWbTU-9f{4@2W6;%$w>?hnhc;& zg#u`3u{wa&o?&3v1PYP>hD%CHN(wO96(E8|K#zf`;Vn@57pmS3AR?b(HmWELfMgjj zF#P_&!0Ui13o=;&D5?PA{z8?7xC&%|Du_IQ=1nyiLkZbO7$C?2r_^u(0AI{90H#)d Qu>b%707*qoM6N<$f_2rK*8l(j diff --git a/docs/html/img62.png b/docs/html/img62.png deleted file mode 100644 index d4654d6e837cab130da8ce431ade8c71e34af268..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)P001Wh0{{R4f3VIQ0000mP)t-s|NsA) znVENYcU4tY?(Xh0Gc(N0%n=b0s;a7ph=^upW&i*HL_|d0-Q6N0BD=f09~~i;00001 zbW%=J06^y0W&i*HxJg7oR49>SV88(E3m8&R1Xy{MK~w^!(gzHz46+OiOhClA0L;e+ zSV2SqgR{p3AkE1T02VyWumdK~i&r-;@E<~50OBQV0%|}f1Tbva0d~v=H3bHS0}LSR zczKzCRx&Vb;@-f3&;SGv$+DDq@B~UrEn4+~fnx!LqYboN`U9&GgtrHXxexqfi~RuN zNdx7?FTk|(9$;WIU|?{8@a!8In0`z^wV){gna8An%wtufjwc8J00sFY%1!_{t^fc4 M07*qoM6N<$f|8eWSpWb4 diff --git a/docs/html/img63.png b/docs/html/img63.png deleted file mode 100644 index 0de130c7ebbee1b4ec1ac2af90d307e307ea8c93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)SU|?Y2W z_<)GA z66={eybfKQS}SxJroTVBURM1<^QAQjMNHz4qc;4kkrS41n8zJpkkC*ui7_dk@r15p z!CM_RfmxCdg`}A6*g5`YuAcNss7-H$#(%Sf3y6?DzI6= zqy%Ps0GkZ~`s@TOKnDo*{2&anKVicHpc@`Aa9m(eQeZf7$$-HZNV6pXc}yD^4ET3X zKxkJW(K=E9GcqRtLh(YVA28ud47XT1Ax!QD5P1P6!^zEX0L*Y^Vgb{W4#1>TnVH@) z++}#rzzOshCg2463Y++#1#L)derVF+gHR1fQqZttV1-ce1yKG51{J0}2$OLwm|6st z;S69qzzsFR0~G5E7dTE}_@tx+N}~)Ln38}(zu9>d41hET!k!NT3n1E=7{RmxC{n<> z7#M*mjE7;u0jMiExD#NS9}VL^)JC!a4RG;r;*uH#M%ir?;@%k z6ORIe2e$yjKekv%s$$XtX5k?I2dVeLdVo0{10(`dc7h&~fPyGP4+Elb7Q@uSpuo1b zg<&Iz^$VCBl@uqiY-5OLXn{#9&zHf_!Y07*ih=V1kj2=?z)%3RfNcx^7B;-4I|4Lt zUtq|3E|2XP6;qT0nC4gmj45Ee@G!9QE=YLDQox`FQP8x2p_eIuoA-eL zNIC%`2vo+yufU|hn#f|-3=&{;4B&qN&-}IwFlBMj+|Jay9!z^Dur}~EK&4IK%Gi#; w*bs2r;kSb)jKhqulsRz%ZVyAfFbe1i06}Ozk09iFJ^%m!07*qoM6N<$f1&c^MO`4!7~&_}V<@yWGs<(hX;lg`&$D4}N|(gW=kTROWof z%Z#dK${V<6s2gZ*;5cyQPuhdD2Q9B3*r=qilu9$mWr{rvVZ1UC=oAJ|S3j3^P6oX zb1_3%xj^hNq2L3MiaBr`n_47rhEqUU;R}Sxb3j1A0m8iHP!OWVzye|_1Br#-m=b_Y zmISCSrsqjv_|0XCJ04p60YjLFhryYLA!Qp&0m!2a3~De@FJ}g30oDwT`9QyWEP#lz zzd8@~8xKE20+Se2Ez`#daPvMO%*}FkK(Pt{1KTB`+_4uQ00000NkvXXu0mjfJ&tkC diff --git a/docs/html/img69.png b/docs/html/img69.png deleted file mode 100644 index 9db100808a62b16e3acf117be639afe23c495971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)#KgZ!|LR;v0k)!;1gth1>702sxlrI&Gs2k}^#4m$Xm5ASWQ@LHkhA4WFo|4V8J{R-*+RNNI z{NpFMFJzb6p62CwGw2XL?YhGw7;ndlpP$uh9dhGBTppY_Xl}4(>G(2f0C;q zj7z2Q=!o|Sj!wsVZ=xclH8U)D#hon*^Z#s71mC} zUfK4S^dOP)RT%%x%Vd&lCQaOyMQnw)DJ)2Q39ScpEBd{e z_cH%ylUAtW{=&?>_x=Coz4yI00cM3xmqXW4rv=nM*$aF|y{mM+%~6L79D(3C7@3X< z)|tU}BS|R15;TT4)_@^B31-&@H@|c&qQA%jxy@hb*1mzt%<1@WCM`Z`u|>vXLgV0Z ze%S8$VR)#4(hY?Mw$yZBZqi#Y-JpNu&VstfXy(wJ9J&~+<)L`i6ZDQox9&QDvY7VZsun4ze2`<_V_f4$#FLROb}|pW6pX-IjN|jte|hCEiM_n)pGmz zRS_C|;-u-XKSzH$BH!SR7S$I~V)lgLJPd!**wi=?sD>I$R!Qv@R4gX&t44D? zXGP@qplh!=SQV-`sg41TU%M9k0`jIy8%ww=HC&V|y<>5HDLgdXMq7ol-@o&hqp#~W zIJf6}Mi7JJ$Of-wdi;$%cRC8SI$ts!2#tnR`GP%lx z6pcyH@W-S}Q=R)`!kl`LpF9_8eb$wkuu-Yg#ZTH5V3{<;uP@nzD#t$zRehsLrzh$z zcCm|lgG0qzokH{C=QEi#3s(78qhej-{7XAnuexd4bSFsz+f&IY{8+@?!KH!vxL9IO zFVfL2AO1LP^p8uI6UWwD?So|2_^8;lkLIK8V=$iUouX=gaCxw5n<{m@&*%@z5r5!>OPuF#>Wc(=E~GA{no0000KRljQ#K^T3zI~Vt|x0&lrFuwy z&O*?T%5s}vp@Cp4$W|h$HjpM*7#p>`|G+IRw@fAZ=I8EhE{Ud)6nU^S-#2gG%$wbB z?f{280RBBs*V3y(?xaYy%I+egZ7+^blc4LrgR2-^gcS-mR?BtH=&&WuF!B z@<}3M#jN1DfcFNJb2a}QqKHsLitV)@kM_a{@Sd0~!O?=BuLx00u6ck8sp rG@r_$T^F1AIr?&DGrLG|i<^iuJUCl}I!Jpq00000NkvXXu0mjf@{cXj diff --git a/docs/html/img71.png b/docs/html/img71.png deleted file mode 100644 index b92470350aa589f7a96daf3c0789899cfe03c4a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)KRlkeWKotINCY#G8n@z9~6pJ{ku(B2lTYAME7TX^8 z517(xB!5B>ISxe#{sYFtE0sl27PfG;u(F6?B`6kJ3UZBtjq_$Mzt(trHiyD}#msvz z?|buJ-kSs{kOCn*Pf7tk0b5uE2QI(@DP`dz-w+Y7nleF(2^RZz%ZKtbcngpF1C~qC zQmdCyYFL-zUL>osGKc^J;3aS?SxsSvWRO_GxFmCI)0Rk*Ow?nookWTew*#rgWX_6EP9ZV1>MHKd3UgdYeP1psm*;YsN+1(LYt)^N|MwOB zv)FF5((qWJ65|8Y7}kV8?&`OwI;6)6*P_D2+sk&Fs5{7U745SJQA&iT1h?!>fO@d&r^I=OmXf5|*KfPFmi>m>8bTGH#hor^H7D!upL z)ZU)Kov`?;Un80L&`_u~X)ylW6)}D%oo;Z2rIW_Hs__jiZcZ}Rw6%NxTtk3CT~(LJ zd{OAlqzZ;Qjri0C6B3ord-376E*`?y_kZ|Q|DRF)KNz2LNgSSoM(cvw+`h?>%IdJv>gec5OG^VPba8RHd-v|{-MjbM$eaf98B2ovf*Bm1-2h3Z zdb&7za0n2pNg8_iZ1yTFh)%A}!C&%(vixz<~oQ7Z_4< zIT$8Mo7ptX+Ap2Rp?BbW3UfZ=Wk!YW)=H+yOx+9~A559enbjj^eV#BOkh!bvZomdc ZhTu6;lbO~|QU_Yd;OXk;vd$@?2>=pEPTT+h diff --git a/docs/html/img74.png b/docs/html/img74.png deleted file mode 100644 index 616503091b189643a12f94106d1d39df71874d67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E+!py+H$Xx$O6Ub2s@CkAK|NsBYnKR4F%R@s$ z-@SXcYSpTaj*hgnG@!hTi_6`+cX#jJZCY158OUcW3GxeOaCmkDBw6F>;uxYaF*(73 zwa0)>nAw?;`7j$B&jD7kR3@P}5l;gfwFHWrC32Vo*f=t{1TM96i!{u+#-I|x)8N7! zafad4hn6m#v<7cR+bb^XLRFa5JR%B24+|NogYXO@?jhlYl} zd-u-R*!awuGlGJGt5&V*=;%mGO9Lu&adEkO_pXwX((c{6(Qt%G;U7bh%zDNPiV5MHWEzZOBqjb-Hhf8)kYw8RM(JLl*Xe*C zI;lKoxD?plKjIf)m3H7zTCUZgb>M&z`-*Au8UhCxE?#C>wpC(XJi}%2j8|ok7#MC9fPN5v zlS}OEOzb811)I~@P(U=XvY@u|6UfTSPmf)Ap8frQ92rjwvM4h&jjv6gG zzAA;`GL2mVj=%q#4W6*YuZs}&5FKw2~Id8 zoqoWIx`x{XPe7v6YrLUjV5&BSKFqrtGr;z)aDE#4eq}H&fsy)|9`V_{g);2JdjR&h z&g}rFM#HdmPuAf?k>2~7iUWZOH9ORJKI&{h(=f<7hW~)}C)UOnuTXxk6R}FY00000 LNkvXXu0mjfMkmhq diff --git a/docs/html/img77.png b/docs/html/img77.png deleted file mode 100644 index 6da8adfa81db55868f2e3f215c58a8a3ae4c93ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+k!py+H$hdvwDj>%oz$e7@|Ns9pXU;4yFAoh3 zefRF2v9a-)GiL+^1y`+F)zQ(BmX-!o=;GpX_wHRKC8gcFcgxEvP6Y}vmIV0)GdMiE z0g{jOba4#fn3sC}fFVUpgQ1i2 z_5z{Z~WI> PTEgJz>gTe~DWM4fd?ra6 diff --git a/docs/html/img78.png b/docs/html/img78.png deleted file mode 100644 index 5bf75696f66ec90cc498fa32fded0f95904189a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E+!py+H$Xx$O6Ub2s@CkAK|NsBYnKR4F%R@s$ z-@SXcYSpTaj*hgnG@!hTi_6`+cX#jJZCY158OUcW3GxeOaCmkDBw6U`;uxYaF*yMU zk`C~3Nk~X+^vX#{;9wABQee`*z$ADlVVOY7LB30iG#wn|;|^S5D3oDl?l_plkZNEc z;UGCLVB%4SGdEm1LznE}vemIrV2U{^9l+Y)cTU7XG$BDC%t0(6kk8@bqJ0gg`c&B& Z7^*r20t6qOy$-aT!PC{xWt~$(699d$OrHP% diff --git a/docs/html/img79.png b/docs/html/img79.png deleted file mode 100644 index d44da06edfa39b7540d1b8f102bd9aa1b54a22e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)8{{S_CiLnSoGbt%BC@Cp1FnrR1DK&sl z4v^sI-@;T2W?WCu{y?HL=?f?fQxX94h1>9uWjlZ-$?|~V0)r6)3zXXgbq8Eo=6;~2 z0vL~ze=n*$qr*m^1ruO~39#))m7l;+gk)I;1H&d1c~1t0GYDzU3vez(o=t#(K^v=| h(7iDV2!h@C0RWS@R~xnk8zcY#002ovPDHLkV1lY?jMxAG diff --git a/docs/html/img8.png b/docs/html/img8.png deleted file mode 100644 index f31f1db8a57ca7836040dfa3c4680c506d9cb7b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^N*cq5M@xV+5dLHCW z1eXDcOA|nPXb=QI_hu<6K-jKu=X0z%a|A5OWWbQ_02cZUljKQ&>Eu=bArwhl20W4` za7iAZWCN-sGu&8~T82do$rq3%5e|X?1-Ro;y#fNB4A>+Yl~A~-yrBSg;{gEN*j2vC Slx#5o0000+|NogYXO@?jhlYl} zd-v|lnKOcdf~!`o>gec5OG^W)a&d9Fd-txAlG5(oyO&Mjn*$VLED7=pW^j0R10Eal|F*7+KAt5Ot;ReGIo)}JrNtYWMInT5*i0dhAbYS=JFj8Q=#>Cdf?T}N_*!cb+ z6I<9fW*(l)6GaUQG}s$7+*s{4Y@Ed7!|m|JsZEPj;pp~;hh`CxUF#W`nHhX{@aZ1g S@h1Ri7lWs(pUXO@geCyeFiRf* diff --git a/docs/html/img82.png b/docs/html/img82.png deleted file mode 100644 index 02046ff389550de6739c2d1009a989805af52671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp@KrGL~%)r37^G=p0kYf+|NogYXO@?jhlYl} zd-u-R*!awuGlGJGt5&V*=;%mGO9Lu&adEkO_pXwX((c{6BPCnBSOqn31i` zmG6bvM257l*_;fTe&?BaemmBDEak7F*P~CfmK{Wf=R%}jV+9kjpxA00|$Z+Fs5iURQSx`3Scl7C}!y7clb4x z$+}sL@#_u-@hRU}t-Q~+HYPGMGrw=HVQXV{*vPP8ws6CiNzM$-b|-F@Ff}F=6}E|K zOsSa4ugRe4r^nj%S0S;iW7ciHIjjm%!iQpyE1WuD(%6{DtbXF)o@j?8E`!f5@l2e@ dxVMy}%WqA@W!!GX0WCV)+txmlR`Ff*H;2`i5ckB&m-0t}J<+3eSh4GrFKzD_j zeFKMv@rGp%5jvNc6tV;*92+(;ZDQyyVw`dB$bk(qF4=MoTE*4}RyJHUdwbVmLu1uC cbv6cuc_Jc7GeVwh2fC8M)78&qol`;+0P-ke3IG5A diff --git a/docs/html/img85.png b/docs/html/img85.png deleted file mode 100644 index 9758b0d8309ea8150ca245cf3e823a03ee703a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bE!py+H$PvSN0m#t`@CkAK|NsBYnKR4F%R@s$ z-@SWx=FAyELBUn4R&{iAq@|?+Ro%UNS4l}}_wL=t67Pfq`HUq&e!&b5&u)MugFRgw zLpWw8ConXHI@B~KGIpF~Rg$PUpu!!%rgP%Jg389mgAI(LA_fKqYK$+L9quq3@ez0! zYG9i%fmdy&T7%{~UV+03LGG0YV^l?3UWF=bU|{$mDBykjnZSCW@eH1>elF{r5}E)P C>_w{p diff --git a/docs/html/img86.png b/docs/html/img86.png deleted file mode 100644 index b08434897ffde58e8b8a62952f011bbb263a1751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)KRliHaP!Rr_U;UBR7abKOeK@J0)WtzCxQOV`!ATIh zySNGt#nCB)sNhl*oCKqYi-S^daI4}VPW}lUTvQP6<>hIr(smFP@q^s;a{b(nDK(ENV~ zPMRS2>SDd0-Ysc|oSco?#~jUf*w(l!_k!Ru=`($s`4o-#He@nbyJtw0b21s&Gq%{& zHFeCj4-{Sb+1FW8aIz{{p=&Yf)hVvsr-)e$BZhR~i=yhQi%JHd_*}*8j#^Q{C$0Qp zG+Uyd*7gC3QbS0KGSwcDxnwqgY5$dp&bF8BMWE zB6n;Zp^ACgX6_(H6gAONmOsA4_IX2l6MPr?4)?GMbS?A#(RfnySsgF9VV_H?cnk}| ugtL8z_GbJ3d7|y-`Hvq%vlm9wf20?gM4aO7k$)%v0000LfD3D_i;1lBd|NsA)GiR2UmxqRi zzI*r1*x2~YnKOcdf~!`o>gec5OG^VPba8RHd-txAlG5(oyX9pSrvil-OM?7@862M7 z0LeFcx;TbNOifN;U}9&pNJvU}&|JJ@qDn$Tp)WJ@;eOs3LMs+D+@31zp=xTPtFT0b zokJkuQDTCCK*oc#2k9CdJI)_SI2xeBFiBA1vP+GF=goyD6D}DE1h+TVcOQsryYHa( zKaNe0S&fw~dBTtAHdmf|OlPod>hQlMiPJYD@<);T3K F0RZ7ITP6Si diff --git a/docs/html/img88.png b/docs/html/img88.png deleted file mode 100644 index f9dfb321421dde5c6f73131a1135b038aa80086b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+k!py+H$hdvwDj>%oz$e7@|Ns9pXU;4yFAoh3 zefRF2v9a-)GiL+^1y`+F)zQ(BmX-!o=;GpX_wHRKC8gcFcgxEvP6Y}vmIV0)GdMiE z0g{jKba4#fn34fO`DO^jZfhq z`w^Kte*!+<-Cdr4U?D5ltsjSX9pquxV_k6}mwiK7pR<#j#<#a^4ZIBB4hahj_9ycI P?O^b9^>bP0l+XkKfJaX@ diff --git a/docs/html/img89.png b/docs/html/img89.png deleted file mode 100644 index 69a3e66c3c684afb91e749159334418f209e0a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp@KrGL~%)r37^G=p0kfR&m6XN>+|NogYXO@?jhlYl} zd-u-R*!awuGlGJGt5&V*=;%mGO9Lvrd-txAlG5(oyORv$w19lZk|4ie28U-iK$6j( zE{-7_Gm{e-nA8LgerQN!W;Qzzd*DC;!)hLZf+9xFb=*6a1TxAqOEY&LVqt6Jbx>{< zk@&Hx<8nLa6fuJ@44P_v3}zeduHm1->R@8stP^t7R^XuU634cO43lfQz5my$^Z>14 N@O1TaS?83{1OUxoNR0ph diff --git a/docs/html/img9.png b/docs/html/img9.png deleted file mode 100644 index e411ffb394eec9ee56f049a1a5a8c8037577aabd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^l0YoP!py+HsLdY13gj3B_=LFr|NnpH%$eoo<)NXW z@7}#LHa0$U=8T}A;Hp)tIyySi($atmU0hu5-o2}&q_lhYZh2Y7sX!sdk|4ie28U-i zK=PA4T^vI=W+o>vH1YEYEI4~$0e`Adk@0~BMrQrPObTfU4<4jDF!-ginF;J|e0YFS z;Ot?A0}Y}k42GN4oEbcH*B>%gC~Zh|-p1hZoMplvRyBc>-zIXm*C`}uIXv`jxUf!* z$4-&w-kjG5_5>;Lr3Yj+ojA%^sNu{woo&W(mdKI;Vst0A2rLLjV8( diff --git a/docs/html/img90.png b/docs/html/img90.png deleted file mode 100644 index f390f6448e95ba947182316c97232a35156004e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)KRXs~1K^T6V-OZXE;sk%eFp&r<7!a&eTS%}!2naS7 zdUkg9S_BRhv00Aez-|?>@HiuuR~+HQN`%E;5L=s@nM{%$*V{xc9EkV8&c4t4Iq!Vz z0zEW2P~adK1j_3Xh!FyQvA_SQ49Np)h6Z}{Q5mS%AlZ9xL4I*hr6)r1^QWA#=d11F zCF%l9iSW~K-86siI%+K z&in82EgQovHfdARSwmFG(pUMS>KL~@#g-g9Yv>_Yr$lhtUCBHmA+$ZHd?_=z{<}Kf zG4=*4n)n(UrOFa(eP@@}10%3jqbP$MaNBM;&^YbDGQACYU`p5Q>=qdlpQ|J>ke z9qy5(VG%qYaJPvM?bgS_g!Nf<+4{(LJLB>c$Bj5ty%$QyVrC*~w0jq4Vrm{~eAeAO tr1Ytk&%#1VleO>v@s`o&Z`kK!^&2epqK>q>Wb^<4002ovPDHLkV1fd_9&`Wz diff --git a/docs/html/img91.png b/docs/html/img91.png deleted file mode 100644 index 18a953e24cef184e13703c06ad864a93b79fe88b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)KRY6PKKotIV5;u&aCiEAC*`C^>0l`Br=CT)iSxSFE z*n<}@i%`Ma;t!CeJ@mSWdMG_eEj_eY_Rw1?i2VWGKTs;3L_zu{nc2<6)eThJgMN_A zoA=)L=Doa^1Q=j?FI!!@ScnoJC&gi2cf7BP$YSik4DA}@6?8V^0gYl%7+ zaOgSa(Lvvc&Gtr@V^$ZcBe3^!WDc-%_*eLRJ@#(-cs85@Q@(3^3}%#}nmDNxXbne; z?hyuC2TQ4BW-051azZ0uQ!a#5TuCG9OLg+9>IM6r1`XN*6d}t;=m;&-clc;Ee!5uJ z?KKfP!|p%DYQX*HHRN;nA;0E|2?ldCtfGi3p2Ho&f1b&|!D;_m^BjJ=T}z|35B6nk zTkom3qXOyVrF^uIImf(**fQ4X;xyskAPI-*FQH-cs~>^K$C=qnv{KgMjp)@b7D@Ix zSb8x$A7?h-iNM#i{93P1;C~1XaGv_V0WOjpL0ELGB)DkXD*phJ5&e|rQ~o-=gZZWw z`11v`!Y^#$S>S{!e^vfYoHN?_tMV0000jP)t-s|NsAY zcXw4)RqpQYGcz;H%*+uH5vr=Hh=_=0W@Z2Y07OJY-QC?HA|kuHyDISx_5c6?0d!JM zQvg8b*k%9#0MtoDK~yM_V_*ORu7?bmK!AaP6N_*h7BLLK4k8#23a~IRu!7kPT+9p% zd=N=yVoZPnzCo#Z1_v;k3CUFCu$Vx)`$+{P_!mC_`bQMT&VU6DSeOUm zVFr!_28O)|VTKL}lWn7*qXC4;C?&_hU<+Zl0l61Y&4(JziySOq)jUEA1*L_NUDJWp ljWCy>0a2`?gAJ_03INx!Ex(KRljT7KotHgDVF6+s%z#B;+&}o!4T-srCz+aiwRk} zi4I-57()ZyO#Xl%vSc+O$q+Jxv}8zeo1t5m;Qj&0*rgCUnHEgnoh19t6^WqvF(esJbCh?9I9ywtU!|s zoCAgZ^7ghNt#-$ z?lIW3(h!$1)N<;ju=tx&47 zHwnFIglNqEbF{hVFIS+~@Lhb>y5U;69NEY|hx>%PekcC}gY!$x&MP=SOih>Wzz0#; zPS(_1f5Pe4JMr{cEH2WxFpPB?9$kZP5QJ0pOK6(@#Uo(;LYco%!kSWwN^PyWv5OZZ zyAc{If7Jd>U>Ir+%=CX7V%RZNeh=j;{pOaG|9iT{ zI;j)>OA}^^pV-1nZU?e{+5S#VGn)0w_6>82J^83-7)~;D|Dt~^nUMTV8gjWm;Qr!@ c58PGw3thahJp~Y?IRF3v07*qoM6N<$g6L^0egFUf diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index 1f0d2ee7..00000000 --- a/docs/html/index.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - -userhtml - - - - - - - - - - - - - - - - - -MLD2P4 -
    -
    -User's and Reference Guide
    -
    A guide for the MultiLevel Domain Decomposition -Parallel Preconditioners Package -based on PSBLAS -
    -
    -
    -
    Pasqua D'Ambra -
    IAC-CNR, Naples, Italy -
    -
    -
    -
    Daniela di Serafino -
    University of Campania “Luigi Vanvitelli”, Caserta, Italy -
    -
    -
    -
    Salvatore Filippone -
    Cranfield University, Cranfield, United Kingdom -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -Software version: 2.2 -
    -July 31, 2018 - -
    - -
    -

    - -

    - -


    - - - - - -

    - - - diff --git a/docs/html/next.png b/docs/html/next.png deleted file mode 100644 index 1628652aac7cff4b24228abd9908c320c6026a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmVQ2aP`rsfsL)H8>rF50IrEKQ7U2mrM!9=R9*Dw1X+@W9RTx^a-#5T6$bi^4|h!q3s vo9V3RdqZP$JTTh9!JZ)`voZLAB<&|;0_>J~#QNZkD16SAR=O4@7anKqmC5&ngT;#rH1+qK z20S~FlZynq-MY=T{~%>KNs884sExd44P^%bf!zNDPxW#x21^f><@$FgzM-=J5cLN5 WGDyh~oC>l40000 - - - - -Abstract - - - - - - - - - - - - - - - - - - - - - -

    -Abstract -

    - -MLD2P4 (MULTILEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE -BASED ON PSBLAS) is a package of parallel algebraic multilevel preconditioners. -The first release of MLD2P4 made available multilevel additive and hybrid Schwarz -preconditioners, as well as one-level additive Schwarz preconditioners. The package -has been extended to include further multilevel cycles and smoothers widely used in -multigrid methods. In the multilevel case, a purely algebraic approach is applied to -generate coarse-level corrections, so that no geometric background is needed -concerning the matrix to be preconditioned. The matrix is assumed to be square, -real or complex. - -

    -MLD2P4 has been designed to provide scalable and easy-to-use preconditioners -in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) -computational framework and can be used in conjuction with the Krylov solvers -available in this framework. MLD2P4 enables the user to easily specify different -features of an algebraic multilevel preconditioner, thus allowing to search -for the “best” preconditioner for the problem at hand. - -

    -The package employs object-oriented design techniques in -Fortran 2003, with interfaces to additional third party libraries -such as MUMPS, UMFPACK, SuperLU, and SuperLU_Dist, which -can be exploited in building multilevel preconditioners. The parallel -implementation is based on a Single Program Multiple Data (SPMD) -paradigm; the inter-process communication is based on MPI and -is managed mainly through PSBLAS. - -

    -This guide provides a brief description of the functionalities and -the user interface of MLD2P4. - - -

    - - - -

    - - - - diff --git a/docs/html/node10.html b/docs/html/node10.html deleted file mode 100644 index 37ec11f4..00000000 --- a/docs/html/node10.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - -Bug reporting - - - - - - - - - - - - - - - - - - - - - -

    -Bug reporting -

    -If you find any bugs in our codes, please report them through our -issues page on
    https://github.com/sfilippone/mld2p4-2/issues -
    -To enable us to track the bug, please provide a log from the failing -application, the test conditions, and ideally a self-contained test -program reproducing the issue. -
    -

    - -


    - - - diff --git a/docs/html/node11.html b/docs/html/node11.html deleted file mode 100644 index 13e572cb..00000000 --- a/docs/html/node11.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - -Example and test programs - - - - - - - - - - - - - - - - - - - - -

    -
    -Example and test programs -

    -The package contains the examples and tests directories; -both of them are further divided into fileread and -pdegen subdirectories. Their purpose is as follows: -
    -
    examples
    -
    contains a set of simple example programs with a - predefined choice of preconditioners, selectable via integer - values. These are intended to get an acquaintance with the - multilevel preconditioners available in MLD2P4. -
    -
    tests
    -
    contains a set of more sophisticated examples that - will allow the user, via the input files in the runs - subdirectories, to experiment with the full range of preconditioners - implemented in the package. -
    -
    -The fileread directories contain sample programs that read -sparse matrices from files, according to the Matrix Market or the -Harwell-Boeing storage format; the pdegen programs generate -matrices in full parallel mode from the discretization of a sample partial -differential equation. - -

    - - - diff --git a/docs/html/node12.html b/docs/html/node12.html deleted file mode 100644 index 0a40de2f..00000000 --- a/docs/html/node12.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Multigrid Background - - - - - - - - - - - - - - - - - - - - - -

    -
    -Multigrid Background -

    - - -

    -Multigrid preconditioners, coupled with Krylov iterative -solvers, are widely used in the parallel solution of large and sparse linear systems, -because of their optimality in the solution of linear systems arising from the -discretization of scalar elliptic Partial Differential Equations (PDEs) on regular grids. -Optimality, also known as algorithmic scalability, is the property -of having a computational cost per iteration that depends linearly on -the problem size, and a convergence rate that is independent of the problem size. - -

    -Multigrid preconditioners are based on a recursive application of a two-grid process -consisting of smoother iterations and a coarse-space (or coarse-level) correction. -The smoothers may be either basic iterative methods, such as the Jacobi and Gauss-Seidel ones, -or more complex subspace-correction methods, such as the Schwarz ones. -The coarse-space correction consists of solving, in an appropriately chosen -coarse space, the residual equation associated with the approximate solution computed -by the smoother, and of using the solution of this equation to correct the -previous approximation. The transfer of information between the original -(fine) space and the coarse one is performed by using suitable restriction and -prolongation operators. The construction of the coarse space and the corresponding -transfer operators is carried out by applying a so-called coarsening algorithm to the system -matrix. Two main approaches can be used to perform coarsening: the geometric approach, -which exploits the knowledge of some physical grid associated with the matrix -and requires the user to define transfer operators from the fine -to the coarse level and vice versa, and the algebraic approach, which builds -the coarse-space correction and the associate transfer operators using only matrix -information. The first approach may be difficult when the system comes from -discretizations on complex geometries; -furthermore, ad hoc one-level smoothers may be required to get an efficient -interplay between fine and coarse levels, e.g., when matrices with highly varying coefficients -are considered. The second approach performs a fully automatic coarsening and enforces the -interplay between fine and coarse level by suitably choosing the coarse space and -the coarse-to-fine interpolation (see, e.g., [3,24,22] for details.) - -

    -MLD2P4 uses a pure algebraic approach, based on the smoothed -aggregation algorithm [2,26], -for building the sequence of coarse matrices and transfer operators, -starting from the original one. -A decoupled version of this algorithm is implemented, where the smoothed -aggregation is applied locally to each submatrix [25]. -A brief description of the AMG preconditioners implemented in MLD2P4 is given in -Sections 4.1-4.3. For further details the reader -is referred to [4,5,7,8]. - -

    -We note that optimal multigrid preconditioners do not necessarily correspond -to minimum execution times in a parallel setting. Indeed, to obtain effective parallel -multigrid preconditioners, a tradeoff between the optimality and the cost of building and -applying the smoothers and the coarse-space corrections must be achieved. Effective -parallel preconditioners require algorithmic scalability to be coupled with implementation -scalability, i.e., a computational cost per iteration which remains (almost) constant as -the number of parallel processors increases. - -

    - -


    - -Subsections - - - - - - - - - diff --git a/docs/html/node13.html b/docs/html/node13.html deleted file mode 100644 index 26b49b23..00000000 --- a/docs/html/node13.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - -AMG preconditioners - - - - - - - - - - - - - - - - - - - - - -

    -
    -AMG preconditioners -

    -

    -In order to describe the AMG preconditioners available in MLD2P4, we consider a -linear system - -
    -

    - - - - - - -
    \begin{displaymath}
-Ax=b,
-\end{displaymath} -(2)
    -

    -where -$A=(a_{ij}) \in \mathbb{R}^{n \times n}$ is a nonsingular sparse matrix; -for ease of presentation we assume $A$ has a symmetric sparsity -pattern. - -

    -Let us consider as finest index space the set of row (column) indices of $A$, i.e., - -$\Omega = \{1, 2, \ldots, n\}$. -Any algebraic multilevel preconditioners implemented in MLD2P4 generates -a hierarchy of index spaces and a corresponding hierarchy of matrices, - -

    -
    - - -\begin{displaymath}\Omega^1 \equiv \Omega \supset \Omega^2 \supset \ldots \supset \Omega^{nlev},
-\quad A^1 \equiv A, A^2, \ldots, A^{nlev}, \end{displaymath} -
    -
    -

    -by using the information contained in $A$, without assuming any -knowledge of the geometry of the problem from which $A$ originates. -A vector space -$\mathbb{R}^{n_{k}}$ is associated with $\Omega^k$, -where $n_k$ is the size of $\Omega^k$. -For all $k < nlev$, a restriction operator and a prolongation one are built, -which connect two levels $k$ and $k+1$: - -

    -
    - - -\begin{displaymath}
-P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
-R^k \in \mathbb{R}^{n_{k+1}\times n_k};
-\end{displaymath} -
    -
    -

    -the matrix $A^{k+1}$ is computed by using the previous operators according -to the Galerkin approach, i.e., - -

    -
    - - -\begin{displaymath}
-A^{k+1}=R^kA^kP^k.
-\end{displaymath} -
    -
    -

    -In the current implementation of MLD2P4 we have $R^k=(P^k)^T$ -A smoother with iteration matrix $M^k$ is set up at each level $k < nlev$, and a solver -is set up at the coarsest level, so that they are ready for application -(for example, setting up a solver based on the $LU$ factorization means computing -and storing the $L$ and $U$ factors). The construction of the hierarchy of AMG components -described so far corresponds to the so-called build phase of the preconditioner. - -

    - -

    - - - -
    Figure 1: -Application phase of a V-cycle preconditioner.
    -
    - -\framebox{
-\begin{minipage}{.85\textwidth}
-\begin{tabbing}
-\quad \=\quad \=\quad...
-...[1mm]
-\>endif \\ [1mm]
-\>return $u^k$\ \\ [1mm]
-end
-\end{tabbing}\end{minipage}} - -
    -
    - -

    -The components produced in the build phase may be combined in several ways -to obtain different multilevel preconditioners; -this is done in the application phase, i.e., in the computation of a vector -of type $w=B^{-1}v$, where $B$ denotes the preconditioner, usually within an iteration -of a Krylov solver [21]. An example of such a combination, known as -V-cycle, is given in Figure 1. In this case, a single iteration -of the same smoother is used before and after the the recursive call to the V-cycle (i.e., -in the pre-smoothing and post-smoothing phases); however, different choices can be -performed. Other cycles can be defined; in MLD2P4, we implemented the standard V-cycle -and W-cycle [3], and a version of the K-cycle described -in [20]. - -

    - -

    - - - - diff --git a/docs/html/node14.html b/docs/html/node14.html deleted file mode 100644 index e560ac94..00000000 --- a/docs/html/node14.html +++ /dev/null @@ -1,415 +0,0 @@ - - - - - -Smoothed Aggregation - - - - - - - - - - - - - - - - - - - - - -

    -
    -Smoothed Aggregation -

    -

    -In order to define the prolongator $P^k$, used to compute -the coarse-level matrix $A^{k+1}$, MLD2P4 uses the smoothed aggregation -algorithm described in [2,26]. -The basic idea of this algorithm is to build a coarse set of indices -$\Omega^{k+1}$ by suitably grouping the indices of $\Omega^k$ into disjoint -subsets (aggregates), and to define the coarse-to-fine space transfer operator -$P^k$ by applying a suitable smoother to a simple piecewise constant -prolongation operator, with the aim of improving the quality of the coarse-space correction. - -

    -Three main steps can be identified in the smoothed aggregation procedure: - -

      -
    1. aggregation of the indices of $\Omega^k$ to obtain $\Omega^{k+1}$; -
    2. -
    3. construction of the prolongator $P^k$; -
    4. -
    5. application of $P^k$ and $R^k=(P^k)^T$ to build $A^{k+1}$. -
    6. -
    -

    -In order to perform the coarsening step, the smoothed aggregation algorithm -described in [26] is used. In this algorithm, -each index -$j \in \Omega^{k+1}$ corresponds to an aggregate $\Omega^k_j$ of $\Omega^k$, -consisting of a suitably chosen index -$i \in \Omega^k$ and indices that are (usually) contained in a -strongly-coupled neighborood of $i$, i.e., - -
    -

    - - - - - - -
    \begin{displaymath}
-\Omega^k_j \subset \mathcal{N}_i^k(\theta) =
-\left\{ r \i...
-...vert a_{ii}^ka_{rr}^k\vert} \right \} \cup \left\{ i \right\},
-\end{displaymath} -(3)
    -

    -for a given threshold -$\theta \in [0,1]$ (see [26] for the details). -Since this algorithm has a sequential nature, a decoupled -version of it is applied, where each processor independently executes -the algorithm on the set of indices assigned to it in the initial data -distribution. This version is embarrassingly parallel, since it does not require any data -communication. On the other hand, it may produce some nonuniform aggregates -and is strongly dependent on the number of processors and on the initial partitioning -of the matrix $A$. Nevertheless, this parallel algorithm has been chosen for -MLD2P4, since it has been shown to produce good results in practice -[5,7,25]. - -

    -The prolongator $P^k$ is built starting from a tentative prolongator - -$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$, defined as - -
    -

    - - - - - - -
    \begin{displaymath}
-\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k =
-\left\{...
-...Omega^k_j, \\
-0 & \quad \mbox{otherwise},
-\end{array} \right.
-\end{displaymath} -(4)
    -

    -where $\Omega^k_j$ is the aggregate of $\Omega^k$ -corresponding to the index -$j \in \Omega^{k+1}$. -$P^k$ is obtained by applying to $\bar{P}^k$ a smoother - -$S^k \in \mathbb{R}^{n_k \times n_k}$: - -

    -
    - - -\begin{displaymath}
-P^k = S^k \bar{P}^k,
-\end{displaymath} -
    -
    -

    -in order to remove nonsmooth components from the range of the prolongator, -and hence to improve the convergence properties of the multilevel -method [2,24]. -A simple choice for $S^k$ is the damped Jacobi smoother: - -

    -
    - - -\begin{displaymath}
-S^k = I - \omega^k (D^k)^{-1} A^k_F ,
-\end{displaymath} -
    -
    -

    -where $D^k$ is the diagonal matrix with the same diagonal entries as $A^k$, - -$A^k_F = (\bar{a}_{ij}^k)$ is the filtered matrix defined as - -
    -
    - - - - - - -
    \begin{displaymath}
-\bar{a}_{ij}^k =
-\left \{ \begin{array}{ll}
-a_{ij}^k & \m...
-...ii}^k = a_{ii}^k - \sum_{j \ne i} (a_{ij}^k - \bar{a}_{ij}^k),
-\end{displaymath} -(5)
    -

    -and $\omega^k$ is an approximation of $4/(3\rho^k)$, where -$\rho^k$ is the spectral radius of -$(D^k)^{-1}A^k_F$ [2]. -In MLD2P4 this approximation is obtained by using -$\Vert A^k_F \Vert _\infty$ as an estimate -of $\rho^k$. Note that for systems coming from uniformly elliptic -problems, filtering the matrix $A^k$ has little or no effect, and -$A^k$ can be used instead of $A^k_F$. The latter choice is the default in MLD2P4. - -

    - -

    - - - - diff --git a/docs/html/node15.html b/docs/html/node15.html deleted file mode 100644 index f45480f8..00000000 --- a/docs/html/node15.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -Smoothers and coarsest-level solvers - - - - - - - - - - - - - - - - - - - - -

    -
    -Smoothers and coarsest-level solvers -

    -

    -The smoothers implemented in MLD2P4 include the Jacobi and block-Jacobi methods, -a hybrid version of the forward and backward Gauss-Seidel methods, and the -additive Schwarz (AS) ones (see, e.g., [21,22]). - -

    -The hybrid Gauss-Seidel -version is considered because the original Gauss-Seidel method is inherently sequential. -At each iteration of the hybrid version, each parallel process uses the most recent values -of its own local variables and the values of the non-local variables computed at the -previous iteration, obtained by exchanging data with other processes before -the beginning of the current iteration. - -

    -In the AS methods, the index space $\Omega^k$ is divided into $m_k$ -subsets $\Omega^k_i$ of size $n_{k,i}$, possibly -overlapping. For each $i$ we consider the restriction -operator -$R_i^k \in \mathbb{R}^{n_{k,i} \times n_k}$ -that maps a vector $x^k$ to the vector $x_i^k$ made of the components of $x^k$ -with indices in $\Omega^k_i$, and the prolongation operator - -$P^k_i = (R_i^k)^T$. These operators are then used to build - -$A_i^k=R_i^kA^kP_i^k$, which is the restriction of $A^k$ to the index -space $\Omega^k_i$. -The classical AS preconditioner $M^k_{AS}$ is defined as - -

    -
    - - -\begin{displaymath}
-( M^k_{AS} )^{-1} = \sum_{i=1}^{m_k} P_i^k (A_i^k)^{-1} R_i^{k},
-\end{displaymath} -
    -
    -

    -where $A_i^k$ is supposed to be nonsingular. We observe that an approximate -inverse of $A_i^k$ is usually considered instead of $(A_i^k)^{-1}$. -The setup of $M^k_{AS}$ during the multilevel build phase -involves - -
      -
    • the definition of the index subspaces $\Omega_i^k$ and of the corresponding - operators $R_i^k$ (and $P_i^k$); -
    • -
    • the computation of the submatrices $A_i^k$; -
    • -
    • the computation of their inverses (usually approximated - through some form of incomplete factorization). -
    • -
    -The computation of -$z^k=M^k_{AS}w^k$, with -$w^k \in \mathbb{R}^{n_k}$, during the -multilevel application phase, requires - -
      -
    • the restriction of $w^k$ to the subspaces -$\mathbb{R}^{n_{k,i}}$, - i.e. -$w_i^k = R_i^{k} w^k$; -
    • -
    • the computation of the vectors -$z_i^k=(A_i^k)^{-1} w_i^k$; -
    • -
    • the prolongation and the sum of the previous vectors, - i.e. -$z^k = \sum_{i=1}^{m_k} P_i^k z_i^k$. -
    • -
    -Variants of the classical AS method, which use modifications of the -restriction and prolongation operators, are also implemented in MLD2P4. -Among them, the Restricted AS (RAS) preconditioner usually -outperforms the classical AS preconditioner in terms of convergence -rate and of computation and communication time on parallel distributed-memory -computers, and is therefore the most widely used among the AS -preconditioners [6]. - -

    -Direct solvers based on sparse LU factorizations, implemented in the -third-party libraries reported in Section 3.2, can be applied -as coarsest-level solvers by MLD2P4. Native inexact solvers based on -incomplete LU factorizations, as well as Jacobi, hybrid (forward) Gauss-Seidel, -and block Jacobi preconditioners are also available. Direct solvers usually -lead to more effective preconditioners in terms of algorithmic scalability; -however, this does not guarantee parallel efficiency. - -

    - -

    - - - - diff --git a/docs/html/node16.html b/docs/html/node16.html deleted file mode 100644 index f7334336..00000000 --- a/docs/html/node16.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - -Getting Started - - - - - - - - - - - - - - - - - - - - - -

    -
    -Getting Started -

    -

    -We describe the basics for building and applying MLD2P4 one-level and multilevel -(i.e., AMG) preconditioners with the Krylov solvers included in PSBLAS [13]. -The following steps are required: - - -

      -
    1. Declare the preconditioner data structure. It is a derived data type, - mld_xprec_ type, where x may be s, d, c - or z, according to the basic data type of the sparse matrix - (s = real single precision; d = real double precision; - c = complex single precision; z = complex double precision). - This data structure is accessed by the user only through the MLD2P4 routines, - following an object-oriented approach. -
    2. -
    3. Allocate and initialize the preconditioner data structure, according to - a preconditioner type chosen by the user. This is performed by the routine - init, which also sets defaults for each preconditioner - type selected by the user. The preconditioner types and the defaults associated - with them are given in Table 1, where the strings used by - init to identify the preconditioner types are also given. - Note that these strings are valid also if uppercase letters are substituted by - corresponding lowercase ones. -
    4. -
    5. Modify the selected preconditioner type, by properly setting - preconditioner parameters. This is performed by the routine set. - This routine must be called only if the user wants to modify the default values - of the parameters associated with the selected preconditioner type, to obtain a variant - of that preconditioner. Examples of use of set are given in - Section 5.1; a complete list of all the - preconditioner parameters and their allowed and default values is provided in - Section 6, Tables 2-8. -
    6. -
    7. Build the preconditioner for a given matrix. If the selected preconditioner - is multilevel, then two steps must be performed, as specified next. -
      -
      4.1
      -
      Build the aggregation hierarchy for a given matrix. This is -performed by the routine hierarchy_build. -
      -
      4.2
      -
      Build the preconditioner for a given matrix. This is performed -by the routine smoothers_build. -
      -
      - If the selected preconditioner is one-level, it is built in a single step, -performed by the routine bld. -
    8. -
    9. Apply the preconditioner at each iteration of a Krylov solver. - This is performed by the method apply. When using the PSBLAS Krylov solvers, - this step is completely transparent to the user, since apply is called - by the PSBLAS routine implementing the Krylov solver (psb_krylov). -
    10. -
    11. Free the preconditioner data structure. This is performed by - the routine free. This step is complementary to step 1 and should - be performed when the preconditioner is no more used. -
    12. -
    -

    -All the previous routines are available as methods of the preconditioner object. -A detailed description of them is given in Section 6. -Examples showing the basic use of MLD2P4 are reported in Section 5.1. - -

    - -

    -
    - - - -
    Table 1: -Preconditioner types, corresponding strings and default choices. -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TYPESTRINGDEFAULT PRECONDITIONER
    No preconditioner'NONE'Considered to use the PSBLAS - Krylov solvers with no preconditioner.
    Diagonal'DIAG' or 'JACOBI'Diagonal preconditioner. - For any zero diagonal entry of the matrix to be preconditioned, - the corresponding entry of the preconditioner is set to 1.
    Gauss-Seidel'GS'Hybrid Gauss-Seidel (forward), that is, - global block Jacobi with - Gauss-Seidel as local solver.
    Symmetrized Gauss-Seidel'FBGS'Symmetrized hybrid Gauss-Seidel,that is, - forward Gauss-Seidel followed by - backward Gauss-Seidel.
    Block Jacobi'BJAC'Block-Jacobi with ILU(0) on the local blocks.
    Additive Schwarz'AS'Additive Schwarz (AS), - with overlap 1 and ILU(0) on the local blocks.
    Multilevel'ML'V-cycle with one hybrid forward Gauss-Seidel - (GS) sweep as pre-smoother and one hybrid backward - GS sweep as post-smoother, basic smoothed aggregation - as coarsening algorithm, and LU (plus triangular solve) - as coarsest-level solver. See the default values in - Tables 2-8 - for further details of the preconditioner.
    - -
    -

    -
    -

    -Note that the module mld_prec_mod, containing the definition of the -preconditioner data type and the interfaces to the routines of MLD2P4, -must be used in any program calling such routines. -The modules psb_base_mod, for the sparse matrix and communication descriptor -data types, and psb_krylov_mod, for interfacing with the -Krylov solvers, must be also used (see Section 5.1). -
    -

    -Remark 1. Coarsest-level solvers based on the LU factorization, -such as those implemented in UMFPACK, MUMPS, SuperLU, and SuperLU_Dist, -usually lead to smaller numbers of preconditioned Krylov -iterations than inexact solvers, when the linear system comes from -a standard discretization of basic scalar elliptic PDE problems. However, -this does not necessarily correspond to the smallest execution time -on parallel computers. - -

    - -


    - -Subsections - - - - - - - - - diff --git a/docs/html/node17.html b/docs/html/node17.html deleted file mode 100644 index bb8015ed..00000000 --- a/docs/html/node17.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - -Examples - - - - - - - - - - - - - - - - - - - - -

    -
    -Examples -

    -

    -The code reported in Figure 2 shows how to set and apply the default -multilevel preconditioner available in the real double precision version -of MLD2P4 (see Table 1). This preconditioner is chosen -by simply specifying 'ML' as the second argument of P%init -(a call to P%set is not needed) and is applied with the CG -solver provided by PSBLAS (the matrix of the system to be solved is -assumed to be positive definite). As previously observed, the modules -psb_base_mod, mld_prec_mod and psb_krylov_mod -must be used by the example program. - -

    -The part of the code concerning the -reading and assembling of the sparse matrix and the right-hand side vector, performed -through the PSBLAS routines for sparse matrix and vector management, is not reported -here for brevity; the statements concerning the deallocation of the PSBLAS -data structure are neglected too. -The complete code can be found in the example program file mld_dexample_ml.f90, -in the directory examples/fileread of the MLD2P4 implementation (see -Section 3.5). A sample test problem along with the relevant -input data is available in examples/fileread/runs. -For details on the use of the PSBLAS routines, see the PSBLAS User's -Guide [13]. - -

    -The setup and application of the default multilevel preconditioner -for the real single precision and the complex, single and double -precision, versions are obtained with straightforward modifications of the previous -example (see Section 6 for details). If these versions are installed, -the corresponding codes are available in examples/fileread/. - -

    - -

    - - - -
    Figure 2: -setup and application of the default multilevel preconditioner (example 1). -
    -
    -
    - -
    -
    -  use psb_base_mod
    -  use mld_prec_mod
    -  use psb_krylov_mod
    -... ...
    -!
    -! sparse matrix
    -  type(psb_dspmat_type) :: A
    -! sparse matrix descriptor
    -  type(psb_desc_type)   :: desc_A
    -! preconditioner
    -  type(mld_dprec_type)  :: P
    -! right-hand side and solution vectors
    -  type(psb_d_vect_type) :: b, x
    -... ...
    -!
    -! initialize the parallel environment
    -  call psb_init(ictxt)
    -  call psb_info(ictxt,iam,np)
    -... ...
    -!
    -! read and assemble the spd matrix A and the right-hand side b 
    -! using PSBLAS routines for sparse matrix / vector management
    -... ...
    -!
    -! initialize the default multilevel preconditioner, i.e. V-cycle
    -! with basic smoothed aggregation, 1 hybrid forward/backward
    -! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
    -! solver
    -  call P%init('ML',info)
    -!
    -! build the preconditioner
    -  call P%hierarchy_build(A,desc_A,info)
    -  call P%smoothers_build(A,desc_A,info)
    -
    -!
    -! set the solver parameters and the initial guess
    -  ... ...
    -!
    -! solve Ax=b with preconditioned CG
    -  call psb_krylov('CG',A,P,b,x,tol,desc_A,info)
    -  ... ...
    -!
    -! deallocate the preconditioner
    -  call P%free(info)
    -!
    -! deallocate other data structures
    -  ... ...
    -!
    -! exit the parallel environment
    -  call psb_exit(ictxt)
    -  stop
    -
    -
    -
    - -
    -
    - -

    -Different versions of the multilevel preconditioner can be obtained by changing -the default values of the preconditioner parameters. The code reported in -Figure 3 shows how to set a V-cycle preconditioner -which applies 1 block-Jacobi sweep as pre- and post-smoother, -and solves the coarsest-level system with 8 block-Jacobi sweeps. -Note that the ILU(0) factorization (plus triangular solve) is used as -local solver for the block-Jacobi sweeps, since this is the default associated -with block-Jacobi and set by P%init. -Furthermore, specifying block-Jacobi as coarsest-level -solver implies that the coarsest-level matrix is distributed -among the processes. -Figure 4 shows how to set a W-cycle preconditioner which -applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, -and solves the coarsest-level system with the multifrontal LU factorization -implemented in MUMPS. It is specified that the coarsest-level -matrix is distributed, since MUMPS can be used on both -replicated and distributed matrices, and by default -it is used on replicated ones. -The code fragments shown in Figures 3 and 4 are -included in the example program file mld_dexample_ml.f90 too. - -

    -Finally, Figure 5 shows the setup of a one-level -additive Schwarz preconditioner, i.e., RAS with overlap 2. -Note also that a Krylov method different from CG must be used to solve -the preconditioned system, since the preconditione in nonsymmetric. -The corresponding example program is available in the file -mld_dexample_1lev.f90. - -

    -For all the previous preconditioners, example programs where the sparse matrix and -the right-hand side are generated by discretizing a PDE with Dirichlet -boundary conditions are also available in the directory examples/pdegen. - -

    - -

    - - - -
    Figure 3: -setup of a multilevel preconditioner
    -
    -
    - -
    -
    -... ...
    -! build a V-cycle preconditioner with 1 block-Jacobi sweep (with 
    -! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi
    -! sweeps (with ILU(0) on the blocks) as coarsest-level solver
    -  call P%init('ML',info)
    -  call_P%set('SMOOTHER_TYPE','BJAC',info)
    -  call P%set('COARSE_SOLVE','BJAC',info)
    -  call P%set('COARSE_SWEEPS',8,info)
    -  call P%hierarchy_build(A,desc_A,info)
    -  call P%smoothers_build(A,desc_A,info)
    -... ...
    -
    -
    -
    -
    -

    -

    -
    -
    - -

    - -

    - - - -
    Figure 4: -setup of a multilevel preconditioner
    -
    -
    - -
    -
    -... ...
    -! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
    -! as pre- and post-smoother, a distributed coarsest
    -! matrix, and MUMPS as coarsest-level solver
    -  call P%init('ML',info)
    -  call P%set('ML_CYCLE','WCYCLE',info)
    -  call P%set('SMOOTHER_TYPE','FBGS',info)
    -  call P%set('SMOOTHER_SWEEPS',2,info)
    -  call P%set('COARSE_SOLVE','MUMPS',info)
    -  call P%set('COARSE_MAT','DIST',info)
    -  call P%hierarchy_build(A,desc_A,info)
    -  call P%smoothers_build(A,desc_A,info)
    -... ...
    -
    -
    -
    - -
    -
    - -

    - -

    - - - -
    Figure 5: -setup of a one-level Schwarz preconditioner.
    -
    -
    - -
    -
    -... ...
    -! set RAS with overlap 2 and ILU(0) on the local blocks
    -  call P%init('AS',info)
    -  call P%set('SUB_OVR',2,info)
    -  call P%bld(A,desc_A,info)
    -... ...
    -! solve Ax=b with preconditioned BiCGSTAB
    -  call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info)
    -
    -
    -
    - -
    -
    - -

    - -

    - - - - diff --git a/docs/html/node18.html b/docs/html/node18.html deleted file mode 100644 index 82317e7a..00000000 --- a/docs/html/node18.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - -User Interface - - - - - - - - - - - - - - - - - - - - - -

    -
    -User Interface -

    -

    -The basic user interface of MLD2P4 consists of eight methods. The six -methods init, set, build, -hierarchy_build, smoothers_build and apply -encapsulate all the functionalities for the setup and the application -of any multilevel and one-level preconditioner implemented in the -package. -The method free deallocates the preconditioner data structure, while -descr prints a description of the preconditioner setup by the user. -For backward compatibility, methods are also accessible as -stand-alone subroutines. - -

    -For each method, the same user interface is overloaded with -respect to the real/ complex case and the single/double precision; -arguments with appropriate data types must be passed to the method, -i.e., - -

      -
    • the sparse matrix data structure, containing the matrix to be - preconditioned, must be of type psb_xspmat_type - with x = s for real single precision, x = d - for real double precision, x = c for complex single precision, - x = z for complex double precision; -
    • -
    • the preconditioner data structure must be of type - mld_xprec_type, with x = - s, d, c, z, according to the sparse - matrix data structure; -
    • -
    • the arrays containing the vectors $v$ and $w$ involved in - the preconditioner application $w=B^{-1}v$ must be of type - psb_xvect_type with x = - s, d, c, z, in a manner completely - analogous to the sparse matrix type; -
    • -
    • real parameters defining the preconditioner must be declared - according to the precision of the sparse matrix and preconditioner - data structures (see Section 6.2). -
    • -
    -A description of each method is given in the remainder of this section. - -

    - -

    - -


    - -Subsections - - - - - - - - - diff --git a/docs/html/node19.html b/docs/html/node19.html deleted file mode 100644 index 9b821f2f..00000000 --- a/docs/html/node19.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -Method init - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method init -

    -

    - -

    call p%init(icontx,ptype,info) -
    -

    - -This method allocates and initializes the preconditioner -p, according to the preconditioner type chosen by the user. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - - - - -
    -icontxt integer, intent(in).
    - The communication context.
    -ptype character(len=*), intent(in).
    - The type of preconditioner. Its values are specified - in Table 1.
    - Note that the strings are case insensitive.
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precinit(p,ptype,info) -
    -

    - -

    - -

    - - - - diff --git a/docs/html/node2.html b/docs/html/node2.html deleted file mode 100644 index 18abc9b0..00000000 --- a/docs/html/node2.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -Contents - - - - - - - - - - - - - - - - - - - - -
    - -

    -Contents -

    - - - - - -

    - -

    - -


    - - - diff --git a/docs/html/node20.html b/docs/html/node20.html deleted file mode 100644 index 4c4fa89f..00000000 --- a/docs/html/node20.html +++ /dev/null @@ -1,968 +0,0 @@ - - - - - -Method set - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method set -

    -

    - -

    call p%set(what,val,info [,ilev, ilmax, pos, idx]) -
    -

    - -This method sets the parameters defining the preconditioner p. More -precisely, the parameter identified by what is assigned the value -contained in val. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -what character(len=*).
    - The parameter to be set. It can be specified through its name; - the string is case-insensitive. See - Tables 2-8.
    -val integer or character(len=*) or - real(psb_spk_) or real(psb_dpk_), - intent(in).
    - The value of the parameter to be set. The list of allowed - values and the corresponding data types is given in - Tables 2-8. - When the value is of type character(len=*), - it is also treated as case insensitive.
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 - for details.
    -ilev integer, optional, intent(in).
    - For the multilevel preconditioner, the level at which the - preconditioner parameter has to be set. - The levels are numbered in increasing - order starting from the finest one, i.e., level 1 is the finest level. - If ilev is not present, the parameter identified by what - is set at all the appropriate levels (see - Tables 2-8).
    -ilmax integer, optional, intent(in).
    - For the multilevel preconditioner, when both - ilev and ilmax are present, the settings - are applied at all levels ilev:ilmax. When - ilev is present but ilmax is not, then - the default is ilmax=ilev. - The levels are numbered in increasing - order starting from the finest one, i.e., level 1 is the finest level.
    -pos charater(len=*), optional, intent(in).
    - Whether the other arguments apply only to the pre-smoother ('PRE') - or to the post-smoother ('POST'). If pos is not present, - the other arguments are applied to both smoothers. - If the preconditioner is one-level or the parameter identified by what - does not concern the smoothers, pos is ignored.
    -idx integer, optional, intent(in).
    - An auxiliary input argument that can be passed to the - underlying objects. -
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precset(p,what,val,info) -
    -

    - -However, in this case the optional arguments ilev, -ilmax, pos and idx -cannot be used. -
    -

    -A variety of preconditioners can be obtained -by a suitable setting of the preconditioner parameters. These parameters -can be logically divided into four groups, i.e., parameters defining - -

      -
    1. the type of multilevel cycle and how many cycles must be applied; -
    2. -
    3. the aggregation algorithm; -
    4. -
    5. the coarse-space correction at the coarsest level (for multilevel - preconditioners only); -
    6. -
    7. the smoother of the multilevel preconditioners, or the one-level - preconditioner. - -

      -

    8. -
    -A list of the parameters that can be set, along with their allowed and -default values, is given in Tables 2-8. -For a description of the meaning of the parameters, please -refer also to Section 4. -
    -

    -Remark 2. A smoother is usually obtained by combining two objects: -a smoother (SMOOTHER_TYPE) and a local solver (SUB_SOLVE), -as specified in Tables 7-8. -For example, the block-Jacobi smoother using -ILU(0) on the blocks is obtained by combining the block-Jacobi smoother -object with the ILU(0) solver object. Similarly, -the hybrid Gauss-Seidel smoother (see Note in Table 7) -is obtained by combining the block-Jacobi smoother object with a single sweep -of the Gauss-Seidel solver object, while the point-Jacobi smoother is the -result of combining the block-Jacobi smoother object with a single sweep -of the pointwise-Jacobi solver object. However, for simplicity, shortcuts are -provided to set point-Jacobi, hybrid (forward) Gauss-Seidel, and -hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined -by setting only SMOOTHER_TYPE to appropriate values (see -Tables 7), i.e., without setting -SUB_SOLVE too. - -

    -The smoother and solver objects are arranged in a -hierarchical manner. When specifying a smoother object, its parameters, -including the local solver, are set to their default values, and when a solver -object is specified, its defaults are also set, overriding in both -cases any previous settings even if explicitly specified. Therefore if -the user sets a smoother, and wishes to use a solver -different from the default one, the call to set the solver must come -after the call to set the smoother. - -

    -Similar considerations apply to the point-Jacobi, Gauss-Seidel and block-Jacobi -coarsest-level solvers, and shortcuts are available -in this case too (see Table 5). -
    -

    -Remark 3. In general, a coarsest-level solver cannot be used with -both the replicated and distributed coarsest-matrix layout; -therefore, setting the solver after the layout may change the layout. -Similarly, setting the layout after the solver may change the solver. - -

    -More precisely, UMFPACK and SuperLU require the coarsest-level -matrix to be replicated, while SuperLU_Dist requires it to be distributed. -In these cases, setting the coarsest-level solver implies that -the layout is redefined according to the solver, ovverriding any -previous settings. MUMPS, point-Jacobi, -hybrid Gauss-Seidel and block-Jacobi can be applied to -replicated and distributed matrices, thus their choice -does not modify any previously specified layout. -It is worth noting that, when the matrix is replicated, -the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers -reduce to the corresponding local solver objects (see Remark 2). -For the point-Jacobi and Gauss-Seidel solvers, these objects -correspond to a single point-Jacobi sweep and a single -Gauss-Seidel sweep, respectively, which are very poor solvers. - -

    -On the other hand, the distributed layout can be used with any solver -but UMFPACK and SuperLU; therefore, if any of these two solvers has already -been selected, the coarsest-level solver is changed to block-Jacobi, -with the previously chosen solver applied to the local blocks. -Likewise, the replicated layout can be used with any solver but SuperLu_Dist; -therefore, if SuperLu_Dist has been previously set, the coarsest-level -solver is changed to the default sequential solver. - -

    -Remark 4. The argument idx can be used to allow finer -control for those solvers; for instance, by specifying the keyword -MUMPS_IPAR_ENTRY and an appropriate value for idx, it is -possible to set any entry in the MUMPS integer control array. -See also Sec. 7. - -

    - -

    -
    - - - -
    Table 2: -Parameters defining the multilevel cycle and the number of cycles to -be applied. -
    -
    - - - - - - - - - - - - - - - - - - - -
    whatDATA TYPEvalDEFAULTCOMMENTS
    'ML_CYCLE'character(len=*)'VCYCLE' -

    -'WCYCLE' -

    -'KCYCLE' -

    -'MULT' -

    -'ADD'

    'VCYCLE'Multilevel cycle: V-cycle, W-cycle, K-cycle, hybrid Multiplicative Schwarz, - and Additive Schwarz. -

    -Note that hybrid Multiplicative Schwarz is equivalent to V-cycle and - is included for compatibility with previous versions of MLD2P4.

    'OUTER_SWEEPS'integerAny integer -

    -number $\ge 1$

    1Number of multilevel cycles.
    -
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 3: -Parameters defining the aggregation algorithm. -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    whatDATA TYPEvalDEFAULTCOMMENTS
    'MIN_COARSE_SIZE'integerAny number -

    -$> 0$

    -$\lfloor 40 \sqrt[3]{n} \rfloor$, where $n$ is the dimension - of the matrix at the finest levelCoarse size threshold. The aggregation stops - if the global number of variables of the - computed coarsest matrix - is lower than or equal to this threshold - (see Note).
    'MIN_CR_RATIO'realAny number -

    -$> 1$

    1.5Minimum coarsening ratio. The aggregation stops - if the ratio between the matrix dimensions - at two consecutive levels is lower than or equal to this - threshold (see Note).
    'MAX_LEVS'integerAny integer -

    -number $> 1$

    20Maximum number of levels. The aggregation stops - if the number of levels reaches this value (see Note).
    'PAR_AGGR_ALG'character(len=*)'DEC', 'SYMDEC''DEC'Parallel aggregation algorithm. -

    -Currently, only the - decoupled aggregation (DEC) is available; the - SYMDEC option applies decoupled - aggregation to the sparsity pattern - of $A+A^T$.

    'AGGR_TYPE'character(len=*)'SOC1''SOC1', - 'SOC2'Type of aggregation algorithm: currently, - we implement to measures of strength of - connection, the one by Vanek, Mandel - and Brezina [26], - and the one by Gratton et al [16].
    'AGGR_PROL'character(len=*)'SMOOTHED', 'UNSMOOTHED''SMOOTHED'Prolongator used by the aggregation algorithm: smoothed or unsmoothed - (i.e., tentative prolongator).
    Note. The aggregation algorithm stops when -at least one of the following criteria is met: -the coarse size threshold, the
    minimum coarsening ratio, or the maximum number -of levels is reached. Therefore, the actual number of levels may be
    smaller than the specified maximum number -of levels.
    -
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 4: -Parameters defining the aggregation algorithm (continued). -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    whatDATA TYPEvalDEFAULTCOMMENTS
    'AGGR_ORD'character(len=*)'NATURAL' -

    -'DEGREE'

    'NATURAL'Initial ordering of indices for the aggregation - algorithm: either natural ordering or sorted by - descending degrees of the nodes in the - matrix graph.
    'AGGR_THRESH'real(kind_parameter)Any real -

    -number $\in [0, 1]$

    0.01The threshold $\theta$ in the aggregation algorithm, - see (3) in Section 4.2. - See also the note at the bottom of this table.
    'AGGR_FILTER'character(len=*)'FILTER' -

    -'NOFILTER'

    'NOFILTER'Matrix used in computing the smoothed - prolongator: filtered or unfiltered (see (5) in Section 4.2).
    Note. Different thresholds at different levels, such as -those used in [26, Section 5.1], can be easily set by -invoking the rou-
    tine set with -the parameter ilev.
    -
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 5: -Parameters defining the coarse-space correction at the coarsest -level.
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    whatDATA TYPEvalDEFAULTCOMMENTS
    'COARSE_MAT'character(len=*)'DIST' -

    -'REPL'

    'REPL'Coarsest matrix layout: distributed among the processes or - replicated on each of them.
    'COARSE_SOLVE'character(len=*)'MUMPS' -

    -'UMF' -

    -'SLU' -

    -'SLUDIST' -

    -'JACOBI' -

    -'GS' -

    -'BJAC'

    See Note.Solver used at the coarsest level: sequential - LU from MUMPS, UMFPACK, or SuperLU - (plus triangular solve); - distributed LU from MUMPS or SuperLU_Dist - (plus triangular solve); - point-Jacobi, hybrid Gauss-Seidel or block-Jacobi. -

    -Note that UMF and SLU require the coarsest - matrix to be replicated, SLUDIST, JACOBI, - GS and BJAC require it to be - distributed, and MUMPS can be used with either - a replicated or a distributed matrix. When any of the previous - solvers is specified, the matrix layout is set to a default - value which allows the use of the solver (see Remark 3, p. 24). - Note also that UMFPACK and SuperLU_Dist - are available only in double precision.

    'COARSE_SUBSOLVE'character(len=*)'ILU' -

    -'ILUT' -

    -'MILU' -

    -'MUMPS' -

    -'SLU' -

    -'UMF'

    See Note.Solver for the diagonal blocks of the coarse matrix, - in case the block Jacobi solver - is chosen as coarsest-level solver: ILU($p$), ILU($p,t$), - MILU($p$), LU from MUMPS, SuperLU or UMFPACK - (plus triangular solve). - Note that UMFPACK and SuperLU_Dist - are available only in double precision.
    Note. Defaults for COARSE_SOLVE and -COARSE_SUBSOLVE are chosen in the following order:
    single precision version - MUMPS if installed, - then SLU if installed, - ILU otherwise;
    double precision version - UMF if installed, - then MUMPS if installed, then SLU if - installed, ILU otherwise.
    -
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 6: -Parameters defining the coarse-space correction at the coarsest -level (continued).
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    whatDATA TYPEvalDEFAULTCOMMENTS
    'COARSE_SWEEPS'integerAny integer -

    -number $> 0$

    10Number of sweeps when JACOBI, GS or BJAC - is chosen as coarsest-level solver.
    'COARSE_FILLIN'integerAny integer -

    -number $\ge 0$

    0Fill-in level $p$ of the ILU factorizations.
    'COARSE_ILUTHRS'real(kind_parameter)Any real -

    -number $\ge 0$

    0Drop tolerance $t$ in the ILU($p,t$) factorization.
    -
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 7: -Parameters defining the smoother or the details of the one-level preconditioner. -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -what DATA TYPE val DEFAULT -COMMENTS
    -'SMOOTHER_TYPE' character(len=*) - 'JACOBI' -

    -'GS' -

    -'BGS' -

    -'BJAC' - -

    -'AS' -

    'FBGS' - Type of smoother used in the multilevel preconditioner: - point-Jacobi, hybrid (forward) Gauss-Seidel, - hybrid backward Gauss-Seidel, block-Jacobi, and - Additive Schwarz. -

    -It is ignored by one-level preconditioners.

    -'SUB_SOLVE' character(len=*) - 'JACOBI' -

    -'GS' -

    -'BGS' -

    -'ILU' -

    -'ILUT' -

    -'MILU' -

    -'MUMPS' -

    -'SLU' -

    -'UMF' -

    GS and BGS for pre- and post-smoothers - of multilevel preconditioners, respectively -

    -ILU for block-Jacobi and Additive Schwarz - one-level preconditioners -

    The local solver to be used with the smoother or one-level - preconditioner (see Remark 2, page 24): point-Jacobi, - hybrid (forward) Gauss-Seidel, hybrid backward - Gauss-Seidel, ILU($p$), ILU($p,t$), MILU($p$), - LU from MUMPS, SuperLU or UMFPACK - (plus triangular solve). See Note for details on hybrid - Gauss-Seidel.
    -'SMOOTHER_SWEEPS' integer - Any integer -

    -number $\ge 0$ -

    1 - Number of sweeps of the smoother or one-level preconditioner. - In the multilevel case, no pre-smother or - post-smoother is used if this parameter is set to 0 - together with pos='PRE' or pos='POST, - respectively.
    -'SUB_OVR' integer - Any integer -

    -number $\ge 0$ -

    1 - Number of overlap layers, for Additive Schwarz only.
    -
    -

    -
    -

    - -

    -
    - - - -
    Table 8: -Parameters defining the smoother or the details of the one-level preconditioner -(continued).
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -what DATA TYPE val DEFAULT -COMMENTS
    -'SUB_RESTR' character(len=*) - 'HALO' -

    -'NONE' -

    'HALO' - Type of restriction operator, for Additive Schwarz only: - HALO for taking into account the overlap, NONE - for neglecting it. -

    -Note that HALO must be chosen for - the classical Addditive Schwarz smoother and its RAS variant.

    -'SUB_PROL' character(len=*) - 'SUM' -

    -'NONE' -

    'NONE' - Type of prolongation operator, for Additive Schwarz only: - SUM for adding the contributions from the overlap, NONE - for neglecting them. -

    -Note that SUM must be chosen for the classical Additive - Schwarz smoother, and NONE for its RAS variant.

    -'SUB_FILLIN' integer - Any integer -

    -number $\ge 0$ -

    0 - Fill-in level $p$ of the incomplete LU factorizations.
    -'SUB_ILUTHRS' real(kind_parameter) - Any real number $\ge 0$ - 0 - Drop tolerance $t$ in the ILU($p,t$) factorization.
    'MUMPS_LOC_GLOB' character(len=*) - LOCAL_SOLVER' -

    -GLOBAL_SOLVER' -

    GLOBAL_SOLVER' - Whether MUMPS should be used as a - distributed solver, or as a serial solver - acting only on the part of the matrix local - to each process.
    'MUMPS_IPAR_ENTRY' integer - Any integer number - 0 - Set an entry in the MUMPS integer control array, as - chosen via the idx optional argument.
    'MUMPS_RPAR_ENTRY' real - Any real number - 0 - Set an entry in the MUMPS real control array, as - chosen via the idx optional argument.
    -
    -

    -
    -

    - -

    - -

    - - - - diff --git a/docs/html/node21.html b/docs/html/node21.html deleted file mode 100644 index be357628..00000000 --- a/docs/html/node21.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -Method hierarchy_build - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method hierarchy_build -

    -

    - -

    call p%hierarchy_build(a,desc_a,info) -
    -

    - -This method builds the hierarchy of matrices and restriction/prolongation -operators for the multilevel preconditioner p, according to the requirements -made by the user through the methods init and set. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - -
    -a type(psb_xspmat_type), intent(in).
    - The sparse matrix structure containing the local part of the - matrix to be preconditioned. Note that x must be chosen according - to the real/complex, -single/double precision version of MLD2P4 under use. - See the PSBLAS User's Guide for details [13].
    -desc_a type(psb_desc_type), intent(in).
    - The communication descriptor of a. See the PSBLAS User's Guide for - details [13].
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -

    - -

    - -

    - - - - diff --git a/docs/html/node22.html b/docs/html/node22.html deleted file mode 100644 index d9fa00f9..00000000 --- a/docs/html/node22.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -Method smoothers_build - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method smoothers_build -

    -

    - -

    call p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold]) -
    -

    - -This method builds the smoothers and the coarsest-level solvers for the -multilevel preconditioner p, according to the requirements made by -the user through the methods init and set, and based on the aggregation -hierarchy produced by a previous call to hierarchy_build -(see Section 6.3). - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -a type(psb_xspmat_type), intent(in).
    - The sparse matrix structure containing the local part of the - matrix to be preconditioned. Note that x must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use. - See the PSBLAS User's Guide for details [13].
    -desc_a type(psb_desc_type), intent(in).
    - The communication descriptor of a. See the PSBLAS User's Guide for - details [13].
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -amold class(psb_x_base_sparse_mat), intent(in), optional.
    - The desired dynamic type for internal matrix - components; this allows e.g. running on GPUs; it needs not be the - same on all processes. See the PSBLAS User's Guide for - details [13].
    - vmold class(psb_x_base_vect_type), intent(in), optional.
    - The desired dynamic type for internal vector - components; this allows e.g. running on GPUs.
    - imold class(psb_i_base_vect_type), intent(in), optional.
    - The desired dynamic type for internal integer vector - components; this allows e.g. running on GPUs.
    -

    - -

    - -

    - - - - diff --git a/docs/html/node23.html b/docs/html/node23.html deleted file mode 100644 index 54375c9a..00000000 --- a/docs/html/node23.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Method build - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method build -

    -

    - -

    call p%build(a,desc_a,info[,amold,vmold,imold]) -
    -

    - -This method builds the preconditioner p according to the requirements -made by the user through the methods init and set -(see Sections 6.3 and 6.4 for -multilevel preconditioners). It is mostly provided for backward -compatibility; indeed, it is internally implemented by invoking the -two previous methods hierarchy_build and -smoothers_build, whose nomenclature would however be somewhat -unnatural when dealing with simple one-level preconditioners. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -a type(psb_xspmat_type), intent(in).
    - The sparse matrix structure containing the local part of the - matrix to be preconditioned. Note that x must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use. - See the PSBLAS User's Guide for details [13].
    -desc_a type(psb_desc_type), intent(in).
    - The communication descriptor of a. See the PSBLAS User's Guide for - details [13].
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -amold class(psb_x_base_sparse_mat), intent(in), optional.
    - The desired dynamic type for internal matrix - components; this allows e.g. running on GPUs; it needs not be the - same on all processes. See the PSBLAS User's Guide for - details [13].
    - vmold class(psb_x_base_vect_type), intent(in), optional.
    - The desired dynamic type for internal vector - components; this allows e.g. running on GPUs.
    - imold class(psb_i_base_vect_type), intent(in), optional.
    - The desired dynamic type for internal integer vector - components; this allows e.g. running on GPUs.
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precbld(p,what,val,info[,amold,vmold,imold]) -
    -

    - -The method can be used to build multilevel preconditioners too. - -

    - -

    - - - - diff --git a/docs/html/node24.html b/docs/html/node24.html deleted file mode 100644 index 447807ca..00000000 --- a/docs/html/node24.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - -Method apply - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method apply -

    -

    - -

    call p%apply(x,y,desc_a,info [,trans,work]) -
    -

    - -This method computes -$y = op(B^{-1})\, x$, where $B$ is a previously built -preconditioner, stored into p, and $op$ -denotes the preconditioner itself or its transpose, according to -the value of trans. -Note that, when MLD2P4 is used with a Krylov solver from PSBLAS, -p%apply is called within the PSBLAS method psb_krylov -and hence it is completely transparent to the user. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -x type(kind_parameter), dimension(:), intent(in).
    - The local part of the vector $x$. Note that type and - kind_parameter must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use.
    -y type(kind_parameter), dimension(:), intent(out).
    - The local part of the vector $y$. Note that type and - kind_parameter must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use.
    -desc_a type(psb_desc_type), intent(in).
    - The communication descriptor associated to the matrix to be - preconditioned.
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -trans character(len=1), optional, intent(in).
    - If trans = 'N','n' then -$op(B^{-1}) = B^{-1}$; - if trans = 'T','t' then -$op(B^{-1}) = B^{-T}$ - (transpose of $B^{-1})$; if trans = 'C','c' then -$op(B^{-1}) = B^{-C}$ - (conjugate transpose of $B^{-1})$.
    -work type(kind_parameter), dimension(:), optional, target.
    - Workspace. Its size should be at - least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User's Guide). - Note that type and kind_parameter must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use.
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precaply(p,what,val,info) -
    -

    - -

    - -

    - - - - diff --git a/docs/html/node25.html b/docs/html/node25.html deleted file mode 100644 index 23211355..00000000 --- a/docs/html/node25.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - -Method free - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method free -

    -

    - -

    call p%free(p,info) -
    -

    - -This method deallocates the preconditioner data structure p. - -

    -Arguments -

    - -

    - - - - - - - -
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precfree(p,info) -
    -

    - -

    - -


    - - - diff --git a/docs/html/node26.html b/docs/html/node26.html deleted file mode 100644 index f07bcf9f..00000000 --- a/docs/html/node26.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -Method descr - - - - - - - - - - - - - - - - - - - - - -

    -
    -Method descr -

    -

    - -

    call p%descr(info, [iout]) -
    -

    - -This method prints a description of the preconditioner p to the standard output or -to a file. It must be called after hierachy_build and smoothers_build, -or build, have been called. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - -
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -iout integer, intent(in), optional.
    - The id of the file where the preconditioner description - will be printed; the default is the standard output.
    -

    -For compatibility with the previous versions of MLD2P4, this method can be also invoked -as follows: - -

    - -

    call mld_precdescr(p,info [,iout]) -
    -

    - -

    - - - - diff --git a/docs/html/node27.html b/docs/html/node27.html deleted file mode 100644 index 64b9a5db..00000000 --- a/docs/html/node27.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - -Auxiliary Methods - - - - - - - - - - - - - - - - - - - - -

    -
    -Auxiliary Methods -

    -Various functionalities are implemented as additional methods of the -preconditioner object. - -

    - -


    - -Subsections - - - -

    - - - diff --git a/docs/html/node28.html b/docs/html/node28.html deleted file mode 100644 index 813e8e25..00000000 --- a/docs/html/node28.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -Method: dump - - - - - - - - - - - - - - - - - - - - - -

    -Method: dump -

    -

    - -

    call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num]) -
    -

    - -Dump on file. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - -
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -amold class(psb_x_base_sparse_mat), intent(in), optional.
    - The desired dynamic type for internal matrix - components; this allows e.g. running on GPUs; it needs not be the - same on all processes. See the PSBLAS User's Guide for - details [13].
    -

    - -


    - - - diff --git a/docs/html/node29.html b/docs/html/node29.html deleted file mode 100644 index da717d1c..00000000 --- a/docs/html/node29.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -Method: clone - - - - - - - - - - - - - - - - - - - - - -

    -Method: clone -

    -

    - -

    call p%clone(pout,info) -
    -

    - -Create a (deep) copy of the preconditioner object. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - -
    -pout type(mld_xprec_type), intent(out).
    - The copy of the preconditioner data structure. Note - that x must be chosen according - to the real/complex, single/double precision version of MLD2P4 under use.
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -

    - -


    - - - diff --git a/docs/html/node3.html b/docs/html/node3.html deleted file mode 100644 index b7f7bd1d..00000000 --- a/docs/html/node3.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - -General Overview - - - - - - - - - - - - - - - - - - - - - -

    -
    -General Overview -

    -

    -The MULTILEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON -PSBLAS (MLD2P4) provides parallel Algebraic MultiGrid (AMG) and Domain -Decomposition preconditioners (see, e.g., [3,24,22]), -to be used in the iterative solution of linear systems, - -
    -

    - - - - - - -
    \begin{displaymath}
-Ax=b,
-\end{displaymath} -(1)
    -

    -where $A$ is a square, real or complex, sparse matrix. -The name of the package comes from its original implementation, containing -multilevel additive and hybrid Schwarz preconditioners, as well as one-level additive -Schwarz preconditioners. The current version extends the original plan by including -multilevel cycles and smoothers widely used in multigrid methods. - -

    -The multilevel preconditioners implemented in MLD2P4 are obtained by combining -AMG cycles with smoothers and coarsest-level solvers. The V-, W-, and -K-cycles [3,20] are available, which allow to define -almost all the preconditioners in the package, including the multilevel hybrid -Schwarz ones; a specific cycle is implemented to obtain multilevel additive -Schwarz preconditioners. The Jacobi, hybrid -forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz methods -are available as smoothers. An algebraic approach is used to generate a hierarchy of -coarse-level matrices and operators, without explicitly using any information on the -geometry of the original problem, e.g., the discretization of a PDE. To this end, -the smoothed aggregation technique [2,26] -is applied. Either exact or approximate solvers can be used on the coarsest-level -system. Specifically, different sparse LU factorizations from external -packages, and native incomplete LU factorizations and Jacobi, hybrid Gauss-Seidel, -and block-Jacobi solvers are available. All smoothers can be also exploited as one-level -preconditioners. - -

    -MLD2P4 is written in Fortran 2003, following an -object-oriented design through the exploitation of features -such as abstract data type creation, type extension, functional overloading, and -dynamic memory management. The parallel implementation is based on a Single Program Multiple Data -(SPMD) paradigm. Single and -double precision implementations of MLD2P4 are available for both the -real and the complex case, which can be used through a single -interface. - -

    -MLD2P4 has been designed to implement scalable and easy-to-use -multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS) -computational framework [15,14]. PSBLAS provides basic linear algebra -operators and data management facilities for distributed sparse matrices, -as well as parallel Krylov solvers which can be used with the MLD2P4 preconditioners. -The choice of PSBLAS has been mainly motivated by the need of having -a portable and efficient software infrastructure implementing “de facto” standard -parallel sparse linear algebra kernels, to pursue goals such as performance, -portability, modularity ed extensibility in the development of the preconditioner -package. On the other hand, the implementation of MLD2P4 has led to some -revisions and extentions of the original PSBLAS kernels. -The inter-process comunication required by MLD2P4 is encapsulated -in the PSBLAS routines; -therefore, MLD2P4 can be run on any parallel machine where PSBLAS -implementations are available. - -

    -MLD2P4 has a layered and modular software architecture where three main layers can be -identified. The lower layer consists of the PSBLAS kernels, the middle one implements -the construction and application phases of the preconditioners, and the upper one -provides a uniform interface to all the preconditioners. -This architecture allows for different levels of use of the package: -few black-box routines at the upper layer allow all users to easily -build and apply any preconditioner available in MLD2P4; -facilities are also available allowing expert users to extend the set of smoothers -and solvers for building new versions of the preconditioners (see -Section 7). - -

    -We note that the user interface of MLD2P4 2.1 has been extended with respect to the -previous versions in order to separate the construction of the multilevel hierarchy from -the construction of the smoothers and solvers, and to allow for more flexibility -at each level. The software architecture described in [8] has significantly -evolved too, in order to fully exploit the Fortran 2003 features implemented in PSBLAS 3. -However, compatibility with previous versions has been preserved. - -

    -This guide is organized as follows. General information on the distribution of the source -code is reported in Section 2, while details on the configuration -and installation of the package are given in Section 3. A short description -of the preconditioners implemented in MLD2P4 is provided in Section 4, -to help the users in choosing among them. The basics for building and applying the -preconditioners with the Krylov solvers implemented in PSBLAS are reported -in Section 5, where the Fortran codes of a few sample programs -are also shown. A reference guide for the user interface routines is provided -in Section 6. Information on the extension of the package -through the addition of new smoothers and solvers is reported in Section 7. -The error handling mechanism used by the package -is briefly described in Section 8. The copyright terms concerning the -distribution and modification of MLD2P4 are reported in Appendix A. - -

    - -

    - - - - diff --git a/docs/html/node30.html b/docs/html/node30.html deleted file mode 100644 index 873b2304..00000000 --- a/docs/html/node30.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - -Method: sizeof - - - - - - - - - - - - - - - - - - - - - -

    -Method: sizeof -

    -

    - -

    sz = p%sizeof() -
    -

    - -Return memory footprint in bytes. - -

    - -


    - - - diff --git a/docs/html/node31.html b/docs/html/node31.html deleted file mode 100644 index 1243f28c..00000000 --- a/docs/html/node31.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - -Method: allocate_wrk - - - - - - - - - - - - - - - - - - - - - -

    -Method: allocate_wrk -

    -

    - -

    call p%allocate_wrk(info[, vmold]) -
    -

    - -Allocate internal work vectors. Each application of the preconditioner -uses a number of work vectors which are allocated internally as -necessary; therefore allocation and deallocation of memory occurs -multiple times during the execution of a Krylov method. In most cases -this strategy is perfectly acceptable, but -on some platforms, most notably GPUs, memory allocation is -a slow operation, and the default behaviour would lead to a -slowdown. This method allows to trade space for time by preallocating -the internal workspace outside of the invocation of a Krylov -method. When using GPUs or other specialized devices, the vmold -argument is also necessary to ensure the internal work vectors are of -the appropriate dynamic type to exploit the accelerator hardware; when -allocation occurs internally this is taken care of based on the dynamic -type of the x argument to the apply method. - -

    -Arguments -

    - -

    - - - - - - - - - - - - - -
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    - vmold class(psb_x_base_vect_type), intent(in), optional.
    - The desired dynamic type for internal vector - components; this allows e.g. running on GPUs.
    -

    - -

    - - - - diff --git a/docs/html/node32.html b/docs/html/node32.html deleted file mode 100644 index 5805fd18..00000000 --- a/docs/html/node32.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - -Method: free_wrk - - - - - - - - - - - - - - - - - - - - -

    -Method: free_wrk -

    -

    - -

    call p%free_wrk(info) -
    -

    - -Deallocate internal work vectors. - -

    -Arguments -

    - -

    - - - - - - - -
    -info integer, intent(out).
    - Error code. If no error, 0 is returned. See Section 8 for details.
    -

    - -

    - -

    - -


    - - - diff --git a/docs/html/node33.html b/docs/html/node33.html deleted file mode 100644 index c6b77a4c..00000000 --- a/docs/html/node33.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - -Adding new smoother and solver objects to MLD2P4 - - - - - - - - - - - - - - - - - - - - - -

    -
    -Adding new smoother and solver objects to MLD2P4 -

    -

    -Developers can add completely new smoother and/or solver classes -derived from the base objects in the library (see Remark 2 in Section 6.2), -without recompiling the library itself. - -

    -To do so, it is necessary first to select the base type to be extended. -In our experience, it is quite likely that the new application needs -only the definition of a “solver” object, which is almost -always acting only on the local part of the distributed matrix. -The parallel actions required to connect the various solver objects -are most often already provided by the block-Jacobi or the additive -Schwarz smoothers. To define a new solver, the developer will then -have to define its components and methods, perhaps taking one of the -predefined solvers as a starting point, if possible. - -

    -Once the new smoother/solver class has been developed, to use it in -the context of the multilevel preconditioners it is necessary to: - -

      -
    • declare in the application program a variable of the new type; -
    • -
    • pass that variable as the argument to the set routine as in the -following: -
      -call p%set(smoother,info [,ilev,ilmax,pos]) -
      call p%set(solver,info [,ilev,ilmax,pos]) - -
      -
    • -
    • link the code implementing the various methods into the application executable. -
    • -
    -The new solver object is then dynamically included in the -preconditioner structure, and acts as a mold to which the -preconditioner will conform, even though the MLD2P4 library has not -been modified to account for this new development. - -

    -It is possible to define new values for the keyword WHAT in the -set routine; if the library code does not recognize a keyword, -it passes it down the composition hierarchy (levels containing -smoothers containing in turn solvers), so that it can be eventually caught by -the new solver. By the same token, any keyword/value pair that does not pertain to -a given smoother should be passed down to the contained solver, and -any keyword/value pair that does not pertain to a given solver is by -default ignored. - -

    -An example is provided in the source code distribution under the -folder tests/newslv. In this example we are implementing a new -incomplete factorization variant (which is simply the ILU(0) -factorization under a new name). Because of the specifics of this case, it is -possible to reuse the basic structure of the ILU solver, with its -L/D/U components and the methods needed to apply the solver; only a -few methods, such as the description and most importantly the build, -need to be ovverridden (rewritten). - -

    -The interfaces for the calls shown above are defined using - -

    - - - - - - - - - - - - -
    -smoother class(mld_x_base_smoother_type)
    - The user-defined new smoother to be employed in the - preconditioner.
    -solver class(mld_x_base_solver_type)
    - The user-defined new solver to be employed in the - preconditioner. -
    -The other arguments are defined in the way described in -Sec. 6.2. As an example, in the tests/newslv -code we define a new object of type mld_d_tlu_solver_type, and -we pass it as follows: -
    -  ! sparse matrix and preconditioner
    -  type(psb_dspmat_type) :: a
    -  type(mld_dprec_type)  :: prec
    -  type(mld_d_tlu_solver_type) :: tlusv
    -
    -......
    -  !
    -  !  prepare the preconditioner: an ML with defaults, but with TLU solver at
    -  !  intermediate levels. All other parameters are at default values. 
    -  !  
    -  call prec%init('ML',       info)
    -  call prec%hierarchy_build(a,desc_a,info)
    -  nlv = prec%get_nlevs()
    -  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
    -  call prec%smoothers_build(a,desc_a,info)
    -
    - - - - - - diff --git a/docs/html/node34.html b/docs/html/node34.html deleted file mode 100644 index a32c73cd..00000000 --- a/docs/html/node34.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - -Error Handling - - - - - - - - - - - - - - - - - - - - - -

    -
    -Error Handling -

    -

    -The error handling in MLD2P4 is based on the PSBLAS error -handling. Error conditions are signaled via an integer argument -info; whenever an error condition is detected, an error trace -stack is built by the library up to the top-level, user-callable -routine. This routine will then decide, according to the user -preferences, whether the error should be handled by terminating the -program or by returning the error condition to the user code, which -will then take action, and whether -an error message should be printed. These options may be set by using -the PSBLAS error handling routines; for further details see the PSBLAS -User's Guide [13]. - -

    - - -


    - - - diff --git a/docs/html/node35.html b/docs/html/node35.html deleted file mode 100644 index 369bfe3a..00000000 --- a/docs/html/node35.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -License - - - - - - - - - - - - - - - - - - - - - -

    -
    -License -

    -

    -The MLD2P4 is freely distributable under the following copyright -terms:

     
    - 
    -                           MLD2P4  version 2.1
    -  MultiLevel Domain Decomposition Parallel Preconditioners Package
    -             based on PSBLAS (Parallel Sparse BLAS version 3.5)
    -  
    -  (C) Copyright 2008, 2010, 2012, 2015, 2017
    -
    -  Salvatore Filippone    Cranfield University, Cranfield, UK
    -  Pasqua D'Ambra         IAC-CNR, Naples, IT
    -  Daniela di Serafino    University of Campania L. Vanvitelli, Caserta, IT
    -
    -  Redistribution and use in source and binary forms, with or without
    -  modification, are permitted provided that the following conditions
    -  are met:
    -    1. Redistributions of source code must retain the above copyright
    -       notice, this list of conditions and the following disclaimer.
    -    2. Redistributions in binary form must reproduce the above copyright
    -       notice, this list of conditions, and the following disclaimer in the
    -       documentation and/or other materials provided with the distribution.
    -    3. The name of the MLD2P4 group or the names of its contributors may
    -       not be used to endorse or promote products derived from this
    -       software without specific written permission.
    - 
    -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    -  “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    -  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    -  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
    -  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    -  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    -  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    -  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    -  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    -  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    -  POSSIBILITY OF SUCH DAMAGE.
    -
    - - -

    - - - diff --git a/docs/html/node36.html b/docs/html/node36.html deleted file mode 100644 index 0504c1f0..00000000 --- a/docs/html/node36.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -Bibliography - - - - - - - - - - - - - - - - - - - - - -

    -Bibliography -

    - -

    -

    1 -
    -P. R. Amestoy, C. Ashcraft, O. Boiteau, A. Buttari, J. L'Excellent, C. Weisbecker, -Improving multifrontal methods by means of block low-rank representations, -SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452-A1474. -See also http://mumps.enseeiht.fr. -

    2 -
    -M. Brezina, P. Vanek, -A Black-Box Iterative Solver Based on a Two-Level Schwarz Method, -Computing, 63, 1999, 233-263. -

    3 -
    -W. L. Briggs, V. E. Henson, S. F. McCormick, -A Multigrid Tutorial, Second Edition, -SIAM, 2000. -

    4 -
    -A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone, -Extending PSBLAS to Build Parallel Schwarz Preconditioners, -in J. Dongarra, K. Madsen, J. Wasniewski, editors, -Proceedings of PARA 04 Workshop on State of the Art -in Scientific Computing, Lecture Notes in Computer Science, -Springer, 2005, 593-602. -

    5 -
    -A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone, -2LEV-D2P4: a package of high-performance preconditioners -for scientific and engineering applications, -Applicable Algebra in Engineering, Communications and Computing, -18 (3) 2007, 223-239. -

    6 -
    -X. C. Cai, M. Sarkis, -A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems, -SIAM Journal on Scientific Computing, 21 (2), 1999, 792-797. -

    7 -
    -P. D'Ambra, S. Filippone, D. di Serafino, -On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners, -Applied Numerical Mathematics, Elsevier Science, -57 (11-12), 2007, 1181-1196. -

    8 -
    -P. D'Ambra, D. di Serafino, S. Filippone, -MLD2P4: a Package of Parallel Multilevel -Algebraic Domain Decomposition Preconditioners -in Fortran 95, ACM Trans. Math. Softw., 37(3), 2010, art. 30. -

    9 -
    -T. A. Davis, -Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal -Method with a Column Pre-ordering Strategy, -ACM Transactions on Mathematical Software, 30, 2004, 196-199. -(See also http://www.cise.ufl.edu/~davis/) -

    10 -
    -J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, J. W. H. Liu, -A supernodal approach to sparse partial pivoting, -SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720-755. -

    11 -
    -J. J. Dongarra, J. Du Croz, I. S. Duff, S. Hammarling, -A set of Level 3 Basic Linear Algebra Subprograms, -ACM Transactions on Mathematical Software, 16 (1) 1990, 1-17. -

    12 -
    -J. J. Dongarra, J. Du Croz, S. Hammarling, R. J. Hanson, -An extended set of FORTRAN Basic Linear Algebra Subprograms, -ACM Transactions on Mathematical Software, 14 (1) 1988, 1-17. -

    13 -
    -S. Filippone, A. Buttari, -PSBLAS 3.5.0 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library, 2012, -available from https://github.com/sfilippone/psblas3/tree/master/docs. -

    14 -
    -S. Filippone, A. Buttari, -Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003. -ACM Transactions on on Mathematical Software, 38 (4), 2012, art. 23. -

    15 -
    -S. Filippone, M. Colajanni, -PSBLAS: A Library for Parallel Linear Algebra -Computation on Sparse Matrices, -ACM Transactions on Mathematical Software, 26 (4), 2000, 527-550. -

    16 -
    -S. Gratton, P. Henon, P. Jiranek and X. Vasseur, - Reducing complexity of algebraic multigrid by aggregation, -Numerical Lin. Algebra with Applications, 2016, 23:501-518 - -

    -

    17 -
    -W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir, -MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions, -MIT Press, 1998. -

    18 -
    -C. L. Lawson, R. J. Hanson, D. Kincaid, F. T. Krogh, -Basic Linear Algebra Subprograms for FORTRAN usage, -ACM Transactions on Mathematical Software, 5 (3), 1979, 308-323. -

    19 -
    -X. S. Li, J. W. Demmel, -SuperLU_DIST: A Scalable Distributed-memory -Sparse Direct Solver for Unsymmetric Linear Systems, -ACM Transactions on Mathematical Software, 29 (2), 2003, 110-140. -

    20 -
    -Y. Notay, P. S. Vassilevski, -Recursive Krylov-based multigrid cycles, -Numerical Linear Algebra with Applications, 15 (5), 2008, 473-487. -

    21 -
    -Y. Saad, -Iterative methods for sparse linear systems, 2nd edition, SIAM, 2003. -

    22 -
    -B. Smith, P. Bjorstad, W. Gropp, -Domain Decomposition: Parallel Multilevel Methods for Elliptic -Partial Differential Equations, -Cambridge University Press, 1996. -

    23 -
    -M. Snir, S. Otto, S. Huss-Lederman, D. Walker, J. Dongarra, -MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, -MIT Press, 1998. -

    24 -
    -K. Stüben, -An Introduction to Algebraic Multigrid, -in A. Schüller, U. Trottenberg, C. Oosterlee, Multigrid, -Academic Press, 2001. -

    25 -
    -R. S. Tuminaro, C. Tong, -Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines, in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000. -

    26 -
    -P. Vanek, J. Mandel, M. Brezina, -Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems, -Computing, 56 (3) 1996, 179-196. - -

    -

    - -

    -


    - - - diff --git a/docs/html/node37.html b/docs/html/node37.html deleted file mode 100644 index 0d8df894..00000000 --- a/docs/html/node37.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - -About this document ... - - - - - - - - - - - - - - - - - - - -

    -About this document ... -

    -

    -This document was generated using the -LaTeX2HTML translator Version 2018 (Released Feb 1, 2018) -

    -Copyright © 1993, 1994, 1995, 1996, -Nikos Drakos, -Computer Based Learning Unit, University of Leeds. -
    -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. -

    -The command line arguments were:
    - latex2html -local_icons -noaddress -dir ../../html userhtml.tex -

    -The translation was initiated on 2018-11-29 -


    - - - diff --git a/docs/html/node4.html b/docs/html/node4.html deleted file mode 100644 index c478e331..00000000 --- a/docs/html/node4.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - -Code Distribution - - - - - - - - - - - - - - - - - - - - - -

    -
    -Code Distribution -

    -

    - -MLD2P4 is available from the web site - -

    https://github.com/sfilippone/mld2p4-2 -
    -where contact points for further information can be also found. - -

    -The software is available under a modified BSD license, as specified -in Appendix A; please note that some of the optional -third party libraries may be licensed under a different and more -stringent license, most notably the GPL, and this should be taken into -account when treating derived works. - -

    -The library defines a version string with the -constant - -

    -
    - - -\begin{displaymath}\verb\vert mld_version_string_\vert\end{displaymath} -
    -
    -

    -whose current value is 2.1.0. - -

    - -


    - -Subsections - - - -

    - - - diff --git a/docs/html/node5.html b/docs/html/node5.html deleted file mode 100644 index a15ea834..00000000 --- a/docs/html/node5.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Contributors - - - - - - - - - - - - - - - - - - - - -

    -Contributors -

    -Contributors to version 2: - -
      -
    • Salvatore Filippone, Cranfield University, UK; -
    • -
    • Pasqua D'Ambra, IAC-CNR, Naples, IT; -
    • -
    • Daniela di Serafino, University of Campania “L. Vanvitelli”, Caserta, IT; -
    • -
    • Ambra Abdullahi Hassan, University of Rome “Tor Vergata”, IT. -
    • -
    -Contributors to version 1: - -
      -
    • Salvatore Filippone; -
    • -
    • Pasqua D'Ambra; -
    • -
    • Daniela di Serafino; -
    • -
    • Alfredo Buttari, CNRS-IRIT, Toulouse, F. -
    • -
    - -

    - - - diff --git a/docs/html/node6.html b/docs/html/node6.html deleted file mode 100644 index 54be0f4b..00000000 --- a/docs/html/node6.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - -Configuring and Building MLD2P4 - - - - - - - - - - - - - - - - - - - - - -

    -
    -Configuring and Building MLD2P4 -

    - -In order to build MLD2P4 it is necessary to set up a Makefile with appropriate -system-dependent variables; this is done by means of the configure -script. The distribution also includes the autoconf and automake -sources employed to generate the script, but usually this is not needed -to build the software. - -

    -MLD2P4 is implemented almost entirely in Fortran 2003, with some -interfaces to external libraries in C; the Fortran compiler -must support the Fortran 2003 standard plus the extension MOLD= -feature, which enhances the usability of ALLOCATE. -Many compilers do this; in particular, this is -supported by the GNU Fortran compiler, for which we -recommend to use at least version 4.8. -The software defines data types and interfaces for -real and complex data, in both single and double precision. - -

    -Building MLD2P4 requires some base libraries (see Section 3.1); -interfaces to optional third-party libraries, which extend the functionalities of MLD2P4 -(see Section 3.2), are also available. Many Linux distributions -(e.g., Ubuntu, Fedora, CentOS) provide precompiled packages for the prerequisite and -optional software. In many cases these packages are split between a runtime part and a -“developer” part; in order to build MLD2P4 you need both. A description of the base and -optional software used by MLD2P4 is given in the next sections. - -

    - -


    - -Subsections - - - - - - - - - diff --git a/docs/html/node7.html b/docs/html/node7.html deleted file mode 100644 index 7eed7f21..00000000 --- a/docs/html/node7.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -Prerequisites - - - - - - - - - - - - - - - - - - - - - -

    -
    -Prerequisites -

    -

    -The following base libraries are needed: -

    -
    BLAS
    -
    [11,12,18] Many vendors provide optimized versions - of BLAS; if no vendor version is - available for a given platform, the ATLAS software - (math-atlas.sourceforge.net) - may be employed. The reference BLAS from Netlib - (www.netlib.org/blas) are meant to define the standard - behaviour of the BLAS interface, so they are not optimized for any - particular plaftorm, and should only be used as a last - resort. Note that BLAS computations form a relatively small part of - the MLD2P4/PSBLAS computations; they are however critical when using - preconditioners based on MUMPS, UMFPACK or SuperLU third party - libraries. Note that UMFPACK requires a full LAPACK library; our -experience is that configuring ATLAS for building full LAPACK does not -work in the correct way. Our advice is first to download the LAPACK tarfile from -www.netlib.org/lapack and install it independently of ATLAS. In this case, -you need to modify the OPTS and NOOPT definitions for including -fPIC compilation option -in the make.inc file of the LAPACK library. -
    -
    MPI
    -
    [17,23] A version of MPI is available on most - high-performance computing systems. - -
    -
    PSBLAS
    -
    [13,15] Parallel Sparse BLAS (PSBLAS) is - available from github.com/sfilippone/psblas3; version - 3.5.0 (or later) is required. Indeed, all the prerequisites - listed so far are also prerequisites of PSBLAS. -
    -
    -Please note that the four previous libraries must have Fortran -interfaces compatible with MLD2P4; -usually this means that they should all be built with the same -compiler as MLD2P4. - -

    - -

    - - - - diff --git a/docs/html/node8.html b/docs/html/node8.html deleted file mode 100644 index b008d3ae..00000000 --- a/docs/html/node8.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - -Optional third party libraries - - - - - - - - - - - - - - - - - - - - - -

    -
    -Optional third party libraries -

    -

    -We provide interfaces to the following third-party software libraries; -note that these are optional, but if you enable them some defaults -for multilevel preconditioners may change to reflect their presence. - -

    -

    -
    UMFPACK
    -
    [9] - A sparse LU factorization package included in the SuiteSparse library, available from - faculty.cse.tamu.edu/davis/suitesparse.html; - it provides sequential factorization and triangular system solution for double - precision real and complex data. We tested version 4.5.4 of SuiteSparse. - Note that for configuring SuiteSparse you should provide the right path to the BLAS - and LAPACK libraries in the SuiteSparse_config/SuiteSparse_config.mk file. -
    -
    MUMPS
    -
    [1] - A sparse LU factorization package available from mumps.enseeiht.fr; - it provides sequential and parallel factorizations and triangular system solution - for single and double precision, real and complex data. - We tested versions 4.10.0 and 5.0.1. -
    -
    SuperLU
    -
    [10] - A sparse LU factorization package available from - crd.lbl.gov/~xiaoye/SuperLU/; it provides sequential - factorization and triangular system solution for single and double precision, - real and complex data. We tested versions 4.3 and 5.0. If you installed BLAS from - ATLAS, remember to define the BLASLIB variable in the make.inc file. - -
    -
    SuperLU_Dist
    -
    [19] - A sparse LU factorization package available - from the same site as SuperLU; it provides parallel factorization and - triangular system solution for double precision real and complex data. - We tested versions 3.3 and 4.2. If you installed BLAS from - ATLAS, remember to define the BLASLIB variable in the make.inc file and - to add the -std=c99 option to the C compiler options. - Note that this library requires the ParMETIS - library for parallel graph partitioning and fill-reducing matrix ordering, available from - glaros.dtc.umn.edu/gkhome/metis/parmetis/overview. -
    -
    -

    - -

    - - - - diff --git a/docs/html/node9.html b/docs/html/node9.html deleted file mode 100644 index 212118d8..00000000 --- a/docs/html/node9.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -Configuration options - - - - - - - - - - - - - - - - - - - - - -

    -Configuration options -

    -

    -In order to build MLD2P4, the first step is to use the configure script -in the main directory to generate the necessary makefile. - -

    -As a minimal example consider the following: -

    -./configure --with-psblas=PSB-INSTALL-DIR
    -
    -which assumes that the various MPI compilers and support libraries are -available in the standard directories on the system, and specifies -only the PSBLAS install directory (note that the latter directory must -be specified with an absolute path). -The full set of options may be looked at by issuing the command -./configure --help, which produces: -
    -`configure' configures MLD2P4 2.1.1 to adapt to many kinds of systems.
    -
    -Usage: ./configure [OPTION]... [VAR=VALUE]...
    -
    -To assign environment variables (e.g., CC, CFLAGS...), specify them as
    -VAR=VALUE.  See below for descriptions of some of the useful variables.
    -
    -Defaults for the options are specified in brackets.
    -
    -Configuration:
    -  -h, --help              display this help and exit
    -      --help=short        display options specific to this package
    -      --help=recursive    display the short help of all the included packages
    -  -V, --version           display version information and exit
    -  -q, --quiet, --silent   do not print `checking ...' messages
    -      --cache-file=FILE   cache test results in FILE [disabled]
    -  -C, --config-cache      alias for `--cache-file=config.cache'
    -  -n, --no-create         do not create output files
    -      --srcdir=DIR        find the sources in DIR [configure dir or `..']
    -
    -Installation directories:
    -  --prefix=PREFIX         install architecture-independent files in PREFIX
    -                          [/usr/local]
    -  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
    -                          [PREFIX]
    -
    -By default, `make install' will install all the files in
    -`/usr/local/bin', `/usr/local/lib' etc.  You can specify
    -an installation prefix other than `/usr/local' using `--prefix',
    -for instance `--prefix=$HOME'.
    -
    -For better control, use the options below.
    -
    -Fine tuning of the installation directories:
    -  --bindir=DIR            user executables [EPREFIX/bin]
    -  --sbindir=DIR           system admin executables [EPREFIX/sbin]
    -  --libexecdir=DIR        program executables [EPREFIX/libexec]
    -  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
    -  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
    -  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
    -  --libdir=DIR            object code libraries [EPREFIX/lib]
    -  --includedir=DIR        C header files [PREFIX/include]
    -  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
    -  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
    -  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
    -  --infodir=DIR           info documentation [DATAROOTDIR/info]
    -  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
    -  --mandir=DIR            man documentation [DATAROOTDIR/man]
    -  --docdir=DIR            documentation root [DATAROOTDIR/doc/mld2p4]
    -  --htmldir=DIR           html documentation [DOCDIR]
    -  --dvidir=DIR            dvi documentation [DOCDIR]
    -  --pdfdir=DIR            pdf documentation [DOCDIR]
    -  --psdir=DIR             ps documentation [DOCDIR]
    -
    -Program names:
    -  --program-prefix=PREFIX            prepend PREFIX to installed program names
    -  --program-suffix=SUFFIX            append SUFFIX to installed program names
    -  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
    -
    -Optional Features:
    -  --disable-option-checking  ignore unrecognized --enable/--with options
    -  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
    -  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
    -  --enable-silent-rules   less verbose build output (undo: "make V=1")
    -  --disable-silent-rules  verbose build output (undo: "make V=0")
    -  --enable-dependency-tracking
    -                          do not reject slow dependency extractors
    -  --disable-dependency-tracking
    -                          speeds up one-time build
    -  --enable-serial         Specify whether to enable a fake mpi library to run
    -                          in serial mode.
    -  --enable-long-integers  Specify usage of 64 bits integers.
    -
    -Optional Packages:
    -  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
    -  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
    -  --with-psblas=DIR       The install directory for PSBLAS, for example,
    -                          --with-psblas=/opt/packages/psblas-3.5
    -  --with-psblas-incdir=DIR
    -                          Specify the directory for PSBLAS C includes.
    -  --with-psblas-moddir=DIR
    -                          Specify the directory for PSBLAS Fortran modules.
    -  --with-psblas-libdir=DIR
    -                          Specify the directory for PSBLAS library.
    -  --with-ccopt            additional [CCOPT] flags to be added: will prepend
    -                          to [CCOPT]
    -  --with-fcopt            additional [FCOPT] flags to be added: will prepend
    -                          to [FCOPT]
    -  --with-libs             List additional link flags here. For example,
    -                          --with-libs=-lspecial_system_lib or
    -                          --with-libs=-L/path/to/libs
    -  --with-clibs            additional [CLIBS] flags to be added: will prepend
    -                          to [CLIBS]
    -  --with-flibs            additional [FLIBS] flags to be added: will prepend
    -                          to [FLIBS]
    -  --with-library-path     additional [LIBRARYPATH] flags to be added: will
    -                          prepend to [LIBRARYPATH]
    -  --with-include-path     additional [INCLUDEPATH] flags to be added: will
    -                          prepend to [INCLUDEPATH]
    -  --with-module-path      additional [MODULE_PATH] flags to be added: will
    -                          prepend to [MODULE_PATH]
    -  --with-extra-libs       List additional link flags here. For example,
    -                          --with-extra-libs=-lspecial_system_lib or
    -                          --with-extra-libs=-L/path/to/libs
    -  --with-blas=<lib>       use BLAS library <lib>
    -  --with-blasdir=<dir>    search for BLAS library in <dir>
    -  --with-lapack=<lib>     use LAPACK library <lib>
    -  --with-mumps=LIBNAME    Specify the libname for MUMPS. Default: autodetect
    -                          with minimum "-lmumps_common -lpord"
    -  --with-mumpsdir=DIR     Specify the directory for MUMPS library and
    -                          includes. Note: you will need to add auxiliary
    -                          libraries with --extra-libs; this depends on how
    -                          MUMPS was configured and installed, at a minimum you
    -                          will need SCALAPACK and BLAS
    -  --with-mumpsincdir=DIR  Specify the directory for MUMPS includes.
    -  --with-mumpsmoddir=DIR  Specify the directory for MUMPS Fortran modules.
    -  --with-mumpslibdir=DIR  Specify the directory for MUMPS library.
    -  --with-umfpack=LIBNAME  Specify the library name for UMFPACK and its support
    -                          libraries. Default: "-lumfpack -lamd"
    -  --with-umfpackdir=DIR   Specify the directory for UMFPACK library and
    -                          includes.
    -  --with-umfpackincdir=DIR
    -                          Specify the directory for UMFPACK includes.
    -  --with-umfpacklibdir=DIR
    -                          Specify the directory for UMFPACK library.
    -  --with-superlu=LIBNAME  Specify the library name for SUPERLU library.
    -                          Default: "-lsuperlu"
    -  --with-superludir=DIR   Specify the directory for SUPERLU library and
    -                          includes.
    -  --with-superluincdir=DIR
    -                          Specify the directory for SUPERLU includes.
    -  --with-superlulibdir=DIR
    -                          Specify the directory for SUPERLU library.
    -  --with-superludist=LIBNAME
    -                          Specify the libname for SUPERLUDIST library.
    -                          Requires you also specify SuperLU. Default:
    -                          "-lsuperlu_dist"
    -  --with-superludistdir=DIR
    -                          Specify the directory for SUPERLUDIST library and
    -                          includes.
    -  --with-superludistincdir=DIR
    -                          Specify the directory for SUPERLUDIST includes.
    -  --with-superludistlibdir=DIR
    -                          Specify the directory for SUPERLUDIST library.
    -
    -Some influential environment variables:
    -  FC          Fortran compiler command
    -  FCFLAGS     Fortran compiler flags
    -  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
    -              nonstandard directory <lib dir>
    -  LIBS        libraries to pass to the linker, e.g. -l<library>
    -  CC          C compiler command
    -  CFLAGS      C compiler flags
    -  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
    -              you have headers in a nonstandard directory <include dir>
    -  MPICC       MPI C compiler command
    -  MPIFC       MPI Fortran compiler command
    -  CPP         C preprocessor
    -
    -Use these variables to override the choices made by `configure' or to help
    -it to find libraries and programs with nonstandard names/locations.
    -
    -Report bugs to <https://github.com/sfilippone/mld2p4-2/issues>.
    -
    -

    -For instance, if a user has built and installed PSBLAS 3.5 under the -/opt directory and is -using the SuiteSparse package (which includes UMFPACK), then MLD2P4 -might be configured with: -

    - ./configure --with-psblas=/opt/psblas-3.5/ \
    - --with-umfpackincdir=/usr/include/suitesparse/
    -
    -Once the configure script has completed execution, it will have -generated the file Make.inc which will then be used by all -Makefiles in the directory tree; this file will be copied in the -install directory under the name Make.inc.MLD2P4. - -

    -To use the MUMPS solver package, -the user has to add the appropriate options to the configure script; -by default we are looking for the libraries --ldmumps -lsmumps -lzmumps -lcmumps -mumps_common -lpord. -MUMPS often uses additional packages such as ScaLAPACK, ParMETIS, -SCOTCH, as well as enabling OpenMP; in such cases it is necessary to -add linker options with the --with-extra-libs configure option. - -

    -To build the library the user will now enter -

    -make
    -
    -followed (optionally) by -
    -make install
    -
    - - - - - diff --git a/docs/html/prev.png b/docs/html/prev.png deleted file mode 100644 index e60b8b4073572dcd83b07c60b082ea6e2ba394c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)fWJ4@hJr9=)Yx5|PDs2VC9?nk002ovPDHLkV1i^Ya=-up diff --git a/docs/html/prev_g.png b/docs/html/prev_g.png deleted file mode 100644 index 476d9568c900e2ada6c2019b67eeee166a5f1288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmV-N0l5B&P)18~ zIpil5yY|hg&aw;rvXQ~olHp&x|G5Aw{ug* Z|8M28X+2RX!WaMm002ovPDHLkV1gF^iYx#C diff --git a/docs/html/up.png b/docs/html/up.png deleted file mode 100644 index 3937e168f44bc997766dbe3b9383bd1db44f094d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h#LU3J`0lmo0U(Dbz$e6Y|Ni~?`T5VEKaXZ$ zILr2UCs3TRB*-tA!Qt7BG$5zc)5S5QVoq$YAz!lrkL&!DV=`*aVJGv=2TrrsUKR?`=XF~0x$5q(BOL&qeQ?X^G$FnGH9 KxvX2RVNRAoooEaAn8>@(e1sRI!V#<^f)p#-WVQt^!{}{R!<_yH~7!&%|GmpxjXG& eckJV{U(78Bbom$-1qlM(%HZkh=d#Wzp$Pz8Iac=o diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css deleted file mode 100644 index d1824aff..00000000 --- a/docs/html/userhtml.css +++ /dev/null @@ -1,30 +0,0 @@ -/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */ -.MATH { font-family: "Century Schoolbook", serif; } -.MATH I { font-family: "Century Schoolbook", serif; font-style: italic } -.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold } - -/* implement both fixed-size and relative sizes */ -SMALL.XTINY { font-size : xx-small } -SMALL.TINY { font-size : x-small } -SMALL.SCRIPTSIZE { font-size : smaller } -SMALL.FOOTNOTESIZE { font-size : small } -SMALL.SMALL { } -BIG.LARGE { } -BIG.XLARGE { font-size : large } -BIG.XXLARGE { font-size : x-large } -BIG.HUGE { font-size : larger } -BIG.XHUGE { font-size : xx-large } - -/* heading styles */ -H1 { } -H2 { } -H3 { } -H4 { } -H5 { } - -/* mathematics styles */ -DIV.displaymath { } /* math displays */ -TD.eqno { } /* equation-number cells */ - - -/* document-specific styles come next */ diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html deleted file mode 100644 index 1f0d2ee7..00000000 --- a/docs/html/userhtml.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - -userhtml - - - - - - - - - - - - - - - - - -MLD2P4 -
    -
    -User's and Reference Guide
    -
    A guide for the MultiLevel Domain Decomposition -Parallel Preconditioners Package -based on PSBLAS -
    -
    -
    -
    Pasqua D'Ambra -
    IAC-CNR, Naples, Italy -
    -
    -
    -
    Daniela di Serafino -
    University of Campania “Luigi Vanvitelli”, Caserta, Italy -
    -
    -
    -
    Salvatore Filippone -
    Cranfield University, Cranfield, United Kingdom -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -Software version: 2.2 -
    -July 31, 2018 - -
    - -
    -

    - -

    - -


    - - - - - -

    - - -