File: surface_filling.py

package info (click to toggle)
gmsh 4.15.1%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 52,880 kB
  • sloc: cpp: 440,657; ansic: 114,930; f90: 15,611; python: 13,907; yacc: 7,438; java: 3,491; lisp: 3,206; lex: 633; perl: 571; makefile: 500; xml: 414; sh: 407; javascript: 113; modula3: 32
file content (37 lines) | stat: -rw-r--r-- 1,162 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import gmsh
import sys

gmsh.initialize()
gmsh.option.setNumber('Mesh.MeshSizeMin', 0.02)
gmsh.option.setNumber('Mesh.MeshSizeMax', 0.02)
gmsh.model.occ.addPoint(-0.8, 0.1, -0.2, 1)
gmsh.model.occ.addPoint(-0.5, 0.1, -0.2, 2)
gmsh.model.occ.addPoint(-0.6, 0, -0.1, 3)
gmsh.model.occ.addPoint(-0.7, -0, -0.1, 4)
gmsh.model.occ.addPoint(-0.7, 0.2, -0.2, 5)
gmsh.model.occ.addPoint(-0.6, 0.1, -0.1, 6)
gmsh.model.occ.addSpline([1, 5, 2], 1)
gmsh.model.occ.addSpline([2, 6, 3], 2)
gmsh.model.occ.addSpline([3, 4, 1], 3)
gmsh.model.occ.addCurveLoop([1, 2, 3], 1)

# Bspline surface bounded by curve loop 1, constructed by optimization
gmsh.model.occ.addSurfaceFilling(1, 1)

# BSpline filling (try "Stretch" or "Curved")
gmsh.model.occ.addBSplineFilling(1, 2, 'Curved')

# Bezier filling - can be used if all bounding curves are Bezier curves
# gmsh.model.occ.addBezierFilling(1, 3)

# Same as 1, but passing through points 7 and 8
gmsh.model.occ.addPoint(-0.7, 0.1, -0.2, 7)
gmsh.model.occ.addPoint(-0.67, 0.1, -0.2, 8)
gmsh.model.occ.addSurfaceFilling(1, 4, [7, 8])

gmsh.model.occ.synchronize()

if '-nopopup' not in sys.argv:
    gmsh.fltk.run()

gmsh.finalize()