dmelements

Operators on density-matrix elements

parse_dm_element


def parse_dm_element(
    s
):
population_element(dm_elements_hfz)
<xarray.DataArray 'Density matrix (source)' (Density matrix: 196)> Size: 196B
array([ True, False, False,  True, False, False, False, False,  True, False, False, False, False, False, False,  True, False, False, False,
       False, False, False, False, False,  True,  True, False, False,  True, False, False, False, False,  True, False, False, False, False,
       False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False,
       False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,  True,
       False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
       False, False, False, False, False,  True, False, False, False, False, False, False, False, False, False, False, False, False, False,
       False, False, False,  True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
       False, False, False,  True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
       False, False, False, False, False,  True])
Coordinates:
  * Density matrix  (Density matrix) <U68 53kB 'ρ<sub>Re, (3S<sub>1/2</sub>, ...

levels


def levels(
    dm_elements
):

population


def population(
    dm_elements
):
op = population(dm_elements)
op
    • XarrayMatrixOperator
    • Density matrix(4) → Population(2)
    • []
      <xarray.DataArray (Population (range): 2, Density matrix (source): 4)> Size: 64B
      array([[   1.0  ,     0   ,     0   ,     0   ],
             [    0   ,     0   ,     0   ,    1.0  ]])
      Coordinates:
        * Population (range)       (Population (range)) <U50 400B 'ρ<sub>Re, 3S<sub...
        * Density matrix (source)  (Density matrix (source)) <U50 800B 'ρ<sub>Re, 3...
dm = op.source.ones()
pop = op.apply(dm)
pop
∅ ⛒ Population(2)
<xarray.DataArray (Population: 2)> Size: 16B
array([   1.0  ,    1.0  ])
Coordinates:
  * Population  (Population) <U50 400B 'ρ<sub>Re, 3S<sub>1/2</sub>, 3S<sub>1/...
pop.array
<xarray.DataArray (Population: 2)> Size: 16B
array([   1.0  ,    1.0  ])
Coordinates:
  * Population  (Population) <U50 400B 'ρ<sub>Re, 3S<sub>1/2</sub>, 3S<sub>1/...
op = population(dm_elements_hfz)
op
    • XarrayMatrixOperator
    • Density matrix(196) → Population(16)
    • []
      <xarray.DataArray (Population (range): 16, Density matrix (source): 196)> Size: 25kB
      array([[   1.0  ,     0   ,     0   , ...,     0   ,     0   ,     0   ],
             [    0   ,     0   ,     0   , ...,     0   ,     0   ,     0   ],
             [    0   ,     0   ,     0   , ...,     0   ,     0   ,     0   ],
             ...,
             [    0   ,     0   ,     0   , ...,     0   ,     0   ,     0   ],
             [    0   ,     0   ,     0   , ...,     0   ,     0   ,     0   ],
             [    0   ,     0   ,     0   , ...,     0   ,     0   ,    1.0  ]], shape=(16, 196))
      Coordinates:
        * Population (range)       (Population (range)) <U68 4kB 'ρ<sub>Re, (3S<sub...
        * Density matrix (source)  (Density matrix (source)) <U68 53kB 'ρ<sub>Re, (...
dm = op.source.ones()
pop = op.apply(dm)
pop
∅ ⛒ Population(16)
<xarray.DataArray (Population: 16)> Size: 128B
array([   1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,
          1.0  ,    1.0  ,    1.0  ])
Coordinates:
  * Population  (Population) <U68 4kB 'ρ<sub>Re, (3S<sub>1/2</sub>, 2, 2), (3...
pop.array
<xarray.DataArray (Population: 16)> Size: 128B
array([   1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,    1.0  ,
          1.0  ,    1.0  ,    1.0  ])
Coordinates:
  * Population  (Population) <U68 4kB 'ρ<sub>Re, (3S<sub>1/2</sub>, 2, 2), (3...

total_population


def total_population(
    dm_elements
):
op = total_population(dm_elements)
op
    • Total population
    • XarrayMatrixOperator
    • Density matrix(4) →
    • []
      <xarray.DataArray (Density matrix (source): 4)> Size: 32B
      array([   1.0  ,     0   ,     0   ,    1.0  ])
      Coordinates:
        * Density matrix (source)  (Density matrix (source)) <U50 800B 'ρ<sub>Re, 3...
