Define some dicts and structs, which are used to store the config parameters or represent some essential data structures.

Source: types.jl

Customized Types

ZenCore.ADT — Type

Customized types. It is used to define the following dicts.

ZenCore.DType — Type

Customized types. It is used to define the following dicts.

Global Dicts

ZenCore.PDFT — Constant
PDFT

Dictionary for configuration parameters: density functional theory calculations. Its entries can not be updated once they are initialized.

See also: PCASE, PDMFT, PIMP, PSOLVER.

ZenCore.PDMFT — Constant
PDMFT

Dictionary for configuration parameters: dynamical mean-field theory calculations. Be careful, its entries (such as dcount, mixer, mc, cc, ec, sc, and lfermi) can be updated during the iteration.

See also: PCASE, PDFT, PIMP, PSOLVER.

ZenCore.PIMP — Constant
PIMP

Dictionary for configuration parameters: quantum impurity problems. Be careful, its entries (such as ising, occup, upara, jpara, and lpara) can be updated during the iteration.

See also: PCASE, PDFT, PDMFT, PSOLVER.

ZenCore.PSOLVER — Constant
PSOLVER

Dictionary for configuration parameters: quantum impurity solvers. Be careful, its entry (only params) can be updated during the iteration.

See also: PCASE, PDFT, PDMFT, PIMP.

Customized Structs: DFT Engine

ZenCore.AbstractEngine — Type
AbstractEngine

An abstract type representing the DFT engine. It is used to build the internal type system.

ZenCore.NULLEngine — Type
NULLEngine

It represents a null DFT engine. It is the default engine and will be replaced by the realistic engine.

See also: _engine_.

ZenCore.QEEngine — Type
QEEngine

It represents a quantum espresso (actually the PWSCF code) engine, which is used to perform DFT calculations.

See also: VASPEngine.

ZenCore.WANNIEREngine — Type
WANNIEREngine

It represents a wannier90 engine, which is used to generate the maximally localized wannier functions.

ZenCore._engine_ — Constant

Set up the default density functional theory calculation engine.

Base.nameof — Method

Get name of density functional theory calculation engine.

Customized Structs: Quantum Impurity Solver

ZenCore.AbstractSolver — Type
AbstractSolver

An abstract type representing the quantum impurity solver. It is used to build the internal type system.

ZenCore.NULLSolver — Type
NULLSolver

It represents a null quantum impurity solver. It is the default solver and will be replaced by the realistic solver.

See also: _solver_.

ZenCore.HIASolver — Type
HIASolver

It represents a quantum impurity solver based on the HIA algorithm.

ZenCore.NORGSolver — Type
NORGSolver

It represents a quantum impurity solver based on the NORG algorithm.

ZenCore.ATOMSolver — Type
ATOMSolver

It represents a solver for atomic eigenvalue problems.

Base.nameof — Method

Get name of quantum impurity solver.

Customized Structs: Adaptor

ZenCore.AbstractAdaptor — Type
AbstractAdaptor

An abstract type representing the DFT-DMFT adaptor. It is used to build the internal type system.

ZenCore.NULLAdaptor — Type
NULLAdaptor

It represents a null DFT-DMFT adaptor. It is the default adaptor and will be replaced by the realistic adaptor.

See also: _adaptor_.

Customized Structs: Sigma Engine

ZenCore.AbstractMode — Type
AbstractMode

An abstract type representing various operations on the self-energy functions. It is used to build the internal type system.

ZenCore.NULLMode — Type
NULLMode

It represents a null operation. It is the default operation and will be replaced by the realistic operation.

See also: _mode_.

ZenCore.RESETMode — Type
RESETMode

It represents a reset operation for resetting the self-energy functions.

ZenCore.DCOUNTMode — Type
DCOUNTMode

It represents a dcount operation for creating the double counting terms.

ZenCore.SPLITMode — Type
SPLITMode

It represents a split operation for splitting the hybridization functions.

ZenCore.GATHERMode — Type
GATHERMode

It represents a gather operation for gathering the self-energy functions.

Customized Structs: Mixer Engine

ZenCore.AbstractMixer — Type
AbstractMixer

An 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 — Type
NULLMixer

It represents a null mixer. It is the default mixer and will be replaced by the realistic mixer.

