island_charges_from_charge_state

static ThomasFermi.island_charges_from_charge_state(physics, n, islands, dot_charges, are_dots_combined)

Calculates the charges on each island from a particular charge state.

The “islands”, which are determined by n(x), do not always match up nicely with the “dots”, which are predefined based on the layout of the gates.

This function attempts to determine number of charges on each island, based on the locations of the islands and the number of charges on each dot.

Dots are defined via physics.dot_regions. (If regions are not defined, defaults will be generated assuming an alternating pattern of barrier and plunger gates).

Parameters:
  • physics (PhysicsParameters) – The physical device parameters.

  • n (ndarray[float]) – A 1D array containing the particle density (in 1/nm).

  • islands (ndarray[int]) – An array with shape (num_islands, 2) giving the islands, where islands[i] is a length-2 integer array [begin_index, end_index + 1] giving the indeces of physics.x corresponding to the island.

  • dot_charges (ndarray[int]) – An array of integers, one for each dot, indicating the total number of charges in each dot. In the case of combined dots, the total number of charges should be entered in the left-most dot, with the other dots padded with zeros.

  • are_dots_combined (ndarray[bool]) – An array of booleans, one for each internal barrier, indicating whether the dots on each side are combined together (i.e. the barrier is too low). len(are_dots_combined) should equal len(are_dots_occupied) - 1.

Returns:

island_charges – An array of integers, one for each island, indicating the total number of charges in each island.

Return type:

ndarray[int]