51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
# 2d and 3d mesh generation with NETGEN
|
|
|
|
import salome
|
|
salome.salome_init()
|
|
import GEOM
|
|
from salome.geom import geomBuilder
|
|
geompy = geomBuilder.New(salome.myStudy)
|
|
|
|
import SMESH, SALOMEDS
|
|
from salome.smesh import smeshBuilder
|
|
smesh = smeshBuilder.New(salome.myStudy)
|
|
|
|
# create a box
|
|
box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
|
|
geompy.addToStudy(box, "Box")
|
|
|
|
|
|
# 1. Create a triangular 2D mesh on the box with NETGEN_1D2D algorithm
|
|
triaN = smesh.Mesh(box, "Box : triangular mesh by NETGEN_1D2D")
|
|
|
|
# create a NETGEN_1D2D algorithm for solids
|
|
algo2D = triaN.Triangle(smeshBuilder.NETGEN_1D2D)
|
|
|
|
# define hypotheses
|
|
n12_params = algo2D.Parameters()
|
|
|
|
# define number of segments
|
|
n12_params.SetNbSegPerEdge(19)
|
|
|
|
# define max element
|
|
n12_params.SetMaxSize(300)
|
|
|
|
# 2. Create a tetrahedral mesh on the box with NETGEN_1D2D3D algorithm (full netgen)
|
|
tetraN = smesh.Mesh(box, "Box : tetrahedrical mesh by NETGEN_1D2D3D")
|
|
|
|
# create a NETGEN_1D2D3D algorithm for solids
|
|
algo3D = tetraN.Tetrahedron(smeshBuilder.FULL_NETGEN)
|
|
|
|
# define hypotheses
|
|
n123_params = algo3D.Parameters()
|
|
|
|
# define number of segments
|
|
n123_params.SetNbSegPerEdge(11)
|
|
|
|
# define max element size
|
|
n123_params.SetMaxSize(300)
|
|
|
|
# compute the meshes
|
|
triaN.Compute()
|
|
tetraN.Compute()
|