create_graph
- static ThomasFermi.create_graph(physics, numerics, energy_matrix, approximate_charges, island_charges, p_WKB)
Creates the Markov graph of charge configurations.
Nodes are tuples of integers representing the number of particles on each island. The graph is a directed graph with weights between
uandvequal tocalc_wieght(physics, islands, p_WKB, u, v). All nodes in the graph differ from the least-energy configuration by a number of particles no more thannumerics.create_graph_max_changes.- Parameters:
physics (PhysicsParameters) – The physical device parameters.
numerics (NumericsParameters) – Options for numeric calculations.
energy_matrix (ndarray[float]) – A 2D array with shape
(num_islands, num_islands)giving the energy matrix (in meV) of the capacitance model.approximate_charges (ndarray[float]) – An array with length equal to the number of islands, where each entry of the array is the integral of n(x) over the corresponding island.
island_charges (ndarray[int]) – The charge configuration array which minimizes the capacitance energy. A 1D array with length equal to the number of islands specifying the integer number of charges on each island.
p_WKB (ndarray[float]) – An array with length equal to the number of barriers, where each entry is the transition rate across the corresponding barrier.
- Returns:
A graph with tuple[int, …] nodes representing possible charge configurations. This graph is a Markov graph where edges represent the transition rates between possible configurations.
- Return type:
networkx.DiGraph