API
GrapheneQFT.Defect
GrapheneQFT.GrapheneCoord
GrapheneQFT.GrapheneState
GrapheneQFT.GrapheneSystem
GrapheneQFT.Hopping
GrapheneQFT.ImpurityState
GrapheneQFT.LocalSpin
GrapheneQFT.G_R
GrapheneQFT.crystal_to_cartesian
GrapheneQFT.graphene_multiple_neighbors
GrapheneQFT.graphene_neighbors
GrapheneQFT.mkGrapheneSystem
GrapheneQFT.peierls_phase
GrapheneQFT.Γ
GrapheneQFT.δG_R
GrapheneQFT.δΓ
Pristine Graphene
GrapheneQFT.GrapheneCoord
— TypeGrapheneCoord(u::Int, v::Int, sublattice::Sublattice)
Lattice coordinate of a carbon atom.
Each coordinate contains the sublattice index A
or B
, as well as the integer coefficients of the two basis vectors $d\times(\pm 1 \hat{x} + \sqrt{3}\hat{y}) / 2$ (u
for +
, v
for -
), with $d = 2.46$Å as the lattice constant.
GrapheneQFT.GrapheneState
— TypeGrapheneState(coord::GrapheneCoord, spin::Spin)
Quantum state of an electron in graphene, denoted by $|u, v, L\rangle\otimes |\sigma\rangle$ in the drivation.
The state is given by the GrapheneCoord
of the orbital, as well as the electronic spin, which can take values SpinUp
and SpinDown
.
GrapheneQFT.Defect
— TypeDefect
Abstract type for all defect types.
GrapheneQFT.ImpurityState
— TypeImpurityState(ϵ::Float64, coupling::Vector{Tuple{Float64,GrapheneCoord}}) <: Defect
An impurity state of energy ϵ
(in eV) coupled to the graphene system. The tuples in the coupling
field contain all the coupling energies (in eV) and the corresponding GrapheneCoord
's.
GrapheneQFT.LocalSpin
— TypeLocalSpin(x::Float64, y::Float64, z::Float64, coord::GrapheneCoord) <: Defect
A local spin with components x
, y
, and z
located at coord
. See GrapheneCoord
.
GrapheneQFT.Hopping
— TypeHopping(c1::GrapheneCoord, c2::GrapheneCoord, Δ::ComplexF64) <: Defect
Hopping modification (in eV) between two GrapheneCoord
's. If c1==c2
, this quantity corresponds to a local energy modification.
GrapheneQFT.GrapheneSystem
— TypeGrapheneSystem(
μ::Float64,
T::Float64,
Δ::Array{ComplexF64,2},
V::Array{Float64,2},
scattering_states::Vector{GrapheneState},
imps::Vector{Float64},
)
A structure describing the perturbed graphene system.
See also mkGrapheneSystem
.
GrapheneQFT.graphene_neighbors
— Functiongraphene_neighbors(atom::GrapheneCoord)
Determine the nearest neighbors of an atom
and return a vector of the corresponding GrapheneCoord
's.
GrapheneQFT.graphene_multiple_neighbors
— Functiongraphene_multiple_neighbors(atom::GrapheneCoord, n::Int)
Return an array of GrapheneCoord
's obtained by iteratively running graphene_neighbors
n
times, applying it only to the newly-added GrapheneCoord
's from the past iteration. The entries in the result are unique and sorted by their distance from atom
.
Arguments
atom
:GrapheneCoord
from which the iteration beginsn
: number of iterations ofgraphene_neighbors
.
GrapheneQFT.crystal_to_cartesian
— Functioncrystal_to_cartesian(coord::GrapheneCoord)
Convert a GrapheneCoord
to a cartesian point with lengths in Å, where GrapheneCoord(0, 0, A)
is at the origin.
GrapheneQFT.mkGrapheneSystem
— FunctionmkGrapheneSystem(
μ::Float64,
T::Float64,
defects::Vector{Defect},
)
Construct GrapheneSystem
.
Arguments
μ
: chemical potentialT
: temperaturedefects
: a list of [Defect
]'s
When supplying []Hopping
](@ref) in defects
, ensure that each coordinate pair appears only once as repeated pairs with different couplings will cause eariler values to be overwritten. The order of the coordinates does not matter.
The function constructs a GrapheneSystem
with the Δ
and V
matrices. In addition, a list of all GrapheneState
that are perturbed (scattering_states
field in GrapheneCoord
) and a list of impurity energies (imps
field in GrapheneCoord
) are included.
GrapheneQFT.peierls_phase
— Functionpeierls_phase(vec_pot, a1::GrapheneCoord, a2::GrapheneCoord)
Calculate the phase used in the Peierls substitution to include the effects of the magnetic field.
To make the units work out better, the magnetic field $\mathbf{B}(x, y, z) = \Phi_0/\mathcal{V} \mathbf{f}(x, y, z)$, where $\mathcal{V}$ is the area of the graphene unit cell in Ų, $\Phi_0 = h / 2e$ is the magnetic flux quantum, and $\mathbf{f}(x, y, z) = \nabla \times \mathbf{g}(x,y,z)$ is a dimensionless vector function. Note that $\mathbf{f} = 1$ produces a field of about 40000 T.
For the vector potential, we have $\mathbf{A}(x, y, z) =\Phi_0 / \mathcal{V} \mathbf{g}(x, y, z)$, where $\mathbf{g}(x, y, z)$ has the units of Å. Using the definition of the Peierls phase, one gets
\[\phi = -\frac{\pi}{ \Phi_0} \int \mathbf{A}\cdot d\mathbf{l} = -\frac{\pi}{ \mathcal{V}} \int \mathbf{g}(x, y, z) \cdot d\mathbf{l} \rightarrow -\frac{\pi}{ \mathcal{V}} \int \mathbf{g}_{xy}(x, y) \cdot d\mathbf{l}\,.\]
The last step follows from the fact that the graphene system resides in the $xy$ plane, so one needs to retain only the $x$ and $y$ componends of $\mathbf{g}$, as denoted by the subscript $xy$.
Arguments
vec_pot(x,y)
: $\mathbf{g}_{xy}(x, y)$ in Å withx
andy
in Å.a1
:GrapheneCoord
of the "from" atom.a2
:GrapheneCoord
of the "to" atom.
vec_pot(x,y)
needs to return a tuple corresponding to the vector potential in $x$ and $y$ directions.
Green's Functions
GrapheneQFT.δG_R
— FunctionδG_R(z::ComplexF64,
pairs::Vector{Tuple{GrapheneState,GrapheneState}},
s::GrapheneSystem)
The correction to the real-space graphene Green's function in the presence of defects as a function of complex energy z
.
The function returns a vector of ComplexF64
for each pair of GrapheneState
's in pairs
.
Arguments
z
: complex energypairs
: pairs ofGrapheneState
's for whichδG_R
is calculateds
:GrapheneSystem
for whichδG_R
is calculated
GrapheneQFT.G_R
— FunctionG_R(z::ComplexF64,
pairs::Vector{Tuple{GrapheneState,GrapheneState}},
s::GrapheneSystem)
The full real-space graphene Green's function in the presence of defects as a function of complex energy z
.
Arguments
z
: complex energypairs
: pairs ofGrapheneState
's for whichG_R
is calculateds
:GrapheneSystem
for whichG_R
is calculated
GrapheneQFT.δΓ
— FunctionδΓ(z::ComplexF64, s::GrapheneSystem)
The correction to the impurity Green's function due to the impurities' interaction with graphene.
Arguments
z
: complex energys
:GrapheneSystem
for whichδΓ
is calculated
GrapheneQFT.Γ
— FunctionΓ(z::ComplexF64, s::GrapheneSystem)
The full impurity Green's function with the correction due to the impurities' interaction with graphene.
Arguments
z
: complex energys
:GrapheneSystem
for whichΓ
is calculated