コード例 #1
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] += .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)
コード例 #2
0
ファイル: solve_script.py プロジェクト: mdolab/pyofm
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('../../')
コード例 #3
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")
コード例 #4
0
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)