mirror of
https://github.com/NGSolve/netgen.git
synced 2024-11-11 16:49:16 +05:00
py - tutorials
This commit is contained in:
parent
b950bd6ca6
commit
01197e7739
24
py_tutorials/csg_first_example.py
Normal file
24
py_tutorials/csg_first_example.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import sys
|
||||||
|
sys.path.append("/opt/netgen/lib")
|
||||||
|
|
||||||
|
from libcsg.csg import *
|
||||||
|
from libmesh.meshing import *
|
||||||
|
|
||||||
|
|
||||||
|
sp1 = Sphere (Point3d(1,0,0), 1)
|
||||||
|
sp2 = Sphere (Point3d(2,0,0), 1)
|
||||||
|
|
||||||
|
both = Or(sp1, sp2)
|
||||||
|
all = And (both, OrthoBrick ( Point3d(0,0,0), Point3d (3,0.5,1)))
|
||||||
|
|
||||||
|
|
||||||
|
geom = CSGeometry()
|
||||||
|
geom.Add (all)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
param = MeshingParameters()
|
||||||
|
param.maxh = 0.2
|
||||||
|
mesh = GenerateMesh (geom, param)
|
||||||
|
|
||||||
|
mesh.Save ("test.vol")
|
16
py_tutorials/cube.geo
Normal file
16
py_tutorials/cube.geo
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
## A cube
|
||||||
|
#
|
||||||
|
algebraic3d
|
||||||
|
|
||||||
|
# cube consisting of 6 planes:
|
||||||
|
|
||||||
|
solid cube = plane (0, 0, 0; 0, 0, -1)
|
||||||
|
and plane (0, 0, 0; 0, -1, 0)
|
||||||
|
and plane (0, 0, 0; -1, 0, 0)
|
||||||
|
and plane (1, 1, 1; 0, 0, 1)
|
||||||
|
and plane (1, 1, 1; 0, 1, 0)
|
||||||
|
and plane (1, 1, 1; 1, 0, 0);
|
||||||
|
|
||||||
|
tlo cube;
|
||||||
|
|
26
py_tutorials/exportNeutral.py
Normal file
26
py_tutorials/exportNeutral.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
def Export (mesh, filename):
|
||||||
|
""" export Netgen mesh to neutral format """
|
||||||
|
|
||||||
|
print ("export mesh in neutral format to file = ", filename)
|
||||||
|
|
||||||
|
f = open (filename, 'w')
|
||||||
|
|
||||||
|
points = mesh.Points()
|
||||||
|
print (len(points), file=f)
|
||||||
|
for p in points:
|
||||||
|
print (p.p[0], p.p[1], p.p[2], file=f)
|
||||||
|
|
||||||
|
|
||||||
|
volels = mesh.Elements3D();
|
||||||
|
print (len(volels), file=f)
|
||||||
|
for el in volels:
|
||||||
|
print (el.index, end=" ", file=f)
|
||||||
|
for j in el.vertices:
|
||||||
|
print (j.nr, end=" ", file=f)
|
||||||
|
print(file=f)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
17
py_tutorials/mesh.py
Normal file
17
py_tutorials/mesh.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
from netgen.meshing import *
|
||||||
|
from netgen.csg import *
|
||||||
|
|
||||||
|
geo = CSGeometry("shaft.geo")
|
||||||
|
|
||||||
|
param = MeshingParameters()
|
||||||
|
param.maxh = 10
|
||||||
|
print (param)
|
||||||
|
|
||||||
|
m1 = GenerateMesh (geo, param)
|
||||||
|
|
||||||
|
|
||||||
|
import exportNeutral
|
||||||
|
exportNeutral.Export (m1, "shaft.mesh")
|
||||||
|
|
||||||
|
|
||||||
|
|
65
py_tutorials/shaft.geo
Normal file
65
py_tutorials/shaft.geo
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#
|
||||||
|
## Crankshaft
|
||||||
|
#
|
||||||
|
algebraic3d
|
||||||
|
solid p1 = plane (0, 0, 0; -1, 0, 0)
|
||||||
|
and plane (10, 0, 0; 1, 0, 0)
|
||||||
|
and
|
||||||
|
( plane (35, 0, 28; 0, -1, 3)
|
||||||
|
and plane (35, 0, -28; 0, -1, -3)
|
||||||
|
and plane (35, 0, 0; 0, 1, 0)
|
||||||
|
and plane (35, -30, 0; 0, -1, 0)
|
||||||
|
or cylinder (-10, 0, 0; 20, 0, 0; 30)
|
||||||
|
or cylinder (-10, -30, 0; 20, -30, 0; 20)
|
||||||
|
);
|
||||||
|
solid p2 = plane (35, 0, 0; -1, 0, 0)
|
||||||
|
and plane (45, 0, 0; 1, 0, 0)
|
||||||
|
and
|
||||||
|
( plane (35, 0, 28; 0, -1, 3)
|
||||||
|
and plane (35, 0, -28; 0, -1, -3)
|
||||||
|
and plane (35, 0, 0; 0, 1, 0)
|
||||||
|
and plane (35, -30, 0; 0, -1, 0)
|
||||||
|
or cylinder (30, 0, 0; 50, 0, 0; 30)
|
||||||
|
or cylinder (30, -30, 0; 50, -30, 0; 20)
|
||||||
|
);
|
||||||
|
solid p3 = plane (80, 0, 0; -1, 0, 0)
|
||||||
|
and plane (90, 0, 0; 1, 0, 0)
|
||||||
|
and
|
||||||
|
( plane (0, 0, 28; 0, 1, 3)
|
||||||
|
and plane (0, 0, -28; 0, 1, -3)
|
||||||
|
and plane (0, 0, 0; 0, -1, 0)
|
||||||
|
and plane (0, 30, 0; 0, 1, 0)
|
||||||
|
or cylinder (70, 0, 0; 100, 0, 0; 30)
|
||||||
|
or cylinder (70, 30, 0; 100, 30, 0; 20)
|
||||||
|
);
|
||||||
|
solid p4 = plane (115, 0, 0; -1, 0, 0)
|
||||||
|
and plane (125, 0, 0; 1, 0, 0)
|
||||||
|
and
|
||||||
|
( plane (35, 0, 28; 0, 1, 3)
|
||||||
|
and plane (35, 0, -28; 0, 1, -3)
|
||||||
|
and plane (35, 0, 0; 0, -1, 0)
|
||||||
|
and plane (35, 30, 0; 0, 1, 0)
|
||||||
|
or cylinder (110, 0, 0; 130, 0, 0; 30)
|
||||||
|
or cylinder (110, 30, 0;130, 30, 0; 20)
|
||||||
|
);
|
||||||
|
solid sh1 = cylinder (-50, 0, 0; 10, 0, 0; 15)
|
||||||
|
and plane (-40, 0, 0; -1, 0, 0)
|
||||||
|
and plane (5, 0, 0; 1, 0, 0);
|
||||||
|
solid sh2 = cylinder (30, 0, 0; 90, 0, 0; 15)
|
||||||
|
and plane (40, 0, 0; -1, 0, 0)
|
||||||
|
and plane (85, 0, 0; 1, 0, 0);
|
||||||
|
solid sh3 = cylinder (110, 0, 0; 170, 0, 0; 15)
|
||||||
|
and plane (120, 0, 0; -1, 0, 0)
|
||||||
|
and plane (165, 0, 0; 1, 0, 0);
|
||||||
|
|
||||||
|
solid pl1 = cylinder (0, -30, 0; 50, -30, 0; 10)
|
||||||
|
and plane (5, 0, 0; -1, 0, 0)
|
||||||
|
and plane (40, 0, 0; 1, 0, 0);
|
||||||
|
solid pl2 = cylinder (80, 30, 0; 130, 30, 0; 10)
|
||||||
|
and plane (85, 0, 0; -1, 0, 0)
|
||||||
|
and plane (120, 0, 0; 1, 0, 0);
|
||||||
|
#
|
||||||
|
#
|
||||||
|
solid main = p1 or p2 or p3 or p4 or sh1 or sh2 or sh3 or pl1 or pl2;
|
||||||
|
|
||||||
|
tlo main;
|
Loading…
Reference in New Issue
Block a user