This page was auto-generated from a Jupyter notebook: XeF2-preliminary/XeF2_highRes_wf.orb22_E1G.
Problems? Please raise any issues on Github.
XeF2 (4d pi, orb22-23 E1G/PG), 1-350eV Preliminary¶
06/04/20
Set-up¶
Load modules¶
[1]:
import sys
import os
from pathlib import Path
import numpy as np
import epsproc as ep
import xarray as xr
from datetime import datetime as dt
timeString = dt.now()
* pyevtk not found, VTK export not available.
* plotly not found, plotly plots not available.
Load data¶
[2]:
# File path only, from env var DATAFILE
# dataPath = os.getcwd()
dataFile = os.environ.get('DATAFILE', '')
dataPath = Path(dataFile).parent.as_posix() # Use first file for job info, and set dir for scanning
[3]:
jobInfo = ep.headerFileParse(dataFile)
molInfo = ep.molInfoParse(dataFile)
*** Job info from file header.
ePS XeF2_2020, batch XeF2_highRes_wf, orbital orb22_E1G
XeF2 wavefn run, orb 22/23 ionization (Xe 4d, E1G/PG), sph grid. Inputs based on original 2019 calcs, now with chunking for higher E resolution.
E=10.0:10.0:150.0 (15 points)
*** Found orbitals
1 1 Ene = -1276.2548 Spin =Alpha Occup = 2.000000
2 2 Ene = -202.4761 Spin =Alpha Occup = 2.000000
3 3 Ene = -181.5792 Spin =Alpha Occup = 2.000000
4 4 Ene = -181.5770 Spin =Alpha Occup = 2.000000
5 5 Ene = -181.5770 Spin =Alpha Occup = 2.000000
6 6 Ene = -43.1198 Spin =Alpha Occup = 2.000000
7 7 Ene = -36.1973 Spin =Alpha Occup = 2.000000
8 8 Ene = -36.1881 Spin =Alpha Occup = 2.000000
9 9 Ene = -36.1881 Spin =Alpha Occup = 2.000000
10 10 Ene = -26.3038 Spin =Alpha Occup = 2.000000
11 11 Ene = -26.3038 Spin =Alpha Occup = 2.000000
12 12 Ene = -25.8711 Spin =Alpha Occup = 2.000000
13 13 Ene = -25.8673 Spin =Alpha Occup = 2.000000
14 14 Ene = -25.8673 Spin =Alpha Occup = 2.000000
15 15 Ene = -25.8578 Spin =Alpha Occup = 2.000000
16 16 Ene = -25.8578 Spin =Alpha Occup = 2.000000
17 17 Ene = -8.5562 Spin =Alpha Occup = 2.000000
18 18 Ene = -6.2727 Spin =Alpha Occup = 2.000000
19 19 Ene = -6.2547 Spin =Alpha Occup = 2.000000
20 20 Ene = -6.2547 Spin =Alpha Occup = 2.000000
21 21 Ene = -2.8143 Spin =Alpha Occup = 2.000000
22 22 Ene = -2.8032 Spin =Alpha Occup = 2.000000
23 23 Ene = -2.8032 Spin =Alpha Occup = 2.000000
24 24 Ene = -2.7810 Spin =Alpha Occup = 2.000000
25 25 Ene = -2.7810 Spin =Alpha Occup = 2.000000
26 26 Ene = -1.5681 Spin =Alpha Occup = 2.000000
27 27 Ene = -1.5619 Spin =Alpha Occup = 2.000000
28 28 Ene = -1.0877 Spin =Alpha Occup = 2.000000
29 29 Ene = -0.7372 Spin =Alpha Occup = 2.000000
30 30 Ene = -0.6738 Spin =Alpha Occup = 2.000000
31 31 Ene = -0.6738 Spin =Alpha Occup = 2.000000
32 32 Ene = -0.6426 Spin =Alpha Occup = 2.000000
33 33 Ene = -0.6426 Spin =Alpha Occup = 2.000000
34 34 Ene = -0.5518 Spin =Alpha Occup = 2.000000
35 35 Ene = -0.4994 Spin =Alpha Occup = 2.000000
36 36 Ene = -0.4994 Spin =Alpha Occup = 2.000000
*** Found atoms
Z = 54 ZS = 54 r = 0.0000000000 0.0000000000 0.0000000000
Z = 9 ZS = 9 r = 0.0000000000 0.0000000000 -1.9373220000
Z = 9 ZS = 9 r = 0.0000000000 0.0000000000 1.9373220000
[4]:
# Scan file(s) for various data types...
# For dir scan
dataSetXS = ep.readMatEle(fileBase = dataPath, recordType = 'CrossSection')
dataSetMatE = ep.readMatEle(fileBase = dataPath, recordType = 'DumpIdy')
# For single file
# dataXS = ep.readMatEle(fileIn = dataFile, recordType = 'CrossSection')
# dataMatE = ep.readMatEle(fileIn = dataFile, recordType = 'DumpIdy')
*** ePSproc readMatEle(): scanning files for CrossSection segments.
*** Scanning dir
/home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G
Found 20 .out file(s)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E158.0_10.0_298.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E4.0_10.0_144.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E154.0_10.0_294.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E156.0_10.0_296.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E159.0_10.0_299.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E8.0_10.0_148.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E153.0_10.0_293.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E3.0_10.0_143.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E2.0_10.0_142.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E5.0_10.0_145.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E160.0_10.0_300.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E152.0_10.0_292.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E9.0_10.0_149.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E1.0_10.0_141.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E6.0_10.0_146.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E157.0_10.0_297.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E7.0_10.0_147.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E10.0_10.0_150.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E155.0_10.0_295.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 4 CrossSection segments.
Found 4 CrossSection segments (sets of results).
Processed 4 sets of CrossSection file segments, (0 blank)
*** ePSproc readMatEle(): scanning files for DumpIdy segments.
*** Scanning dir
/home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G
Found 20 .out file(s)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E158.0_10.0_298.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E4.0_10.0_144.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E154.0_10.0_294.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E156.0_10.0_296.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E159.0_10.0_299.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E8.0_10.0_148.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E153.0_10.0_293.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E3.0_10.0_143.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E2.0_10.0_142.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E5.0_10.0_145.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E160.0_10.0_300.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E152.0_10.0_292.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E9.0_10.0_149.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E1.0_10.0_141.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E6.0_10.0_146.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E157.0_10.0_297.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E7.0_10.0_147.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E10.0_10.0_150.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
*** Reading ePS output file: /home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E155.0_10.0_295.0eV.inp.out
Expecting 15 energy points.
Expecting 3 symmetries.
Scanning CrossSection segments.
Expecting 45 DumpIdy segments.
Found 45 dumpIdy segments (sets of matrix elements).
Processing segments to Xarrays...
Processed 45 sets of DumpIdy file segments, (0 blank)
[5]:
# Stack multi-E Xarrays into single array.
# Keep results as list for compatibility with rest of code (otherwise will slice Xarray)
dataXS = [xr.combine_nested(dataSetXS, concat_dim = ['Eke']).sortby('Eke')]
dataMatE = [xr.combine_nested(dataSetMatE, concat_dim = ['Eke']).sortby('Eke')]
Job & molecule info¶
[6]:
ep.jobSummary(jobInfo, molInfo);
*** Job summary data
ePS XeF2_2020, batch XeF2_highRes_wf, orbital orb22_E1G
XeF2 wavefn run, orb 22/23 ionization (Xe 4d, E1G/PG), sph grid. Inputs based on original 2019 calcs, now with chunking for higher E resolution.
E=10.0:10.0:150.0 (15 points)
Electronic structure input: '/home/paul/ePS_stuff/XeF2_2020/electronic_structure/xef2_SPKrATZP_rel_geom_v2.molden'
Initial state occ: [2 2 2 4 2 2 4 2 2 2 4 4 2 2 4 2 4 4 2 2 2 2 4 4 2 4]
Final state occ: [2 2 2 4 2 2 4 2 2 2 4 4 2 2 4 2 3 4 2 2 2 2 4 4 2 4]
IPot (input vertical IP, eV): 12.35
*** Additional orbital info (SymProd)
Ionizing orb: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
Ionizing orb sym: ['PG']
Orb energy (eV): [-76.27895792]
Orb energy (H): [-2.8032]
Orb energy (cm^-1): [-615231.28663731]
Threshold wavelength (nm): 16.25404984629001
*** Warning: some orbital convergences outside single-center expansion convergence tolerance (0.01):
[[10. 0.81998167]
[11. 0.80599244]
[26. 0.9860914 ]
[27. 0.98404896]]
*** Molecular structure
1-photon ePS Cross-Sections¶
Plot 1-photon cross-sections and \(beta_2\) parameters (for an unaligned ensemble) from ePS calculations. These are taken directly from the ePS output file, CrossSection
segments. See the ePS manual, ``GetCro` command, for further details <https://www.chem.tamu.edu/rgroup/lucchese/ePolyScat.E3.manual/GetCro.html>`__.
Cross-sections by symmetry & type¶
Types correspond to:
‘L’: length gauge results.
‘V’: velocity gauge results.
‘M’: mixed gauge results.
Symmetries correspond to allowed ionizing transitions for the molecular point group (IRs typically corresponding to (x,y,z) polarization geometries), see the ePS manual for a list of symmetries. Symmetry All
corresponds to the sum over all allowed sets of symmetries.
Cross-section units are MBarn.
[7]:
# Plot cross sections using Xarray functionality
# Set here to plot per file - should add some logic to combine files.
for data in dataXS:
daPlot = data.sel(XC='SIGMA')
daPlot.plot.line(x='Eke', col='Type')
\(\beta_{2}\) by symmetry & type¶
Types & symmetries as per cross-sections. Normalized \(\beta_{2}\) paramters, dimensionless.
[8]:
# Repeat for betas
for data in dataXS:
daPlot = data.sel(XC='BETA')
daPlot.plot.line(x='Eke', col='Type')
Dipole matrix elements¶
For 1-photon ionization. These are taken directly from ePS DumpIdy
segments. See the ePS manual, ``DumpIdy` command, for further details <https://www.chem.tamu.edu/rgroup/lucchese/ePolyScat.E3.manual/DumpIdy.html>`__.
[9]:
# Set threshold for significance, only matrix elements with abs values > thres % will be plotted
thresPlot = 0.1
[10]:
# Plot for each fie
for data in dataMatE:
# Plot with sensible defaults - all dims with lmPlot()
# Plot only values > theshold
daPlot, daPlotpd, legendList, gFig = ep.lmPlot(data, thres = thresPlot, thresType = 'pc', figsize = (15,10))
# Plot phases, with unwrap
daPlot, daPlotpd, legendList, gFig = ep.lmPlot(data, thres = thresPlot, thresType = 'pc', figsize = (15,10), pType='phaseUW')
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/core/nputils.py:215: RuntimeWarning: All-NaN slice encountered
result = getattr(npmodule, name)(values, axis=axis, **kwargs)
Plotting data XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out, pType=a, thres=2.828909780457982, with Seaborn
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/core/nputils.py:215: RuntimeWarning: All-NaN slice encountered
result = getattr(npmodule, name)(values, axis=axis, **kwargs)
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/numpy/lib/function_base.py:1520: RuntimeWarning: invalid value encountered in greater
_nx.copyto(ddmod, pi, where=(ddmod == -pi) & (dd > 0))
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/numpy/lib/function_base.py:1522: RuntimeWarning: invalid value encountered in less
_nx.copyto(ph_correct, 0, where=abs(dd) < discont)
Plotting data XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out, pType=phaseUW, thres=2.828909780457982, with Seaborn
MFPADs¶
Calculated MF \(\beta\) parameters, using ePS dipole matrix elements. These are calculated by ep.mfblm()
, as a function of energy and polarization geometry. See the ePSproc docs on ``ep.mfblm()` <https://epsproc.readthedocs.io/en/latest/modules/epsproc.MFBLM.html>`__ for further details, and this demo notebook.
[11]:
# Set threshold
thresCalc = 1e-3
# Set pol geoms - these correspond to (z,x,y) in molecular frame (relative to principle/symmetry axis)
eAngs = ep.setPolGeoms()
[12]:
# Calculate for each fie & pol geom
# TODO - file logic, and parallelize
BLM = []
for data in dataMatE:
BLM.append(ep.mfblmEuler(data, selDims = {'Type':'L'}, eAngs = eAngs, thres = thresCalc,
SFflag = True, verbose = 0)) # Run for all Eke, selected gauge only
[13]:
# Save BLM data - defaults to working dir and 'ep_timestamp' file
# TODO - testing for array/multiple file case
for data in BLM:
fileName = dataFile + '_BLM-L_' + timeString.strftime('%Y-%m-%d_%H-%M-%S')
ep.writeXarray(data, fileName = fileName)
['Written to h5netcdf format', '/home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E10.0_10.0_150.0eV.inp.out_BLM-L_2020-04-02_08-49-15.nc']
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py:211: FutureWarning: complex dtypes are supported by h5py, but not part of the NetCDF API. You are writing an HDF5 file that is not a valid NetCDF file! In the future, this will be an error, unless you set invalid_netcdf=True.
self.ds.attrs[key] = value
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py:285: FutureWarning: complex dtypes are supported by h5py, but not part of the NetCDF API. You are writing an HDF5 file that is not a valid NetCDF file! In the future, this will be an error, unless you set invalid_netcdf=True.
nc4_var.attrs[k] = v
[14]:
# Normalize and plot results
for BLMplot in BLM:
# Plot unnormalized B00 only, real part
# This is/should be in units of MBarn (TBC).
# BLMplot.where(np.abs(BLMplot) > thres, drop = True).real.squeeze().sel({'l':0, 'm':0}).plot.line(x='Eke', col='Euler');
BLMplot.XS.real.squeeze().plot.line(x='Eke', col='Euler');
# Plot values normalised by B00 - now set in calculation function
# Plot results with lmPlot(), ordering by Euler sets
# Version with (semi-manual) Euler grouping
daPlot, daPlotpd, legendList, gFig = ep.lmPlot(BLMplot.swap_dims({'Euler':'Labels'}), SFflag = False, eulerGroup = True,
thresType = 'pc', thres = thresPlot,
plotDims = ('Labels','l','m'),
figsize = (15,10))
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/core/nputils.py:215: RuntimeWarning: All-NaN slice encountered
result = getattr(npmodule, name)(values, axis=axis, **kwargs)
Plotting data XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out, pType=a, thres=0.12970378447436834, with Seaborn
Error & consistency checks¶
[15]:
# Check SF values
for data in dataMatE:
# Plot values, single plot
data.SF.pipe(np.abs).plot.line(x='Eke')
data.SF.real.plot.line(x='Eke')
data.SF.imag.plot.line(x='Eke')
# Plot values, facet plot
# data.SF.pipe(np.abs).plot.line(x='Eke', col='Sym')
[16]:
# Compare calculated BLMs for L and V types (dafault above for L)
# Calculate for each fie & pol geom, and compare.
BLMv = []
BLMdiff = []
for n, data in enumerate(dataMatE):
BLMv.append(ep.mfblmEuler(data, selDims = {'Type':'V'}, eAngs = eAngs, thres = thresCalc,
SFflag = True, verbose = 0)) # Run for all Eke, selected gauge only
BLMdiff.append(BLM[n] - BLMv[n])
BLMdiff[n]['dXS'] = BLM[n].XS - BLMv[n].XS # Set XS too, dropped in calc above
BLMdiff[n].attrs['dataType'] = 'matE'
[17]:
# Save BLM data - defaults to working dir and 'ep_timestamp' file
# TODO - testing for array/multiple file case
for data in BLMv:
fileName = dataFile + '_BLM-V_' + timeString.strftime('%Y-%m-%d_%H-%M-%S')
ep.writeXarray(data, fileName = fileName)
['Written to h5netcdf format', '/home/paul/ePS_stuff/XeF2_2020/XeF2_highRes_wf/orb22_E1G/XeF2_highRes_wf.orb22_E1G_E10.0_10.0_150.0eV.inp.out_BLM-V_2020-04-02_08-49-15.nc']
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py:211: FutureWarning: complex dtypes are supported by h5py, but not part of the NetCDF API. You are writing an HDF5 file that is not a valid NetCDF file! In the future, this will be an error, unless you set invalid_netcdf=True.
self.ds.attrs[key] = value
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py:285: FutureWarning: complex dtypes are supported by h5py, but not part of the NetCDF API. You are writing an HDF5 file that is not a valid NetCDF file! In the future, this will be an error, unless you set invalid_netcdf=True.
nc4_var.attrs[k] = v
[18]:
# Normalize and plot results
for BLMplot in BLMv:
# Plot unnormalized B00 only, real part
# This is/should be in units of MBarn (TBC).
# BLMplot.where(np.abs(BLMplot) > thres, drop = True).real.squeeze().sel({'l':0, 'm':0}).plot.line(x='Eke', col='Euler');
BLMplot.XS.real.squeeze().plot.line(x='Eke', col='Euler');
# Plot values normalised by B00 - now set in calculation function
# Plot results with lmPlot(), ordering by Euler sets
# Version with (semi-manual) Euler grouping
daPlot, daPlotpd, legendList, gFig = ep.lmPlot(BLMplot.swap_dims({'Euler':'Labels'}), SFflag = False, eulerGroup = True,
thresType = 'pc', thres = thresPlot,
plotDims = ('Labels','l','m'),
figsize = (15,10))
Plotting data XeF2_highRes_wf.orb22_E1G_E151.0_10.0_291.0eV.inp.out, pType=a, thres=0.12977838864678504, with Seaborn
[19]:
# Difference between 'L' and 'V' results
# NOTE - this currently drops XS
print('Differences, L vs. V gauge BLMs')
for BLMplot in BLMdiff:
maxDiff = BLMplot.max()
print(f'Max difference in BLMs (L-V): {0}', maxDiff.data)
if np.abs(maxDiff) > thresCalc:
# Plot B00 only, real part
# BLMplot.where(np.abs(BLMplot) > thres, drop = True).real.squeeze().sel({'l':0, 'm':0}).plot.line(x='Eke', col='Euler');
BLMplot.dXS.real.squeeze().plot.line(x='Eke', col='Euler');
# Plot values normalised by B00 - now set in calculation function
# Plot results with lmPlot(), ordering by Euler sets
# Version with (semi-manual) Euler grouping
daPlot, daPlotpd, legendList, gFig = ep.lmPlot(BLMplot.swap_dims({'Euler':'Labels'}), SFflag = False, eulerGroup = True,
thresType = 'pc', thres = thresPlot,
plotDims = ('Labels','l','m'),
figsize = (15,10))
Differences, L vs. V gauge BLMs
Max difference in BLMs (L-V): 0 (0.23460029341235752-1.053003400409692e-17j)
Plotting data (No filename), pType=a, thres=0.023460029341235755, with Seaborn
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/core/nputils.py:215: RuntimeWarning: All-NaN slice encountered
result = getattr(npmodule, name)(values, axis=axis, **kwargs)
[20]:
# Check imaginary components - should be around machine tolerance.
print('Machine tolerance: ', np.finfo(float).eps)
for BLMplot in BLM:
maxImag = BLMplot.imag.max()
print(f'Max imaginary value: {0}', maxImag.data)
# BLMplot.where(np.abs(BLMplot) > thres, drop = True).imag.squeeze().plot.line(x='Eke', col='Euler');
BLMplot = ep.matEleSelector(BLMplot, thres=thresCalc, dims = 'Eke')
BLMplot.imag.squeeze().plot.line(x='Eke', col='Euler');
Machine tolerance: 2.220446049250313e-16
Max imaginary value: 0 0.6353212079680562
/home/paul/anaconda3/envs/ePSproc-v1.2/lib/python3.7/site-packages/xarray/core/nputils.py:215: RuntimeWarning: All-NaN slice encountered
result = getattr(npmodule, name)(values, axis=axis, **kwargs)
Version info¶
Original job details¶
[21]:
print(jobInfo['ePolyScat'][0])
print('Run: ' + jobInfo['Starting'][0].split('at')[1])
ePolyScat Version E3
Run: 2020-03-25 11:26:23.191 (GMT -0400)
ePSproc details¶
[22]:
templateVersion = '0.0.7'
templateDate = '30/03/20'
[23]:
%load_ext version_information
[24]:
%version_information epsproc, xarray
[24]:
Software | Version |
---|---|
Python | 3.7.6 64bit [GCC 7.3.0] |
IPython | 7.12.0 |
OS | Linux 4.15.0 66 generic x86_64 with debian stretch sid |
epsproc | 1.2.5 |
xarray | 0.15.0 |
Thu Apr 02 14:18:28 2020 EDT |
[25]:
print('Run: {}'.format(timeString.strftime('%Y-%m-%d_%H-%M-%S')))
host = !hostname
print('Host: {}'.format(host[0]))
Run: 2020-04-02_08-49-15
Host: AntonJr
[ ]: