StdFace_vals.h ============== Purpose ------- Defines the central configuration structure ``StdIntList`` that holds all model and lattice parameters. This structure is the primary data container passed throughout the StdFace processing pipeline. **Source reference**: ``src/StdFace_vals.h`` Public Types ------------ struct StdIntList ^^^^^^^^^^^^^^^^^ Main configuration structure for lattice models and interactions. Contains approximately 125 fields organized into categories below. **Initialization Fields** ``int NaN_i`` Sentinel value for unspecified integer parameters. Set in ``StdFace_ResetVals()``. ``double pi`` Mathematical constant pi (3.14159...). **Lattice Parameters** ``char lattice[256]`` Name of the lattice type (e.g., "chain", "square", "honeycomb"). ``double a`` Lattice constant. ``double length[3]`` Anisotropic lattice constants (wlength, llength, hlength). ``int W`` Number of sites along the 1st axis. ``int L`` Number of sites along the 2nd axis. ``int Height`` Number of sites along the 3rd axis. ``double direct[3][3]`` Unit direct lattice vectors. Set in ``StdFace_InitSite()``. ``int box[3][3]`` Super-cell shape. Input parameters a0W, a0L, a0H, etc. ``int rbox[3][3]`` Inverse of box matrix. Set in ``StdFace_InitSite()``. ``int NCell`` Number of unit cells in the super-cell. Set in ``StdFace_InitSite()``. ``int **Cell`` Cell positions in fractional coordinates. Allocated in ``StdFace_InitSite()``. ``int NsiteUC`` Number of sites in the unit cell. ``double **tau`` Cell-internal site positions in fractional coordinates. **Model Parameters** ``char model[256]`` Name of the model (e.g., "hubbard", "spin", "kondo"). ``double mu`` Chemical potential. ``double complex t`` Nearest-neighbor hopping. ``double complex tp`` 2nd-nearest hopping. ``double complex t0``, ``t0p``, ``t0pp`` Anisotropic hopping (direction 0). ``double complex t1``, ``t1p``, ``t1pp`` Anisotropic hopping (direction 1). ``double complex t2``, ``t2p``, ``t2pp`` Anisotropic hopping (direction 2). ``double complex tpp`` 3rd-nearest hopping. ``double U`` On-site Coulomb potential. ``double V``, ``Vp``, ``Vpp`` Off-site Coulomb potential (1st, 2nd, 3rd neighbor). ``double V0``, ``V0p``, ``V0pp`` Anisotropic Coulomb potential (direction 0). ``double V1``, ``V1p``, ``V1pp`` Anisotropic Coulomb potential (direction 1). ``double V2``, ``V2p``, ``V2pp`` Anisotropic Coulomb potential (direction 2). **Exchange Parameters** ``double JAll``, ``JpAll``, ``JppAll`` Isotropic diagonal spin coupling (1st, 2nd, 3rd neighbor). ``double J0All``, ``J0pAll``, ``J0ppAll`` Anisotropic diagonal spin coupling (direction 0). ``double J1All``, ``J1pAll``, ``J1ppAll`` Anisotropic diagonal spin coupling (direction 1). ``double J2All``, ``J2pAll``, ``J2ppAll`` Anisotropic diagonal spin coupling (direction 2). ``double J[3][3]``, ``Jp[3][3]``, ``Jpp[3][3]`` Full 3x3 exchange coupling matrices. ``double J0[3][3]``, ``J0p[3][3]``, ``J0pp[3][3]`` Anisotropic 3x3 exchange matrices (direction 0). ``double J1[3][3]``, ``J1p[3][3]``, ``J1pp[3][3]`` Anisotropic 3x3 exchange matrices (direction 1). ``double J2[3][3]``, ``J2p[3][3]``, ``J2pp[3][3]`` Anisotropic 3x3 exchange matrices (direction 2). ``double D[3][3]`` Single-ion anisotropy. Only D[2][2] is used. ``double h`` Longitudinal magnetic field. ``double Gamma`` Transverse magnetic field (x-direction). ``double Gamma_y`` Transverse magnetic field (y-direction). **Boundary Phase** ``double phase[3]`` Boundary phase in degrees (phase0, phase1, phase2). ``double complex ExpPhase[3]`` Computed as exp(i \* pi \* phase / 180). ``int AntiPeriod[3]`` Set to 1 if corresponding phase = 180. **Transfer and Interaction Arrays** ``int nsite`` Total number of sites. ``int *locspinflag`` LocSpin flags per site. Array of size nsite. ``int ntrans`` Number of transfer (one-body) terms. ``int **transindx`` Site/spin indices for transfer terms. Shape [ntrans][4]. ``double complex *trans`` Coefficients for transfer terms. Array of size ntrans. ``int nintr`` Number of interaction (two-body) terms. ``int **intrindx`` Site/spin indices for interaction terms. Shape [nintr][8]. ``double complex *intr`` Coefficients for interaction terms. Array of size nintr. **Specialized Interaction Arrays** ``int NCintra``, ``int **CintraIndx``, ``double *Cintra`` Intra-site Coulomb terms. ``int NCinter``, ``int **CinterIndx``, ``double *Cinter`` Inter-site Coulomb terms. ``int NHund``, ``int **HundIndx``, ``double *Hund`` Hund coupling terms. ``int NEx``, ``int **ExIndx``, ``double *Ex`` Exchange terms. ``int NPairLift``, ``int **PLIndx``, ``double *PairLift`` Pair-lift terms. ``int NPairHopp``, ``int **PHIndx``, ``double *PairHopp`` Pair-hopping terms. **Calculation Conditions** ``int ncond`` Number of electrons. ``int lGC`` Grand canonical ensemble switch (1 = enabled). ``int S2`` Total spin 2S of local spins. ``char outputmode[256]`` Output verbosity mode. ``char CDataFileHead[256]`` Header for output files. ``int Sz2`` Total Sz. **Wannier90 Mode Parameters** ``double cutoff_t``, ``cutoff_u``, ``cutoff_j`` Cutoff values for hopping, Coulomb, and Hund terms. ``double cutoff_length_t``, ``cutoff_length_U``, ``cutoff_length_J`` Cutoff lengths for R vectors. ``double lambda``, ``lambda_U``, ``lambda_J`` Tuning parameters for U and J. ``char double_counting_mode[256]`` Mode for double counting correction. ``double alpha`` Chemical potential correction parameter. **Mode-Specific Fields** Additional fields are defined conditionally based on build mode: - **HPhi mode** (``_HPhi``): Lanczos parameters, spectrum calculation settings, time evolution parameters - **mVMC mode** (``_mVMC``): Variational parameters, sublattice settings, orbital indices - **UHF mode** (``_UHF``): Mean-field iteration parameters, sublattice settings - **HWAVE mode** (``_HWAVE``): Similar to UHF plus Wannier90 export settings Public Macros/Constants ----------------------- None. Public Functions ---------------- None defined in this header. Functions that operate on ``StdIntList`` are declared in ``StdFace_ModelUtil.h``. Ownership and Lifetime Rules ---------------------------- - The ``StdIntList`` structure is allocated in ``StdFace_main()`` via ``malloc()``. - Fields are initialized by ``StdFace_ResetVals()`` (defined in ``StdFace_main.c``). - Internal arrays (``trans``, ``intr``, ``Cell``, etc.) are allocated by ``StdFace_MallocInteractions()`` and lattice constructors. - All allocated memory is freed at the end of ``StdFace_main()``. Error Handling -------------- No error handling in this header (structure definition only). Thread / MPI Safety ------------------- Unspecified in the current code. Source Reference ---------------- - Header: ``src/StdFace_vals.h`` - Initialization: ``StdFace_ResetVals()`` in ``src/StdFace_main.c``