def calculate_partition_weights(): partition_weights = numpy.zeros(num_partitions, dtype=float) for i in range(num_partitions): filename = 'Parallel-NP16-flredecomp-2d-fieldweighted_CoordinateMesh_%d.msh' % i mesh = gmshtools.ReadMsh(filename) # Sum weights across each partition. # Note prognostic region ID == 27: weighting (in .flml) == 1.0 # Prescribed regions ID == 24, 30: weighting (in .flml) == 0.01 for j in range(mesh.VolumeElementCount()): ids = mesh.GetVolumeElement(j).GetIds() if (ids[0] == 27): partition_weights[i] = partition_weights[i] + 1.0 else: partition_weights[i] = partition_weights[i] + 0.005 min_weight = min(partition_weights) max_weight = max(partition_weights) max_load_imbalance = max_weight / min_weight return max_load_imbalance
"To rescale the z-dimension by a factor of 1000,\n" "%prog '(x,y,1000*z)' mesh.\n") (options, argv) = optparser.parse_args() if len(argv) != 2: optparser.print_help() sys.exit(1) transformation = argv[0] mesh_name = argv[1] # make all definitions of the math module available in # the transformation expression. globals = math.__dict__ mesh = gmshtools.ReadMsh(mesh_name + '.msh') dim = mesh.GetDim() def remap(coords): globals['x'] = coords[0] globals['y'] = coords[1] if dim == 3: globals['z'] = coords[2] return eval(transformation, globals) mesh.RemapNodeCoords(remap) gmshtools.WriteMsh(mesh, mesh_name + '.msh')
if len(args) < 2: debug.FatalError("GMSH base name and vtu name required") elif len(args) > 2: debug.FatalError("Unrecognised trailing argument") meshBasename = args[0] vtuFilename = args[1] possibleMeshBasenames = glob.glob(meshBasename + "_?*.msh") meshBasenames = [] meshIds = [] for possibleMeshBasename in possibleMeshBasenames: id = possibleMeshBasename[len(meshBasename) + 1:-4] try: id = int(id) except ValueError: continue meshBasenames.append(possibleMeshBasename[:-4]) meshIds.append(id) vtuBasename = os.path.basename(vtuFilename[:-len(vtuFilename.split(".")[-1]) - 1]) vtuExt = vtuFilename[-len(vtuFilename.split(".")[-1]):] vtu = vtktools.vtu(vtuFilename) for i, meshBasename in enumerate(meshBasenames): debug.dprint("Processing mesh partition " + meshBasename) meshVtu = gmshtools.ReadMsh(meshBasename).ToVtu(includeSurface=False) partition = vtktools.RemappedVtu(vtu, meshVtu) partition.Write(vtuBasename + "_" + str(meshIds[i]) + "." + vtuExt)