From d971e6ef1699b04a2cf3145b56dcd9a8abb6fea4 Mon Sep 17 00:00:00 2001 From: ysn Date: Mon, 5 May 2014 09:25:50 +0400 Subject: [PATCH] Review of reference documentation. --- .../images/hypo_quad_params_enfnodes_algo.png | Bin 7233 -> 0 bytes .../hypo_quad_params_enfnodes_algo1.png | Bin 0 -> 1512 bytes .../hypo_quad_params_enfnodes_algo2.png | Bin 0 -> 2014 bytes .../hypo_quad_params_enfnodes_algo3.png | Bin 0 -> 2841 bytes .../gui/SMESH/images/split_into_prisms.png | Bin 36064 -> 13017 bytes .../gui/SMESH/input/1d_meshing_hypo.doc | 17 ++--- .../gui/SMESH/input/2d_meshing_hypo.doc | 34 +++++---- doc/salome/gui/SMESH/input/about_meshes.doc | 2 +- .../input/arranging_study_objects_page.doc | 11 --- .../gui/SMESH/input/basic_meshing_algos.doc | 10 +-- doc/salome/gui/SMESH/input/cartesian_algo.doc | 58 +++++++-------- .../gui/SMESH/input/constructing_meshes.doc | 47 +++--------- .../gui/SMESH/input/define_mesh_by_script.doc | 29 ++++++++ .../gui/SMESH/input/double_nodes_page.doc | 25 ++----- .../gui/SMESH/input/grouping_elements.doc | 4 + doc/salome/gui/SMESH/input/index.doc | 1 - .../gui/SMESH/input/mesh_through_point.doc | 14 ++-- doc/salome/gui/SMESH/input/split_to_tetra.doc | 70 +++++++----------- .../gui/SMESH/input/use_existing_algos.doc | 4 +- 19 files changed, 146 insertions(+), 180 deletions(-) delete mode 100755 doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png create mode 100644 doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo1.png create mode 100644 doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo2.png create mode 100644 doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo3.png delete mode 100644 doc/salome/gui/SMESH/input/arranging_study_objects_page.doc create mode 100644 doc/salome/gui/SMESH/input/define_mesh_by_script.doc diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png b/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png deleted file mode 100755 index adddf842c984eb3a613e888e43d52676f94ce4f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7233 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo2.png b/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo2.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a4c6290dbc9ff00a9bebc909df5e404f1b3884 GIT binary patch literal 2014 zcmeAS@N?(olHy`uVBq!ia0y~yU~~fFb`B<>h}Ww#XBZgRmwLK5hE&XXd)L3{c8bjL zhvC8J4z%fB_TG>X@s+`+s7bC__4o_U4+RZtA__Ub$utZ8o4mvGt;#0doBP*)u?eVun$~@%w4XobcA@yq_!~@KDR)Y5?|pRWx#ap6F*i7K*1g*GL`rx135gvoJ&N;) zLeJOif4$3pZSB6Vl?H~A&NjrMJyOgMZ%y(Z zQ7NAjAD{KOVtDS!qscR$E4eDIn`&4fMx4cPDmok{+Vww_I-TnW46!i zb1%^TEoK!HljHOEeJtq~>D&=^>_B9Sjj&zLo)n|D3ewO#=I=Za7NFQT9-V*mY}=k3 zBfibu-&*#UUf*@K<+(Gfk=~QreD7~P)D7X^e&=uC@$$#|vHuOe*sb~YIlyS&Jae;4 zbMv*O%JiRp4b0!aSWfPFbo!4srmkmG8g*j)(ho z%2`#7?(LbkR{y2WKJP?Dv*>fg=D74nr@nt&C_-F%hGha!euU<=MIZNw8$bQAN^TWP zNT&I@IW^Ha6PumSn9s|bs3ds(l!Qe$QTZLYSV&(Q{q=9`_J2RGsUHd@K6yp-SnQL7 zCNEI(o|$h0P2TW4e!f?_L1zNV4uUu?{X}ieG`C{{{@Bp^Qw?Fsr;eva{4|vau5+1q z^RjW|la~?6rt zl_^jDs_7s3Z&&~Sm#y8l@Kx%b?={YBap5|T>vw(o{Ow?T>~D<(i6s%odY*r@vy0EG zmGfC2aqPA1kKgOo{`ywrTXuis;Jv^7+i{KO zn_Ol~H`tWieRb{m!6VB~{W!esp?9VPo5r8L8`~0R7#jcEyEQ)QcjoUOXSQGde)~83 zoqYLhi8e{a$NQsye|#GMa{gbNkneB$=l)*KUe#vaJKi&}5 z_7Qsx&Sd1Ts+Ud`eR=35*MA{#gC5*b9oO0O`|fg$cf0aTkG-*vd-Z}EyJKJ64W{sINAmuJHfkH0Tg~e*H^*0NGB6xq{l{+f V;FqP!ubZkMm7cDCF6*2UngF#nsagO4 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo3.png b/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo3.png new file mode 100644 index 0000000000000000000000000000000000000000..f6db3397e41146050d4151c4b33f708374cf0d1f GIT binary patch literal 2841 zcma);2{hZ;9>-Oy?NlutL$_esK8&i-R#8imRw$+RphSaKq_wt`kPze5GSx9{$3B$m zmZT!e46#Kz)O1127(|O;f{-9h<1dYbyrk`Ek2iDXz5n_C&$;K`|GDS?{Vkt+uX?&W zscqS{MM+6X?WD7Vx02F2sQk^|tSp~7d8U0*NomXYNr&U`q_X)@w>aMEby=ZJKUy3N zbpZ@_c#_kbX}hw>SqO6aw$c#B;jh?FYV+PY4ffu=+;*2kT0qRU)!uRD6igm{GixK? z@E@M>Yit2qKj)|D?cN<(E2D+M((>aCpy3AVf&oeVpr-BWj5?GZUjt?S{(-6+}$y!3*yqkrzRvLhPP`HR=+=0tYLRgX7;eYyhUM3p}NH z_Y2NTl7EBb7iUJzt;54N0y|d0>hz~yUG@pe9p$6G_e1pB`+3ox4xo!u8&x^{SAh?R z2QFuafXCc><1DS0K{oN5k^SZluO3yE;;d{$g{Plw)gDm&?vBF9TCrkV&z{l*28rcY zoWYUpV8DLALZ5e_q-r0=?`Ik=_*19(fBAb=;cyE1gu>?m2Jp=OLvRo`YkV&BRQOf( zKM7(^H7-}@Vx4dSos&_NWccCh6FqU$AoVP}!QVs4mb^2U%K(i!YHk)}PYpu&vNVx9)m<%?RI)rQS}TLV{+a;!vtGqUMJVfRGbe?su#4(+!uy!9 zoL97x7iHDF-f$wuymwcr^(d>0lifjho&2_BRzO{p2GHV1w+ber?LaV-@2bWnU1*WJEr5j#ilN=)#D0KGcx6(_Qa<5!{3x0` znmLm8`>Msx1S~YIZoKF=i|{MsiEWzRgZw>^6mZR0K2K~gSH&tiH^VcUOI$o~31l1x z9-~VV8|i^W%-hV!O#f=TcqkepQ{RQh#)j+gU3j_)m8gZN=3k5%C7mq|>*VE62@H5S z6q+c>IrfWh$-O&RZP%%oY@!%9Vc>C1&pUSC$VdxJVd$?i?Woau1W|;e?hEEVS0A%` z-tQHwZRZ%K47|x@J8LSI8y?Hc1aCfe*#w(L3U{$1I03Lss5S9`GwnWTdh4Bo_;HI?ay~m}N0D#1}*%7dbWi z=-q!-3q9tUlDM$4O%4W3isZ=Tcv6XR-*c%?BF#$jX5zDpMz(QAIc44SUca4ob`Oc7 zB-S^W-jR*vmSz=mlh3m!pkJ1y9F`@G*V;x|Z9A_GAV;HK%&_-v+X68U4n70CNQfs0 zf2bfjQH047u@R3$KlHaTb^uq|18T(^8e{jYuyOqk z*+tfp6LuK|B#iN0@1|2Xs8OaJ+gDMHHWm67a}p+_2qu;6Q?zq=8j_dxwxmHAPzty=M$AuAZ>A4Rd90l{@EA8HmxOty9v{WJS}VcK zbxJeLYOm&SZ;2za%?VUyQuthFiq)gnvyt!SdPa)7 z@VfHySQ*v`Ygvab7x}fghOT;rw70gLW2WO#WEOoabwiP?<4UyM9CMj4t zJx2CIuOdTsy=xLPQ(AH{7QvpkSc1_KNStoZ2)77?yX(7L{~%l+sc0X*5!$`(BZcLJ zMOV+c*#hmXk8}UcXXQ*9U(X2L0^ZlfXGo@Q|CN{PAYXwRLtAECk1 zLp4J(+0(B_ylyvw2Zx~`wA*I^Ghy}5PY1_91VVcq8)9lbb-e=(U{stImz1Z@eNkJc ztsc?wwEO4ZeTRpLL{_PqP1;%1QusKl!p=P=dnO;15BH+A-;JZf`saopAK{`dA(I2Y zRX|iVzC6_86Fs8ysLY}Df5XuCB<&+SEdBanV972b^+c92?1O31?jrIAQay{V*PN!O zpRzTmKag+CjQqJT(}`Op(%|zitppn(lPcS=HEreibX)mVr2;16h%{CcX7B^1izG7g zg}g?3s>rNA#7m;=g(KtmRGCLn&+8x*urRbzmTz(@$u@cqQlrM<3c%2>DLpV@coiEi zXbXN8=VMaSRJIWg=O@>IrsvDW?D{MNcuWVWz*YBp4oF#^=-G2M-9z9WG|U+F>+?bX zb=m{29a3fS=lzKCn=fqEWJccBU8?vDq$%L%V&1A?BGS1YPLuJPgWJ-S^6TfCsK=V= z38T;)a+h8*F1Nwdmv6?OWf+`EqWsCB^<^Rrcq=&O%6;DI;;P_D>rviO1BpE%U=N4Ks1$Ex%7;tNt>S0vAhE=dJ=iIdiFLpg!WseYx~(vhf@ z9s^OCEoGyEd}}SEn+zj|3xTFk>TsQJ84kMhZ0B>#9@C%~|8VJ)FC9B1+f;EX;kN5z RJVf#3Nk?}Fihanx{{sXivc>=a literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/split_into_prisms.png b/doc/salome/gui/SMESH/images/split_into_prisms.png index 6b9f77a2da91f5af7dbc30ff29fb29915aacbf06..6d48e6956cb97d01001723d3ce86a4fcbcb42dc5 100644 GIT binary patch literal 13017 zcmbt)by!vXy6rL$X$46MC8VTFTIudkQlwkDK^j3i7ah_i-5^MJcS<)bIu_g??r-n? zoqNx{&pGG%hmXQq^ZCs=-*>!YjCXvMlMzKjCP0QjAZX%ZLJAPb{U_kxr;qQ0zaKAB z8$lqb30L`oLbEl(@IWa>FH$;E z+TiV5`-b!lHDZ$)2IjNjr~47g?K7*zl4Wn^)mzl@)N zvaBb&to6(uHLUml%vs2<&3*)d3_dMPCI+XVLL^6pKo-A`Ad&IXY2qw97Ww%4pB#f@ zauwPjd6%{wgc9?1_xJNT z{a%Trlok1gcQ|w%nwXeKZaG=!U|H+tcD!xapZxT-n9*yLxt$Mz4>JDo{iS$DBd;Ua zX}W-`YyGa=%dXv$EEjxrW(nas;nZjeXzrNVd%WY(<&nLL<`eL(W``(zCm@vK`(;Q1Naq+I+PL1fwyfR)zxM7N${rYLr@V=zFnwpoF*Ta-H zD2w5#N7=&YXjFGiP0d8HHvi`XNObO0t=)FZuU`~9GLL;9Z~wUwF}$s;~@EEDi zG&J2O@g79t-5Z^_1gPZv&&kQSEP>10gQZ{fv-MxTK)6B;h(Bd%3Iv7b<>eKj1wi%2 zrVXxZYq_#CK70^YD0UP&485B18C4cDTpxcz z(k?4ZC+K0C$2(Ij5}No>e5K{}^(t~(Bs%ZolM{9R4mMYzE1l1q(DnhoBv8c2=KV3o zxy|f#R?B{!hIFu^)NjYA-T1#-&>@40J7&A|+BLoNyR8(|YphP5175yCIE|NE`Ldi?Wz^W}V>9c;3h*|G}B_hrPE`~>t+K!3N8 zz_~EheSzI z(u*^3E;pPlU`;@fyfZ9MJ-p38$!6PlxQ2D%r;{L~WH`wY2r9VUUF91We7%op>K=qA zy}5*=VS!i3|22AtCIntUF2= zb5q=qpEl{+V6Y%$BGdes@~S@>S652rak7@T3O{}{<;i9`etvOqKVoYPi$Zn^W|(9qMZtssWRkH`R#zJ3jMI*C>l-V3RuqoOi0GfU)ibG{CA zG&eWTO71pA9#>LTU1)HK)zl&6x955Ja%pQUzrDTv<;#~xH%y_%g!tGW!n6nL9QH>? zM`=}yR@T?IH#b+;Rzse1$jquhAbDv)NZuc`e&DzC_I{%=H8q8nTkT9TQBr23RlHX@6jM4JX+OT_Yw7x+$h^|oXRf_6vJED zzz}WXJ*LC<^7gi|wr**;xh$Fr3=D){oh8IWk=fBvQCBEoni?8ZDf)VPKNN4_@mJXc ziSt({^8m{RIFl)5lfGNKYVfcKSgGHGz-;8J^XZcSf`^BP znn{3}qJ~Dj@zJY0s6IO9v1G7BLRucql(e$4nyIwJx}XZ}(DjoDf)s}~O!~Y#5t#CF zvS%A(!yw@+FE5vpl{MTp_Dw4;-e(%|W)BSr_}JYOLl;?(4f%q+;oS1ESg4|SW%5BJ zT|iM0y*@#>d0u`#fcrRD>N{_MwXG*AT3W<}&+6^xren37#q}Okl7J`J>~3UjxlsLC zSI0o)mGtE!zeiE>iAhON=LZiS)aug*m8@P~I(PlKH;Y0>yo!p7^2*fs_I8oIDFH$| zJGkVvSEqw%g1N3oYtja}L-VQ>+HGwe=F{bytFhWR6D%_r*blFsPLt`bbcR1i z<^VSn6%#{`q-lNA;zaMgKMmfj1bDN*nupQ~3cg)PJ)=NMqm>7xt$7m_6&^k`mapoM zir+Gu#BQ!8B_*Yzf)lN)`)SkSN_xED!_h_UfWzLbv92yz+Isb5b#H-G7Nc%EYS*uW zvoj1dv`jX%=rJ}Sy=T-G2$0lgwI|fnr+G@*MMC10Z$6hKqoB6cBXenUCsH z%-LDn!y&|+b&te8q}{Mj9}%j&;~Aj1pPH<#tQ;5h)S;oFMcH|Id6Q#!pKdJgDuTI{ zOUt2pd__AvjSP89or3~j^Q?h7DOXIMA^AA=9;D9bc7z}m(QT+CH~BO_btl7sq?Y|_ z8jK@*i=*1E(JMUw1uly0A&D%0AF}9lP=8&arV)A{vXQk;0dVFm$IJgI+I)S6DI)BI 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 TwVsD3MLfKxB$J0Ue*XUe5F2Ef diff --git a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc index b992bc8e2..ac0902ec1 100644 --- a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc +++ b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc @@ -48,7 +48,7 @@ beginning from a given starting length and up to a given end length. The direction of the splitting is defined by the orientation of the underlying geometrical edge. "Reverse Edges" list box allows to specify the edges for which the splitting should be made in the direction opposing to their orientation. This list box is enabled only if the geometry object -is selected for the meshing. In this case the user can select edges to be reversed either directly +is selected for the meshing. In this case the user can select edges to be reversed either by directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. \image html a-arithmetic1d.png @@ -62,17 +62,14 @@ picking them in the 3D viewer or by selecting the edges or groups of edges in th \anchor geometric_1d_anchor

