Skip to main content

OperatorBuilder

Struct OperatorBuilder 

Source
pub struct OperatorBuilder<'a, Source, Target>
where Source: Basis, Target: Basis<State = Source::State>,
{ /* private fields */ }
Expand description

Universal square or cross-sector operator builder.

Implementations§

Source§

impl<'a, BasisType> OperatorBuilder<'a, BasisType, BasisType>
where BasisType: Basis,

Source

pub fn on(basis: &'a BasisType) -> Self

Start a square operator builder on one source and target basis.

Source§

impl<'a, Source, Target> OperatorBuilder<'a, Source, Target>
where Source: Basis, Target: Basis<State = Source::State>,

Source

pub fn between(source: &'a Source, target: &'a Target) -> Self

Start a rectangular builder mapping source coordinates into target.

The two bases share a state representation but may select different particle-number or symmetry sectors.

Source

pub fn terms(self, terms: impl IntoIterator<Item = OperatorSpec>) -> Self

Append several validated local terms.

Source

pub fn term(self, term: OperatorSpec) -> Self

Append one validated local term.

Source

pub const fn checks(self, checks: AssemblyChecks) -> Self

Replace the default Hermiticity, conservation, and symmetry checks.

Source

pub fn build(self, format: MatrixFormat) -> Result<Operator>

Assemble all terms through the universal column-streaming path.

The same routine supports deterministic and branching local actions, symmetry-reduced targets, rectangular sector changes, and every public storage format.

Source

pub fn build_dynamic( self, dynamic_terms: impl IntoIterator<Item = DynamicTerm>, format: MatrixFormat, ) -> Result<Hamiltonian<Dynamic>>

Assemble static and driven terms through the same local-action path.

Auto Trait Implementations§

§

impl<'a, Source, Target> Freeze for OperatorBuilder<'a, Source, Target>

§

impl<'a, Source, Target> RefUnwindSafe for OperatorBuilder<'a, Source, Target>
where Source: RefUnwindSafe, Target: RefUnwindSafe,

§

impl<'a, Source, Target> Send for OperatorBuilder<'a, Source, Target>

§

impl<'a, Source, Target> Sync for OperatorBuilder<'a, Source, Target>

§

impl<'a, Source, Target> Unpin for OperatorBuilder<'a, Source, Target>

§

impl<'a, Source, Target> UnsafeUnpin for OperatorBuilder<'a, Source, Target>

§

impl<'a, Source, Target> UnwindSafe for OperatorBuilder<'a, Source, Target>
where Source: RefUnwindSafe, Target: RefUnwindSafe,

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
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

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> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,