Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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('../../')
Esempio n. 4
0
    "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")
Esempio n. 5
0
# 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