Skip to main content

Parameters

Struct Parameters 

Source
pub struct Parameters<const DIM: usize> {
    pub T: Array1<f64>,
    pub mu: Array1<f64>,
    pub eta: f64,
    pub kmesh: [usize; DIM],
    pub omega: Array1<f64>,
    pub spin: Option<SpinDirection>,
    pub direction: Array2<f64>,
    pub integration: Integration,
    pub field_symmetry: FieldSymmetry,
}
Expand description

Unified physical parameters for every response calculation.

One structure is shared by hall_conductivity, quantum_geometry, optical_conductivity, extrinsic_nonlinear_hall and intrinsic_nonlinear_hall. Each method reads only the fields it needs; the remaining fields are silently ignored.

Fields§

§T: Array1<f64>

Temperature in kelvin. T[0] == 0.0 selects the exact zero-temperature step function; T[0] > 0.0 selects Fermi-Dirac occupation at that temperature. Only T[0] is currently used.

§mu: Array1<f64>

Chemical potential(s) in eV. Methods that expect a single chemical potential (optical conductivity) use mu[0] and require one element.

§eta: f64

Non-negative energy-denominator regularization in eV.

§kmesh: [usize; DIM]

Number of uniform samples along each reciprocal-lattice direction.

§omega: Array1<f64>

Photon / perturbation frequency(ies) in eV. Methods that expect a single frequency use omega[0]; the optical conductivity scans all frequencies.

§spin: Option<SpinDirection>

Spin-current polarization. None selects the charge current.

§direction: Array2<f64>

Direction matrix with shape (rank, DIM):

  • rank = 2 for rank-two tensors (Hall, quantum geometry, optical component): row 0 = first tensor index, row 1 = second tensor index.
  • rank = 3 for rank-three tensors (nonlinear Hall): row 0 = current direction, rows 1-2 = field directions.
§integration: Integration

Brillouin-zone integration algorithm.

§field_symmetry: FieldSymmetry

Ordering convention for the two field indices of the extrinsic nonlinear Hall response. Ignored by all other methods.

Implementations§

Source§

impl<const DIM: usize> Parameters<DIM>

Source

pub fn new(kmesh: [usize; DIM], direction: Array2<f64>, mu: Array1<f64>) -> Self

Construct a zero-temperature charge-response parameter set with 1e-3 eV broadening, DC frequency and direct integration.

Source

pub fn at_mu(kmesh: [usize; DIM], direction: Array2<f64>, mu: f64) -> Self

Convenience constructor for a single chemical potential.

Source

pub fn rank2( kmesh: [usize; DIM], direction_a: [f64; DIM], direction_b: [f64; DIM], mu: Array1<f64>, ) -> Self

Rank-two charge response from two const-generic direction vectors.

Source

pub fn rank3( kmesh: [usize; DIM], current: [f64; DIM], field_1: [f64; DIM], field_2: [f64; DIM], mu: Array1<f64>, ) -> Self

Rank-three charge response from const-generic current and field vectors. Row 0 is the current, rows 1-2 the fields.

Source

pub fn with_temperature(self, kelvin: f64) -> Self

Set the temperature in kelvin.

Source

pub fn with_spin(self, spin: SpinDirection) -> Self

Select the spin-current polarization.

Source

pub fn with_frequency(self, omega: f64) -> Self

Set a single frequency in eV.

Source

pub fn with_integration(self, integration: Integration) -> Self

Select the Brillouin-zone integration algorithm.

Trait Implementations§

Source§

impl<const DIM: usize> Clone for Parameters<DIM>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const DIM: usize> Debug for Parameters<DIM>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const DIM: usize> Freeze for Parameters<DIM>
where [usize; DIM]: Freeze,

§

impl<const DIM: usize> RefUnwindSafe for Parameters<DIM>

§

impl<const DIM: usize> Send for Parameters<DIM>
where [usize; DIM]: Send,

§

impl<const DIM: usize> Sync for Parameters<DIM>
where [usize; DIM]: Sync,

§

impl<const DIM: usize> Unpin for Parameters<DIM>
where [usize; DIM]: Unpin,

§

impl<const DIM: usize> UnsafeUnpin for Parameters<DIM>
where [usize; DIM]: UnsafeUnpin,

§

impl<const DIM: usize> UnwindSafe for Parameters<DIM>
where [usize; DIM]: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V