Rien

Rien
Modifs
- Ajout d'un mailleur triangulaire 2D.
- L'intérêt direct est de pouvoir mailler une pièce avec des triangles (Lara en a besoin pour ses XFEM). On pourra ensuite utiliser ce mailleur pour la visu des surfaces ou pour facétiser les matrices de contact.
- Il s'agit d'un soft externe appelé Triangle (utilisé notamment pas GMsh). Je l'ai interfacé de manière externe. Autrement dit, la classe d'interface (une classe python) crée un fichier temporaire avec les données, lance le programme (triangle.exe) et relit les résultats. Pourquoi ne pas l'avoir intégré de manière interne? c'est pour avoir plus de souplesse avec la licence: "Distribution of this code as
part of a commercial system is permissible ONLY BY DIRECT ARRANGEMENT
WITH THE AUTHOR. (If you are not directly supplying this code to a
customer, and you are instead telling them how they can obtain it for
free, then you are not required to make any arrangement with me.)".
- J'ai installé triangle sur toutes les stations Unix.
- L'intérêt de ce mailleur (de type Delaunay contraint) est qu'il permet de spécifier la densité et l'angle minimum voulu des triangles générés. Un autre intérêt est qu'il existe un mailleur tétra avec la même interface pour le futur.
- J'ai ajouté un test dans la batterie (qs.triangleMesher). L'interface (full python) est dans toolbox.meshers.
- Pour faire passer la batterie, vous devez donc compiler triangle et le mettre dans votre PATH. Récupérez le sur mon site FTP (ou compilez-le vous-même).
- Je n'ai pas pris en compte les contours internes (trous). Ce serait possible de le faire.
- Modification des méthodes de repositionnement des noeuds:
- Elles peuvent être utilisées comme méthode de lissage dans votre jeu de données.
- Un exemple est donné dans qs.triangleMesher.
Exemple
Le maillage:
from toolbox.meshers import TriangleMesher
mesher = TriangleMesher(geo.getSideSet()(1), dom)
#mesher.setMaxAngle(20)
mesher.setMaxArea(0.05)
mesher.execute()
Le lissage:
dom.getTopology().linkAll()
rez = Laplacian2DReZoner(geo.getSideSet()(1),20)
rez.execute()
dom.getTopology().deleteLinks()