Geometric Progression hypothesis

-Geometric Progression hypothesis allows to split edges into +Geometric Progression hypothesis allows splitting edges into segments with a length that changes in geometric progression (Lk = -Lk-1 * d) beginning from a given starting length and with a given -common ratio. +Lk-1 * d) starting from a given Start Length and Common Ratio. -The direction of the splitting is defined by the orientation of the -underlying geometrical edge. "Reverse Edges" list box allows to -specify the edges for which the splitting should be made in the -direction opposing to their orientation. This list box is enabled only -if the geometry object is selected for the meshing. In this case the -user can select edges to be reversed either directly picking them in +The splitting direction is defined by the orientation of the +underlying geometrical edge. +Reverse Edges list box allows specifying the edges, for which the splitting should be made in the +direction opposite to their orientation. This list box is filled after a geometry object is selected for meshing. In this case it is possible to select edges to be reversed either directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. diff --git a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc index e019c8b87..0ccb902e0 100644 --- a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc +++ b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc @@ -36,13 +36,13 @@ of a given face. \anchor hypo_quad_params_anchor

Quadrangle parameters

-\image html hypo_quad_params_dialog.png "Quadrangle parameters creation/edition dialog" +\image html hypo_quad_params_dialog.png "Quadrangle parameters: Transition" Quadrangle parameters is a hypothesis for Quadrangle (Mapping) algorithm. Transition tab is used to define the algorithm of transition between opposite sides of faces with a different number of -segments on opposite sides. The following types of transition +segments on them. The following types of transition algorithms are available: - Standard is the default case, when both triangles and quadrangles @@ -80,7 +80,7 @@ algorithm for meshing of trilateral faces. In this case it is necessary to select the vertex, which will be used as the fourth edge (degenerated). -\image html hypo_quad_params_dialog_vert.png "Base Vertex tab of Quadrangle parameters creation/edition dialog" +\image html hypo_quad_params_dialog_vert.png "Quadrangle parameters: Base Vertex" \image html hypo_quad_params_1.png "A face built from 3 edges" @@ -98,9 +98,9 @@ shows the good (left) and the bad (right) results of meshing. \image html hypo_quad_params_res_2.png "The resulting meshes" -\image html hypo_quad_params_dialog_enf.png "Enforced nodes tab of Quadrangle parameters creation/edition dialog" +\image html hypo_quad_params_dialog_enf.png "Quadrangle parameters: Enforced nodes" -Enforced nodes tab allows for defining points where the +Enforced nodes tab allows defining points, where the algorithm should create nodes. There are two ways to define positions of the enforced nodes.
    @@ -113,22 +113,30 @@ of the enforced nodes. projected to the meshed face and located close enough to the meshed face will be used to create the enforced nodes.
