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] += .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")
def test5(): # Test the MDO tutorial h mesh file_name = "../input_files/symm_block.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() for i in range(len(coords0)): new_coords[i, 0] *= 1.1 new_coords[i, 1] *= 1.2 new_coords[i, 1] *= 1.3 # 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, h=1e-10)