def write_panair(self, panair_filename, panair_case_filename): pan = PanairGrid() pan.mach = 0.5 pan.is_end = True pan.ncases = 2 pan.alphas = [0., 5.] i = 0 pan.nNetworks = 1 kt = 1 cp_norm = 1 for name, comps in sorted(self.components.items()): #panair_file.write('$ name = %r\n' % name) for comp in comps: str(comp) namei = name + str(i) # lifting_surface_xyz, lifting_surface_nx, lifting_surface_ny x = deepcopy(comp.xyz[:, 0]) y = deepcopy(comp.xyz[:, 1]) z = deepcopy(comp.xyz[:, 2]) x = x.reshape((comp.nx, comp.ny)) y = y.reshape((comp.nx, comp.ny)) z = z.reshape((comp.nx, comp.ny)) xyz = np.dstack([x, y, z]) assert xyz.shape[2] == 3 patch = PanairPatch(pan.nNetworks, namei, kt, cp_norm, xyz, self.log) pan.patches[i] = patch pan.nNetworks += 1 i += 1 if 'wing' in name.lower(): # make a wing cap namei = 'cap%i' % i #assert comp.lifting_surface_nx == 6, comp.lifting_surface_nx assert comp.ny == 33, comp.ny #print(x.shape) xend = deepcopy(x[-1, :]) #print(xend) yend = deepcopy(y[-1, :]) zend = deepcopy(z[-1, :]) imid = comp.ny // 2 x = np.zeros((imid+1, 2), dtype='float32') y = np.zeros((imid+1, 2), dtype='float32') z = np.zeros((imid+1, 2), dtype='float32') #print(imid, xend[imid], xend.min()) xflip = list(xend[0:imid+1]) yflip = list(yend[0:imid+1]) zflip = list(zend[0:imid+1]) x[:, 0] = xflip[::-1] y[:, 0] = yflip[::-1] z[:, 0] = zflip[::-1] x[:, 1] = xend[imid:] y[:, 1] = yend[imid:] z[:, 1] = zend[imid:] #print(x) #x = xend[0:imid:-1].extend(x[imid:]) #y = yend[0:imid:-1].extend(y[imid:]) #z = zend[0:imid:-1].extend(z[imid:]) #print(x) x = x.reshape((2, imid+1)) y = y.reshape((2, imid+1)) z = z.reshape((2, imid+1)) #print(xend) xyz = np.dstack([x, y, z]) assert xyz.shape[2] == 3 patch = PanairPatch(pan.nNetworks, namei, kt, cp_norm, xyz, self.log) pan.patches[i] = patch pan.nNetworks += 1 i += 1 #i += 1 pan.write_panair(panair_filename)
def write_panair(self, panair_filename, panair_case_filename): #panair_file = open(panair_filename, 'wb') pan = PanairGrid() pan.mach = 0.5 pan.isEnd = True pan.ncases = 2 pan.alphas = [0., 5.] i = 0 pan.nNetworks = 1 kt = 1 cpNorm = 1 for name, comps in sorted(iteritems(self.components)): #panair_file.write('$ name = %r\n' % name) for comp in comps: namei = name + str(i) x = deepcopy(comp.lifting_surface_xyz[:, 0]) y = deepcopy(comp.lifting_surface_xyz[:, 1]) z = deepcopy(comp.lifting_surface_xyz[:, 2]) x = x.reshape((comp.lifting_surface_nx, comp.lifting_surface_ny)) y = y.reshape((comp.lifting_surface_nx, comp.lifting_surface_ny)) z = z.reshape((comp.lifting_surface_nx, comp.lifting_surface_ny)) patch = PanairPatch(pan.nNetworks, namei, kt, cpNorm, x, y, z, self.log) pan.patches[i] = patch pan.nNetworks += 1 i += 1 if 'wing' in name.lower(): # make a wing cap namei = 'cap%i' % i #assert comp.lifting_surface_nx == 6, comp.lifting_surface_nx assert comp.lifting_surface_ny == 33, comp.lifting_surface_ny #print(x.shape) xend = deepcopy(x[-1, :]) print(xend) yend = deepcopy(y[-1, :]) zend = deepcopy(z[-1, :]) imid = comp.lifting_surface_ny // 2 x = np.zeros((imid+1, 2), dtype='float32') y = np.zeros((imid+1, 2), dtype='float32') z = np.zeros((imid+1, 2), dtype='float32') print(imid, xend[imid], xend.min()) xflip = list(xend[0:imid+1]) yflip = list(yend[0:imid+1]) zflip = list(zend[0:imid+1]) x[:, 0] = xflip[::-1] y[:, 0] = yflip[::-1] z[:, 0] = zflip[::-1] x[:, 1] = xend[imid:] y[:, 1] = yend[imid:] z[:, 1] = zend[imid:] print (x) #x = xend[0:imid:-1].extend(x[imid:]) #y = yend[0:imid:-1].extend(y[imid:]) #z = zend[0:imid:-1].extend(z[imid:]) #print(x) x = x.reshape((2, imid+1)) y = y.reshape((2, imid+1)) z = z.reshape((2, imid+1)) #print(xend) patch = PanairPatch(pan.nNetworks, namei, kt, cpNorm, x.T, y.T, z.T, self.log) pan.patches[i] = patch pan.nNetworks += 1 i += 1 #i += 1 pan.write_panair(panair_filename)