mld2p4-2:

docs/html/node24.html
 docs/html/node28.html
 docs/mld2p4-2.1-guide.pdf
 docs/src/userinterface.tex

Fixes for extending smoothers and solvers.
stopcriterion
Salvatore Filippone 8 years ago
parent 84288ff74d
commit 435babf6f1

@ -59,16 +59,20 @@ Adding new smoothers and solvers to MLD2P4
<P>
Developers can add completely new smoother and/or solver classes
derived from the base objects in the library may be used 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 require 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.
recompiling the library itself.
<P>
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 require the definition of a ``solver'' object, which is almost
always acting only on the local part of the distributed matrix.
<P>
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.
<P>
Once the new smoother/solver class has been developed, to use it in
@ -101,6 +105,12 @@ it passes it down the composition hierarchy (levels containing
smoothers containing solvers), so that it can be eventually caught by
the new solver.
<P>
An example is contained in the source code distribution under the
folder <code>tests/newslv</code>. This example solver is simply the ILU(0)
solver under a new name, but it should give an idea of what needs to
be done.
<P>
<BR>

@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
<P>
The translation was initiated by Salvatore Filippone on 2017-05-13
The translation was initiated by Salvatore Filippone on 2017-05-16
<BR><HR>
</BODY>

@ -6327,7 +6327,7 @@ endstream
endobj
557 0 obj
<<
/Length 5303
/Length 5872
>>
stream
0 g 0 G
@ -6337,7 +6337,7 @@ BT
0 g 0 G
[-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(39)]TJ
0 g 0 G
/F17 14.3462 Tf -401.542 -35.866 Td [(7)-1125(Adding)-375(new)-375(smo)-31(others)-375(and)-375(solv)31(ers)-375(to)-375(MLD2P4)]TJ/F15 10.9091 Tf 0 -24.352 Td [(Dev)28(elop)-28(ers)-414(can)-413(add)-414(completely)-413(new)-414(smo)-28(other)-414(an)1(d/or)-414(solv)28(er)-414(classes)-414(deriv)28(ed)-413(from)-414(the)]TJ 0 -13.549 Td [(base)-302(ob)-55(jects)-302(in)-301(the)-302(library)-301(ma)28(y)-302(b)-28(e)-301(used)-302(without)-301(recompiling)-302(th)1(e)-302(library)-301(itself.)-434(T)83(o)-301(do)-302(so)]TJ 0 -13.549 Td [(it)-317(is)-317(necessary)-317(\014rst)-317(to)-317(select)-317(the)-317(base)-317(t)28(yp)-28(e)-317(to)-317(b)-27(e)-317(exte)-1(n)1(ded;)-323(in)-317(our)-317(exp)-27(erience,)-321(it)-317(is)-317(q)1(uite)]TJ 0 -13.549 Td [(lik)28(ely)-396(that)-396(the)-396(new)-397(application)-396(needs)-396(only)-396(require)-396(the)-396(de\014nition)-396(of)-396(a)-396(\134solv)28(er")-397(ob)-55(ject,)]TJ 0 -13.55 Td [(whic)28(h)-417(is)-417(al)1(m)-1(ost)-416(alw)28(a)27(ys)-416(acting)-417(only)-416(on)-417(the)-417(lo)-27(c)-1(al)-416(part)-417(of)-416(the)-417(distributed)-416(matrix.)-695(The)]TJ 0 -13.549 Td [(parallel)-399(actions)-399(required)-399(to)-399(connect)-399(the)-399(v)55(ari)1(ous)-400(solv)28(er)-399(ob)-55(jects)-399(are)-400(most)-399(often)-399(already)]TJ 0 -13.549 Td [(pro)28(vided)-447(b)28(y)-447(the)-447(Blo)-28(c)28(k)-447(Jacobi)-446(or)-447(the)-447(Additiv)28(e)-447(Sc)28(h)28(w)27(arz)-446(smo)-28(others.)-785(T)83(o)-447(de\014ne)-446(a)-447(new)]TJ 0 -13.549 Td [(solv)28(er,)-466(the)-440(dev)28(elop)-28(er)-439(will)-440(then)-439(ha)28(v)27(e)-439(to)-440(de\014ne)-439(its)-440(comp)-28(onen)28(ts)-439(and)-440(metho)-28(ds,)-466(p)-27(erhaps)]TJ 0 -13.549 Td [(taking)-333(one)-334(of)-333(the)-333(prede\014ned)-333(solv)27(ers)-333(as)-333(a)-334(starting)-333(p)-28(oin)28(t)-333(if)-333(p)-28(ossible.)]TJ 16.937 -13.55 Td [(Once)-329(the)-329(new)-329(smo)-28(other/solv)28(er)-329(class)-329(has)-329(b)-27(een)-329(dev)28(e)-1(l)1(op)-28(ed,)-330(to)-329(use)-329(it)-329(in)-329(th)1(e)-329(con)27(text)-329(of)]TJ -16.937 -13.549 Td [(the)-333(m)27(ultil)1(e)-1(v)28(el)-333(preconditioners)-333(it)-334(is)-333(necessary)-333(to:)]TJ
/F17 14.3462 Tf -401.542 -35.866 Td [(7)-1125(Adding)-375(new)-375(smo)-31(others)-375(and)-375(solv)31(ers)-375(to)-375(MLD2P4)]TJ/F15 10.9091 Tf 0 -24.352 Td [(Dev)28(elop)-28(ers)-414(can)-413(add)-414(completely)-413(new)-414(smo)-28(other)-414(an)1(d/or)-414(solv)28(er)-414(classes)-414(deriv)28(ed)-413(from)-414(the)]TJ 0 -13.549 Td [(base)-333(ob)-56(jects)-333(in)-334(the)-333(library)-333(ma)28(y)-334(b)-27(e)-334(used)-333(without)-333(recompiling)-334(the)-333(library)-333(itself.)]TJ 16.937 -13.549 Td [(T)83(o)-250(do)-251(so)-251(it)-250(is)-251(necessary)-251(\014rst)-250(to)-251(select)-251(the)-250(base)-251(t)28(yp)-28(e)-251(to)-250(b)-28(e)-251(extended;)-278(in)-251(our)-250(exp)-28(erience,)]TJ -16.937 -13.549 Td [(it)-306(is)-306(quite)-306(lik)28(ely)-306(that)-306(the)-305(new)-306(application)-306(needs)-306(only)-306(require)-306(the)-306(de\014niti)1(on)-306(of)-306(a)-306(\134solv)28(er")]TJ 0 -13.55 Td [(ob)-56(j)1(e)-1(ct,)-333(whic)28(h)-333(is)-334(almost)-333(alw)28(a)27(ys)-333(acting)-333(only)-333(on)-334(the)-333(lo)-28(cal)-333(part)-333(of)-334(the)-333(distributed)-333(matrix.)]TJ 16.937 -13.549 Td [(The)-393(paral)1(le)-1(l)-392(actions)-393(required)-392(to)-393(connect)-392(the)-393(v)56(arious)-393(solv)28(er)-393(ob)-55(jects)-393(are)-392(m)-1(ost)-392(often)]TJ -16.937 -13.549 Td [(already)-348(pro)27(vided)-348(b)28(y)-349(the)-348(Blo)-28(c)28(k)-349(Jacobi)-348(or)-349(the)-348(Additiv)28(e)-349(Sc)28(h)28(w)28(arz)-349(smo)-28(others.)-490(T)84(o)-349(de\014ne)-348(a)]TJ 0 -13.549 Td [(new)-276(solv)28(er,)-287(the)-275(dev)27(elop)-27(er)-276(will)-275(then)-276(ha)28(v)28(e)-276(to)-275(de\014ne)-276(its)-276(comp)-27(onen)27(ts)-275(and)-276(metho)-27(ds,)-287(p)-28(erhaps)]TJ 0 -13.549 Td [(taking)-333(one)-334(of)-333(the)-333(prede\014ned)-333(solv)27(ers)-333(as)-333(a)-334(starting)-333(p)-28(oin)28(t)-333(if)-333(p)-28(ossible.)]TJ 16.937 -13.55 Td [(Once)-329(the)-329(new)-329(smo)-28(other/solv)28(er)-329(class)-329(has)-329(b)-27(een)-329(dev)28(e)-1(l)1(op)-28(ed,)-330(to)-329(use)-329(it)-329(in)-329(th)1(e)-329(con)27(text)-329(of)]TJ -16.937 -13.549 Td [(the)-333(m)27(ultil)1(e)-1(v)28(el)-333(preconditioners)-333(it)-334(is)-333(necessary)-333(to:)]TJ
0 g 0 G
/F25 10.9091 Tf 16.364 -22.515 Td [(\017)]TJ
0 g 0 G
@ -6352,7 +6352,7 @@ BT
0 g 0 G
/F25 10.9091 Tf -83.227 -26.999 Td [(\017)]TJ
0 g 0 G
/F15 10.9091 Tf 10.909 0 Td [(Link)-308(in)27(to)-308(the)-309(application)-308(executable)-309(the)-308(co)-28(de)-309(implemen)28(ting)-309(th)1(e)-309(v)55(ar)1(ious)-309(metho)-28(ds.)]TJ -27.273 -22.515 Td [(The)-270(new)-270(solv)28(er)-270(ob)-55(ject)-270(is)-270(then)-269(dynamically)-270(included)-270(in)-269(the)-270(preconditioner)-270(stru)1(c)-1(tu)1(re)-1(,)-282(and)]TJ 0 -13.549 Td [(will)-321(act)-321(as)-321(a)]TJ/F18 10.9091 Tf 60.74 0 Td [(mold)]TJ/F15 10.9091 Tf 27.49 0 Td [(to)-321(whic)28(h)-321(the)-322(p)1(rec)-1(on)1(ditioner)-321(w)-1(i)1(ll)-322(confor)1(m)-1(,)-323(ev)28(en)-321(though)-321(the)-321(MLD2P4)]TJ -88.23 -13.55 Td [(library)-333(has)-334(n)1(ot)-334(b)-28(een)-333(mo)-28(di\014ed)-333(to)-333(accoun)28(t)-334(for)-333(this)-333(new)-334(dev)28(elopmen)28(t.)]TJ 16.937 -13.549 Td [(It)-358(is)-358(p)-28(ossible)-358(to)-357(de\014ne)-358(new)-358(v)55(alues)-358(for)-357(the)-358(k)27(eyw)28(ord)]TJ/F44 10.9091 Tf 244.802 0 Td [(WHAT)]TJ/F15 10.9091 Tf 26.813 0 Td [(in)-358(the)]TJ/F44 10.9091 Tf 32.052 0 Td [(set)]TJ/F15 10.9091 Tf 21.086 0 Td [(routines;)-370(if)-358(the)]TJ -341.69 -13.549 Td [(library)-319(co)-28(de)-319(do)-28(es)-319(not)-319(recognize)-320(a)-319(k)28(eyw)28(ord,)-322(it)-319(passes)-320(it)-319(do)28(wn)-319(the)-319(comp)-28(osition)-319(hierarc)28(h)27(y)]TJ 0 -13.549 Td [(\050lev)28(els)-307(con)28(taining)-307(smo)-28(others)-306(con)27(tain)1(ing)-307(solv)28(ers\051,)-312(so)-307(that)-307(it)-306(c)-1(an)-306(b)-28(e)-307(ev)28(en)28(tually)-307(caugh)28(t)-307(b)28(y)]TJ 0 -13.549 Td [(the)-333(new)-334(solv)28(er.)]TJ/F44 10.9091 Tf 22.914 -37.579 Td [(smoother)-14(class\050mld_x_base_smoother_type\051)]TJ/F15 10.9091 Tf 45.971 -13.55 Td [(The)-333(user-de\014ned)-334(new)-333(smo)-28(other)-333(to)-333(b)-28(e)-334(emplo)28(y)28(ed)-333(in)-334(the)-333(preconditioner.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(solver)-1064(class\050mld_x_base_solver_type\051)]TJ/F15 10.9091 Tf 45.971 -13.549 Td [(The)-333(user-de\014ned)-334(new)-333(solv)28(er)-334(to)-333(b)-28(e)-333(emplo)28(y)28(ed)-334(in)-333(the)-333(preconditioner.)]TJ
/F15 10.9091 Tf 10.909 0 Td [(Link)-308(in)27(to)-308(the)-309(application)-308(executable)-309(the)-308(co)-28(de)-309(implemen)28(ting)-309(th)1(e)-309(v)55(ar)1(ious)-309(metho)-28(ds.)]TJ -27.273 -22.515 Td [(The)-270(new)-270(solv)28(er)-270(ob)-55(ject)-270(is)-270(then)-269(dynamically)-270(included)-270(in)-269(the)-270(preconditioner)-270(stru)1(c)-1(tu)1(re)-1(,)-282(and)]TJ 0 -13.549 Td [(will)-321(act)-321(as)-321(a)]TJ/F18 10.9091 Tf 60.74 0 Td [(mold)]TJ/F15 10.9091 Tf 27.49 0 Td [(to)-321(whic)28(h)-321(the)-322(p)1(rec)-1(on)1(ditioner)-321(w)-1(i)1(ll)-322(confor)1(m)-1(,)-323(ev)28(en)-321(though)-321(the)-321(MLD2P4)]TJ -88.23 -13.55 Td [(library)-333(has)-334(n)1(ot)-334(b)-28(een)-333(mo)-28(di\014ed)-333(to)-333(accoun)28(t)-334(for)-333(this)-333(new)-334(dev)28(elopmen)28(t.)]TJ 16.937 -13.549 Td [(It)-358(is)-358(p)-28(ossible)-358(to)-357(de\014ne)-358(new)-358(v)55(alues)-358(for)-357(the)-358(k)27(eyw)28(ord)]TJ/F44 10.9091 Tf 244.802 0 Td [(WHAT)]TJ/F15 10.9091 Tf 26.813 0 Td [(in)-358(the)]TJ/F44 10.9091 Tf 32.052 0 Td [(set)]TJ/F15 10.9091 Tf 21.086 0 Td [(routines;)-370(if)-358(the)]TJ -341.69 -13.549 Td [(library)-319(co)-28(de)-319(do)-28(es)-319(not)-319(recognize)-320(a)-319(k)28(eyw)28(ord,)-322(it)-319(passes)-320(it)-319(do)28(wn)-319(the)-319(comp)-28(osition)-319(hierarc)28(h)27(y)]TJ 0 -13.549 Td [(\050lev)28(els)-307(con)28(taining)-307(smo)-28(others)-306(con)27(tain)1(ing)-307(solv)28(ers\051,)-312(so)-307(that)-307(it)-306(c)-1(an)-306(b)-28(e)-307(ev)28(en)28(tually)-307(caugh)28(t)-307(b)28(y)]TJ 0 -13.549 Td [(the)-333(new)-334(solv)28(er.)]TJ 16.937 -13.55 Td [(An)-222(example)-222(is)-223(con)28(tained)-222(in)-222(the)-222(source)-223(co)-28(d)1(e)-223(distribution)-222(under)-222(the)-222(folder)]TJ/F44 10.9091 Tf 336.364 0 Td [(tests/newslv)]TJ/F15 10.9091 Tf 68.726 0 Td [(.)]TJ -422.027 -13.549 Td [(This)-350(example)-350(solv)28(er)-350(is)-350(simply)-350(the)-350(ILU\0500\051)-349(s)-1(olv)28(er)-350(und)1(e)-1(r)-349(a)-350(new)-350(name,)-354(but)-350(it)-350(should)-350(giv)28(e)]TJ 0 -13.549 Td [(an)-333(idea)-334(of)-333(what)-333(needs)-334(to)-333(b)-28(e)-333(done.)]TJ/F44 10.9091 Tf 22.914 -37.579 Td [(smoother)-14(class\050mld_x_base_smoother_type\051)]TJ/F15 10.9091 Tf 45.971 -13.549 Td [(The)-333(user-de\014ned)-334(new)-333(smo)-28(other)-333(to)-333(b)-28(e)-334(emplo)28(y)28(ed)-333(in)-334(the)-333(preconditioner.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(solver)-1064(class\050mld_x_base_solver_type\051)]TJ/F15 10.9091 Tf 45.971 -13.55 Td [(The)-333(user-de\014ned)-334(new)-333(solv)28(er)-334(to)-333(b)-28(e)-333(emplo)28(y)28(ed)-334(in)-333(the)-333(preconditioner.)]TJ
0 g 0 G
0 g 0 G
ET
@ -9249,8 +9249,8 @@ endobj
672 0 obj
<<
/Title (MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS, V. 2.1) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 2008-04-08 Pasqua D'Ambra, Daniela di Serafino, Salvatore Filippone$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords()
/CreationDate (D:20170513100533+01'00')
/ModDate (D:20170513100533+01'00')
/CreationDate (D:20170516131616+01'00')
/ModDate (D:20170516131616+01'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2)
>>
@ -10067,7 +10067,7 @@ endobj
/W [1 3 1]
/Root 671 0 R
/Info 672 0 R
/ID [<A352B85D38EE7995AFBD0E8BA2785D3F> <A352B85D38EE7995AFBD0E8BA2785D3F>]
/ID [<8A3CA28412DD333F87FA1F1F7E13B1EF> <8A3CA28412DD333F87FA1F1F7E13B1EF>]
/Length 3370
>>
stream
@ -10076,10 +10076,10 @@ stream
m96m86m76+m66;m56Nm4 ¨m3!"¨ m2#$¨m1%&¨Wm0'(¨^m/)*m.+,m--.m,/0m+12m*34m)56"m(78&m'9:;?<=m
mmmB@ AFCgDmm IGáHKLMNOPQRSTUVWXYZ[\]^_`abc°°°°Jl°°m 5T°°°° ° ° °°°°°°°
°° Sn°m m(GB@'I<;°°°°°°°°° °!°"°/°%°$°(°#‡š°&m°*°+°,°-°/°1°2°3°4°5°6°<°)ŽÛ°8°.°0°767>=F:°?°@°A°B°C°D°F°G°>°K°=«°I°E°Hm012?°N°LÅ¥°M°P°R°OÔâ°Qm°U°Sä°T°W°Y°Vó¼°X°^°Z °[°a°b°c666666666°`6 °_76 ŒûH)*+6 6666666 k„66mmmmmmmA6666666#6˜6m 6 6!6"m6%6&6'6(6)6,6$À•6*6/606.626-÷ 61,6465666768696E6F6B6376:6<6=6>6?6@6A6M¨0¨M6G6H6I6J6K6D6O6C/6L6_6Q6R6S6T6U6V6W6X6Y6[6P6Z6c¨¨6]6`6\r—6^m¨6a6b!I¨¨¨¨Àg¨¨
¨ ¨¨ Ø⨠¨¨¨¨¨¨¨¨¨¨àb¨¨¨¨¨¨ ¨!¨"¨#¨)¨ü‰¨$¨%¨&¨'¨(¨I¨@¨4¨9¨+¨-¨*¨,m¨1¨.& ¨/¨3¨7¨25¨5¨6¨<¨8¨:¨;¨>¨A¨=Œ•¨?¨E¨B°@¨C¨D¨G¨J¨FÃèHm ¨N¨Kâ¨L¨Q¨R¨S¨T¨U¨P¨X¨Oý¨V¨Z¨[¨\¨_¨Y ü¨]¨b¨c¨a¨`Ãm   
sT m!x<04>1$ #<04>m!3$­è%-.C4È›589m"JDâŸEKLMNOPQRSTUVWXYZ[ë<\8„]|M^ºþ_Û•`ïa5>b] c@m³|Ckmmm¤9mÁ½mmLjm¥âmm#m$m%m&mDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm[m\m]m^m_m`ma° í,
¨ ¨¨ Ø⨠¨¨¨¨¨¨¨¨¨¨àb¨¨¨¨¨¨ ¨!¨"¨#¨)¨ü‰¨$¨%¨&¨'¨(¨I¨@¨4¨9¨+¨-¨*¨,m¨1¨.& ¨/¨3¨7¨25¨5¨6¨<¨8¨:¨;¨>¨A¨=Œ•¨?¨E¨B°@¨C¨D¨G¨J¨FÃèHm ¨N¨Kâ¨L¨Q¨R¨S¨T¨U¨P¨X¨Oý¨V¨Z¨[¨\¨_¨Y ü¨]¨b¨c¨a¨`Ŧ   
sT m!x<04>1˜] #Ÿ¦!3$°!%-.C4ÊÔ589m"JDäØEKLMNOPQRSTUVWXYZ[íu\]~†^½7_ÝÎ`(a7wb_DcymµµmmUm¦rmÃömÐmm¨mm#m$m%m&mDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm[m\m]m^m_m`ma²Ùïe
endstream
endobj
startxref
585004
585573
%%EOF

@ -860,16 +860,18 @@ as follows:
Developers can add completely new smoother and/or solver classes
derived from the base objects in the library may be used 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 require 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.
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 require 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
@ -896,6 +898,11 @@ it passes it down the composition hierarchy (levels containing
smoothers containing solvers), so that it can be eventually caught by
the new solver.
An example is contained in the source code distribution under the
folder \verb|tests/newslv|. This example solver is simply the ILU(0)
solver under a new name, but it should give an idea of what needs to
be done.
\ \\
\begin{tabular}{p{1.2cm}p{12cm}}

Loading…
Cancel
Save