# Case 3: Nose length ( Do with global FFD) # Case 4: Overall length ( Do with global FFD) # Case 5: Shape # xDV['length'][2] = 1.75#2.0#1.05 # xDV['angleVars'][2] = 0.15 # xDV['angleVars'][0] = 0.19 # xDV['noseLen'][0] = -0.1 # xDV['angleVars'][1] = 0.18 # xDV['angleVars'][2] = 0.18 # xDV['angleVars'][3] = 0.12 DVGeo.setDesignVars(xDV) mesh.setSurfaceCoordinates(DVGeo.update(ptSetName)) mesh.warpMesh() DVGeo.writeTecplot("warpedFFD.dat") # mesh.writeOFGridTecplot('warped.dat') mesh.writeGrid() # # Repeat ================ # #xDV['length'][2] = 1.25#2.0#1.05 # xDV['angleVars'][2] = 0.3 # DVGeo.setDesignVars(xDV) # #coords = DVGeo.update(ptSetName) # # for i in range(coords0.shape[0]): # # if coords0[i,1]==0: # # print 'x',coords[i,:] # # # end # # # end # # for i in range(coords.shape[0]):
FFD[DVGeo.getLocalIndex(0)[::-1, 1, 0]], FFD[DVGeo.getLocalIndex(0)[0, 0, 0]].reshape((1, 3)), ]).reshape(21, 3) # Add these control points to the FFD volume. This is only for visualization purposes in this demo. # Under normal circumstances you don't need to worry about adding the FFD points as a pointset DVGeo.addPointSet(FFDptset, "ffd") # Print the indices and coordinates of the FFD points for informational purposes print("FFD Indices:") print(DVGeo.getLocalIndex(0)[:, 0, 0]) print("FFD Coordinates:") print(FFD[DVGeo.getLocalIndex(0)[:, 0, 0]]) # Create tecplot output that contains the FFD control points, embedded volume, and pointset DVGeo.writeTecplot(fileName="undeformed_embedded.dat", solutionTime=1) # rst perturb geometry # Now let's deform the geometry. # We want to set the front and rear control points the same so we preserve symmetry along the z axis # and we ues the getLocalIndex function to accomplish this lower_front_idx = DVGeo.getLocalIndex(0)[:, 0, 0] lower_rear_idx = DVGeo.getLocalIndex(0)[:, 0, 1] upper_front_idx = DVGeo.getLocalIndex(0)[:, 1, 0] upper_rear_idx = DVGeo.getLocalIndex(0)[:, 1, 1] currentDV = DVGeo.getValues()["shape"] newDV = currentDV.copy() # add a constant offset (upward) to the lower points, plus a linear ramp and a trigonometric local change # this will shrink the cylinder height-wise and make it wavy