def test4(): # Test the MDO tutorial h mesh file_name = '../input_files/mdo_tutorial_face_bcs.cgns' meshOptions = copy.deepcopy(defOpts) meshOptions.update({ 'gridFile': file_name, 'fileType': 'cgns', 'symmetryPlanes': [[[0, 0, 0], [0, 0, 1]]], }) # Create warping object mesh = USMesh(options=meshOptions) # Extract Surface Coordinates coords0 = mesh.getSurfaceCoordinates() vCoords = mesh.getCommonGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of vCoords Inital:') reg_write(val, 1e-8, 1e-8) new_coords = coords0.copy() # Do a shearing sweep deflection: for i in range(len(coords0)): span = coords0[i, 2] new_coords[i, 0] += .05 * span # Reset the newly computed surface coordiantes mesh.setSurfaceCoordinates(new_coords) mesh.warpMesh() # Get the sum of the warped coordinates #vCoords = mesh.getSolverGrid() vCoords = mesh.getWarpGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of vCoords Warped:') reg_write(val, 1e-8, 1e-8) # Create a dXv vector to do test the mesh warping with: dXv_warp = numpy.linspace(0, 1.0, mesh.warp.griddata.warpmeshdof) if MPI.COMM_WORLD.rank == 0: print('Computing Warp Deriv') mesh.warpDeriv(dXv_warp, solverVec=False) dXs = mesh.getdXs() val = MPI.COMM_WORLD.reduce(numpy.sum(dXs.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of dxs:') reg_write(val, 1e-8, 1e-8) if MPI.COMM_WORLD.rank == 0: print('Verifying Warp Deriv') mesh.verifyWarpDeriv(dXv_warp, solverVec=False, dofStart=0, dofEnd=5)
def test3(): # Test the mdo tutorial o mesh file_name = "../input_files/o_mesh.cgns" meshOptions = copy.deepcopy(defOpts) meshOptions.update({"gridFile": file_name, "fileType": "cgns"}) # Create warping object mesh = USMesh(options=meshOptions) # Extract Surface Coordinates coords0 = mesh.getSurfaceCoordinates() vCoords = mesh.getCommonGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print("Sum of vCoords Inital:") reg_write(val, 1e-8, 1e-8) new_coords = coords0.copy() # Do a shearing sweep deflection: for i in range(len(coords0)): span = coords0[i, 2] new_coords[i, 0] += 0.05 * span # Reset the newly computed surface coordiantes mesh.setSurfaceCoordinates(new_coords) mesh.warpMesh() # Get the sum of the warped coordinates # vCoords = mesh.getSolverGrid() vCoords = mesh.getWarpGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print("Sum of vCoords Warped:") reg_write(val, 1e-8, 1e-8) # Create a dXv vector to do test the mesh warping with: dXv_warp = numpy.linspace(0, 1.0, mesh.warp.griddata.warpmeshdof) if MPI.COMM_WORLD.rank == 0: print("Computing Warp Deriv") mesh.warpDeriv(dXv_warp, solverVec=False) dXs = mesh.getdXs() val = MPI.COMM_WORLD.reduce(numpy.sum(dXs.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print("Sum of dxs:") reg_write(val, 1e-8, 1e-8) if MPI.COMM_WORLD.rank == 0: print("Verifying Warp Deriv") mesh.verifyWarpDeriv(dXv_warp, solverVec=False, dofStart=0, dofEnd=5)
def test1(): # Test the Ahmed body openfoam mesh sys.stdout.flush() #change directory to the correct test case os.chdir('./input/ahmedBodyMesh/') file_name = os.getcwd() meshOptions = copy.deepcopy(defOpts) meshOptions.update({ 'gridFile': file_name, 'fileType': 'openfoam', 'symmetryPlanes': [[[0, 0, 0], [0, 1, 0]]], }) # Create warping object mesh = USMesh(options=meshOptions) # Extract Surface Coordinates coords0 = mesh.getSurfaceCoordinates() vCoords = mesh.getCommonGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of vCoords Inital:') reg_write(val, 1e-8, 1e-8) new_coords = coords0.copy() # Do a stretch: for i in range(len(coords0)): length = coords0[i, 2] new_coords[i, 0] += .05 * length # Reset the newly computed surface coordiantes mesh.setSurfaceCoordinates(new_coords) mesh.warpMesh() vCoords = mesh.getWarpGrid() val = MPI.COMM_WORLD.reduce(numpy.sum(vCoords.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of vCoords Warped:') reg_write(val, 1e-8, 1e-8) # Create a dXv vector to do test the mesh warping with: dXv_warp = numpy.linspace(0, 1.0, mesh.warp.griddata.warpmeshdof) if MPI.COMM_WORLD.rank == 0: print('Computing Warp Deriv') mesh.warpDeriv(dXv_warp, solverVec=False) dXs = mesh.getdXs() val = MPI.COMM_WORLD.reduce(numpy.sum(dXs.flatten()), op=MPI.SUM) if MPI.COMM_WORLD.rank == 0: print('Sum of dxs:') reg_write(val, 1e-8, 1e-8) if MPI.COMM_WORLD.rank == 0: print('Verifying Warp Deriv') mesh.verifyWarpDeriv(dXv_warp, solverVec=False, dofStart=0, dofEnd=10, h=1e-9) #change back to the original directory os.chdir('../../')
"bExp": 5.0, "LdefFact": 1.0, "alpha": 0.25, "errTol": 0.0005, "evalMode": "fast", "symmTol": 1e-6, "useRotations": True, "bucketSize": 8, } # Create the mesh object mesh = USMesh(options=options, comm=MPI.COMM_WORLD) coords0 = mesh.getSurfaceCoordinates() new_coords = coords0.copy() for i in range(len(coords0)): span = coords0[i, 2] new_coords[i, 0] += 0.05 * span new_coords[i, 1] += 0.05 * span new_coords[i, 2] += 0.15 * span # Reset the newly computed surface coordiantes mesh.setSurfaceCoordinates(new_coords) # Actually run the mesh warping mesh.warpMesh() # Write the new grid file. mesh.writeGrid("warped.cgns")
# Case 1: Rear Ramp angle, fixed length # Case 2: Upper and lower ramp angles, fixed length # 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