KetBra#

class KetBra(ket, bra, parent=None, children=None)[source]#

Bases: NodeMixin

Node in a tree of excited states.

Each KetBra is density matrix component described by ket and bra.

Parameters:
  • ket (RotState) – ket-side rovibrational state.

  • bra (RotState) – bra-side rovibrational state.

Attributes

name

ASCII art KetBra

separator

The NodeMixin class extends any Python class to a tree node.

ket

ket-side rovibrational state

bra

bra-side rovibrational state

Methods

R_label([order])

Pathway label \(R_i\), i=1,...,8 as defined by Hamm and Zanni.

__init__(ket, bra[, parent, children])

color_tier()

Number of colors neede to create this pathway.

conj()

Return detached conjugate of this KetBra.

copy()

Deep copy of the tree.

diagonals([sort])

Collect diagonal leaves.

evolve(**kwargs)

Return copy with some attributes replaced.

get(side)

Index KetBra by Side enum.

has_overtone()

Check if current pathway has overtone coherence.

interaction(name)

Return LightInteraction with given name.

interactions()

Interactions which generated this KetBra, from top to bottom.

is_Pinitial()

Check if initial excitation is P-branch.

is_Qbranch()

Check if pump or probe axis involves Q-branch coherence.

is_Qinitial()

Check if initial excitation is Q-branch.

is_Rinitial()

Check if initial excitation is R-branch.

is_SI([order])

Check if \(\vec{k}_s = -\vec{k}_1+\vec{k}_2+\vec{k}_3\) (rephasing).

is_SII([order])

Check if \(\vec{k}_s=\vec{k}_1-\vec{k}_2+\vec{k}_3\) (non-rephasing).

is_SIII([order])

Check if \(\vec{k}_s=\vec{k}_1+\vec{k}_2-\vec{k}_3\) (double quantum).

is_between(pump, probe)

Check if this pathway produces cross-peak between pump and probe.

is_dfwm()

Check if this pathway contains only coherences corresponding to a single dipole transition.

is_diagonal()

Check if current node is a population state.

is_doublequantum()

Check if pathway has double-quantum coherence.

is_equiv_pathway(o)

Check if other pathway differs only by initial J state.

is_esa()

Check if pathway corresponds to excited-state absorption.

is_gshb()

Check if pathway corresponds to ground-state hole-burning.

is_interstate()

Check for coherent state after second interaction.

is_onecolor()

Check if this pathway contains only coherences corresponding to a single dipole transition.

is_overtone()

Check if current node is an overtone coherence.

is_pathway(*kbs)

Match self to pathway consisting of kbs.

is_rc()

Check for rotational coherence after second interaction.

is_rephasing()

Check if current pathway is rephasing.

is_same_branch(o)

Check if other pathway belongs to the same branch.

is_sep()

Check if pathway corresponds to stimulated emission pumping.

is_some_pathway(kbs)

Match self to one of pathways in kbs.

is_threecolor()

Check if pathway is three-color.

is_twocolor()

Check if pathway is two-color.

kb_ancestor([ancestor])

Return first KetBra ancestor.

ketbras()

Ancestor KetBras and self, from top to bottom.

ksigns()

Return signs of wavevectors of interactions.

normalized()

Return copy of self with ket being the lower nu, j level.

print_tree()

Pretty print excitation tree.

savepng(path)

Save excitation tree as an image.

sides()

Return sides of DM on which interactions acted.

to_statelist([diatom, normalize])

KetBras leading to this one as a list of state pairs.

total_ksign()

Cumulative sign of the term.

total_side()

Cumulative side of the term.

transitions()

Return list of transitions as a list of state pairs.