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:

Methods

__init__

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.

get_contactor

Return contact distribution function for specified chemical potential shift and drift velocity.

get_observable_names

Return string of observables, comma seperated, specific to each material.

get_observables

Return tensor of complex conjugates of all observables specific to each material.

get_reflector

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.

rho_dot

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.

kF

Fermi wave-vector

vF

Fermi velocity

tau_inv_p

Momentum relaxation rate

tau_inv_ee

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