MeshPoint
, so a mesh point which can be found in domain.getTopology().getPointSet()
This is an old revision of the document!
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.
AGroup
is defined as any other geometric entity.
groupset.add( Group(number) )
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.
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 |
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)
où
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.
Ajout de noeuds depuis l'objet géométrique target
:
groupset(number).addMeshPointsFromObject(target, selector)
où 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
.
MeshPoint
, so a mesh point which can be found in domain.getTopology().getPointSet()