op.source
Density matrix(4)
<xarray.DataArray 'XarrayVectorSpace' (Density matrix: 4)> Size: 32B
array([    0   ,     0   ,     0   ,     0   ])
Coordinates:
  * Density matrix  (Density matrix) <U50 800B 'ρ<sub>Re, 3S<sub>1/2</sub>, 3...
op.range
<xarray.DataArray 'XarrayVectorSpace' ()> Size: 8B
array(    0   )
dm = op.source.ones()
pop = op.apply(dm)
pop
∅ ⛒
<xarray.DataArray ()> Size: 8B
array(   2.0  )
pop.array
<xarray.DataArray ()> Size: 8B
array(   2.0  )

level_mask_da


def level_mask_da(
    dm_elements
):
level_mask_da(dm_elements)
<xarray.DataArray 'Density matrix (source)' (Level: 2, Density matrix: 4)> Size: 8B
array([[False, False, False,  True],
       [ True, False, False, False]])
Coordinates:
  * Density matrix  (Density matrix) <U50 800B 'ρ<sub>Re, 3S<sub>1/2</sub>, 3...
  * Level           (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'

level_population_mask_da


def level_population_mask_da(
    dm_elements
):
level_population_mask_da(dm_elements)
<xarray.DataArray 'Density matrix (source)' (Level: 2, Density matrix: 4)> Size: 8B
array([[False, False, False,  True],
       [ True, False, False, False]])
Coordinates:
  * Density matrix  (Density matrix) <U50 800B 'ρ<sub>Re, 3S<sub>1/2</sub>, 3...
  * Level           (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'

level_population


def level_population(
    dm_elements
):
op = level_population(dm_elements)
op
    • Population
    • XarrayMatrixOperator
    • Density matrix(4) → Level(2)
    • []
      <xarray.DataArray 'Density matrix (source)' (Level (range): 2,
                                                   Density matrix (source): 4)> Size: 8B
      array([[False, False, False,  True],
             [ True, False, False, False]])
      Coordinates:
        * Density matrix (source)  (Density matrix (source)) <U50 800B 'ρ<sub>Re, 3...
        * Level (range)            (Level (range)) <U16 128B '3P<sub>1/2</sub>' '3S...
op.matrix
<xarray.DataArray 'Density matrix (source)' (Level (range): 2,
                                             Density matrix (source): 4)> Size: 8B
array([[False, False, False,  True],
       [ True, False, False, False]])
Coordinates:
  * Density matrix (source)  (Density matrix (source)) <U50 800B 'ρ<sub>Re, 3...
  * Level (range)            (Level (range)) <U16 128B '3P<sub>1/2</sub>' '3S...
dm = op.source.ones()
pop = op.apply(dm)
pop
∅ ⛒ Level(2)
<xarray.DataArray (Level: 2)> Size: 16B
array([   1.0  ,    1.0  ])
Coordinates:
  * Level    (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'
pop.array
<xarray.DataArray (Level: 2)> Size: 16B
array([   1.0  ,    1.0  ])
Coordinates:
  * Level    (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'
op = level_population(dm_elements_hfz)
op
    • Population
    • XarrayMatrixOperator
    • Density matrix(196) → Level(2)
    • []
      <xarray.DataArray 'Density matrix (source)' (Level (range): 2,
                                                   Density matrix (source): 196)> Size: 392B
      array([[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
               True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False,  True, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False,  True, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,  True],
             [ True, False, False,  True, False, False, False, False,  True, False, False, False, False, False, False,  True, False, False,
              False, False, False, False, False, False,  True,  True, False, False,  True, False, False, False, False,  True, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,
              False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]])
      Coordinates:
        * Density matrix (source)  (Density matrix (source)) <U68 53kB 'ρ<sub>Re, (...
        * Level (range)            (Level (range)) <U16 128B '3P<sub>1/2</sub>' '3S...
dm = op.source.ones()
pop = op.apply(dm)
pop
∅ ⛒ Level(2)
<xarray.DataArray (Level: 2)> Size: 16B
array([   8.0  ,    8.0  ])
Coordinates:
  * Level    (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'
pop.array
<xarray.DataArray (Level: 2)> Size: 16B
array([   8.0  ,    8.0  ])
Coordinates:
  * Level    (Level) <U16 128B '3P<sub>1/2</sub>' '3S<sub>1/2</sub>'

sum_over_dm


def sum_over_dm(
    dm_elements
):