Trait AnyonModel

Source
pub trait AnyonModel: Send + Sync {
    // Required methods
    fn anyon_types(&self) -> &[AnyonType];
    fn quantum_dimension(&self, anyon: AnyonType) -> f64;
    fn topological_spin(&self, anyon: AnyonType) -> Complex64;
    fn can_fuse(&self, a: AnyonType, b: AnyonType, c: AnyonType) -> bool;
    fn fusion_multiplicity(
        &self,
        a: AnyonType,
        b: AnyonType,
        c: AnyonType,
    ) -> u32;
    fn f_symbol(
        &self,
        a: AnyonType,
        b: AnyonType,
        c: AnyonType,
        d: AnyonType,
        e: AnyonType,
        f: AnyonType,
    ) -> Complex64;
    fn r_symbol(&self, a: AnyonType, b: AnyonType, c: AnyonType) -> Complex64;
    fn name(&self) -> &str;

    // Provided methods
    fn is_modular(&self) -> bool { ... }
    fn total_quantum_dimension(&self) -> f64 { ... }
}
Expand description

Anyon model definition

Required Methods§

Source

fn anyon_types(&self) -> &[AnyonType]

Get all anyon types in this model

Source

fn quantum_dimension(&self, anyon: AnyonType) -> f64

Get quantum dimension of an anyon

Source

fn topological_spin(&self, anyon: AnyonType) -> Complex64

Get topological spin of an anyon

Source

fn can_fuse(&self, a: AnyonType, b: AnyonType, c: AnyonType) -> bool

Check if two anyons can fuse into a third

Source

fn fusion_multiplicity(&self, a: AnyonType, b: AnyonType, c: AnyonType) -> u32

Get fusion rules N^c_{ab}

Source

fn f_symbol( &self, a: AnyonType, b: AnyonType, c: AnyonType, d: AnyonType, e: AnyonType, f: AnyonType, ) -> Complex64

Get F-symbols F^{abc}_d

Source

fn r_symbol(&self, a: AnyonType, b: AnyonType, c: AnyonType) -> Complex64

Get R-symbols (braiding matrices) R^{ab}_c

Source

fn name(&self) -> &str

Get the name of this anyon model

Provided Methods§

Source

fn is_modular(&self) -> bool

Check if the model is modular (all anyons have non-zero quantum dimension)

Source

fn total_quantum_dimension(&self) -> f64

Get total quantum dimension

Implementors§