Issues with controling mesh size for stl file
I would like mesh a stl file with different mesh size to conduct a convergence study. I referred the example t13.py to do that. My script is shown below.
import gmsh
import math
import os
import sys
gmsh.initialize()
gmsh.merge('S1_V8.stl')
angle = gmsh.onelab.getNumber('Parameters/Angle for surface detection')[0]
forceParametrizablePatches = gmsh.onelab.getNumber(
'Parameters/Create surfaces guaranteed to be parametrizable')[0]
curveAngle = 180
gmsh.model.mesh.classifySurfaces(angle * math.pi / 180., includeBoundary,
forceParametrizablePatches,
curveAngle * math.pi / 180.)
gmsh.model.mesh.createGeometry()
s = gmsh.model.getEntities(2)
l = gmsh.model.geo.addSurfaceLoop([e[1] for e in s])
V0 = gmsh.model.geo.addVolume([l])
gmsh.model.addPhysicalGroup(3, [V0], 1)
gmsh.model.geo.synchronize()
f = gmsh.model.mesh.field.add("MathEval")
gmsh.model.mesh.field.setString(f, "F", "4")
gmsh.model.mesh.field.setAsBackgroundMesh(f)
gmsh.model.mesh.generate(3)
#obtain the model dimension
xmin, ymin, zmin, xmax, ymax, zmax = gmsh.model.getBoundingBox(-1, -1)
gmsh.write("S1_V8_test_size2.msh")
gmsh.onelab.set("""[
{
"type":"number",
"name":"Parameters/Angle for surface detection",
"values":[40],
"min":20,
"max":120,
"step":1
},
{
"type":"number",
"name":"Parameters/Create surfaces guaranteed to be parametrizable",
"values":[0],
"choices":[0, 1]
},
{
"type":"number",
"name":"Parameters/Apply funny mesh size field?",
"values":[0],
"choices":[0, 1]
}
]""")
# Create the geometry and mesh it:
createGeometryAndMesh()
gmsh.finalize()
There is a error message saying "angle = gmsh.onelab.getNumber('Parameters/Angle for surface detection')[0] IndexError: index 0 is out of bounds for axis 0 with size 0". Could anyone help to look what mistakes did I make? Thanks.
Edited by Devin Liu