From a9655deaf4df9f3fdcc959e0bde11ff91da11e8c Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 11 Sep 2014 19:08:57 +0400 Subject: [PATCH] COTECH: Update names of DISTENE products Almost full replacement of old names --- doc/salome/gui/GHS3DPRLPLUGIN/doxyfile.in | 2 +- doc/salome/gui/GHS3DPRLPLUGIN/doxyfile_py.in | 2 +- .../images/ghs3dprl_parameters_basic.png | Bin 25445 -> 19048 bytes .../GHS3DPRLPLUGIN/input/ghs3dprl_hypo.doc | 60 ++++++++++-------- .../input/ghs3dprlplugin_python_interface.doc | 15 ++++- doc/salome/gui/GHS3DPRLPLUGIN/input/index.doc | 15 +++-- resources/SalomeApp.xml | 2 +- src/GHS3DPRLPlugin/GHS3DPRLPluginBuilder.py | 8 +-- 8 files changed, 61 insertions(+), 43 deletions(-) diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile.in b/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile.in index 46be5e9..e945673 100755 --- a/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile.in +++ b/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile.in @@ -20,7 +20,7 @@ #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME GHS3DPRLPLUGIN User's Guide" +PROJECT_NAME = "SALOME MG-Tetra Parallel plug-in User's Guide" OUTPUT_DIRECTORY = GHS3DPRLPLUGIN CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile_py.in b/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile_py.in index c6f479c..b56202d 100755 --- a/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile_py.in +++ b/doc/salome/gui/GHS3DPRLPLUGIN/doxyfile_py.in @@ -20,7 +20,7 @@ #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME GHS3DPRLPLUGIN User's Guide" +PROJECT_NAME = "SALOME MG_Tetra Parallel Plug-in User's Guide" OUTPUT_DIRECTORY = GHS3DPRLPLUGIN CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/images/ghs3dprl_parameters_basic.png b/doc/salome/gui/GHS3DPRLPLUGIN/images/ghs3dprl_parameters_basic.png index cdf1c3d7b363b9d22349bfe2b52b1d4e6f8d4c37..78b369556114e5d4ab9ee5edcf3ae43e7e62c5af 100644 GIT binary patch literal 19048 zcmb4r1z1&GoAyBjkq!arMj8PLNhPGaTUxq78l^$$KEM&AyStn(TTu=j80-2PNF7`Mh@n7PUf~Y5Os4KV_R2p5i0{nM_zJ8CuT=y zLjyZID{~`*Kfe!B6H^2)Bl+_(6>}#m6NrSHovqUc6GwALauHh_M<)koqd!kP@U#B} zfsjKaMc=A?Oxas-)xnv;gZzpScE%EIjU*S_`eul~i(sOzTeh=ZjGXbAQnnM>uw59Z zqu$c3V7h;nu^3Hd7eVZqSQGpk&d`|?tZ)jcj=h%#K4z;9rP z>(82#y7un;{pgLGxw)#AXu18pC>=!R4Amp*Sna1)!Pxd}aW1QUra@YS4nN6Lh|QR~ zfX@*gL`ECATJ#3~jcra6=LpHx{viCf@r<{@VCR^w}~(WRVUVdLEq zdrK3|svH7)E77B7y(Kkw2djSKteM1;Vor_;%D*S3ajWttSCGOwA3@R;H0*T)RG*7K zUubd8Ofkw`lxS$&os-m@Z}D;7zYl6`_#XSTzh64@0k`n$BJ`RP?i(AlJt~uvc@V}W zdj0gW-rSs^!DVmRLDTE{lCk+uqM)LuM5(e8kDMHz%MfSgsq%0r7E(vlN#kEW zI$Ay&U4CHik5IV47msvVKW6$^$n*9Q#L$I_gMAf?wM6$82Qq0r&24NqZ0bJypjTJn zFc_YZVF-C&reXAs7oB9ZAt~)VM_zwOzp-v>xV?kHkP%YrMnwv#KTnf6U&=EQkJ!>P zHGP*?!jZuAa3Ur}sJMS?SrXNLO^9^b?9E*3v?h1jb*JBq2k{k2nA}$mB;wkLi;v4{ z8eFXYJ>8OE8>1`Zgd*jApY8aBvCKJF=l(g}ubst4w*nuZ9CnI^GTMlC&8#b&3u(9- zaIXh&LV{=S!j#o z>!!!R>kH~xe_wwLtR;zyDzVN!BlWm^)M6mZwD-t!^+sFUikSWhW^(n*Y0RyS4Kgvg z`AU0X;tEnwf0h8*mc?0eKb$k}h{EsZ$11O?&dxr%90)nGv$NaG zdz}2b%7O8~tdlvt4<~bJ4tBm~zKb4^g1fqQPk1^}C&i$pMJOs+S9&`gB0V<$uF^Wo zk$FEkE2}Ds;^1tDTf2s-s&q?aoZxk%x|LOmQOo|_jf?mF?$Nn!nH87W?XXxVp|C6b&<0LyPcc;t`t|5RdcSLAMJQ3YKi$jVMuNM)hJI=k@4l z?8Kz%6hY^aXAveA+sWVG@mvoP!&2||4^r7CC-GX)w|{E*ad>#Y3i@8z>JuFpc-?## zbbQiMX)__EyC!WjB+YCMpHbC)A&;BDZB#6>x&HnMgd#niDLgq&Rh|n94-rm}EJzbF zH5RH5!JLz`CvjLYW(rdkCgIS{L3MOZ<+)tVo7S$8vgtmso^yNbjJ&pX-65TE-?JR< zt@pdXuP=g3CH}Nr zGR1FJfm7QPjQn%6nl`~H0%qQ;dkyk@)iqjGp4s*F+eLix>ny<;qKHpdBn*D!gzk)% zhpEQ(Uwsv-T;8a${;4Cq6gXFC_I7z{v@xOW)~v1MK&T>CzcHY#t4}aek{YD--e#-JPT6q!WgKi4yXLz{Y^bEJc%}h*}uS_$kAeT2c;_t+` zC&!i5G*wkjt4e?2i2N4in}AABgi~yl&dkG7>$%4)rPL|-URUeik8%2pru82IUi~SHd-w2ps ziEhowq0mN1gW+R5sIEB)#JS{rG`Dl_o>IJj&s|WmfWkm-UxIJVlq~M+v*?J(%j=9|RPUDxlZQ3UX6=+P%QBk{olcHg?f$;H*}&Ku z-zwF#s^=Yt^{d;!`@&$X3Cz?|wZ!3XS_n==pLY$6&@aq~g@$@xO9nAf?^j!xo0n-? zNju_fe_^k1fNTBnV>t(wT&`(FQ;Z!nXke2vUFz< zeCc$G<3B(+8}al20pfA7x51DHo(dl{~#a0b_cgjhoPgxlFz7lK5nCfn0wbo)lZLH`1fUXluZW$cC+0l z7n_@O8wTI|`=&udeiwLa)6~ttSO62OzB*s%n4ga@%?^Y_CS1IxVpi0iO5{zI+J-<{ zvs=)etZXN;q&H%^tC#9yI#gF&KA1V)u4XwC-FLsl3S{GO>U-(R6(mjSEgz#dJDXUn zL*RL{Siwg1M3E?B#>1g{xI?wz^UZ04iVF4a^p8omOniI6wh^Av=?N&x2?dq5`tSXO zIFza?qA}GTuZOMcvmo3drfJ9_XN#{vWo%XD29=bQjynE^i#4;L_fUi9mfUdKp2z8j zoJ9%io%8Qm4|TY}F8ymY=?`(FS^4f|eftQQxueE=9$!6QO8qgl( zM0y!E_Un@Xn2Timo}TZQ&Lir!25{1eI7D*d2Jhxt)dFl%xpyKai?s9d^2Ee!HD3+~ z6;?d_nz=X_?G7j1ov!iF)YLRI9IfasQ!652v~F~FG~m@Sj==S~GstqD&Zt3eMvHc< z{9-w?{dJr_8;#p~hQH<8hr2-dVOUG^1Nn^CY%uy>(JLbE+0w1|-rnhte?Nh|cRt`g z>lR?P=dnu9x=+yOTYIJYKwN%tazm*{-{AIITDA@S*~|ho2+}%Q&1xUkO#U!7CXNsJ zW}RaId2h7fu#^3*K)vK_Z|8&cMrL6lI)uA;_pxtyYW=FWaZ|s$qE1RlUMIKJ&$Pw| zSnAQP?s@;piYJS@n6!4Qt&MbX-=L(d&q--zW#aBy)&Fz@R~MI9Y*k0*#Y zm!B4TkB%55BDE(H@S3FYy-xdl8<9s}gMxCbGV!Vs%H?yjj^!M*y588=>#nE~*=<-h zKF&E<~h;|KI#!l2i-ZXIrAnA?y^s~~1JsV}jt7+P6?><}NCp zS{IxtRwOd8kz^E(lnNLYcwJvQuWjqbS>G>JgR_+Kj>A!0sIP_&E^|$Auvz?kn@J2Q z+)EiJ;>^oRPruF_dPpS=YBvG%LzS*@wf_W(qAu^m-oMk(G322@Dhw%omU2QY^7gtD z=?}r%*^f!65>pE57j1V$m5!8_j=W65K%h_&SA8As9}ws!bKyv^ zAC&%>LNu2@T!sHe0sb;ku~p{@#kidcws@OxyYOGf<+bMu4dfZ*nen45cBWSY?Gpzz z`iH0p>4^Er@)D>hXeZG9ClE6BA04FpyLW=#zNI4y80sw%1c%F{f~X-+^(!tx#05>ohCz5 zQ?4;(mZbIqDYzhi%(odgg^-tYr4vWrg8Uw7E5b`P2r?JmZ1UZXes28KHn6yO-xEdE zaeQ^MAuB7}tGaBkOgbh&E0;3;WlBa&EK8&t-N*Vatgh<#_&7K?cqo-uTT|=m@^W=! zqy55%A}rKOSU`M^wW51l3B4*DLSPK$Swlt-csC1rc9`Rn5E-tPCBDE5)vfm}KRzb0;ajABUKbDr3+S{o(7*Dze ziM+kN!{G7N%`rG+{CQF3<>gszOES$QgCdBVy~JPHzRn-haD_Eerx7XW946I&zDz@k z(p_m6FSRM~`GPH)`#^JI(Lo{w=PP2rVjGKDgYiNxg~wr4!h~jRZ?5JbbVh7Z*~(_* z_9|?Hfq~&o-7TKSny}62caI3`xtc0)br1&!2gG~!L(?|dTsv5F$#6@O-B@euH$!DN zH@7DD^Zbu8G4La!qubMEMkCSWMn*>UXf#$WD_&|(yIH3wXapt4M@Jc0Sh%>@X%hwq z2lTU=qdommCvw|2N1FYDf`Z0|IZ|xC1kD(eCapm?P~Mhi{u+Qs9X$ z>YAIIgR}cfmeJE2iaZu4$BgX1I9Sqewz_H$!VvPheheWFzjQLjUFt<8Qu}_#@KxVi zWOQ`&5yZsAWZS{s-ahVKkHS~pFJK@7f&zj911&gzYSlZL!vwt&H^R0tXL(k3Hi+;D zrI?`8H*mhwme=wFa7fF2F`W;UEQe$1j7vC3qWZWY`)lEim`hxam029~Lx1b;=D{C-~vtd*(zdn6+Z|rLeUJ&&%lGu5v zKaRbttIzqarnxyiq*Sy*CZoRSc-YeO&a);B6``+4?O5iq%G)YTWWmq=up9Q$>axXV zqZ=Xd`?3Q=TT3G%EUYry2f=k&9UWc7Q?g&%D;A~}Tt?Sl(uYJsjtSB@5HSd4F0K?m zXlx#v^bg7mzC$H5u(f5qLZX>hI0i$cA0`rQ=TGUO(H6pkX6N8+&&kc9-(+!C@4Q1z zhN$FOd7&xUF|{aU`ldnfy1R$mfjz4f6Eco0h?i^r_J=r6oJQ}(2&V8EsvE58xTS=` z4+(Nxn?mpZS?1#v!;#9$_2&o+i~RS)u0L8z-sT$Q-`1}iAsWx$ylGD1v{dUVh#+HM zR_SwJaaiB)ZV@!@bNqrt(W%zEw52FiMR9o9b={?fP|{q4;Jei2&4=@2htQueyYFE! zAsF5GOYn@BlB)C`{4Gf~9?5ST-J8hOSJR~K3MnQYp zsqi_H+W4@}_JhRc^imgge|sQ0yst@G>)!rC!_C>=R9|&max!61yJnf8SWWSQ``PZ<#lwAdRT)h|o}xm3&3)Cx zkHvJ?lEtZF-MMBj5AYn~o7VswMdp6X$S6N6DUyRvspoalC9c(=dlpSZD(Lj_%>&%t zT-Afu?SbuLBLy;C>tt8F)dTpz@9(}^EEV7R-ouBJ3goMO>UN5_cHMbGF%$ikSW)%Q zVNx+;CI=%Ba6e6CGm?Yx4w_bkI6!LS>~>c3V$5yFR8&>DZRQh`q6j?L&Ufo7M7`n5 zlNk`I_%FQn2mPVbs8O@oxx;jKe#B_snCPMFu+n2HAqT-`BRM-4o>&Q13 zdt{sz&&v2M#&hp(&M`>&6F*9NefVfDLrg93s&csT$4P2GR3ln3m zsj9lO+|d_Ke|aukSQ2rt;NiNJO@>Ff&fPEHwh*cy@ZQ|u>eW^rHK&Q4uCj(kt?g2? ze$eeT*D_IW_8tgC23vs zwX7n?^^kjf;~`k}mSk3R%W>x+4D3FrO>UwrgHqUT~f?G&JbCB=?DjL2X@8$}i*% zFyBgGkLpcDZZAzSz6}0`SiD|rDREgWlKZ1=<2l8@;dbUPR7e!&2E=cXBvJlL$@}8~ z{WHY>`>DOV2bP%hf-KF|LB0w!yCl0N(}Z1Ebt6B=4B)~BP1QY5J*_d&C=QdioDWCd z5^x3Ei?Z~Px7~+pbSZq^rujnU@Wb#Sn4B0rsC~Iqg9$wdT*fRZi7=$*_B>5y2h zR(bU4jaA)hPjm7s^U*S+?r-17*=>_vsi>%k;xQD_A5f@9oO%Eo!tkxPZcm8LkoYT3 z&WL-*(0{`F9G-5CEqUKq zgGymZHN|B7^0>Z@9y9v2%M9GjDwSu5*OQC(jBvc}HY z-s|CBKyhelLtIo;LrY_}s*KNL-Actcwkpm!=$s^2bOoZIr$>r~^|Madj8U4Aj0|>r z>*$Itw+A0<)NYFQXe&HBO)ShUb#|< zeD5Os+TgrX?Qvma7}tYQ7lN&BZrw3^zBda^O1}Dd6B`$wM^~`9z4^$uIJ~$xoJCPq zUHoF0*$14`*w}=!qMF;u^`P-o@4D$avy4`)jKfv*ML;@=mzNhPu|XK5>{fIJH^$I` z-#KcL7m;9`rrs5DTAN!~8hI?=1~@D33=9s;%~mzV*%ka7%?OSNJD94`cl2A|o2{O! z@Q9e!x9Pm5tRQhoJbtj7^%Tlc*s=L%A_|hq`u^0}*&0Uk5O9ucgE^eG^ zff|79aK52`jy@oTz6&SLql9ya8H94{gDx>&=LjThW>!`VbaXXEMS2E?N4^<<4$5+G z9i4g5(~wb6R8>@HWfETkhcbaxzxm@)TWjlkfW%RCSJ&18f`aB|X4w8?baFpYGgbj8vu1LU5Nn(B45(#hw#FL9|IPc}n# zSnjUJA5u#c9TUTGnDA+XHN|$mwru)_>TlXn@3p~ICb<$L3b6mmilGsek;BaVz^&>w zBV_YuQ+M^=oL05fQ;29kH;#>(Z5t;!C=GQ6jwUojO z8aBC~Nm&V=55t7!rl%X-PO=U0J3d!eSNr*ih>AWgo9nazGi5b5pVzw%ot~RpU0b^$ zH&;ScHBM)8e4H9PU4lnA&|=)+IU(UtngAHPq~ze_@aa@?ZFF?>XiuL^yfl1PVRiLC z0LzkUk_A~q6mPM`$LFei4TDVZ_H+veV#h=55Embh2cctRR89yB3k#|G&&~K92{fQ)6eO82SQYx3}`qxC%U>2si!H%wWDin7LG42TEJ}! z!XW$Aas$g>d7Hiy2LcFxX8{IE4LD~@MlaX6sjaQ8FTJ%BbZCcosL3cqIJaMh6TdD8 z9UasvYwJBQVeW4$GJDgukzY4c6c)@kMD*{4bEnBh+0;S1*xBk)0O|3bVW18 zx($E?Zmh2Q2L(0M)~Yy{hsuZBi>j(l3=gyN@FX(z4i8U_j3}t9%S%f`1uUyqWn~jz z8cY^yg7yenntU365|?!{ahEm@sepTIVj`Ub6N^?Q9S_gP{&;4ft^&LQI&?`TiL0wC zScJfUdxnoM%eiW-nyKn-lwhiD)hL=blHw?E) zkzob>008Ug>HwAmP!-#F9rBhxu0E8@8i3+@fFt9XwYRsoS+uKn0e>8Tesp)gzuqZn z4@9$^uRQ`Pc31dae7@KId>xpAPWsL_J0&gaL#YMn=|3A>57GoYqy&YZa>q7$)gMi* zL{bx{_mIZhQHlhj5^z~1W@oQwh=sZA&r43xUzy=J?;pG{_JQH5HV)^5GLo4o+E|$I zK%8DLwtk^`l=u$x_J?M~bS;IWav1$$cpxE7 z5PzX6H#>OGIu|rak@@Se9+86jf4~UCmc|$-TNIr^SEt*Mft;Xc1nXl3L@!~a778!J zdl1&gM9`1{GHCU5&wU#uE!f0KVF~Vlczj1!S2!7W+DBu4eHg0}OlxS(0lNKaZ$7VL zLq>k(s1BE?1gH0!VSNnV&_x#NvOV5Ab|O^4=W~A>ip!{^qy!K_+4~=#0pQ18d-Uo3 z+4cmbM|5%k1_Y2$M2LEc9*uO5zwM(>twTfmK*7URr=Zq$cuh8Qbuk2HY~=8|9$8ab zef+*P&V;}AqR&(ZauTk2aUtv+91)}fpe*(H1)*1) zk0C-xh1_>{b{e=Gia_=8^t_cBP6|RNDX%W0odvV!%BYQOH7(P08Q#|)`c%{*yH??p?w4t{*=0$1{uewe^Bx)~B`1ITy*=q;m%fn@e-TkebvhrAMEsrFZijopL z7u$KtRF6V0-&Tma`qUr5Cn*`Cl?HMGjg*%_9s@0Bq25^=r#w)CwsmS_ z_y|^E-~JA)uZaTn7c?~1)1_~9b-i>?>wzu;c>`*?vGMAD;sQ*_$K`s)9B7YVk}B%&{eyLY^etCa%sA()7WzCArXpszgeUaCW$^M9~==l%{5kk?0m2a@r* zTb*wHgxIYQ5J*e+1EnMCYUKQ2NyuiNCtcwqfZaB_4N*-oxS!P@17K#eIg&0ajIqt& zZ!E#$R$9DND`?-=fl`LA!8FM#^ngu(JM-NG)^_bOQ83h)s`G~!bLsmmtT2hxlz zOr`kmq4TAHOi0HwnJ+ba+1nrGs}_J33nb)VWE`Nkar-PD8Fk|`YrS$G*sOEhAQf`) z1W-R`I0eyH7RsetYezv%Evl^SxcoT)faXtO@H9#Esh71M{niot{#<-thmq#jFJAzR z6K^!Gn4zbqUubZB!NN8$I0*DMG*r}J>#@<%>+?NmZ0utQU`vvcl3+zQc-?S?b#BjA z?SSc{U1K9_>de8$CMh8S@eL>8YxcZ~mg#(_LXMX$53?~aU~^oTxwQ4h8;=B2w*Y$eP>9I+msD-h7qy4Hu=Q;+yxat@?;k1meGL zPMUkQsUfXv4u5dt20sx2f!FP26pwh%z`!%4$E#PL-;jfEsr8egP@uRT0~87d1q@Y@ zR@LW&nKsaNMvHa%aBy%SALgp}K+gct21zS1o8rR4Myr|fp;W#<1v}Xs6^H>-8=S=~ z#nK5ZCS@8Y>%%yjG`-e82L`~^$<|jn3ux-QySsy{4L0%ey4&5gV%Iftaj9-@7OX1I z$=OJG?Z{xdJO>sgP|SkYp5oAg;_UZ@N@Xya6UuJVcf8g=Rj7EH*^|2;J>`+@5wR~O zCI&2PRVhMYUYApi9J$oz4C7nIUN`4^RDx!3e{KXRpUW2==hIEaZ4zb3=2VG(CzB`W zAfQ&02zm3{ubkW*w7_0F(lRniTe%7f3O?MP$OAQsIQuiEug-(q!RQ*e82$XwDHLz1jV>7%_RaQnpMNJX%X--)WP+-1oV%3Mq-=)Vx zff?aUdJXP{-xCbLk=bjMYogBp_yEV*?#v08t@x~ZR&&+NiZ*6u7aK62>zkXM&CP)% zj*XI*`|^s4g32lqJ{Or3o+z#3ZZe-gBUyZJ3y3vHSZta4Vlofpyzoer$Dro{WgJt9 z=Rahxzd7Jx9h}3bt5XHP&-S9{e+vAE|3zOAqn(p+e+>9u`uBp9J;h-rF3gAsGXrcU zYH3@&7J^qF6jW=X4?{v#0|4<0&V5VUPKmQ)K=+niMN5mJx>51_JN*{#qTZ_CRxe!RV*H*zBb(BGNuJ<+@78Hmo5gQ5b5U2?+o9 z?k{S}%G$Lb(zCNoZES1?zlgGIP=&_ihf-|B>)hN$CBzIaJJia@q&d9S`4gQm!L=X; zRlpv)%LQaIP-VQXj!im4aesG5B*cqwU}!+1tzN@hw#yj9he)xm3&mFH^hjmENN zE6O{Cs?@7jvBfu)RN-2IF9fP26EiajuhZtrw@zHf!?P>3~i^Ovk$S-U|@I%p;}&E*3;87>JCSM z2naL@J=`kK>P8S^Z(jxbvf4R0QBwvdU)Ma4@Oc*|=~dKhImmZ0B=8uTo6k(7?*MWh ztfHy{77DM&J`?1lo156Xch^@}s`ENlBmkh%NXLs7g;9>`6ls)wmT*LX93342&}P+T ziTDbiNt6!D1HGKf&{|0eI||b>dt;!dDyqVCm{RS|<7f$VU@q%fCr|=Gi+Xr{jR66u zibcD5;O9@a7cX8gF@0ePhwOM*$VtWPL&%TcM^zQ;HCdRNnp#?FtEjB5u2#CASp-@U zA%&3t4vtF4f~4@d%2{#3>A%Sgh$C}bFvErBBSYd@bo+iELEiU9)5OrqVH1gWOd3cy zRyl1cQ3k8Dr;7x++}b{gVmAdMAxn%-4^O$ngp`1Q0L0GKRUf}9oNm>QM>9$DV6h1Y z>2Z2`y3?Ri%zG??(%=dPz=$k}dj|)-PSyvDv}+)(VEX;|jG$d@mA5FW0594Vg-_2) zT}c1pIF!mzSryJVDhjLYJ;)bEQQZIdX}I$;vkn{S@dT-vsVVJDYDmaaX9-bEI0z?a zRa={|q1)WKHE7!4Bei5J!9~pG$di=~hOUlL2|tAd^KaCFg@T2JRbO8Z!NkQiF*5SI z+K*iAlcJFwrM7jrophCh{jHt+fM$mx0pg>E(H_(9*2~(*#X1#Df>| zhJ~D(;+Uy@b~d@r)X*?PN1U>|r6eyAjQAt?M;w10zyu9KBcgQ?DRZWlam*?zN=->& za;vMTI00}M1UJF)2oHgWkB>vXZ(-qXroyb_Afhw=97+xv$?@6Q;LxAr{QR7h|6^$^ zS_Wd)X~Po?Qb=p~!yXa_hCW!cnLS<9F&Xu8Z~}Fh!0!nfo}}22!v5ZGYg5zpSFOF~zA<$HbqTIC z!y-ULTm^25jcK#{#J2O!B%3-d=a}WYRorzuo^cK;eEbB!2WF?IH9&Errw5Hna++ND zO$b$1Ru+h8CmnYC-+sP*6bepism?J-OID6bv6f%s>=$3jk^K?kAeu^S%Y(dTk`89w zaHv8RC=j`TWJk5hk?^^F{J7dY>;=2I2f6|v;h`!(d!xBpnvzI+@)zu{&tJI`)A3C4 zYib8INWgVp2mH_|luZFtzuaPMB3c&xx_RJ3_N%i@X<))3e4%o_%Ro#g6v3xAWbK+X z{_7zmil-BHrSE+~t!`{;wDdsAO@jhQ=KY)Z))6a2fHMTSl`0G>q_m?7`HB9owZwam z4{@e7apLZZPe}yaoqpUR09~9jsUI=jUB1hnT9CyXK;t;Ig3IQt<|LSa$2!-HHGr%O z^{z2{hiXjvSQUKPKyC3|hNqZ`>c3bym~RqUFQKc8EL2-- zCt>UYCl)N2+jc{LV{w)X@#mkB99`xr%!b?tPiMh1fH2hG-%mwJ$?LjpWn#Ye`*#cs zCO@9exUq9GC0=5?kY805clP-T1w_n53BiLP4GW?R$KsifboW4s_53NS$}r&Y=5k3?zxD*x5T{X`?UUd;r)Ml!!5!8N)YI>`^xi z%*=xTb{@~GBXJV55BZ6CV(giZDhEb*qdi7EzT8LjF8Kpj`7z=Ry?nrS2>jm5`oPOM zf_2+MO8;$wnI*EkqA--k+_$;azZ~KJ-4Oim)$#w2kWQ#Z%A~X>X#9q@iSd^s_A@() zTvIwx(!x-Ba)wC?ONRBR{8D(4Ttx5~(=myL>(W`?SE0qDsZJ{8r z0z9xAmpueeI7sHd%Dy7_4>wB>yw1DEhF0t!M}C2jb~IY3Y__VFR=w$2aySXEmX?MM z(Dw{2$0PQMay z|5+Hn*S~%_l}clkoMMmr>nulZ0Hy1?<6;5YPx+iNBp4||LRz}vGBabBoCthbt*%h%T&b_bdmIU;Zq zloKRbIv@=Ddh3#}r}?aw%2KUz2@$m1(2Di~7(09%|H z0!jfxQN%W5C%EnmY01A)gG`O8w|8@3U|@Z{yO!4Mu4Y96_eXHC?;;4B?0&R?%LfuX z0^(z}k~OKnulf4=8klQ~Bo%xN?4fk_E-re+wLFX*jEo$X_P-447gJMHfwB+_qC^0d zmD05W5t+_*q5doojp+E~1aK8uSyWLopmD5;hznMrufTH`RaH8K&3{)n95g*@z zu!5w#nJ-%$fxH+reP$nrfSyu1eE@~L`OkR^{XyFXtlmoZzd(o#?U=)b-N8s%due)m zz0*GBOU#!w3VVN+?T815UIoC!q&#-y{QSg_Mz6*zPwx`FCSnpm_qKC0GpVaxZOLo_ zw90{#0|x&9^FUK$Q}8kHjdZ^>eK4}-FuV)~^iiD`h1Hgoit77fllz71?hmR6;oF&!@e#H#oH?QV_nctSPtNx?EQD$>BvkeswMiVpGS>Z;0I`&%^O zyJ0`oBg)*x6#L)_pwq)ry;v59Sr? z)y*!IwS<&O=7gsjx^zbFDeoxghsqj@CE$lr9H@wj`ey}X=@K;n1o2Mnou;;?>xZS~ z>oZ#nw(tF4RLuh!%EsPG$UUROm;~kT`;-_;fG`9J1&s=u533`)lTu-f@2ANp!|9aO zt*x!Ky|`1Rt;48xCr#Vj4%+gJew5BgR|Y;tzGbz~EiElULE@%r>tCVVx3{-F;;*Em zXQZtH^Yi7NP?*z6kut4(_F3r&p%M>QQBwlk_NF*dH#)NuTk?RK3+36ux(dmx>*3*{ z-Ste!@J85|{1xe0C(T!G>Ccbl{=489HUR}EhgudveuvzXbcVdOjpuBSvDP;#>g#KZ zziJR+W3O;^e$|r8?6j~MnSb+s1hj?IQ?di=s8cz^iZ^Ulae1Js@(E%wf5t8LA1+ES3JjzQBM4vj^^JnoR`aq36RP~~AD5*@TDUJzj}KTA9$qLl z+c)Vj1l&=+kikctrLXe<+R(1C_By>(R8WX4iC|UiiNu$(qGYUZRB&?3VNl&0&@;^O zi%g-@AuW_nVAZYnl*}a5)ndYO()>m}GygYx0O%XiYUs0*O2HaCEvn|^mcDr`rtF@_(fbDn)JwFQY!-MkBLDlB<<+>AzC?K@tYlI9 z_cxp+&1*l}m=usE_-A}rn_XJU1!k<-&rqz8(g}Ts(cb)T@$x?{fxjdgi%szU-*JUU zm4m^FZjp3M=9Rn@PIrGp0l2SiCgNqb#fKBIvuFSzf>|DLbh8;520jERpecXj*HCe~ zf^D+vDjK|F^tVXN0Ba<;sW^SzC!^mYWzHs2De)wtlqYdHi`pn2iw9l9u6{m>HINiS!ouc!-aniX zO-V~jO%>{i*pQNu`GCw}&6cfLb%t~pphaFlO1XP-z6AD&QVICgdC5ctJoESb9X$P{ zJ8Xd(=%C`_L7sWvzsJPIsZMw&{3VQhRyvfPQaG&6S>iG>lkDx@eQoF&aryT=DolfMTfv9`T-Tz}w*C<1MNlv4I8e^X{j2$@ zmBl=g)k!E|aoUD}0>nd*sD1Vvvu9o~yGIyV_|LgcPlJ(S(XXDL>~fhIH39P%q@6n$ z>Yu4`@SCBMzDm6Q6gK@uE!vjlb(A#-J^k0{C!_Tz7UuYdAdjGMl0Y<)$t*|wPoI4M zo(`fULw+>EeI;2G{-Wbx5hMM*gem@Bz*!&eDE)yv{C~?3{nOG;e6sUo3&u}wfN~iO zuQL2sD@%H#!%~wcHwF^w9z&hvDPwddy5NhQOG5EB4d0j*b&a(N_&%DLDb(9{fT`(i6MxoHJtD<8_2g}aWm?rA=+Ezws!GA83=r5jgHDaB{s#(>afF8e;~AJ$Rh5;QL`p#KElFz% zzChK7`EV>}gN=_h)_Ww?2h%_UNB^_qa&N3bzVlPao{Dkhs&up9!;vdKL3 zEP~t?9c(uq9r%D0J=K@1o&6uCdX|- z2A`?R2paQwN&Kn*)KO7lKKDZ9968DW!!f}SSz@sS6XbhnqLjWqOePiha*SnESabBc zHq768JH@83BD$&i^_x8m)F6CxX^P+ zs};I>CS}S%bP}oTArNuI)E2kOajL8GrNzhB6$b)k7#?#UV0=A2NE*+6?d}egI_6TR zeDeojQ3|{(3Iu3MI7TrblMS3B&%QvL}w2~kms2YO96eCG!<6*<$q zhJ0E5MF_9zYBzb0&yTn`I2?f<2^7ltw)y_KFq>S;e}Dh87Z`ZL64fuk*WC5@q)edk zZp(xJ6s&)2ApZMip8vt{|Mx!&@vou4e_GIg0h9bTM|dXY4~~4~{)Ft3za`$8BA(z( zVhW?-=}rCLK1A%sYx1)8GMQL>kV+{ynsC-LivQL0_uws$BcNHt55Kq22T3OkQeHZx z>5=uY)pP?=F&TTXt4&7mx1s`?b+ZI1;ku%~{c2Dkmp(NH+6i47&#{OIlr=gi(CwK4 z@l|^IAbzh%JAdfQ@LPo!>jeb`(3lwIx$kc(Eq3Vg7vR6Utn>ig0SI>SV1p@;p~b@R z&UU6E=r)c%CM6|x90RhXqpPc4sPVJO!}T?qh$!c}$8uW$E~6Tt?=s|=mzS4cNCmV= z;c*mStmyjD#4MqoeSM=&nNwVlgSR39l<=Aw*AE{)fbI%}ndP;$D%S%&Mn*=9oTpEp zE-o&Dq@at73um=!{;Z;*;R*HkUUom&H7_ z^6AH^*ChLuMuSTcz!_j4#rVVo2pa9}?KQdVX&K`F+yd5ZQ)A=(?a8oOkyfucDtnSG zpffNS?EClcz*_$F>8*qWl44p)%I^BQDe%4x43@XIlVf5;Vo@G{2JF%aq;A1TfO{YZ zw1Ymd{Xz|#Ri5$-M#ciL7BB-qb_du7 zcoA~ULhYJjAeV!F1sqaVCZ^cl$iC+h8Ct<$Z}!5@SPsTjIdJ^{gyWwO;^0(xULChQ z+&7r?$2$q`1JmKZw}^j zPXPH_9EJ|kGWKj;d^Q$VYaxj`MFn_Ov_G2o`L(B)VG`>vGZT}ERybvp4Jt4T@L6=8 z^SLk`9k*SffFF(Z{{+JvYH{up!Jj&KXK88ahUzP)x&gkqIq38e4=1Eo+W)=xdw-b} zkMw*@UI-Ygoj(>oS!rgXtk3{)2*9kQBm(ES=H~nCK`2PIbuKSo1yjaM*yb4WiH1-= zc?W{*KpYN10463O&wGpI``{hpsZHmfpq+p%$?rkB?7H zuMO~E;>VsFvoH19#C*@l7=j7GK)4&!d4v;u%r(%s0Ne#_1=#O!aBy$x>~IO-%U&Ay zM6UJ6=VWIC%i>dG5<3X*`-;JV5F7A%zzRG&Im4L?esv;ttnhUye0m9AS2F7fBBT&i zFX=Busf_*O8VDtuuxGN1H3)&7e|R7{Ns4z5a%;e*ZteU8TuhUPuX*8jBs0YSZ{L7p zNMY+E@9r#4ujE<0Xw|vvSFV&4UU&qoha&4XSJ=$EEn>c?6{rcgxn%R7w3jbl0N3d~ z{Im0OYR_}!{r^AyzW!%DaB5QvIFKeSX<8-1P*GjIe7~=`kJ^HXwE-oMN4e$L}R zaeqS|u+RBv0f&1aaItaT-F>S4)3oJWPi6If=JEobJJ11KP7E${o0Vi-P3_x&Ii2qt zU&(6V(BYGdi(6J%#qa98@=hnS)q5}17IFMn0&ZiS ze1D(G`-$4&>rFZ=7Hxpk3TGB`JU+pXt;kR6Qf_2yG&SRMy#T8tw%nI@&M1z?Le8;vocry bk-zZt&Fje_JU+nVo)|n`{an^LB{Ts5ssw|9 literal 25445 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 Km(Q1b2C# diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprl_hypo.doc b/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprl_hypo.doc index 7b09aea..867f796 100644 --- a/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprl_hypo.doc +++ b/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprl_hypo.doc @@ -1,10 +1,11 @@ /*! -\page ghs3dprl_hypo_page MG-Tetra-hpc (Parallel) Parameters hypothesis +\page ghs3dprl_hypo_page MG-Tetra Parallel Parameters hypothesis -\n MG-Tetra-hpc Parameters hypothesis works only with MG-Tetra-hpc code (formerly tepal) -which is the parallel implementation of MeshGems-Tetra (formerly TetMesh-GHS3D) algorithm. -This algorithm is a DISTENE commercial software, its use requires a licence. +\n MG-Tetra Parameters hypothesis works only with MG-Tetra +meshing algorithm which uses MG-Tetra-hpc code (formerly tepal) +which is the parallel implementation of MG-Tetra (formerly TetMesh-GHS3D) algorithm. +This algorithm is a DISTENE commercial software, its use requires a license. \n See http://www.distene.com and http://www.meshgems.com/volume-meshing-meshgems-tetra.html. \n MG-Tetra-hpc (Tepal V3 in fact) gives the possibility to generate a partitioned @@ -14,7 +15,7 @@ The launch of this version is described below. configuration with 64Go RAM to only try to make a partition of a mesh with 200 million tetrahedrons, no result guaranteed (in 2010). \n -\note The Plugin doesn't load in the Memory the supposedly large resulting meshes. +\note The plug-in doesn't load in the memory the supposedly large resulting meshes. The meshes are saved in MED files and can be imported in the user-defined location via menu File-Import-MED Files. \n Pay attention, that Salome GUI needs 2Go RAM to load a MED file with 5 million tetrahedrons. @@ -27,7 +28,7 @@ file with 5 million tetrahedrons.
  • MED Name - allows to define the path and the prefix of the -resulting MED files ("DOMAIN" by default). +resulting MED files ("DOMAIN" by default). If the path is not defined, the environment variable $SALOME_TMP_DIR is used. If $SALOME_TMP_DIR is not defined as well, the environment variable $TMP is used. @@ -38,42 +39,45 @@ The initial skin (triangles) will be meshed (tetrahedrons) and partitioned in Nb_Part by the elementary algorithm implemented in Tepal.
  • -Keep Files - if this box is checked, input files of Tepal -(GHS3DPRL.points and GHS3DPRL.faces) are not deleted after use (...if the +Keep Files - if this box is checked, input files of MG-Tetra-hpc +(GHS3DPRL.points and GHS3DPRL.faces) are not deleted after use (if the background mode was not used).
  • -Tetra_hpc in Background - if this box is checked, Tetra_hpc execution +Tetra_hpc in Background - if this box is checked, MG-Tetra-hpc execution and MED file generation are launched in background mode and the user -can even exit Salome. Pay attention that in this case Tepal algorithm works +can even exit Salome. Pay attention that in this case MG-Tetra-hpc algorithm works independently of "killSalome.py", and sometimes on another host.
  • -Merge subdomains - if this box is checked, merge the subdomains +Merge subdomains - if this box is checked, merge the sub-domains into one mesh and write the output .mesh(b).
  • -Tag subdomains - if this box is checked, use the parallel subdomain +Tag subdomains - if this box is checked, use the parallel sub-domain index as tag into the merged output mesh or not (used in combination with the -merge_subdomains option). +Merge subdomains option).
  • -Output interfaces - if this box is checked, write the parallel subdomains interface -triangles into the merged output mesh (used in combination with the merge_subdomains option). +Output interfaces - if this box is checked, write the parallel +sub-domains interface triangles into the merged output mesh (used in +combination with the Merge subdomains option).
  • -Discard subdomains - if this box is checked, discard the parallel subdomains +Discard subdomains - if this box is checked, discard the parallel sub-domains (mesh, global numbering and interfaces).
  • Modifying MG-Tetra-hpc Advanced Parameters


    -GHS3DPRL Plugin launches a standalone binary executable tetrahpc2med.
    -tetrahpc2med launches tetra_hpc, waits for the end of computation, and -converts the resulting output tepal files into MED files.
    +MG-Tetra Parallel plug-in launches a standalone binary +executable tetrahpc2med.
    +tetrahpc2med launches MG_Tetra-hpc, waits for the end of computation, and +converts the resulting output files into MED files.
    Some advanced optional parameters are accessible as arguments.
    -If keep_files option is checked, it is possible to re-launch tetrahpc2med -or tetra_hpc in the Terminal as a command with custom parameters.
    +If Keep Files option is checked, it is possible to re-launch +\a tetrahpc2med or MG-Tetra-hpc in the Terminal as a command with +custom parameters.
  • Advanced tetrahpc2med Parameters - type tetrahpc2med --help in the Terminal.

    @@ -185,8 +189,8 @@ Options: \n

  • -

    Saving user's preferred GHS3DPRL Advanced Parameters


    -GHS3DPRL Plugin launches standalone binary executable tetrahpc2med.
    +

    Saving user's preferred MG-Tetra Parallel Advanced Parameters


    +MG-Tetra Parallel plug-in launches standalone binary executable tetrahpc2med.
    You may rename file tetrahpc2med as tetrahpc2med.exe for example, and replace tetrahpc2med by a shell script at your convenience to overriding parameters.
    ... or else $PATH modification... .
    @@ -220,7 +224,7 @@ This 2014 beta-version needs MPI, (openmpi was used). To use it you have to proc #we have renamed binary executable tepal as tepal64_v2.exe. #typical command to launch tepal v1 : #tepal -f /tmp/myname/GHS3DPRL -n 16 > /tmp/myname/tepal.log -#this file is an exemple to transform this call for tepal v2.0, +#this file is an example to transform this call for tepal v2.0, # (beta version using .mesh input file) #you have to adapt for your convenience. @@ -233,7 +237,7 @@ This 2014 beta-version needs MPI, (openmpi was used). To use it you have to proc #third problem is convert tepal v2 output files GHS3DPRL*.mesh # to v1 input files GHS3DPRL*.faces an GHS3DPRL*.points. -#you have to work on the same physical disk and same path input and ouput files : $SAME_DIR +#you have to work on the same physical disk and same path input and output files : $SAME_DIR #you have to work on different physical disk but same path and name for executable files # (and shared libraries) : $DIFF_DIR @@ -265,7 +269,7 @@ export LD_LIBRARY_PATH=$DIFF_DIR/openmpi-1.3.1_install/lib:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH=$DIFF_DIR/tepal-2.0.0/bin/Linux_64:${LD_LIBRARY_PATH} export PATH=$DIFF_DIR/tepal-2.0.0/bin/Linux_64:$PATH -#small test betweeen friends +#small test between friends #rm hostnames.log #mpirun -n $4 hostname >> hostnames.log @@ -275,7 +279,7 @@ export DLIM8VAR="dlim8 1:1:29030@is142356/0016175ef08c::a1ba...9e19" export SIMULOGD_LICENSE_FILE=29029@is142356 export LICENSE_FILE=/product/distene/dlim8.var.sh -#mpirun with necessary set envenvironment +#mpirun with necessary set environment export TMP_ENV="-x PATH -x LD_LIBRARY_PATH -x DISTENE_LICENSE_FILE -x DLIM8VAR \ -x SIMULOGD_LICENSE_FILE -x LICENSE_FILE" #mpirun $TMPENV -n $4 which tepal64_v2.exe >> hostnames.log @@ -286,7 +290,7 @@ mpirun $TMPENV -n $4 tepal64_v2.exe --in $IN_FILES.mesh --out $IN_FILES.mesh --v #convert output files tepalv1 format /through_salome_path/mesh2facespoints.py $IN_FILES -#copy ouputs files from $SAME_DIR to local current directory (something like /tmp/myname) +#copy output files from $SAME_DIR to local current directory (something like /tmp/myname) cp -f hostnames.log $IN_DIR cp -f $IN_FILES* $IN_DIR diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprlplugin_python_interface.doc b/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprlplugin_python_interface.doc index eb4b482..eb50bc1 100644 --- a/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprlplugin_python_interface.doc +++ b/doc/salome/gui/GHS3DPRLPLUGIN/input/ghs3dprlplugin_python_interface.doc @@ -2,8 +2,19 @@ \page ghs3dprlplugin_python_interface_page Python Interface -Python package GHS3DPRLPluginBuilder defines several classes, destined for creation of the 3D meshes. +\note The former name of MG-Tetra Parallel meshing algorithm is \a GHS3DPRL and names +of the corresponding classes and modules still include \a "GHS3DPRL". -GHS3DPRL meshing plugin dynamically adds several methods to the smeshBuilder.Mesh class to create meshing algorithms. +Python package GHS3DPRLPluginBuilder defines +GHS3DPRLPluginBuilder.GHS3DPRL_Algorithm class providing access +to the MG-Tetra Parallel meshing algorithm and its parameters. + +You can get an instance of this class by calling +smeshBuilder.Mesh.Tetrahedron(algo=smeshBuilder.MG_Tetra_Parallel) or +smeshBuilder.Mesh.Tetrahedron(algo=smeshBuilder.GHS3DPRL). This call +creates an algorithm (if not yet exist), assigns it to the mesh and +returns an instance of GHS3DPRLPluginBuilder.GHS3DPRL_Algorithm to the caller. + +The class of algorithm has methods to set up meshing parameters. */ diff --git a/doc/salome/gui/GHS3DPRLPLUGIN/input/index.doc b/doc/salome/gui/GHS3DPRLPLUGIN/input/index.doc index 8ae4faf..e887994 100644 --- a/doc/salome/gui/GHS3DPRLPLUGIN/input/index.doc +++ b/doc/salome/gui/GHS3DPRLPLUGIN/input/index.doc @@ -1,18 +1,21 @@ /*! -\mainpage Introduction to GHS3DPRLPLUGIN +\mainpage Introduction to MG-Tetra Parallel plug-in -\b GHS3DPRLPLUGIN plugin is destined for: +\b MG-Tetra Parallel plug-in adds MG-Tetra Parallel (former GHS3DPRL) meshing +algorithm to the SALOME Mesh module. + +\b MG-Tetra Parallel plug-in is destined for: - Meshing 3D geometric entities: volumes are split into tetrahedral (pyramidal) elements. - Generating 3D meshes from 2D meshes, working without geometrical objects. -\note GHS3DPRLPLUGIN plugin uses MG-Tetra-hpc (formerly Tepal) commercial mesher and require a +\note MG-Tetra Parallel plug-in uses MG-Tetra-hpc (formerly Tepal) commercial mesher and require a license to be used within the Mesh module. -To manage parameters of the GHS3DPRLPLUGIN use \subpage ghs3dprl_hypo_page. +To manage parameters of the MG-Tetra Parallel mesher use \subpage ghs3dprl_hypo_page. -Also all GHS3DPRLPLUGIN functionalities are accessible via -\subpage ghs3dprlplugin_python_interface_page "GHS3DPRLPLUGIN Python interface". +Also all MG-Tetra Parallel functionalities are accessible via +\subpage ghs3dprlplugin_python_interface_page "MG-Tetra Parallel Python interface". \image html image2.gif "Example of a tetrahedral 3D mesh" diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml index 970ada4..048cbe8 100644 --- a/resources/SalomeApp.xml +++ b/resources/SalomeApp.xml @@ -27,6 +27,6 @@
    - +
    diff --git a/src/GHS3DPRLPlugin/GHS3DPRLPluginBuilder.py b/src/GHS3DPRLPlugin/GHS3DPRLPluginBuilder.py index cec63fd..241b8e7 100644 --- a/src/GHS3DPRLPlugin/GHS3DPRLPluginBuilder.py +++ b/src/GHS3DPRLPlugin/GHS3DPRLPluginBuilder.py @@ -19,7 +19,7 @@ ## # @package GHS3DPRLPluginBuilder -# Python API for the GHS3DPRL meshing plug-in module. +# Python API for the MG-Tetra Parallel meshing plug-in module. from salome.smesh.smesh_algorithm import Mesh_Algorithm from salome.smesh.smeshBuilder import AssureGeomPublished @@ -32,7 +32,7 @@ except ImportError: noGHS3DPRLPlugin = 1 pass -# Optimization level of GHS3D +# Optimization level of MG-Tetra Parallel # V3.1 None_Optimization, Light_Optimization, Medium_Optimization, Strong_Optimization = 0,1,2,3 # V4.1 (partialy redefines V3.1). Issue 0020574 @@ -50,7 +50,7 @@ GHS3DPRL = MG_Tetra_Parallel # Algorithms #---------------------------- -## Tetrahedron GHS3DPRL 3D algorithm +## Tetrahedron MG-Tetra Parallel 3D algorithm # # It can be created by calling smeshBuilder.Mesh.Tetrahedron( smeshBuilder.MG_Tetra_Parallel ) class GHS3DPRL_Algorithm(Mesh_Algorithm): @@ -60,7 +60,7 @@ class GHS3DPRL_Algorithm(Mesh_Algorithm): meshMethod = "Tetrahedron" ## type of algorithm used with helper function in smeshBuilder.Mesh class # @internal - algoType = GHS3DPRL + algoType = MG_Tetra_Parallel ## doc string of the method in smeshBuilder.Mesh class # @internal docHelper = "Creates tetrahedron 3D algorithm for volumes" -- 2.39.2