$$$$ PART NOTICE JC220346 16/11/21 21:15:03 9192 DATE 16/11/21 Operateur PARTITION Voir aussi : ------------------- TABL1 = PART ('NESC') | 'OPTI' MAIL1 (ENTI1) ; | | 'ARLE' | MAIL1 | ENTI1 ; | | MODL1 | | | 'CONN' MAIL1 ; | | 'SEPA' MAIL1 SEPA1 (SEPA2 ...) ; avec SEPAi = | 'FACE' | 'LIGN' | 'MAIL' MAIL2 | 'ANGL' (FLOT2) ('TELQ') Section : Maillage Manipulation FRAN========================================================== Objet : _______ L'operateur PART construit une partition d'un objet, soit sa decomposition en sous-ensembles non vides, disjoints deux a deux et dont l'union correspond a l'objet initial. Note : en l'absence du mot-cle 'NESC', la TABLE renvoyee en sortie sera de SOUSTYPE 'ESCLAVE'. +---------------------+ | Partition OPTIMISEE | +---------------------+ Tente d'equilibrer la taille des sous-parties d'un maillage et de minimiser le nombre de points sur les frontieres. Commentaire : _____________ MAIL1 : Geometrie a partitionner (type MAILLAGE) ENTI1 : Nombre de zones dans la partition (type ENTIER) Doit etre une puissance entiere positive de 2. Par defaut, on prend la plus petite puissance entiere positive de 2 superieure au nombre d'assistants TABL1 : Partition du maillage/modele (type TABLE) C'est une table dont les indices sont les entiers compris entre 1 et ENTI1 et dont les valeurs sont les maillages composant la partition +-----------------------------------+ | Partition selon un motif ARLEQUIN | +-----------------------------------+ Disperse des rangees d'elements adjacents dans les differentes zones de la partition. Commentaire : _____________ MAIL1 : Geometrie a partitionner (type MAILLAGE) MODL1 : Modele a partitionner (type MMODEL) ENTI1 : Nombre de zones dans la partition (type ENTIER) TABL1 : Partition du maillage/modele (type TABLE) C'est une table dont les indices sont les entiers compris entre 1 et ENTI1 et dont les valeurs sont les maillages ou modeles composant la partition +-----------------------------------+ | Partition en composantes CONNEXES | +-----------------------------------+ Decompose un maillage en ses composantes connexes. Une composante connexe regroupe l'ensemble des elements joignables, c'est-a-dire entre lesquels il est possible de trouver une chaine d'elements ou deux maillons consecutifs partagent au moins 1 noeud. Commentaire : _____________ MAIL1 : Geometrie a partitionner (type MAILLAGE) TABL1 : Partition du maillage (type TABLE) C'est une table dont les indices sont les entiers compris entre 1 et le nombre de composantes connexes et dont les valeurs sont les maillages formant les composantes connexes +---------------------------------+ | Partition suivant un SEPARATEUR | +---------------------------------+ Separe les composantes connexes d'un maillage (voir definition ci-dessus) puis les subdivise suivant des regles donnees : 1) Mot-cle 'LIGN' (destine aux maillages de lignes) : Les noeuds appartenant a plus de 2 elements jouent le role de separateur (ces noeuds peuvent par ailleurs etre determines grace a l'operateur POIN 'JONC'). => Plusieurs lignes se rejoignant en un meme noeud formeront autant de zones distinctes 2) Mot-cle 'FACE' (destine aux maillages surfaciques) : Les aretes appartenant a plus de 2 elements jouent le role de separateur (ces lignes peuvent par ailleurs etre determinees par l'operateur CONT 'INTE'). => Deux surfaces ayant seulement 1 noeud en commun seront dans des zones distinctes => L'intersection de plusieurs surfaces (suivant une ou plusieurs lignes) aboutira a autant de zones distinctes 3) Mot-cle 'MAIL' : Le separateur est fourni sous la forme d'un maillage quelconque, typiquement surfacique pour partitionner des volumes, lineique pour partitionner des surfaces ou de POI1 pour partitionner des lignes. C'est une generalisation des options 'LIGN' et 'FACE'. => Deux elements voisins du maillage a partitionner dont l'interface est incluse dans un element appartenant au maillage separateur seront affectes a des zones distinctes 4) Mot-cle 'ANGL' (destine aux maillages de lignes/surfaces) : Les aretes vives ou les angles vifs jouent le role de separateurs. => Deux elements voisins appartiennent a la meme zone si et seulement si l'angle entre leurs vecteurs normaux (surfaces) ou tangents (lignes) forment un angle plus petit qu'une valeur FLOT2 specifiee par l'utilisateur (angle non oriente compris entre 0 et 180 degres, par defaut 20 degres) => On considere par defaut que les elements voisins qui forment un angle de 180 degres appartiennent bien a la meme zone. Si ce n'est pas le comportement desire, il faut ajouter le mot-cle 'TELQ' Commentaire : _____________ MAIL1 : Geometrie a partitionner (type MAILLAGE) MAIL2 : Geometrie constituant le separateur (type MAILLAGE) Ses elements sont typiquement une dimension plus petite que ceux de MAIL1 (surfaces pour separer un volume, lignes pour separer une surface et points pour separer des lignes) FLOT1 : Angle en-deca duquel une arete (ou un angle) est consideree comme suffisamment "vive" pour separer deux zones voisines (valeur entre 0 et 180 degres, type FLOTTANT) TABL1 : Partition du maillage (type TABLE) C'est une table dont les indices sont les entiers compris entre 1 et le nombre de zones et dont les valeurs sont les maillages formant les differentes zones ANGL========================================================== Description : _____________ The PART operator builds a partition of an object, i.e. its decomposition into non-empty subsets in a way that every element is included in one and only one of the subsets, and that their union gives the initial object. Remark : without the 'NESC' keyword, the returned TABLE will have the 'ESCLAVE' subtype. +---------------------+ | OPTIMIZED partition | +---------------------+ Tries to balance the sizes of different subsets and to minimize the number of points on the frontiers. Comment : _________ MAIL1 : Mesh to be split (MAILLAGE type) ENTI1 : Number of subsets in the partition (ENTIER type) Must be a positive integer power of 2. If omitted, the number of zones is the smallest positive integer power of 2 greater than the number of assistants TABL1 : Partition of the mesh/model (TABLE type) It is a table whose indexes are integers between 1 and ENTI1 and whose values are the meshes inside the partition +--------------------------------------------+ | Partition according to an ARLEQUIN pattern | +--------------------------------------------+ Scatters rows of adjacent elements into differents subsets of the partition. Comment : _________ MAIL1 : Mesh to be split (MAILLAGE type) MODL1 : Model to be split (MMODEL type) ENTI1 : Number of subsets in the partition (ENTIER type) TABL1 : Partition of the mesh/model (TABLE type) It is a table whose indexes are integers between 1 and ENTI1 and whose values are the meshes or models inside the partition +-----------------------------------+ | Partition in CONNECTED components | +-----------------------------------+ Splits a mesh into its connected components. A connected component groups together "linkable" elements, i.e. those between which a chain of elements can be found where two consecutive links share at least 1 node. Comment : _________ MAIL1 : Mesh to be split (MAILLAGE type) TABL1 : Partition of the mesh/model (TABLE type) It is a table whose indexes are integers between 1 and the number of connected components and whose values are the meshes of the connected components +------------------------------------+ | Partition according to a SEPARATOR | +------------------------------------+ Breaks up a mesh into connected components (see the definition above) then divides them according to specific rules : 1) Keyword 'LIGN' (meant for line meshes) : The nodes connected to more than 2 elements are separators (these nodes can be found by the POIN 'JONC' operator). => Several lines joining to the same node will yield as many distinct subsets 2) Keyword 'FACE' (meant for surface meshes) : The edges connected to more than 2 elements are separators (these edges can be found by the CONT 'INTE' operator). => Two surfaces with only 1 common node will be split into differents subsets => The intersection of several surfaces (along one or several lines) will yield as many distinct subsets 3) Keyword 'MAIL' : The separator is provided as a mesh, typically a surface to split volumes, a line to split surfaces and a point to split lines. It can be considered a generalization of 'LIGN' and 'FACE' options. => Two adjacent elements of the mesh to be split whose interface is included inside an element of the separating mesh will be affected to distinct subsets 4) Keyword 'ANGL' (meant fot line/surface meshes) : Feature edges or angles are the separators. => Two elements belong to the same subset if and only if their normal vectors (surfaces) or tangent vectors (lines) cross at an angle least than a threshold value FLOT2 specified by the user (non-oriented angle between 0 and 180 degrees, 20 degrees by default) => By default, the adjacent elements making an angle of 180 degrees belong to the same subset. If this is not the wanted result, the 'TELQ' keyword must be added Comment : _________ MAIL1 : Mesh to be split (MAILLAGE type) MAIL2 : Separator mesh (MAILLAGE type) Its elements are typically 1 dimension smaller than those of MAIL1 (surfaces for a volume, lines for a surface and points for a line) FLOT1 : Maximum angle above which an angle will break up two neighbor subsets of elements (value between 0 and 180 degrees, FLOTTANT type) TABL1 : Partition of the mesh/model (TABLE type) It is a table whose indexes are integers between 1 and the number of subsets and whose values are the meshes of the different subsets $$$$