def startMeasurement(filepath, file_type, covalent_radii_cut_off, c, n1, n2, calculate): if n1 > n2: print("Final m cannot be smaller than initial m") return print("Starting script...") slab = read(filepath) total_particles = len(slab) print("Slab %s read with success. Total particles %d" % (filepath, total_particles)) print("Creating graph...") if file_type == 'V': G = generateGraphFromSlabVinkFile(slab, covalent_radii_cut_off) else: G = generateGraphFromSlab(slab, covalent_radii_cut_off) total_nodes = G.get_total_nodes() if total_nodes == 0 or G.get_total_edges() == 0: print("No edges found in graph. Check covalent_radii_cut_off") return print("Graph created with success. Nodes found: %d" % total_nodes) cell = slab.get_cell() # somente para celulas ortogonais if not is_orthorhombic(cell): print("Unit cell is not orthorhombic") return measurement = Measurement() measurement.fromFile(filepath, covalent_radii_cut_off, c, n1, n2) measurement.createFile() (pbcX, pbcY, pbcZ) = slab.get_pbc() (dmin, dmax) = getMaxMinSlabArray(slab) maxM = getNumberRandomPositions(n2 - 1, total_particles) configurationalEntropy = bg.ConfigurationalEntropy(G, 3, len(slab), pbcX, pbcY, pbcZ, maxM) configurationalEntropy.add_positions(slab.get_positions(wrap=True)) print("Generating random positions...") configurationalEntropy.init_search(0, cell[0][0], 0, cell[1][1], 0, cell[2][2], n2 - 1, maxM, dmin, dmax) print("Random positions generated.") H_n_values = [] for n in range(n1, n2): measurement.start() m = getNumberRandomPositions(n, total_particles) H_n, H1n = run(configurationalEntropy, m, n, c) measurement.writeResult(n, m, H_n, H1n) measurement.end() H_n_values.append((n, H_n, H1n, "Y")) calculateConfigurationalEntropy(n1, n2, H_n_values, c, calculate) print("Program ended correctly")