State

class sisl.physics.State(state, parent=None, **info)[source]

An object handling a set of vectors describing a given state

Parameters:
state : array_like

state vectors state[i, :] containing the i’th state vector

parent : obj, optional

a parent object that defines the origin of the state.

**info : dict, optional

an info dictionary that turns into an attribute on the object. This info may contain anything that may be relevant for the state.

Notes

This class should be subclassed!

Attributes

dkind The data-type of the state (in str)
dtype Data-type for the state
info
parent
shape Returns the shape of the state
state

Methods

__init__(state[, parent]) Define a state container with a given set of states
copy() Return a copy (only the state is copied).
iter([asarray]) An iterator looping over the states in this system
norm() Return a vector with the norm of each state \(\sqrt{\langle\psi|\psi\rangle}\)
norm2([sum]) Return a vector with the norm of each state \(\langle\psi|\psi\rangle\)
normalize() Return a normalized state where each state has \(|\psi|^2=1\)
outer([idx]) Return the outer product for the indices idx (or all if None) by \(\sum_i|\psi_i\rangle\langle\psi_i|\)
sub(idx) Return a new state with only the specified states
copy()[source]

Return a copy (only the state is copied). parent and info are passed by reference

dkind

The data-type of the state (in str)

dtype

Data-type for the state

info
iter(asarray=False)[source]

An iterator looping over the states in this system

Parameters:
asarray: bool, optional

if true the yielded values are the state vectors, i.e. a numpy array. Otherwise an equivalent object is yielded.

Yields:
state : State

a state only containing individual elements, if asarray is false

state : numpy.ndarray

a state only containing individual elements, if asarray is true

norm()[source]

Return a vector with the norm of each state \(\sqrt{\langle\psi|\psi\rangle}\)

Returns:
numpy.ndarray

the normalization for each state

norm2(sum=True)[source]

Return a vector with the norm of each state \(\langle\psi|\psi\rangle\)

Parameters:
sum : bool, optional

if true the summed site square is returned (a vector). For false a matrix with normalization squared per site is returned.

Returns:
numpy.ndarray

the normalization for each state

normalize()[source]

Return a normalized state where each state has \(|\psi|^2=1\)

This is roughly equivalent to:

>>> state = State(np.arange(10))
>>> n = state.norm()
>>> norm_state = State(state.state / n.reshape(-1, 1))
Returns:
State

a new state with all states normalized, otherwise equal to this

outer(idx=None)[source]

Return the outer product for the indices idx (or all if None) by \(\sum_i|\psi_i\rangle\langle\psi_i|\)

Parameters:
idx : int or array_like, optional

only perform an outer product of the specified indices, otherwise all states are used

Returns:
numpy.ndarray

a matrix with the sum of outer state products

parent
shape

Returns the shape of the state

state
sub(idx)[source]

Return a new state with only the specified states

Parameters:
idx : int or array_like

indices that are retained in the returned object

Returns:
State

a new state only containing the requested elements