Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:geometry:user:selections

This is an old revision of the document!


Node selection - Groups

Node selections are used to apply boundary conditions (Prescribed Displacements) or to extract curves (Saving history curves to disk) on a specific node set which does not initially come from a geometric entity. In Metafor, a selection is represented by a Group. This object is a virtual geometric entity which can possess nodes, in the same way as other entities receive them when they are meshed.

''Group'' Creation

AGroup is defined as any other geometric entity.

groupset.add( Group(number) )

Information on the nodes of a ''Group''

Some functions can be used to obtain data on some nodes of a Group:

grp = groupset(number)

grp.getNo()                 # Returns the number of the group grp 
grp.getNumberOfMeshPoints() # Returns the number of meshedPoints in the ''Group'' grp 
grp.getMeshPoint(idx)       # Returns a reference towards the idxth MeshedPoint of the group grp.

Adding nodes (simple)

groupset(number).add(GObject)
groupset(number).addMeshPoint(no)
groupset(number).addMeshPointsInBox(xmin, xmax, ymin, ymax, zmin, zmax)
groupset(number).addMeshPointsFromObject(target, selector)

where

number group number
no number of the node 1) to add to the group
xmin, ymin, zmin lower corner of the selection box
xmax, ymax, zmax upper corner of the selection box
target geometric entity used as support
selector selection operator which reduces the number of MeshPoints in the group

Tri des noeuds sélectionnés (sorter)

Il n'est pas toujours aisé de construire la sélection des noeuds sur les seuls noeuds dont on veut disposer (sur des tests paramétriques par exemples). Il est possible après sélection des noeuds de les trier et de n'en sélectionner qu'un nombre plus réduit que à l'origine. Le tri se fait à l'aide des operateurs de tri : ''SortingOperator''.

groupset(number).selectMeshPoints(sorter,nbMeshPoints)

number numéro du groupe
sorter opérateur de tri
nbMeshPoints nombre de MeshPoints conservés dans le groupe

Exemple:

group.addMeshPointsFromObject(sideset(1))
group.selectMeshPoints(SortByNo(),3) 

Tri des noeuds par leur numero et conservation de 3 valeurs.

Utilisation avancée (Selectors)

Ajout de noeuds depuis l'objet géométrique target:

groupset(number).addMeshPointsFromObject(target, selector)

selector est un objet de type Selector dont voici quelques classes dérivées:

  • BoxSelector (sélection dans une boîte),
  • RangeSelector (sélection dans une zone de l'espace),
  • DistSelector (sélection sphérique),
  • SectorSphericalSelector (sélection dans un secteur sphérique),
  • AnnealedSelector (sélection en anneau selon la direction x, y ou z),
  • SectorAnnealedSelector (sélection d'un quartier d'anneau défini par deux angles selon la direction x, y ou z),
  • InverseSelector (inverse le critère de sélection donné en argument).

Exemples:

group.addMeshPointsFromObject(sideset(1), RangeSelector(TX, xmin, xmax))  

récupère tous les noeuds de la face numéro 1 dont la coordonnée x est comprise entre xmin et xmax.

group.addMeshPointsFromObject(sideset(1), BoxSelector(xmin, xmax, ymin, ymax, zmin, zmax))

récupère tous les noeuds de la face numéro 1 de la boite rectangulaire définie par xmin, xmax, ymin, ymax, zmin, zmax.

 group.addMeshPoints(DistSelector(x, y, z, R))

récupère tous les noeuds situés dans la sphère de centre (x,y,z) et de rayon R.

 group.addMeshPoints(SectorSphericalSelector(Cx, Cy, Cz, rMin, rMax, thetaMin, thetaMax, phiMin, phiMax)) 

récupère tous les nœuds dans le secteur sphérique de centre (Cx,Cy,Cz), de rayon minimum rMin et maximum rMax, d'angle azimutale minimum thetaMin et maximum thetaMax, et d'angle d'élévation minimum phiMin et maximum phiMax :

Remarque : les angles sont calculés par rapport au système d'axes structuraux translatés au centre de la sphère. L'angle d'élévation varie de $-\frac{\pi}{2}$ à $\frac{\pi}{2}$ et l'angle azimutale varie de $0.0$ à $2 \pi$.

group.addMeshPoints(AnnealedSelector(TX, x, y, z, rMin, rMax, zMin, zMax))

récupère tous les noeuds situés entre les deux cylindres d'axe TX, de rayons rMin et rMax et compris entre de hauteur comprises entre zMin et zMax.

group.addMeshPoints(SectorAnnealedSelector(TX, x, y, z, rMin, rMax, thetaMin, thetaMax, zMin, zMax))

récupère tous les noeuds situés entre les deux quartier de cylindres d'axe TX, d'ouverture comprise entre thetaMin et thetaMax, de rayons rMin et rMax et compris entre de hauteur comprises entre zMin et zMax.

Selectors

1)
it is more of a MeshPoint, so a mesh point which can be found in domain.getTopology().getPointSet()
doc/user/geometry/user/selections.1407431883.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki