Define some dicts and structs, which are used to store the config parameters or represent some essential data structures.
Source: types.jl
ZenCore.PCASEZenCore.PDFTZenCore.PDMFTZenCore.PIMPZenCore.PSOLVERZenCore._adaptor_ZenCore._engine_ZenCore._mixer_ZenCore._mode_ZenCore._solver_ZenCore.ADTZenCore.ATOMSolverZenCore.AbstractAdaptorZenCore.AbstractEngineZenCore.AbstractMixerZenCore.AbstractModeZenCore.AbstractSolverZenCore.CTHYB₁SolverZenCore.CTHYB₂SolverZenCore.DCOUNTModeZenCore.DTypeZenCore.EMixerZenCore.EnergyZenCore.EnergyZenCore.GATHERModeZenCore.HIASolverZenCore.ImpurityZenCore.ImpurityZenCore.IterInfoZenCore.IterInfoZenCore.LatticeZenCore.LatticeZenCore.LoggerZenCore.LoggerZenCore.MappingZenCore.MappingZenCore.NORGSolverZenCore.NULLAdaptorZenCore.NULLEngineZenCore.NULLMixerZenCore.NULLModeZenCore.NULLSolverZenCore.PLOAdaptorZenCore.PrGroupZenCore.PrGroupZenCore.PrTraitZenCore.PrTraitZenCore.PrWindowZenCore.PrWindowZenCore.QEEngineZenCore.RESETModeZenCore.SPLITModeZenCore.VASPEngineZenCore.WANNIERAdaptorZenCore.WANNIEREngineZenCore.ΓMixerZenCore.ΔMixerZenCore.ΣMixerBase.:==Base.getpropertyBase.nameofBase.nameofBase.nameofBase.nameofBase.nameofBase.showBase.showBase.showBase.showBase.showBase.showBase.showBase.showBase.show
Customized Types
ZenCore.ADT — TypeCustomized types. It is used to define the following dicts.
ZenCore.DType — TypeCustomized types. It is used to define the following dicts.
Global Dicts
ZenCore.PCASE — ConstantZenCore.PDFT — ConstantZenCore.PDMFT — ConstantZenCore.PIMP — ConstantZenCore.PSOLVER — ConstantCustomized Structs: DFT Engine
ZenCore.AbstractEngine — TypeAbstractEngineAn abstract type representing the DFT engine. It is used to build the internal type system.
ZenCore.NULLEngine — TypeNULLEngineIt represents a null DFT engine. It is the default engine and will be replaced by the realistic engine.
See also: _engine_.
ZenCore.VASPEngine — TypeVASPEngineIt represents a vasp engine, which is used to perform DFT calculations.
See also: QEEngine.
ZenCore.QEEngine — TypeQEEngineIt represents a quantum espresso (actually the PWSCF code) engine, which is used to perform DFT calculations.
See also: VASPEngine.
ZenCore.WANNIEREngine — TypeWANNIEREngineIt represents a wannier90 engine, which is used to generate the maximally localized wannier functions.
ZenCore._engine_ — ConstantSet up the default density functional theory calculation engine.
Base.nameof — MethodGet name of density functional theory calculation engine.
Customized Structs: Quantum Impurity Solver
ZenCore.AbstractSolver — TypeAbstractSolverAn abstract type representing the quantum impurity solver. It is used to build the internal type system.
ZenCore.NULLSolver — TypeNULLSolverIt represents a null quantum impurity solver. It is the default solver and will be replaced by the realistic solver.
See also: _solver_.
ZenCore.CTHYB₁Solver — TypeCTHYB₁SolverIt represents a quantum impurity solver based on the CTHYB₁ algorithm.
See also: CTHYB₂Solver.
ZenCore.CTHYB₂Solver — TypeCTHYB₂SolverIt represents a quantum impurity solver based on the CTHYB₂ algorithm.
See also: CTHYB₁Solver.
ZenCore.HIASolver — TypeHIASolverIt represents a quantum impurity solver based on the HIA algorithm.
ZenCore.NORGSolver — TypeNORGSolverIt represents a quantum impurity solver based on the NORG algorithm.
ZenCore.ATOMSolver — TypeATOMSolverIt represents a solver for atomic eigenvalue problems.
ZenCore._solver_ — ConstantSet up the default quantum impurity solver.
Base.nameof — MethodGet name of quantum impurity solver.
Customized Structs: Adaptor
ZenCore.AbstractAdaptor — TypeAbstractAdaptorAn abstract type representing the DFT-DMFT adaptor. It is used to build the internal type system.
ZenCore.NULLAdaptor — TypeNULLAdaptorIt represents a null DFT-DMFT adaptor. It is the default adaptor and will be replaced by the realistic adaptor.
See also: _adaptor_.
ZenCore.PLOAdaptor — TypePLOAdaptorIt represents a DFT-DMFT adaptor based on the projected local orbitals.
See also: WANNIERAdaptor.
ZenCore.WANNIERAdaptor — TypePLOAdaptorIt represents a DFT-DMFT adaptor based on the maximally localized wannier functions.
See also: PLOAdaptor.
ZenCore._adaptor_ — ConstantSet up the default DFT-DMFT adaptor.
Base.nameof — MethodGet name of DFT-DMFT adaptor.
Customized Structs: Sigma Engine
ZenCore.AbstractMode — TypeAbstractModeAn abstract type representing various operations on the self-energy functions. It is used to build the internal type system.
ZenCore.NULLMode — TypeNULLModeIt represents a null operation. It is the default operation and will be replaced by the realistic operation.
See also: _mode_.
ZenCore.RESETMode — TypeRESETModeIt represents a reset operation for resetting the self-energy functions.
ZenCore.DCOUNTMode — TypeDCOUNTModeIt represents a dcount operation for creating the double counting terms.
ZenCore.SPLITMode — TypeSPLITModeIt represents a split operation for splitting the hybridization functions.
ZenCore.GATHERMode — TypeGATHERModeIt represents a gather operation for gathering the self-energy functions.
ZenCore._mode_ — ConstantSet up the default operation.
Base.nameof — MethodGet name of operation.
Customized Structs: Mixer Engine
ZenCore.AbstractMixer — TypeAbstractMixerAn abstract type representing various mixers for self-energy functions Σ, hybridization function Δ, effective impurity level ϵ, and density matrix Γ. It is used to build the internal type system.
ZenCore.NULLMixer — TypeNULLMixerIt represents a null mixer. It is the default mixer and will be replaced by the realistic mixer.
See also: _mixer_.
ZenCore.ΣMixer — TypeΣMixerIt represents a mixer for self-energy function Σ.
ZenCore.ΔMixer — TypeΔMixerIt represents a mixer for hybridization function Δ.
ZenCore.EMixer — TypeEMixerIt represents a mixer for effective impurity level ϵ.
ZenCore.ΓMixer — TypeΓMixerIt represents a mixer for density matrix Γ.
ZenCore._mixer_ — ConstantSet up the default mixer.
Base.nameof — MethodGet name of mixer.
Structs
ZenCore.Logger — TypeLoggerMutable struct. Store the IOStreams for case.log and case.cycle files.
Members
- log -> IOStream for case.log file.
- cycle -> IOStream for case.cycle file.
See also: IterInfo.
ZenCore.Energy — TypeEnergyMutable struct. Store decomposition of the total DFT + DMFT energy.
Members
- dft -> DFT band energy.
- dmft -> DMFT interaction energy Tr(ΣG).
- corr -> DMFT Correction to the DFT band energy.
- dc -> Energy contributed by the double counting term.
See also: IterInfo.
ZenCore.IterInfo — TypeIterInfoMutable struct. Record the DFT + DMFT iteration information.
Members
- I₁ -> Number of cycles between
dmft1and quantum impurity solver. - I₂ -> Number of cycles between
dmft2and DFT engine. - I₃ -> Number of DFT + DMFT iterations.
- I₄ -> Counter for all the internal cycles.
- M₁ -> Maximum allowed number of cycles (between
dmft1and solver). - M₂ -> Maximum allowed number of cycles (between
dmft2and DFT). - M₃ -> Maximum allowed number of DFT + DMFT iterations.
- sc -> Self-consistent mode.
- μ₀ -> Fermi level obtained by DFT engine.
- μ₁ -> Fermi level obtained by DMFT engine (
dmft1). - μ₂ -> Fermi level obtained by DMFT engine (
dmft2). - dc -> Double counting terms.
- n₁ -> Number of lattice occupancy obtained by DMFT engine (
dmft1). - n₂ -> Number of lattice occupancy obtained by DMFT engine (
dmft2). - nf -> Number of impurity occupancy obtained by quantum impurity solver.
- et -> Total DFT + DMFT energy (for current iteration).
- ep -> Total DFT + DMFT energy (for previous iteration).
- cc -> Convergence flag for charge density.
- ce -> Convergence flag for total energy.
- cs -> Convergence flag for self-energy functions.
See also: Logger.
ZenCore.Lattice — TypeLatticeMutable struct. Contain the crystallography information. This struct is designed for the POSCAR file used by the vasp code.
Members
- _case -> The name of system.
- scale -> Universal scaling factor (lattice constant), which is used to scale all lattice vectors and all atomic coordinates.
- lvect -> Three lattice vectors defining the unit cell of the system. Its shape must be (3, 3).
- nsort -> Number of sorts of atoms.
- natom -> Number of atoms.
- sorts -> Sorts of atoms. Its shape must be (nsort, 2).
- atoms -> Lists of atoms. Its shape must be (natom).
- coord -> Atomic positions are provided in cartesian coordinates or in direct coordinates (respectively fractional coordinates). Its shape must be (natom, 3).
See also: vaspio_lattice.
ZenCore.Mapping — TypeMappingMutable struct. It denotes a mapping between quantum impurity problems and groups of projectors (or windows of Kohn-Sham states).
Members
- i_grp -> Mapping from quntum impurity problems to groups of projectors.
- i_wnd -> Mapping from quantum impurity problems to windows of Kohn-Sham states.
- g_imp -> Mapping from groups of projectors to quantum impurity problems.
- w_imp -> Mapping from windows of Kohn-Sham states to quantum impurity problems.
ZenCore.Impurity — TypeImpurityMutable struct. It includes key information of quantum impurity problems.
Members
- index -> Index of the quantum impurity problem.
- atoms -> Chemical symbol of impurity atom.
- sites -> Index of impurity atom.
- equiv -> Equivalence of quantum impurity problem.
- shell -> Angular momentum of correlated orbitals.
- ising -> Interaction type of correlated orbitals.
- occup -> Impurity occupancy 𝑛.
- nup -> Impurity occupancy 𝑛↑ (spin up).
- ndown -> Impurity occupancy 𝑛↓ (spin down).
- upara -> Coulomb interaction parameter.
- jpara -> Hund's coupling parameter.
- lpara -> Spin-orbit coupling parameter.
- beta -> Inverse temperature.
- nband -> Number of correlated orbitals (spin is not included).
ZenCore.PrTrait — TypeZenCore.PrGroup — TypePrGroupMutable struct. It defines a group of projectors. There are quite a lot of local projectors. We always gather, reorganize, and split them into various groups according to their labels (such as site and 𝑙). Each group is connected with a quantum impurity problem.
Members
- site -> Site in which the projectors are defined. In principle, the projectors included in the same group should be defined at the same site (or equivalently atom).
- l -> Quantum number 𝑙. In principle, the projectors included in the same group should have the same quantum number 𝑙 (but with different 𝑚).
- corr -> Test if the projectors in this group are correlated.
- shell -> Type of correlated orbitals. It is infered from quantum number 𝑙.
- Pr -> Array. It contains the indices of projectors.
- Tr -> Array. It contains the transformation matrix. This parameter could be useful to select certain subset of orbitals or perform a simple global rotation.
ZenCore.PrWindow — TypePrWindowMutable struct. It defines a window for the Kohn-Sham states (DFT bands). Each window is connected with a quantum impurity problem.
Members
- bmin -> Minimum band index.
- bmax -> Maximum band index.
- nbnd -> Maximum number of bands in the current window (≡
bmax - bmin + 1). - kwin -> Momentum-dependent and spin-dependent band window.
- bwin -> Tuple. It is the band window or energy window, which is used to filter the Kohn-Sham states (i.e DFT bands). The mesh for calculating density of states is also deduced from
bwin.
Constructors
ZenCore.Logger — MethodLogger(case::String = "case")Outer constructor for Logger struct.
ZenCore.Energy — MethodEnergy()Outer constructor for Energy struct.
ZenCore.IterInfo — MethodIterInfo()Outer constructor for IterInfo struct.
ZenCore.Lattice — MethodLattice(_case::String, scale::F64, nsort::I64, natom::I64)Outer constructor for Lattice struct.
ZenCore.Mapping — MethodMapping(nsite::I64, ngrp::I64, nwnd::I64)Outer constructor for Mapping struct.
ZenCore.Impurity — MethodImpurity(index::I64, atoms::String, sites::I64,
equiv::I64, shell::String, ising::String,
occup::F64, upara::F64, jpara::F64, lpara::F64,
beta::F64)Outer constructor for Impurity struct.
ZenCore.PrTrait — MethodPrTrait(site::I64, desc::String)Outer constructor for PrTrait struct.
ZenCore.PrGroup — MethodPrGroup(site::I64, l::I64)Outer constructor for PrGroup struct.
ZenCore.PrWindow — MethodPrWindow(kwin::Array{I64,3}, bwin::Tuple{R64,R64})Outer constructor for PrWindow struct.
Operators
Base.:== — FunctionTraits
Base.show — MethodBase.show — MethodBase.show(io::IO, ene::Energy)Base.show() function for Energy struct. Note that total is not a real field of the Energy struct.
See also: Energy.
Base.show — MethodBase.show — MethodBase.show — MethodBase.show — MethodBase.show — MethodBase.show — MethodBase.show — MethodBase.getproperty — MethodBase.getproperty(et::Energy, sym::Symbol)Implement the calculation of total DFT + DMFT energy. The Energy struct does not really contains the total field. This function will implement et.total by overriding the Base.getproperty() function.
See also: Energy.