DFL Model Class

Digital Flux Lattice (DFL) model helper based on SU(2) dressed-site operators.

class edlgt.models.DFL_model.DFL_Model(spin, pure_theory, ham_format, **kwargs)[source]

Bases: QuantumModel

DFL model built from SU(2) dressed-site operators.

Initialize the DFL model.

Parameters:
  • spin (float) – Gauge-link spin representation.

  • pure_theory (bool) – If True, exclude matter fields.

  • background (int or list) – Background-charge specification passed to the gauge-basis builder.

  • ham_format (str) – Hamiltonian representation format.

  • **kwargs – Arguments forwarded to QuantumModel.

build_Hamiltonian(g, m=None, dtype_mode='auto')[source]

Assemble the standard DFL Hamiltonian.

Parameters:
  • g (float) – Gauge coupling.

  • m (float, optional) – Bare mass parameter.

  • dtype_mode (str or bool, optional) – "auto", "real", "complex", or legacy bool flag.

build_gen_Hamiltonian(g, m=None, dtype_mode='auto')[source]

Assemble the generalized DFL Hamiltonian.

Parameters:
  • g (float) – Gauge coupling.

  • m (float, optional) – Bare mass parameter.

  • dtype_mode (str or bool, optional) – "auto", "real", "complex", or legacy bool flag.

DFL_Hamiltonian_couplings(g, m=None)[source]

Set DFL Hamiltonian couplings from physical parameters.

Parameters:
  • g (float) – Gauge coupling.

  • m (float, optional) – Bare mass parameter.

Returns:

Stores couplings in self.coeffs.

Return type:

None

Notes

The conventions used here follow the DFL normalization used in the project code and may differ from other SU(2) Hamiltonian conventions.

check_symmetries()[source]

Check link-symmetry constraints on measured observables.

get_background_charges_configs(logical_stag_basis)[source]

Generate 1D background-charge-compatible reference configurations.

Parameters:

logical_stag_basis (int) – Period used to alternate logical staggering sectors.

Returns:

(A, BG) arrays containing basis-state labels and corresponding background sectors.

Return type:

tuple

get_symmetry_inputs()[source]

Pack the global U(1) and per-link Gauss-law generators of the DFL gauge sector in the format expected by symmetry_sector_configs.

Returns:

(global_ops, global_sectors, link_ops, link_sectors, pair_list).

Return type:

tuple

get_bgsector_groups(logical_stag_basis)[source]

Enumerate the unique background-charge sectors and their statistical weights from the staggered DFL reference manifold.

Parameters:

logical_stag_basis (int) – Period passed through to get_background_charges_configs().

Returns:

(bg_configs, bg_sectors, unique_bg_sectors, grouped_configs, weights) with one entry per sector in unique_bg_sectors and with weights summing to 1.

Return type:

tuple

build_single_bgsector_configs(bg_sector)[source]

Build the Hilbert-space configs of one bg-charge sector in a single string-aware pass.

Combines the global+link constraints with the bg-string constraint up front so the iterative builder prunes site-by-site and never materialises the full DFL sector_configs (which OOMs at L=12).

Parameters:

bg_sector (numpy.ndarray) – Background-charge vector identifying the sector.

Returns:

Configurations belonging to the requested bg sector.

Return type:

numpy.ndarray

prepare_sector_split(logical_stag_basis)[source]

Build the full global+link sector_configs once and enumerate the bg sectors that live inside it.

Heavy: at L=12 the global+link sector has ~370 M entries and OOMs. Use build_single_bgsector_configs() per-sector when the in-process loop is not an option.

Parameters:

logical_stag_basis (int) – Period for the staggered reference manifold.

Returns:

  • tuple(global_ops, global_sectors, link_ops, link_sectors, pair_list, bg_global_ops, bg_sector_value, unique_bg_sectors, grouped_configs, weights) — every piece the in-process sector loop needs.

  • Side Effects

  • ------------

  • Sets ``self.sector_configs`` to the full global+link sector.

get_fermionic_string_correlator(state=None, state_index=None, dynamics=False, print_values=False)[source]

Measure the gauge-invariant fermionic string correlator matrix.

Notes

For the 1D truncated SU(2) dressed-site DFL model the off-diagonal entries are

C_ij = 1/4 <Qpx_dag(i) W(i+1) ... W(j-1) Qmx(j)> for i < j

and the diagonal is C_ii = <N_tot(i)> / 2. See get_fermionic_string_correlator() for a detailed derivation.

measure_fermionic_nongaussianity(state=None, state_index=None, dynamics=False, print_value=False, eig_tol=1e-10)[source]

Measure the fermionic non-Gaussianity from the string correlator.

print_state_config(config)[source]

Log a human-readable decomposition of a DFL basis configuration.