2D simple examples
-
Hello to everybody!
I am a beginner in using Salome and I would like to get a 2D simple example (or a simple tutorial) to know how to create the geometry and the mesh in 2D dimension.
I would be really grateful if you could give me such information.
Best regards and thank-you very much
Isa-
Hello Isabel,
See next a simply sample in python code:
- the geometric piece:
- a first great rectangle
- another rectangle inside the great
- this piece is meshed with quadrangles
Cordially,
Francis KLOSS
--------------------------------------------
# 2005, Francis KLOSS (OCC)
# =====================
from geompy import *
import smesh
# Géométrie
# =========
# Mailler en quadrangle un rectangle dont les longueurs sont des suites de segment. Des conditions limites doivent être posées sur ces segments.
# Les utilitaires 2D
# ------------------
def point(x, y):
return MakeVertex(x, y, 0)
def ligne(pt1, pt2):
x, y, z = PointCoordinates(pt1)
pt3 = MakeVertex(x, y, 50)
return MakePlaneThreePnt(pt1, pt2, pt3, 1000)
# Les points
# ----------
lon = 2.0
lar = 1.0
rect_b_g = point(0.0, 0.0)
rect_b_d = point(lon, 0.0)
rect_h_g = point(0.0, lar)
rect_h_d = point(lon, lar)
seg_b1_g = point(0.3, 0.0)
seg_b1_d = point(0.4, 0.0)
seg_b2_g = point(1.6, 0.0)
seg_b2_d = point(1.8, 0.0)
seg_h1_g = point(0.4, lar)
seg_h1_d = point(0.6, lar)
seg_h2_g = point(1.7, lar)
seg_h2_d = point(1.9, lar)
# Les edges
# ---------
def contour(l):
r = []
i = 1
n = len(l)
p = l[0]
while i<=n:
if i==n:
q = l[0]
else:
q = l[i]
e = MakeEdge(p, q)
r.append(e)
p = q
i = i + 1
return r
edges = contour([rect_b_g, seg_b1_g, seg_b1_d, seg_b2_g, seg_b2_d, rect_b_d, rect_h_d, seg_h2_d, seg_h2_g, seg_h1_d, seg_h1_g, rect_h_g])
# Le rectangle découpé en vue du maillage
# ---------------------------------------
contour = MakeWire(edges)
rectangle = MakeFace(contour, 1)
outils = []
outils.append(ligne(seg_h1_g, seg_b1_g))
outils.append(ligne(seg_h1_d, seg_b1_d))
outils.append(ligne(seg_h2_g, seg_b2_g))
outils.append(ligne(seg_h2_d, seg_b2_d))
piece = MakePartition([rectangle], outils, [], [], ShapeType["FACE"])
piece_nom = "rectangle"
piece_id = addToStudy(piece, piece_nom)
# Le maillage en quadrangle
# =========================
# La création du maillage
# -----------------------
quad = smesh.Mesh(piece, piece_nom + ":quad"
a1 = quad.Segment()
a1.NumberOfSegments(5)
a2 = quad.Quadrangle()
# Les hypothèses locales
# ----------------------
def locale(i, d):
e = GetInPlace(piece, edges[i])
a = quad.Segment(e)
a.NumberOfSegments(d)
a.Propagation()
locale(1, 10)
locale(3, 10)
locale(5, 20)
# Le calcul du maillage
# ---------------------
quad.Compute()
-
Powered by
Ploneboard