def ParseInp(fname, bIsolate): ######## Parse input file with open(args.inp_filename) as fid: lines = fid.readlines() for i, line in enumerate(lines): if line.startswith("*Node"): inodes = i + 1 if line.startswith("*Element"): iel = i + 1 break nlines = len(lines) nvertex = iel - inodes - 1 vertex = np.zeros((nvertex, 3), dtype=object) vid = np.zeros((nvertex), dtype=int) # Fill in vertex array vid_lookup = {} for i0, i in enumerate(range(inodes, iel - 1)): vals = lines[i].split(",") vid_lookup[int(vals[0])] = i0 vertex[i0, :] = [float(val) for val in vals[1:4]] # Fill in the triangles array faces = [] triangles = [] for i in range(iel, nlines): line = lines[i] if line.startswith("*Element"): if bIsolate: myFace = Face(vertex=None, connect=np.asarray(triangles)) faces.append(myFace) triangles = [] continue val = [int(v) for v in lines[i].split(",")[1:4]] triangles.append(val) myFace = Face(vertex=None, connect=np.asarray(triangles)) faces.append(myFace) for myFace in faces: myFace.reindex(vid_lookup) # reorder vertex from 0 to n where n is the number of vertice in the face unique_vid = list(set(list(myFace.connect.flatten()))) vid_lu = {unique_vid[k]: k for k in range(len(unique_vid))} myFace.reindex(vid_lu) vertex0 = vertex[unique_vid, :] myFace.vertex = vertex0 return faces
structured_grid.smooth(args.smooth[0]) structured_grid.generate_vertex() structured_grid.generate_connect() structured_grid.isolate_hole(args.hole) if args.proj: structured_grid.proj_vertex(args.proj[0]) if args.translate: structured_grid.translate(args.translate) basename, ext = os.path.splitext(args.output_file) nsolid = max(structured_grid.solid_id) + 1 if nsolid == 1: myFace = Face(structured_grid.vertex, structured_grid.connect) if structured_grid.is_sparse: myFace.reindex(structured_grid.vid_lookup) myFace.write(f"{basename}{ext}") else: for sid in range(nsolid): idtr = np.where(structured_grid.solid_id == sid)[0] aVid = np.unique(structured_grid.connect[idtr, :].flatten()) myFace = Face(vertex=None, connect=structured_grid.connect[idtr, :]) if structured_grid.is_sparse: myFace.reindex(structured_grid.vid_lookup) myFace.write(f"{basename}{sid}{ext}", structured_grid.vertex, write_full_vertex_array=False)