-Algorithm of creation of the enforced nodes is following. -\image html hypo_quad_params_enfnodes_algo.png "Steps of the algorithm of creation of the enforced nodes" -
    -
  1. Left image: Positions of nodes are computed without taking into +Let us see how the algorithm works: + + +
      +
    • Initially positions of nodes are computed without taking into account the enforced vertex (yellow point).
    • -
    • Middle image: A node closest to the enforced vertex is +\image html hypo_quad_params_enfnodes_algo1.png "Initial mesh" + +
    • Then the node closest to the enforced vertex is detected. Extreme nodes of the row and column of the detected node are used to create virtual edges (yellow lines) ending at the enforced vertex.
    • -
    • Right image: The meshed face is thus divided by the virtual +\image html hypo_quad_params_enfnodes_algo2.png "Creation of virtual edges" + +
    • Consequently, the meshed face is divided by the virtual edges into four quadrilateral sub-domains each of which is meshed - as usually: the nodes of the row and column of detected node are + as usually: the nodes of the row and column of the detected node are moved to the virtual edges and the quadrilateral elements are constructed. -
+ +\image html hypo_quad_params_enfnodes_algo3.png "Final mesh" + + If there are several enforced vertices, the algorithm is applied recursively to the formed sub-domains. diff --git a/doc/salome/gui/SMESH/input/about_meshes.doc b/doc/salome/gui/SMESH/input/about_meshes.doc index 565b3a48b..870e5c182 100644 --- a/doc/salome/gui/SMESH/input/about_meshes.doc +++ b/doc/salome/gui/SMESH/input/about_meshes.doc @@ -10,7 +10,7 @@ on the basis of geometrical shapes produced in the GEOM module. It is also possible to \subpage constructing_submeshes_page "construct mesh on a part of the geometrical object", for example, a face, with different meshing parameters or using -another meshing algorithm than the whole mesh. +another meshing algorithm. Several created meshes can be \subpage building_compounds_page "combined into another mesh". diff --git a/doc/salome/gui/SMESH/input/arranging_study_objects_page.doc b/doc/salome/gui/SMESH/input/arranging_study_objects_page.doc deleted file mode 100644 index ea655d5f4..000000000 --- a/doc/salome/gui/SMESH/input/arranging_study_objects_page.doc +++ /dev/null @@ -1,11 +0,0 @@ -/*! - -\page arranging_study_objects_page Arranging objects in study - -If sub-meshes or groups container item has more than one child sub-object, then there is a possibility to sort these children in ascending order. - -To use sort functionality select "Sort children" popup menu item for the parent object. - -\image html smesh_sort.png "Sorting of sub-objects" - -*/ diff --git a/doc/salome/gui/SMESH/input/basic_meshing_algos.doc b/doc/salome/gui/SMESH/input/basic_meshing_algos.doc index e76863e8a..ee632b282 100644 --- a/doc/salome/gui/SMESH/input/basic_meshing_algos.doc +++ b/doc/salome/gui/SMESH/input/basic_meshing_algos.doc @@ -9,9 +9,9 @@ used for meshing entities (1D, 2D, 3D) composing geometrical objects.
  • For meshing of 1D entities (edges):
    • -
    • Wire Discretisation meshing algorithm - splits a wire into a +
    • Wire Discretization meshing algorithm - splits a wire into a number of mesh segments following any 1D hypothesis.
    • -
    • Composite Side Discretisation algorithm - allows to apply any 1D +
    • Composite Side Discretization algorithm - allows to apply any 1D hypothesis to a whole side of a geometrical face even if it is composed of several edges provided that they form C1 curve, have the same hypotheses assigned and form one side in all faces of the main @@ -58,10 +58,10 @@ There is also a number of more specific algorithms:
    • \subpage segments_around_vertex_algo_page "for defining the local size of elements around a certain node"
    • \subpage prism_3d_algo_page "for meshing prismatic shapes"
    • \subpage radial_quadrangle_1D2D_algo_page "for meshing special 2d faces (circles and part of circles)"
    • +
    • \subpage use_existing_page "Use Edges to be Created Manually" and +\ref use_existing_page "Use Faces to be Created Manually" algorithms can be +used to create a 1D or a 2D mesh in a python script.
    -\ref use_existing_anchor "Use Edges to be Created Manually" and -\ref use_existing_anchor "Use Faces to be Created Manually" algorithms can be -used to create a 1D or a 2D mesh in a python script. \ref constructing_meshes_page "Constructing meshes" page describes in detail how to apply meshing algorithms. diff --git a/doc/salome/gui/SMESH/input/cartesian_algo.doc b/doc/salome/gui/SMESH/input/cartesian_algo.doc index 7bf830690..6062aa89e 100644 --- a/doc/salome/gui/SMESH/input/cartesian_algo.doc +++ b/doc/salome/gui/SMESH/input/cartesian_algo.doc @@ -7,7 +7,7 @@ the internal part of geometry and polyhedrons and other types of elements at the intersection of Cartesian cells with the geometrical boundary. -\image html cartesian3D_sphere.png "A shpere meshed by Body Fitting algorithm" +\image html cartesian3D_sphere.png "A sphere meshed by Body Fitting algorithm" The meshing algorithm is as follows.
      @@ -29,10 +29,7 @@ nodes are inside and some outside.
    To apply this algorithm when you define your mesh, select Body - Fitting in the list of 3D algorithms and click "Add - Hypothesis" button and "Body Fitting Parameters"" menu -item. Dialog of Body Fitting Parameters - hypothesis will appear. + Fitting in the list of 3D algorithms and add Body Fitting Parameters hypothesis. The following dialog will appear:
    \anchor cartesian_hyp_anchor @@ -43,19 +40,21 @@ item. Dialog of Body Fitting Parameters This dialog allows to define
    • \b Name of the algorithm.
    • +
    • Minimal size of a cell truncated by the geometry boundary. If the size of a truncated grid cell is \b Threshold times less than a initial cell size, then a mesh element is not created.
    • +
    • Implement Edges check-box activates incorporation of geometrical edges in the mesh. -\image html cartesian_implement_edge.png "'Implement Edges' switched off (left) and on (right)" -
    • Cartesian structured grid. Location of nodes along each grid axis - is defined individually. Definition mode chooses a way of - grid definition: + +\image html cartesian_implement_edge.png "Implement Edges switched off to the left and on to the right" + +
    • Definition mode allows choosing how Cartesian structured grid is defined. Location of nodes along each grid axis is defined individually:
      • You can specify the \b Coordinates of grid nodes. \b Insert button - inserts a node at distance \b Step (negative or positive) from a - selected node. \b Delete button removes a selected node. Double + inserts a node at \b Step distance(negative or positive) from the + selected node. \b Delete button removes the selected node. Double click on a coordinate in the list enables its edition. \b Note that node coordinates are measured along directions of axes that can differ from the directions of the Global Coordinate @@ -65,38 +64,37 @@ This dialog allows to define normalized at [0.0,1.0]. The whole range of geometry can be divided into sub-ranges with their own spacing formulas to apply; \a t varies between 0.0 and 1.0 within each sub-range. \b Insert button - divides a selected range into two ones. \b Delete button adds the + divides a selected range into two. \b Delete button adds the selected sub-range to the previous one. Double click on a range in the list enables edition of its right boundary. Double click on a function in the list enables its edition.
    • -
    • Coordinates of a Fixed Point. They allow to exactly - locate a grid node in a direction defined by spacing. If all the three - directions are defined by spacing, then there will be a mesh node at - the Fixed Point. If two directions are defined by spacing, - then there will be at least a link between mesh nodes passing through - the Fixed Point. If only one direction is defined by spacing, - then there will be at least an element facet passing through - the Fixed Point. If no directions are defined by spacing, - Fixed Point is disabled.
    • -
    • Directions of Axes. You can set up almost any - directions of grid axes that can help in generation of as many as - possible hexahedral elements. + +
    • Fixed Point group allows defining an exact location of a grid node in the direction defined by spacing. The following cases are possible: +
        +
      • If all three directions are defined by spacing, there will be a mesh node at the Fixed Point.
      • +
      • If two directions are defined by spacing, there will be at least a link between mesh nodes passing through the Fixed Point.
      • +
      • If only one direction is defined by spacing, there will be at least an element facet passing through the Fixed Point.
      • +
      • If no directions are defined by spacing, Fixed Point is disabled.
      • +
      +
    • + +
    • Directions of Axes group allows setting the directions of grid axes.
        -
      • Orthogonal Axes check-box, if activated, keeps the - axes orthogonal during their modification.
      • +
      • If Orthogonal Axes check-box is activated the + axes remain orthogonal during their modification.
      • Selection buttons enable snapping corresponding axes to direction of a geometrical edge selected in the Object Browser. Edge direction is defined by coordinates of its end points.
      • Optimal Axes button runs an algorithm that tries to - set the axes so that a number of generated hexahedra to be - maximal.
      • + set the axes to maximize the number of generated hexahedra.
      • Reset button returns the axes in a default position parallel to the axes of the Global Coordinate System.
      • -
    • -
    + + +
    See Also a sample TUI Script of a diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc index b6c687bb0..34ca6e995 100644 --- a/doc/salome/gui/SMESH/input/constructing_meshes.doc +++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc @@ -10,9 +10,6 @@
  • \ref submesh_order_anchor "Changing sub-mesh priority" (optional)
  • \ref compute_anchor "Computing the mesh"
  • -Mesh can be \ref use_existing_anchor "computed using your own meshing algorithms" -written in Python. - \anchor create_mesh_anchor

    Creation of a mesh object

    @@ -32,6 +29,10 @@ written in Python. \image html createmesh-inv.png
    +
  • Select Mesh Type in the corresponding list from Any, Hexahedral, Tetrahedral, Triangular and \b Quadrilateral (there can be less items for lower dimensions). + + Selection of a mesh type hides any algorithms that are not able to create elements of this type.
  • +
  • Apply \subpage basic_meshing_algos_page "meshing algorithms" and \subpage about_hypo_page "hypotheses" which will be used to compute this mesh. @@ -87,23 +88,20 @@ written in Python. "Edit Hypothesis" button - Most 2D and 3D algorithms can work without hypotheses using some - default meshing parameters. Some algorithms does not require any - hypothesis. After selection of an algorithm "Hypothesis" field of + Most 2D and 3D algorithms can work without hypotheses using default meshing parameters. Some algorithms do not require any hypotheses. After selection of an algorithm "Hypothesis" field of the dialog can contain:
    • \ if the algorithm can work using default parameters.
    • \ if the algorithm requires a hypothesis defining its parameters.
    • -
    • Nothing if the algorithm has no parameters to tune.
    • +
    • If the algorithm does not use hypotheses, this field is grayed.
    - After selection of an algorithm "Add. Hypothesis" field of - the dialog can contain: + After selection of an algorithm Add. Hypothesis field can contain:
      -
    • \ if the algorithm can be additionally tuned +
    • \ if the algorithm can be tuned using an additional hypothesis.
    • -
    • Nothing if the algorithm has no additional parameters to tune.
    • +
    • If the algorithm does not use additional hypotheses, this field is grayed.
    Proceed in the same way with 2D and 1D Algorithms and Hypotheses that @@ -346,33 +344,6 @@ By default, the information box is always shown after mesh computation operation

    -\anchor use_existing_anchor -

    "Use Edges to be Created Manually" and "Use Faces to be Created Manually" algorithms

    - -It is possible to create a 1D or a 2D mesh in a python script -(using AddNode, AddEdge and AddFace commands) and -then use such sub-meshes in the construction of a 2D or a 3D mesh. For -this, there exist two algorithms: Use Edges to be Created -Manually and Use Faces to be Created Manually. -Imagine, you want to use standard algorithms to generate 1D and 3D -meshes and to create 2D mesh by your python code. Then you -
      -
    1. create a mesh object, assign a 1D algorithm,
    2. -
    3. invoke \b Compute command, which computes a 1D mesh,
    4. -
    5. assign Use Faces to be Created Manually and a 3D algorithm,
    6. -
    7. run your python code, which creates a 2D mesh,
    8. -
    9. invoke \b Compute command, which computes a 3D mesh.
    10. -
    -\warning Use Edges to be Created Manually and Use Faces to -be Created Manually algorithms should be assigned _before_ -mesh generation by the Python code. - -Consider trying a sample script demonstrating the usage of -\ref tui_use_existing_faces "Use Faces to be Created Manually" -algorithm for construction of a 2D mesh using Python commands. -\image html use_existing_face_sample_mesh.png - Mesh computed by \ref tui_use_existing_faces "the sample script" - shown in a Shrink mode. */ diff --git a/doc/salome/gui/SMESH/input/define_mesh_by_script.doc b/doc/salome/gui/SMESH/input/define_mesh_by_script.doc new file mode 100644 index 000000000..beb9d8e40 --- /dev/null +++ b/doc/salome/gui/SMESH/input/define_mesh_by_script.doc @@ -0,0 +1,29 @@ +/*! + +\page use_existing_page Use Edges/Faces to be Created Manually" + +The algorithms Use Edges to be Created Manually and Use Faces to be Created Manually allow creating a 1D or a 2D mesh in a python script (using AddNode, AddEdge and AddFace commands) and then using such sub-meshes in the construction of a 2D or a 3D mesh. + +For example, you want to use standard algorithms to generate 1D and 3D +meshes and to create 2D mesh by your python code. For this, you +
      +
    1. create a mesh object, assign a 1D algorithm,
    2. +
    3. invoke \b Compute command, which computes a 1D mesh,
    4. +
    5. assign Use Faces to be Created Manually and a 3D algorithm,
    6. +
    7. run your python code, which creates a 2D mesh,
    8. +
    9. invoke \b Compute command, which computes a 3D mesh.
    10. +
    + +\warning Use Edges to be Created Manually and Use Faces to +be Created Manually algorithms should be assigned _before_ +mesh generation by the Python code. + +Consider trying a sample script demonstrating the usage of +\ref tui_use_existing_faces "Use Faces to be Created Manually" +algorithm for construction of a 2D mesh using Python commands. + +\image html use_existing_face_sample_mesh.png + Mesh computed by \ref tui_use_existing_faces "the sample script" + shown in a Shrink mode. + +*/ diff --git a/doc/salome/gui/SMESH/input/double_nodes_page.doc b/doc/salome/gui/SMESH/input/double_nodes_page.doc index c86f0bdc1..9c3983f01 100644 --- a/doc/salome/gui/SMESH/input/double_nodes_page.doc +++ b/doc/salome/gui/SMESH/input/double_nodes_page.doc @@ -122,18 +122,7 @@ Parameters to be defined in this mode: \anchor mode_group_boundary_anchor

    Duplicate nodes on group boundaries

    -This mode duplicates nodes located on boundaries between given groups of -volumes. If required, flat elements are created on the duplicated -nodes: a triangular facet shared by two volumes of two groups generates -a flat prism, a quadrangular facet generates a flat hexahedron. -
    -The created flat volumes are stored in groups. These groups are named -according to the position of the group in the list of groups: group -"j_n_p" is a group of flat elements that are built between the group \#n -and the group \#p in the group list. All the flat elements are gathered -into the group named "joints3D". The flat element of the multiple -junctions between the simple junction are stored in a group named -"jointsMultiples". +This mode duplicates nodes located on boundaries between given groups of volumes.
    @@ -142,12 +131,12 @@ junctions between the simple junction are stored in a group named Parameters to be defined in this mode:
    • Groups of volumes (mandatory): list of volume - groups. These groups should be disjoint, i.e. should not share volumes.
    • -
    • Create joint elements : if checked - the flat elements are created.
    • -
    • On all boundaries : if checked - then the volumes not - included into the Groups of volumes are considered as another given - group. And thus nodes on boundary between Groups of volumes and the - rest mesh are also duplicated.
    • + groups. These groups should be disjoint, i.e. should not have shared volumes. +
    • If Create joint elements option is activated, flat elements are created on the duplicated +nodes: a triangular facet shared by two volumes of two groups generates +a flat prism, a quadrangular facet generates a flat hexahedron.
    • +
    • If On all boundaries : option is activated, the volumes, which are not + included into Groups of volumes, are considered as another group and thus the nodes on the boundary between Groups of volumes and the remaining mesh are also duplicated.

    See Also a sample TUI Script of a diff --git a/doc/salome/gui/SMESH/input/grouping_elements.doc b/doc/salome/gui/SMESH/input/grouping_elements.doc index 9615ad4c3..c6a97e165 100644 --- a/doc/salome/gui/SMESH/input/grouping_elements.doc +++ b/doc/salome/gui/SMESH/input/grouping_elements.doc @@ -32,6 +32,10 @@ The created groups can be later: - \subpage using_operations_on_groups_page "Subjected to Boolean operations" - \subpage deleting_groups_page "Deleted" +If sub-meshes or groups container item has more than one child sub-object, it is possible to sort the children in ascending order. For this, select the parent object in the Object Browser and choose Sort children context menu item. + +\image html smesh_sort.png "Sorting of sub-objects" + An important tool, providing filters for creation of \b Standalone groups is \ref selection_filter_library_page. diff --git a/doc/salome/gui/SMESH/input/index.doc b/doc/salome/gui/SMESH/input/index.doc index a4c2a66ab..d7a475137 100644 --- a/doc/salome/gui/SMESH/input/index.doc +++ b/doc/salome/gui/SMESH/input/index.doc @@ -25,7 +25,6 @@ It is possible to easily set parameters via the variables predefined in \subpage using_notebook_mesh_page "Salome notebook". Mesh module preferences are described in the \subpage mesh_preferences_page section of SALOME Mesh Help. -Also, there is a possibility to \subpage arranging_study_objects_page "re-arrange sub-meshes and groups in the SALOME study". Almost all mesh module functionalities are accessible via \subpage smeshpy_interface_page "Mesh module Python interface". diff --git a/doc/salome/gui/SMESH/input/mesh_through_point.doc b/doc/salome/gui/SMESH/input/mesh_through_point.doc index 958a662eb..679d629b4 100644 --- a/doc/salome/gui/SMESH/input/mesh_through_point.doc +++ b/doc/salome/gui/SMESH/input/mesh_through_point.doc @@ -14,17 +14,19 @@ click "Move Node" button in the toolbar. \image html image67.png
    "Move Node" button
    -One of the following dialogs will appear: +The following dialog will appear: -\image html meshtopass1.png "manual method of selecting node" -\image html meshtopass2.png "automatic method of selecting node" +\image html meshtopass1.png "Manual node selection" + +\image html meshtopass2.png "Automatic node selection"
  • -
  • Specify the way of selection of the node: manually (first radio button) or automatically (second radio button).
  • -
  • If the manual method selected, select the necessary node (X, Y, Z fields show the original coordinates of the node to move) or set the ID node.
  • +
  • Specify the way of node selection: manually (the first radio button) or automatically (the second radio button).
  • + +
  • If the manual method is selected, select the necessary node (X, Y, Z fields show the original coordinates of the node to move) or set the node ID.
  • Enter the coordinates of the destination point.
  • Click Update Destination button to update the coordinates of the destination point.
  • -
  • Activate \b Preview checkbox to show the result of move in the viewer
  • +
  • Activate \b Preview check-box to show the result of move in the viewer
  • Click the \b Apply or Apply and Close button to confirm the operation.
  • diff --git a/doc/salome/gui/SMESH/input/split_to_tetra.doc b/doc/salome/gui/SMESH/input/split_to_tetra.doc index eb7fe0f26..187af8b89 100644 --- a/doc/salome/gui/SMESH/input/split_to_tetra.doc +++ b/doc/salome/gui/SMESH/input/split_to_tetra.doc @@ -19,70 +19,50 @@ The following dialog box will appear: \image html split_into_tetra.png
    -Target element type group of radio-buttons allows to select -a type of operation. If \b Tetrahedron button is checked, then the -operation will split volumes of any type into tetrahedra. -If \b Prism button is checked, then the operation will split hexahedra -into prisms, and the dialog will look as follows: - -\image html split_into_prisms.png +First it is possible to select the type of operation: +- If \b Tetrahedron button is checked, the operation will split volumes of any type into tetrahedra. +- If \b Prism button is checked, the operation will split hexahedra into prisms.
      -
    • The main list contains list of volumes to split. You can click on +
    • The main list contains the list of volumes to split. You can click on a volume in the 3D viewer and it will be highlighted (lock Shift keyboard button to select several volumes). Click \b Add button and the ID of this volume will be added to the list. To remove the selected element or elements from the list click \b Remove button. Sort - list button allows to sort the list of IDs. \b Filter button allows to - apply a definite filter to the selection of volumes. + list button allows to sort the list of IDs. \b Filter button allows applying a filter to the selection of volumes.
      Note: If you split not all adjacent non-tetrahedral volumes, your mesh becomes non-conform.
    • -
    • Apply to all radio button allows to split all + +
    • Apply to all radio button allows splitting all volumes of the currently selected mesh.
    • -
    + +
  • If \b Tetrahedron element type is selected, Split hexahedron group allows specifying the number of tetrahedra a hexahedron will be split into. If the chosen method does not allow to get a conform mesh, a generic solution is applied: an additional node is created at the gravity center of a hexahedron, serving an apex of tetrahedra, all quadrangle sides of the hexahedron are split into two triangles each serving a base of a new tetrahedron.
  • -
      -
    • Split hexahedron group allows to specify a method of - splitting hexahedra. +
    • If \Prism element type is selected, the Split hexahedron group looks as follows: + +\image html split_into_prisms.png
        -
      • Into N tetrahedra/prisms allows to specify the number of - tetrahedra or prisms a hexahedron will be split into. If the - specified method does not allow to get a conform mesh, a generic - solution is applied: an additional node is created at the gravity - center of a hexahedron, serving an apex of tetrahedra, all - quadrangle sides of the hexahedron are split into two triangles each - serving a base of a new tetrahedron.
      • -
      • Facet to split group allows to specify a side (facet) of a - hexahedron to split into triangles when splitting into prisms. - The facet to split is defined by specifying a point and a direction - close to normal of the facet. The operation finds a hexahedron most - close to the specified point and splits a facet whose normal is most - close to the specified direction. Then the splitting is propagated - from that hexahedron to all adjacent hexahedra. -
          -
        • Hexa location allows to specify a start - point by which a first split hexahedron is found. - Selection button switches to selection of the element whose - barycenter will be used the start point and whose direction will be - used as a normal to facet to split into triangles. To return to - selection of volumes to split it is necessary to switch this button - off.
        • -
        • Facet normal allows to specify a direction of the - normal to hexahedron facet to split into triangles.
        • -
        -
      • All domains - if it is off the operation stops as all +
      • Into 2 (or 4) prisms allows to specify the number of prisms a hexahedron will be split into.
      • +
      • Facet to split group allows to specify the side (facet) of the hexahedron, which is split into triangles. This facet is defined by a point and a direction. The algorithm finds a hexahedron closest to the specified point and splits a facet whose normal is closest to the specified direction. Then the splitting is propagated from that hexahedron to all adjacent hexahedra. +The point and the direction by which the first split hexahedron is found can be specified: +
          +
        • by input of coordinates in Hexa location and Facet normal fields, or
        • +
        • by clicking Selection button and selecting in the viewer the element whose barycenter will be used as the start point and whose direction will be used as a normal to facet to split into triangles. Switch this button +off to return to selection of volumes to split.
        • +
        + +
      • If All domains option is off, the operation stops when all hehexedra adjacent to the start hexahedron are split into prisms. Else the operation tries to continue splitting starting from another hexahedron closest to the Hexa location.
      -
    • Select from a set of fields allows to choose a sub-mesh or an - existing group whose elements will be added to the list as you ckick - \b Add button.
    • +
    • Select from set of fields allows choosing a sub-mesh or an + existing group whose elements will be added to the list as you click \b Add button.
    -
  • Click the \b Apply or Apply and Close button to confirm the operation.
  • +
  • Click \b Apply or Apply and Close button to confirm the operation.
  • */ diff --git a/doc/salome/gui/SMESH/input/use_existing_algos.doc b/doc/salome/gui/SMESH/input/use_existing_algos.doc index 55eb854dd..bdb4151a4 100644 --- a/doc/salome/gui/SMESH/input/use_existing_algos.doc +++ b/doc/salome/gui/SMESH/input/use_existing_algos.doc @@ -1,8 +1,8 @@ /*! -\page import_algos_page "Import Elements from Another Mesh" Algorithms +\page import_algos_page Import Elements from Another Mesh Algorithms -\n Import nD Elements from Another Mesh algorithms allow to +\n Import Elements from Another Mesh algorithms allow to define the mesh of a geometrical object by importing suitably located mesh elements from another mesh. The mesh elements to import from the other mesh should be contained in -- 2.30.2