def create_grid_from_grid_files(program_data):
    grid_file = program_data["grid_desc"]["read_grid"]
    time_steps = program_data["time_steps"]
    sgf = SpartaGridFile(grid_file)
    merge_points = create_merge_points(program_data)
    unstructured_grid = vtk.vtkUnstructuredGrid()
    unstructured_grid.SetPoints(merge_points.GetPoints())
    init_flow_file_arrays(unstructured_grid, program_data)
    global_ids = {}
    count = 1
    if is_rank_zero():
        print("Started sorted grid file read")
        print("Creating grid")
    with open(get_bucket_file_name(get_rank(), program_data), 'r') as f:
        for cell_id in f:
            cell_id = cell_id.strip()
            cell = create_grid_cell(cell_id, sgf, program_data, merge_points)
            unstructured_grid.InsertNextCell(cell.GetCellType(),
                                             cell.GetPointIds())
            if time_steps:
                lcid = sgf.get_local_cell_id_from_dashed_cell_id(cell_id)
                global_ids[lcid] = count - 1
            insert_value_in_flow_file_arrays(0.0, unstructured_grid)
            if is_rank_zero() and count % 10000 == 0:
                print("Read " + str(count) + " cells")
            count += 1
    if is_rank_zero():
        print("Finished sorted grid file read")
        print("Finished creating grid")
    return (unstructured_grid, global_ids)
Exemple #2
0
def check_grid_file(args):
    error_flag = False
    if is_rank_zero():
        try:
            sgf = SpartaGridFile(args.sparta_grid_file_path)
        except:
            error_flag = True

    if error_found_on_rank_zero(error_flag):
        sys.exit(1)
Exemple #3
0
def get_grid_file_cells(grid_file_path):
    sgf = SpartaGridFile(grid_file_path)
    sgf.set_iteration_start(get_rank())
    sgf.set_iteration_skip(get_size())
    if is_rank_zero():
        print("Reading Sparta grid file " + grid_file_path)
    cells = []
    count = 0
    for cell in sgf:
        cells.append(cell)
        count += 1
        if is_rank_zero() and count % 10000 == 0:
            print("Read " + str(count) + " cell(s) from grid file")
    if is_rank_zero():
        print("Finished grid file read")
    return cells
def create_grid_description(args):
    error_flag = False
    grid_desc = None
    if is_rank_zero():
        grid_desc = {}
        gdf = open(args.sparta_grid_description_file, "r")
        read_grid_description_file(gdf, grid_desc)
        gdf.close()

        if "dimension" not in grid_desc:
            print(
                "Error: grid description file does not have a dimension statement: ",
                args.sparta_grid_description_file)
            error_flag = True

        if "create_box" not in grid_desc:
            print(
                "Error: grid description file does not have a create_box statement: ",
                args.sparta_grid_description_file)
            error_flag = True

        if "read_grid" not in grid_desc:
            print(
                "Error: grid description file does not have a read_grid statement: ",
                args.sparta_grid_description_file)
            error_flag = True

        if os.path.isfile(args.paraview_output_file + '.pvd'):
            print("ParaView output file exists: ",
                  args.paraview_output_file + '.pvd')
            error_flag = True

        try:
            sgf = SpartaGridFile(grid_desc["read_grid"])
        except:
            error_flag = True

    if error_found_on_rank_zero(error_flag):
        sys.exit(1)

    if is_rank_zero():
        print("Processing " + str(sgf.number_of_cells) +\
            " cell(s) on " + str(get_size()) + " MPI rank(s)")
        os.mkdir(args.paraview_output_file)

    return grid_desc
 def loadDataFromGridFile(self, grid_file):
     sgf = SpartaGridFile(grid_file)
     sgf.set_iteration_start(get_rank())
     sgf.set_iteration_skip(get_size())
     return [line for line in sgf]
Exemple #6
0
 def testSpartaCircleGridFile(self):
    cgf = SpartaGridFile(CIRCLE_GRID_FILE)
    self.checkDashedIdConversion(cgf)
Exemple #7
0
 def testSpartaGridFile200(self):
    sgf = SpartaGridFile(GRID_FILE_200)
    self.checkDashedIdConversion(sgf)
 def readGridFileWithSkip(self, grid_file, start, skip):
     sgf = SpartaGridFile(grid_file)
     sgf.set_iteration_start(start)
     sgf.set_iteration_skip(skip)
     return [line for line in sgf]