-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_shell.py
87 lines (52 loc) · 1.8 KB
/
test_shell.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import numpy as np
import time
from ffd_axisymmetric import Shell
from stl import STL
from geometry import Geometry
start_time = time.time()
icowl = STL('test_stl/InnerCowl.stl')
ocowl = STL('test_stl/OuterCowl.stl')
print "STL Load Time: ", time.time()-start_time
start_time = time.time()
#set up centerline control points
#NOTE: first control point is fixed in x,r
X = icowl.points[:,0]
x_max = np.max(X)
x_min = np.min(X)
n_C = 3 #control points
C_x = np.linspace(x_min,x_max,n_C)
C_r = np.zeros((n_C,))
C_centerline = np.array(zip(C_x,C_r))
#set up thickness control points
#NOTE: all control points fixed in x
#NOTE: first and last control point fixed in r
n_C = 3 #number control points
C_x = np.linspace(x_min,x_max,n_C)
C_r = np.zeros((n_C,))
C_thickness = np.array(zip(C_x,C_r))
#body = Body(centerbody,n_C=10) #just makes n_C evenly spaced points
shell = Shell(ocowl, icowl, C_centerline, C_thickness, name="cowl") #uses given tuples of points
shell0 = shell.copy()
geom = Geometry()
geom.add(shell0,name="c0")
geom.add(shell,name="cowl")
#params = geom.get_params() #params['centerbody'] = [(0,0),]
print "Bspline Compute Time: ", time.time()-start_time
start_time = time.time()
#calculate new P's
deltaC_x = [0,0,0]
deltaC_r = [0,0,0]
deltaC_c = np.array(zip(deltaC_x,deltaC_r))
deltaC_x = [0,0,0]
deltaC_r = [0,1,0]
deltaC_t = np.array(zip(deltaC_x,deltaC_r))
geom.deform(cowl=(deltaC_c, deltaC_t))
print "Run Time: ", time.time()-start_time
start_time = time.time()
geom.writeSTL('new.stl', ascii=False)
print "STL Write Time: ", time.time()-start_time
start_time = time.time()
geom.writeFEPOINT('deform.dat')
print "FEPoint Write Time: ", time.time()-start_time
#geometry.writeSTL('new.stl',body.coords.cartesian,ascii=False)
#centerbody.writeFEPOINT('deform.dat',body.coords.cartesian)