pub struct PackedPhotonBasis { /* private fields */ }Expand description
Runtime-erased matter basis tensored with one truncated photon mode.
Public states are rows in the unfiltered direct product, with the matter
row as the major index and photon occupation as the minor index. Keeping
these identifiers unchanged when a fixed-total-excitation filter is
applied lets BasisProjector connect the filtered and full spaces
without a photon-specific projection path.
Implementations§
Source§impl PackedPhotonBasis
impl PackedPhotonBasis
Sourcepub fn new(
matter: PackedBasis,
photon_cutoff: usize,
total_excitations: Option<usize>,
) -> Result<Self>
pub fn new( matter: PackedBasis, photon_cutoff: usize, total_excitations: Option<usize>, ) -> Result<Self>
Construct a matter-photon product with photon occupations
0..=photon_cutoff, optionally filtered by a total additive quantum
number.
pub fn matter(&self) -> &PackedBasis
pub const fn photon(&self) -> &BosonBasis1D
pub const fn photon_dimension(&self) -> usize
pub const fn full_dimension(&self) -> usize
pub const fn total_excitations(&self) -> Option<usize>
Trait Implementations§
Source§impl Basis for PackedPhotonBasis
impl Basis for PackedPhotonBasis
Source§fn state(&self, index: usize) -> Result<Self::State>
fn state(&self, index: usize) -> Result<Self::State>
Return the encoded state at a basis index. Read more
Source§fn apply_local(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<Option<(Self::State, Complex64)>>
fn apply_local( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<Option<(Self::State, Complex64)>>
Apply one local operator string to one encoded state. Read more
Source§fn apply_local_transitions(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<LocalTransitions<Self::State>>
fn apply_local_transitions( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<LocalTransitions<Self::State>>
Applies a local operator and returns every nonzero destination. Read more
Source§fn apply_local_unreduced_transitions(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<LocalTransitions<Self::State>>
fn apply_local_unreduced_transitions( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<LocalTransitions<Self::State>>
Local action before symmetry-sector reduction. Cross-sector builders
use this path and let the target basis perform the reduction.
Source§fn visit_local_unreduced_transitions<F>(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
visit: F,
) -> Result<()>
fn visit_local_unreduced_transitions<F>( &self, state: Self::State, operator: &str, sites: &[usize], visit: F, ) -> Result<()>
Streams unreduced destinations directly to a consumer. Read more
Source§fn transition_orbit_size(&self, state: Self::State) -> Result<usize>
fn transition_orbit_size(&self, state: Self::State) -> Result<usize>
Orbit size of a canonical source state used in projector normalization.
Source§fn reduction_image(
&self,
state: Self::State,
) -> Result<Option<ReductionImage<Self::State>>>
fn reduction_image( &self, state: Self::State, ) -> Result<Option<ReductionImage<Self::State>>>
Return the canonical reduction metadata for a physical state. Read more
Source§fn operator_preserves_particle_sector(&self, operator: &str) -> Result<bool>
fn operator_preserves_particle_sector(&self, operator: &str) -> Result<bool>
Whether a local operator string preserves the particle-sector
constraints represented by this basis. Unconstrained and custom bases
accept every syntactically valid string by default.
Source§fn reduce_transition(
&self,
state: Self::State,
source_orbit_size: usize,
) -> Result<Option<(Self::State, Complex64)>>
fn reduce_transition( &self, state: Self::State, source_orbit_size: usize, ) -> Result<Option<(Self::State, Complex64)>>
Map an unreduced physical target state into this basis.
Source§fn index_transition(
&self,
state: Self::State,
source_orbit_size: usize,
) -> Result<Option<(usize, Complex64)>>
fn index_transition( &self, state: Self::State, source_orbit_size: usize, ) -> Result<Option<(usize, Complex64)>>
Reduces a physical target and locates its row in one operation. Read more
Source§impl Clone for PackedPhotonBasis
impl Clone for PackedPhotonBasis
Source§fn clone(&self) -> PackedPhotonBasis
fn clone(&self) -> PackedPhotonBasis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PackedPhotonBasis
impl Debug for PackedPhotonBasis
Source§impl From<PackedPhotonBasis> for PackedBasis
impl From<PackedPhotonBasis> for PackedBasis
Source§fn from(basis: PackedPhotonBasis) -> Self
fn from(basis: PackedPhotonBasis) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for PackedPhotonBasis
impl !RefUnwindSafe for PackedPhotonBasis
impl Send for PackedPhotonBasis
impl Sync for PackedPhotonBasis
impl Unpin for PackedPhotonBasis
impl UnsafeUnpin for PackedPhotonBasis
impl !UnwindSafe for PackedPhotonBasis
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.