Ground State Charge Config Finders

Ground State Model

Todo

A general discussion of the ground state model will be made available here in the near future. The model is discussed in [NRC+20] in the context of SimAnneal, which is equally informative.

ExhaustiveGS

ExhaustiveGS assesses all possible charge configurations in any arbitrary DB layouts with the ground state model. It scales at \(\text{O}(N^3)\) where \(N\) is the DB count, which makes it prohibitively costly to run for larger DB problems. As a rule of thumb, we advise avoiding ExhaustiveGS for problems with more than ~15 DBs but actual performance depends on your machine.

SimAnneal

SimAnneal is a heuristic algorithm for simulated annealing which attempts to find the ground state metastable charge configuration for given DB layouts. For details on the implementation and associated models, please refer to Section IV.A. in [NRC+20]. Here, we focus on the discussion of runtime parameters assuming that you’ve already read that section of the paper.

Here is a table of configurable SimAnneal parameters and their descriptions:

SimAnneal Parameters

Variable

Param Name in SiQAD

Description

Physical:

\(\vec{n}\)

(Exported by SiQAD)

All DB locations.

\(\mu_-\)

mu (eV)

More negative = more favorable for DB-, see [NRC+20].

\(\epsilon_r\)

Relative permittivity

Affects electric field strength, see [NRC+20].

\(\lambda_\text{TF}\)

Screening distance (nm)

Thomas-Fermi screening distance, see [NRC+20].

\(V^\text{ext}\)

(Inter-plugin transfer)

External potentials, requires inter-plugin transfer.

Simulation:

\(N_\text{inst}\)

Instance count

Number of SimAnneal instances to spawn.

\(N_\text{cycles}\)

Anneal cycles

Number of annealing time steps per instance.

\(T_0\)

Initial temperature (K)

Initial annealing temperature.

\(T_\text{min}\)

Minimum temperature (K)

Minimum annealing temperature.

\(V_{f0}\)

Initial V_freeze (eV)

Initial \(V_f\), see [NRC+20].

\(V_{f}'\)

Final V_freeze (eV)

Final \(V_f\), see [NRC+20].

\(\tau_{V_f'}\)

V_freeze cycles

Normalized time step at which \(V_f = V_f'\) and ceases to increase further.

\(\tau_{T_0/e}\)

Temperature 1/e point

Normalized time step at which \(T = \frac{T_0}{e}\).

\(f_\text{hop}\)

Hop attempt factor

Set the number of attempted hops at each time step to \(f_\text{hop} \times\) count of DB0 sites.

Results:

\(f_\text{results}\)

Result queue size

Set the number of charge configurations to return per instance to \(f_\text{results} \times N_\text{cycles}\)

The following additional variables are related to schedule restarting. It is still unclear to us whether they offer advantages that optimizing the annealing schedule doesn’t already offer, therefore they are disabled by default. The parameters include:

  • Strategically reset V_freeze: enable V_freeze reset if simulation seems to be stuck at unstable states for a user-defined number of cycles after V_freeze has reached the maximum value.

  • Reset temperature as well: when resetting V_freeze, also reset the annealing temperature.

  • Reset V_freeze: V_freeze value to reset to, leave at \(-1\) for SimAnneal to decide automatically.

  • Physical validity check cycles: after V_freeze has reached the maximum value, reset V_freeze if the charge configurations do not fit metastability criteria for this many cycles consecutively.

Todo

Include a plot showing some key variables affecting temperature and v_freeze schedules.

QUBO Mapping

Todo

We have attempted to map the ground state model to QUBO. The effort resulted in some success but accuracy and performance was far behind SimAnneal. More information regarding the QUBO mapping will be provided in the future.

Inter-plugin Transfer

Todo

Workflow for exporting PoisSolver potentials to SimAnneal.