qimpy.transport.material.FermiCircle
- class FermiCircle(*, kF, vF, N_theta, tau_p, tau_ee, theta0=0.0, process_grid, checkpoint_in=(None, ''))
Bases:
Material
Fermi-circle representation suitable for graphene and 2DEGs.
- Parameters:
kF (float) –
vF (float) –
N_theta (int) –
tau_p (float) –
tau_ee (float) –
theta0 (float) –
process_grid (ProcessGrid) –
checkpoint_in (CheckpointPath) –
- __init__(*, kF, vF, N_theta, tau_p, tau_ee, theta0=0.0, process_grid, checkpoint_in=(None, ''))
Initialize ab initio material.
- Parameters:
kF (float) – [Input file] Fermi wave vector in atomic units.
vF (float) – [Input file] Fermi velocity in atomic units.
N_theta (int) – [Input file] Number of k along Fermi circle.
theta0 (float) – [Input file] Angle of first k-point.
tau_p (float) –
tau_ee (float) –
process_grid (ProcessGrid) –
checkpoint_in (CheckpointPath) –
Methods
Initialize ab initio material.
add_child
Construct child object self.`attr_name` of type cls.
add_child_one_of
Invoke add_child on one of several child options in args.
Return contact distribution function for specified chemical potential shift and drift velocity.
Return string of observables, comma seperated, specific to each material.
Return tensor of complex conjugates of all observables specific to each material.
Return a function (or callable object) to calculate reflections for a sequence of surface points with unit normals (Nsurf x 2).
measure_observables
Retrun density and flux of observables, (Nx x Ny x No) for density and (Nx x Ny x No x 2) for flux.
Return material contribution to drho/dt.
save_checkpoint
Save self and all children in hierarchy to cp_path.
Attributes
transport_velocity
Effective velocity for each density-matrix component.
Fermi wave-vector
Fermi velocity
Momentum relaxation rate
Electron internal scattering rate (momentum-conserving)
comm
Communicator for reciprocal-space split over k
k_division
Division of k-points over MPI
k_mine
slice of k on current process
n_bands
number of bands at each k
n_dim
dimensionality of material (2 or 3)
wk
Brillouin zone integration weight
k
nk x n_dim wave vectors
E
nk x n_bands energies
v
nk x n_bands x n_dim velocities in plane
rho0
nk x n_bands x n_bands initial density matrix
child_names
Names of attributes with child objects.
- get_contactor(n, *, dmu=0.0, vD=0.0)
Return contact distribution function for specified chemical potential shift and drift velocity. Note that positive vD corresponds to current flowing into the device (along -n), while negative vD flows out (along +n).
- Parameters:
n (Tensor) –
dmu (float) –
vD (float) –
- Return type:
Callable[[float], Tensor]
- get_observable_names()
Return string of observables, comma seperated, specific to each material.
- Return type:
list[str]
- get_observables(Nkbb, t)
Return tensor of complex conjugates of all observables specific to each material. (No x Nkbb_mine) where No is number of observables.
- Parameters:
Nkbb (int) –
t (float) –
- Return type:
Tensor
- get_reflector(n)
Return a function (or callable object) to calculate reflections for a sequence of surface points with unit normals (Nsurf x 2). This function will be called with a Nghost x Nsurf x Nkbb_mine tensor, and the reflection should be calculated pointwise in real-space with output of the same dimensions.
- Parameters:
n (Tensor) –
- Return type:
Callable[[Tensor], Tensor]
- rho_dot(rho, t)
Return material contribution to drho/dt. This should include scattering and any coherent evolution in band space.
- Parameters:
rho (Tensor) –
t (float) –
- Return type:
Tensor
- kF: float
Fermi wave-vector
- tau_inv_ee: float
Electron internal scattering rate (momentum-conserving)
- tau_inv_p: float
Momentum relaxation rate
- vF: float
Fermi velocity