See also: _mixer_.

ZenCore.ΣMixer — Type
ΣMixer

It represents a mixer for self-energy function Σ.

ZenCore.ΔMixer — Type
ΔMixer

It represents a mixer for hybridization function Δ.

ZenCore.EMixer — Type
EMixer

It represents a mixer for effective impurity level ϵ.

ZenCore.ΓMixer — Type
ΓMixer

It represents a mixer for density matrix Γ.

Structs

ZenCore.Logger — Type
Logger

Mutable 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 — Type
Energy

Mutable 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 — Type
IterInfo

Mutable struct. Record the DFT + DMFT iteration information.

Members

  • I₁ -> Number of cycles between dmft1 and quantum impurity solver.
  • I₂ -> Number of cycles between dmft2 and DFT engine.
  • I₃ -> Number of DFT + DMFT iterations.
  • I₄ -> Counter for all the internal cycles.
  • M₁ -> Maximum allowed number of cycles (between dmft1 and solver).
  • M₂ -> Maximum allowed number of cycles (between dmft2 and 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 — Type
Lattice

Mutable 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 — Type
Mapping

Mutable 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.

See also: Impurity, PrGroup, PrWindow.

ZenCore.Impurity — Type
Impurity

Mutable 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).

See also: Mapping, PrGroup, PrWindow.

ZenCore.PrTrait — Type
PrTrait

Mutable struct. It defines a local orbital projection (a projector).

Members

  • site -> Site in which the projector is defined.
  • l -> Quantum number 𝑙.
  • m -> Quantum number 𝑚.
  • desc -> Projector's specification.

See also: PrGroup, PrWindow.

ZenCore.PrGroup — Type
PrGroup

Mutable 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.

See also: PrTrait, PrWindow, Mapping, Impurity.

ZenCore.PrWindow — Type
PrWindow

Mutable 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.

See also: PrTrait, PrGroup, Mapping, Impurity.

Constructors

ZenCore.Logger — Method
Logger(case::String = "case")

Outer constructor for Logger struct.

ZenCore.Lattice — Method
Lattice(_case::String, scale::F64, nsort::I64, natom::I64)

Outer constructor for Lattice struct.

ZenCore.Mapping — Method
Mapping(nsite::I64, ngrp::I64, nwnd::I64)

Outer constructor for Mapping struct.

ZenCore.Impurity — Method
Impurity(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 — Method
PrTrait(site::I64, desc::String)

Outer constructor for PrTrait struct.

ZenCore.PrGroup — Method
PrGroup(site::I64, l::I64)

Outer constructor for PrGroup struct.

ZenCore.PrWindow — Method
PrWindow(kwin::Array{I64,3}, bwin::Tuple{R64,R64})

Outer constructor for PrWindow struct.

Operators

Base.:== — Function
==(PT₁::PrTrait, PT₂::PrTrait)

Compare two PrTrait objects.

See also: PrTrait.

==(PG₁::PrGroup, PG₂::PrGroup)

Compare two PrGroup objects.

See also: PrGroup.

==(PW₁::PrWindow, PW₂::PrWindow)

Compare two PrWindow objects.

See also: PrWindow.

Traits

Base.show — Method
Base.show(io::IO, it::IterInfo)

Base.show() function for Logger struct.

See also: Logger.

Base.show — Method
Base.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 — Method
Base.show(io::IO, it::IterInfo)

Base.show() function for IterInfo struct.

See also: IterInfo.

Base.show — Method
Base.show(io::IO, latt::Lattice)

Base.show() function for Lattice struct.

See also: Lattice.

Base.show — Method
Base.show(io::IO, map::Mapping)

Base.show() function for Mapping struct.

See also: Mapping.

Base.show — Method
Base.show(io::IO, imp::Impurity)

Base.show() function for Impurity struct.

See also: Impurity.

Base.show — Method
Base.show(io::IO, PT::PrTrait)

Base.show() function for PrTrait struct.

See also: PrTrait.

Base.show — Method
Base.show(io::IO, PG::PrGroup)

Base.show() function for PrGroup struct.

See also: PrGroup.

Base.show — Method
Base.show(io::IO, PW::PrWindow)

Base.show() function for PrWindow struct.

See also: PrWindow.

Base.getproperty — Method
Base.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.