Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Predefined Observables

Reference for the observable types available in ALF. These are implemented in Prog/Predefined_Obs_mod.F90 and can be used in any Hamiltonian’s Alloc_obs, Obser, and ObserT subroutines.

Observable Data Types

ALF provides three observable containers, defined in Prog/observables_mod.F90:

TypeCreated withPurposeOutput suffix
Obser_VecObser_Vec_make(obs, N, filename)Scalar quantities (one number per bin)_scal
Obser_LattObser_Latt_make(obs, Nt, filename, Latt, Latt_unit, Channel, dtau)Lattice correlation functions_eq or _tau

Equal-Time Observables

Called from your Obser subroutine using the predefined measurement routines:

RoutineOutput fileWhat it measuresRequirements
Predefined_Obs_eq_Green_measureGreen_eqEqual-time Green’s function σciσcjσ\sum_\sigma \langle c^\dagger_{i\sigma} c_{j\sigma} \rangleAny model
Predefined_Obs_eq_Den_measureDen_eqDensity-density correlations NiNjNiNj\langle N_i N_j \rangle - \langle N_i \rangle \langle N_j \rangleAny model
Predefined_Obs_eq_SpinSUN_measureSpinZ_eqSU(N) spin-spin correlationsN_FL = 1
Predefined_Obs_eq_SpinMz_measureSpinZ_eq, SpinXY_eq, SpinT_eqSzS^z-SzS^z, Sx+SyS^x + S^y, total spin correlationsN_FL = 2, N_SUN = 1

Time-Displaced Observables

Called from your ObserT subroutine:

RoutineOutput fileWhat it measuresChannel
Predefined_Obs_tau_Green_measureGreen_tauci(τ)cj(0)\langle c_i(\tau) c^\dagger_j(0) \rangleP
Predefined_Obs_tau_Den_measureDen_tauTime-displaced density correlationsPH
Predefined_Obs_tau_SpinSUN_measureSpinZ_tauTime-displaced SU(N) spin correlationsPH
Predefined_Obs_tau_SpinMz_measureSpinZ_tau, SpinXY_tau, SpinT_tauTime-displaced spin correlationsPH

The Channel string determines the kernel used for [[Analytic Continuation]]: 'P' (particle), 'PH' (particle-hole), 'PP' (particle-particle), 'T0' (zero temperature).

Scalar Observables

Standard scalar observables are model-defined (not in Predefined_Obs) but typically include:

NameOutput fileWhat it measures
KinKin_scalKinetic energy
PotPot_scalPotential energy
PartPart_scalParticle number
EnerEner_scalTotal energy

Entanglement Observables

ALF also provides predefined Rényi entropy and mutual information measurements:

RoutineWhat it measures
Predefined_Obs_scal_Renyi_Ent_indep / _gen_fl / _gen_allRényi entanglement entropy (flavor-independent / general-flavor / all)
Predefined_Obs_scal_Mutual_Inf_indep / _gen_fl / _gen_allMutual information

Controlling Measurements

Adding a Custom Observable

To define a model-specific observable in your Hamiltonian:

  1. In Alloc_obs: allocate and configure the observable with Obser_Vec_make or Obser_Latt_make

  2. In Obser (equal-time) or ObserT (time-displaced): compute the Wick contractions from the Green function and store the result

  3. The analysis tools handle the rest — Jackknife error analysis, Fourier transforms, and file output are automatic