Implementation of EFP Generator class.


Generator

Generates non-isomorphic multigraphs according to provided specifications.

energyflow.Generator(dmax=None, nmax=None, emax=None, cmax=None, vmax=None, comp_dmaxs=None, filename=None, np_optimize='greedy', verbose=False)

Doing a fresh generation of connected multigraphs (filename=None) requires that igraph be installed.

Arguments

  • dmax : int
    • The maximum number of edges of the generated connected graphs.
  • nmax : int
    • The maximum number of vertices of the generated connected graphs.
  • emax : int
    • The maximum number of edges of the generated connected simple graphs.
  • cmax : int
    • The maximum VE complexity $\chi$ of the generated connected graphs.
  • vmax : int
    • The maximum valency of the generated connected graphs.
  • comp_dmaxs : {dict, int}
    • If an integer, the maximum number of edges of the generated disconnected graphs. If a dictionary, the keys are numbers of vertices and the values are the maximum number of edges of the generated disconnected graphs with that number of vertices.
  • filename : str
    • If None, do a complete generation from scratch. If set to a string, read in connected graphs from the file given, restrict them according to the various 'max' parameters, and do a fresh disconnected generation. The special value filename='default' means to read in graphs from the default file. This is useful when various disconnected graph parameters are to be varied since the generation of large simple graphs is the most computationlly intensive part.
  • np_optimize : {True, False, 'greedy', 'optimal'}
    • The optimize keyword of numpy.einsum_path.
  • verbose : bool
    • A flag to control printing.

save

save(filename)

Save the current generator to file.

Arguments

  • filename : str
    • The path to save the file.
specs
specs

An array of EFP specifications. Each row represents an EFP and the columns represent the quantities indicated by cols.