pub struct OperatorBuilder<'a, Source, Target>{ /* private fields */ }Expand description
Universal square or cross-sector operator builder.
Implementations§
Source§impl<'a, BasisType> OperatorBuilder<'a, BasisType, BasisType>where
BasisType: Basis,
impl<'a, BasisType> OperatorBuilder<'a, BasisType, BasisType>where
BasisType: Basis,
Sourcepub fn on(basis: &'a BasisType) -> Self
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>
impl<'a, Source, Target> OperatorBuilder<'a, Source, Target>
Sourcepub fn between(source: &'a Source, target: &'a Target) -> Self
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.
Sourcepub fn terms(self, terms: impl IntoIterator<Item = OperatorSpec>) -> Self
pub fn terms(self, terms: impl IntoIterator<Item = OperatorSpec>) -> Self
Append several validated local terms.
Sourcepub fn term(self, term: OperatorSpec) -> Self
pub fn term(self, term: OperatorSpec) -> Self
Append one validated local term.
Sourcepub const fn checks(self, checks: AssemblyChecks) -> Self
pub const fn checks(self, checks: AssemblyChecks) -> Self
Replace the default Hermiticity, conservation, and symmetry checks.
Sourcepub fn build(self, format: MatrixFormat) -> Result<Operator>
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.
Sourcepub fn build_dynamic(
self,
dynamic_terms: impl IntoIterator<Item = DynamicTerm>,
format: MatrixFormat,
) -> Result<Hamiltonian<Dynamic>>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
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
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
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
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.