# Density Matrices notes + demo (ePSproc + PEMtk dev.)

30/08/21

In this notebook density matrices are considered & numerical routines demonstrated.

# Density Matrices

The general density operator, for a mixture of indepent states $$|\psi_{n} \rangle$$, can be defined as (Eqn. 2.8, Blum [1]):

$$\hat{\rho}=\sum_{n}W_{n}|\psi_{n}\rangle\langle\psi_{n}|$$

Where $$W_{n}$$ defines the (statistical) weighting of each state $$\psi_{n}$$ in the mixture.

For a given basis set, $$|\phi_{m}\rangle$$, the states can be expanded and the matrix elements of $$\boldsymbol{\rho}$$ defined (Eqns. 2.9 - 2.11, Blum [1]):

$$| \psi_{n} \rangle = \sum_{m'} a_{m'}^{(n)}| \phi_{m'}\rangle$$
$$\hat{\rho}=\sum_{n}\sum_{mm'}W_{n}a_{m'}^{(n)}a_{m}^{(n)*}|\phi_{m'}\rangle\langle\phi_{m}|$$

And the matrix elements - the density matrix - given explicitly as:

$$\boldsymbol{\rho}_{i,j}=\langle\phi_{i}|\hat{\rho}|\phi_{j}\rangle=\sum_{n}W_{n}a_{i}^{(n)}a_{j}^{(n)*}$$

For all pairs of basis states $$(i,j)$$. This defines the density matrix in the $$\{|\phi_n\rangle\}$$ representation (basis space).

The expectation value of an operator $$\hat{Q}$$ can then be found as (Eqn. 2.18, Blum [1]):

\begin{eqnarray} \langle \hat{Q}\rangle & = & \sum_{n}\sum_{mm'}W_{n}a_{m'}^{(n)}a_{m}^{(n)*}\langle\phi_{m}|\hat{Q}|\phi_{m'}\rangle\\ & = & \sum_{mm'}\langle\phi_{m'}|\hat{\rho}|\phi_{m}\rangle\langle\phi_{m}|\hat{Q}|\phi_{m'}\rangle\\ & = & \mathrm{tr}(\rho Q) \end{eqnarray}

For basic examples, in terms of $$|J,M\rangle$$ states and alignment, see the Quantum Metrology with Photoelectrons notes.

Here, we’ll look at applying the formalism to photoionization, using ePSproc for the numerics…

[1] Blum, K. (2012). Density Matrix Theory and Applications (3rd Editio, Vol. 64). Berlin, Heidelberg: Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-642-20561-3

## Setup

[1]:

import sys
import os
from pathlib import Path
import numpy as np
# import epsproc as ep
import xarray as xr

import matplotlib.pyplot as plt

from datetime import datetime as dt
timeString = dt.now()

import epsproc as ep

# Multijob class dev code
from epsproc.classes.multiJob import ePSmultiJob

* sparse not found, sparse matrix forms not available.

[2]:

epDemoDataPath = Path(ep.__path__[0]).parent/'data'/'photoionization'/'n2_multiorb'

/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/ipykernel/ipkernel.py:287: DeprecationWarning: should_run_async will not call transform_cell automatically in the future. Please pass the result to transformed_cell argument and any exception that happen during thetransform in preprocessing_exc_tuple in IPython 7.17 and above.
and should_run_async(code)


[3]:

# Class dev code
from epsproc.classes.multiJob import ePSmultiJob
from epsproc.classes.base import ePSbase

# Instantiate class object.
# Minimally this needs just the dataPath, if verbose = 1 is set then some useful output will also be printed.
data = ePSbase(epDemoDataPath, verbose = 1)

# ScanFiles() - this will look for data files on the path provided, and read from them.
data.scanFiles()

/home/paul/github/ePSproc/epsproc/IO.py:657: DeprecationWarning: np.float is a deprecated alias for the builtin float. To silence this warning, use float by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64 here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
attribs.append(['E', np.float(parseLineDigits(dumpSeg[3][2])[0]), 'eV'])
/home/paul/github/ePSproc/epsproc/IO.py:662: DeprecationWarning: np.int is a deprecated alias for the builtin int. To silence this warning, use int by itself. Doing this will not modify any behavior and is safe. When replacing np.int, you may wish to use e.g. np.int64 or np.int32 to specify the precision. If you wish to review your current use, check the release note link for additional information.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
attribs.append(['Lmax', np.int(parseLineDigits(dumpSeg[10][2])[0]), ''])
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/github/ePSproc/epsproc/IO.py:657: DeprecationWarning: np.float is a deprecated alias for the builtin float. To silence this warning, use float by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64 here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
attribs.append(['E', np.float(parseLineDigits(dumpSeg[3][2])[0]), 'eV'])
/home/paul/github/ePSproc/epsproc/IO.py:662: DeprecationWarning: np.int is a deprecated alias for the builtin int. To silence this warning, use int by itself. Doing this will not modify any behavior and is safe. When replacing np.int, you may wish to use e.g. np.int64 or np.int32 to specify the precision. If you wish to review your current use, check the release note link for additional information.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
attribs.append(['Lmax', np.int(parseLineDigits(dumpSeg[10][2])[0]), ''])
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)
/home/paul/anaconda3/envs/epsdev-xr15/lib/python3.7/site-packages/xarray/core/alignment.py:298: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__.  Use index.union(other) instead
index = joiner(matching_indexes)


*** Job orb6 details
Key: orb6
Dir /home/paul/github/ePSproc/data/photoionization/n2_multiorb, 1 file(s).
{   'batch': 'ePS n2, batch n2_1pu_0.1-50.1eV, orbital A2',
'event': ' N2 A-state (1piu-1)',
'orbE': -17.09691397835426,
'orbLabel': '1piu-1'}

*** Job orb5 details
Key: orb5
Dir /home/paul/github/ePSproc/data/photoionization/n2_multiorb, 1 file(s).
{   'batch': 'ePS n2, batch n2_3sg_0.1-50.1eV, orbital A2',
'event': ' N2 X-state (3sg-1)',
'orbE': -17.34181645456815,
'orbLabel': '3sg-1'}


## Density matrix functions - demo with photoionization matrix elements

As of ePSproc v1.3.1-dev commit f5e4019, density matrix routines are implemented in :py:func:epsproc.calc.density (functional forms only).

Note this currently requires Holoviews for plotting.

[5]:

# Import routines
from epsproc.calc import density