10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-12-26 06:14:38 +01:00

Merge branch 'master' into ADC

This commit is contained in:
Mickaël Véril 2020-09-14 16:15:13 +02:00
commit b318108be7
41 changed files with 557 additions and 23 deletions

38
README.md Normal file
View File

@ -0,0 +1,38 @@
# QUEST Website
## Introduction
The QUEST website is the website build to analyze the date from the [QUEST project](https://doi.org/10.1021/acs.jpclett.0c00014). it provide statistics for the QUEST vertical excitations set by targeting data corresponding to the parameters which the user has selected.
## Quick start
To clone this website and use it locally please run the following commands.
```bash
git clone --recurse-submodules https://git.irsamc.ups-tlse.fr/mveril/exdatabaseLCPQ
cd exdatabaseLCPQ
hugo serve
```
Now you car use your favorite browser to navigate to the website using the URL showed by Hugo in your terminal (normally <localhost:1313>)
## Repository content
### The website
The main part of this repository is the website. It is build using the [hugo](https://gohugo.io/) static website generator with the [beautifulhugo](https://themes.gohugo.io/beautifulhugo/) theme.
All the data are stored in the [data](exdatabaseLCPQ/src/branch/master/static/data) directory.
### The tools.
The second part is the [tools](exdatabaseLCPQ/src/branch/master/tools/) a series of python and bash scripts used to generate data.
#### datafileBuilder
A python script to generate data from custom LaTeX input file see [examples](exdatabaseLCPQ/src/branch/master/docs/examples).
#### metarecover
the `metarecover` bash script is used to regenerate the metadata from the previous git history state.
So you can remove a data file to regenerate it from a LaTeX input file with `datafileBuilder` and recover the metadata from the previous version using `metarecover`.

View File

@ -1,12 +1,16 @@
baseURL = "localhost:8080" baseURL = "localhost:8080"
canonifyurls = true
languageCode = "en-us" languageCode = "en-us"
metaDataFormat = "yaml"
DateForm = "12-30-2006" DateForm = "12-30-2006"
title = "QUEST: a database of highly-accurate excitation energies" title = "QUEST: a database of highly-accurate excitation energies"
DefaultContentLanguage = "en" DefaultContentLanguage = "en"
theme = "beautifulhugo" theme = "beautifulhugo"
[Params] [Params]
# homeTitle = "" hometitle = "QUESTDB"
subtitle = "QUantum Excited STates database" logo="img/TOC_JPCL.png"
subtitle = "QUantum Excited STates DataBase"
[[Params.bigimg]] [[Params.bigimg]]
src = "img/QUEST-home.png" src = "img/QUEST-home.png"
desc = "A mountaineering strategy to excited states" desc = "A mountaineering strategy to excited states"
@ -17,7 +21,7 @@ theme = "beautifulhugo"
[Author] [Author]
name = "M. Véril" name = "M. Véril"
email = "mveril@irsamc.ups-tlse.fr" email = "mveril@irsamc.ups-tlse.fr"
# github = "lcpq" github = "mveril"
twitter = "LCPQ_UMR5626" twitter = "LCPQ_UMR5626"
# reddit = "username" # reddit = "username"
# linkedin = "username" # linkedin = "username"
@ -25,7 +29,7 @@ theme = "beautifulhugo"
# stackoverflow = "users/XXXXXXX/username" # stackoverflow = "users/XXXXXXX/username"
# snapchat = "username" # snapchat = "username"
# instagram = "username" # instagram = "username"
# youtube = "channel/UC3a7Yakg9gk36G3HKDIFaYw" youtube = "channel/UC3a7Yakg9gk36G3HKDIFaYw"
# soundcloud = "username" # soundcloud = "username"
# spotify = "username" # spotify = "username"
# bandcamp = "username" # bandcamp = "username"

View File

@ -15,7 +15,7 @@ The corresponding literature references associated with the QUEST dataset can be
The statistics are represented as data table and graphs (using the [Plotly JavaScript Open Source Graphing Library](https://plotly.com/javascript)). The statistics are represented as data table and graphs (using the [Plotly JavaScript Open Source Graphing Library](https://plotly.com/javascript)).
## Example of statistical analysis charts ## Example of statistical analysis
{{< figure src="/img/samplelot.png" title="Statistical results for QUEST#1 for single excitations computed with the augccpVTZ basis" >}} {{< figure src="/img/samplelot.png" title="Statistical results for QUEST#1 for single excitations computed with the augccpVTZ basis" >}}

View File

@ -8,12 +8,20 @@ The purpose of the QUEST project is to build a comprehensive dataset of highly-a
QUEST is a collaborative project involving: QUEST is a collaborative project involving:
- [Denis Jacquemin](https://www.univ-nantes.fr/denis-jacquemin-633107.kjsp) - [Denis Jacquemin](https://www.univ-nantes.fr/denis-jacquemin-633107.kjsp)
from the [CIESAM laboratory](http://www.sciences.univ-nantes.fr/CEISAM) in Nantes (France). from the [CEISAM laboratory](http://www.sciences.univ-nantes.fr/CEISAM) in Nantes (France).
<img class="funding" height="100" src="/img/CEISAM.png" alt="CEISAM logo" hspace="5" vspace="5" />
<img class="funding" height="200" src="/img/UnivNantes.png" alt="Nantes logo" hspace="5" vspace="5" />
- [Filippo Lipparini](https://people.unipi.it/filippo_lipparini) - [Filippo Lipparini](https://people.unipi.it/filippo_lipparini)
from the [Universita di Pisa](https://unipi.it) in Pisa (Italy). from the [Universita di Pisa](https://unipi.it) in Pisa (Italy).
<img class="funding" height="100" src="/img/Pisa.gif" alt="Pisa logo" hspace="5" vspace="5" />
- [Mickaël Véril](http://www.lcpq.ups-tlse.fr/spip.php?article1885), [Michel Caffarel](http://qmcchem.ups-tlse.fr/index.php?title=Michel_Caffarel), [Martial Boggio-Pasqua](http://www.lcpq.ups-tlse.fr/spip.php?article557), [Anthony Scemama](https://scemama.github.io), and [Pierre-François Loos](http://www.irsamc.ups-tlse.fr/loos), - [Mickaël Véril](http://www.lcpq.ups-tlse.fr/spip.php?article1885), [Michel Caffarel](http://qmcchem.ups-tlse.fr/index.php?title=Michel_Caffarel), [Martial Boggio-Pasqua](http://www.lcpq.ups-tlse.fr/spip.php?article557), [Anthony Scemama](https://scemama.github.io), and [Pierre-François Loos](http://www.irsamc.ups-tlse.fr/loos),
from the [LCPQ laboratory](http://www.lcpq.ups-tlse.fr) in Toulouse (France). from the [LCPQ laboratory](http://www.lcpq.ups-tlse.fr) in Toulouse (France).
<div>
<img class="funding" height="100" src="/img/LCPQ.png" alt="LCPQ logo" hspace="5" vspace="5" />
<img class="funding" height="100" src="/img/UPS.png" alt="UPS logo" hspace="5" vspace="5" />
<img class="funding" height="100" src="/img/CNRS.png" alt="CNRS logo" hspace="5" vspace="5" />
</div>
For any problem concerning the website, please contact [Mickaël Véril](mailto:mveril@irsamc.univ-tlse.fr). For any problem concerning the website, please contact [Mickaël Véril](mailto:mveril@irsamc.univ-tlse.fr).

View File

@ -29,7 +29,7 @@ draft: false
const publiscite = await Cite.async(publis) const publiscite = await Cite.async(publis)
const uopublis = publiscite.format('data', { format: 'object' }) const uopublis = publiscite.format('data', { format: 'object' })
if (uopublis.length !== 0) { if (uopublis.length !== 0) {
const mySetSec = $('<section>').addClass('publiSet').attr("data-setName", setName).appendTo(setsSec) const mySetSec = $('<section>').addClass('publiSet').attr("data-setName", setName).attr("id",setName).appendTo(setsSec)
$("<h1>").text(setName).appendTo(mySetSec) $("<h1>").text(setName).appendTo(mySetSec)
const spublis = uopublis.sort((puba, pubb) => pubUtils.getIssuedDate(puba) - pubUtils.getIssuedDate(pubb)) const spublis = uopublis.sort((puba, pubb) => pubUtils.getIssuedDate(puba) - pubUtils.getIssuedDate(pubb))
for (const publi of spublis) { for (const publi of spublis) {
@ -47,6 +47,17 @@ draft: false
$(art).appendTo("#publis_others") $(art).appendTo("#publis_others")
} }
processingIndicator.isActive = false processingIndicator.isActive = false
const hash=window.location.hash
if (hash.length>1 && hash.startsWith("#")) {
sec=document.getElementById(decodeURIComponent(hash.substring(1)))
if (sec) {
sec.scrollIntoView({
block: 'start',
behavior: 'smooth',
inline: 'nearest'
})
}
}
} }
</script> </script>
<section class="publis-list" id="publis_sets"> <section class="publis-list" id="publis_sets">

View File

@ -12,32 +12,32 @@ The QUEST dataset of vertical excitations is composed by 5 subsets:
{{< figure src="/img/molecules.png" title="Molecules each of the five subsets making up the present QUEST dataset of highly-accurate vertical excitation energies: QUEST#1 (red), QUEST#2 (magenta and/or underlined), QUEST#3 (black), QUEST#4 (green), and QUEST#5 (blue)." >}} {{< figure src="/img/molecules.png" title="Molecules each of the five subsets making up the present QUEST dataset of highly-accurate vertical excitation energies: QUEST#1 (red), QUEST#2 (magenta and/or underlined), QUEST#3 (black), QUEST#4 (green), and QUEST#5 (blue)." >}}
### [QUEST#1](https://doi.org/10.1021/acs.jctc.8b00406) ### [QUEST#1](/publications#QUEST%231)
The QUEST#1 benchmark set consists of 110 vertical excitation energies (as well as oscillator strengths) from 18 molecules with sizes ranging from one to three non-hydrogen atoms (water, hydrogen sulfide, ammonia, hydrogen chloride, dinitrogen, carbon monoxide, acetylene, ethylene, formaldehyde, methanimine, thioformaldehyde, acetaldehyde, cyclopropene, diazomethane, formamide, ketene, nitrosomethane, and the smallest The QUEST#1 benchmark set consists of 110 vertical excitation energies (as well as oscillator strengths) from 18 molecules with sizes ranging from one to three non-hydrogen atoms (water, hydrogen sulfide, ammonia, hydrogen chloride, dinitrogen, carbon monoxide, acetylene, ethylene, formaldehyde, methanimine, thioformaldehyde, acetaldehyde, cyclopropene, diazomethane, formamide, ketene, nitrosomethane, and the smallest
streptocyanine). For this set, we provided two sets of TBEs: i) one obtained within the frozen-core approximation and the aug-cc-pVTZ basis set, and ii) another one including further corrections for basis set incompleteness and "all electron" effects. streptocyanine). For this set, we provided two sets of TBEs: i) one obtained within the frozen-core approximation and the aug-cc-pVTZ basis set, and ii) another one including further corrections for basis set incompleteness and "all electron" effects.
For the former set, we systematically selected FCI/aug-cc-pVTZ values to define our TBEs except in very few cases. For the former set, we systematically selected FCI/aug-cc-pVTZ values to define our TBEs except in very few cases.
For the latter set, both the "all electron" correlation and the basis set corrections were systematically obtained at the CC3 level of theory and with the d-aug-cc-pV5Z basis for the nine smallest molecules, and slightly more compact basis sets for the larger compounds. For the latter set, both the "all electron" correlation and the basis set corrections were systematically obtained at the CC3 level of theory and with the d-aug-cc-pV5Z basis for the nine smallest molecules, and slightly more compact basis sets for the larger compounds.
### [QUEST#2](https://doi.org/10.1021/acs.jctc.8b01205) ### [QUEST#2](/publications#QUEST%232)
The QUEST#2 benchmark set reports reference energies for double excitations. The QUEST#2 benchmark set reports reference energies for double excitations.
This set gathers 20 vertical transitions from 14 small- and medium-size molecules (acrolein, benzene, beryllium atom, butadiene, carbon dimer and trimer, ethylene, formaldehyde, glyoxal, hexatriene, nitrosomethane, nitroxyl, pyrazine, and tetrazine). This set gathers 20 vertical transitions from 14 small- and medium-size molecules (acrolein, benzene, beryllium atom, butadiene, carbon dimer and trimer, ethylene, formaldehyde, glyoxal, hexatriene, nitrosomethane, nitroxyl, pyrazine, and tetrazine).
The TBEs of the QUEST#2 set are obtained with SCI and/or multiconfigurational [CASSCF, CASPT2, (X)MS-CASPT2, and NEVPT2] calculations depending on the size of the molecules and the level of theory that we could afford. The TBEs of the QUEST#2 set are obtained with SCI and/or multiconfigurational [CASSCF, CASPT2, (X)MS-CASPT2, and NEVPT2] calculations depending on the size of the molecules and the level of theory that we could afford.
An important addition to this second study was the inclusion of various flavors of multiconfigurational methods (CASSCF, CASPT2, and NEVPT2) in addition to high-order CC methods including, at least, perturbative triples (CC3, CCSDT, CCSDTQ, etc). An important addition to this second study was the inclusion of various flavors of multiconfigurational methods (CASSCF, CASPT2, and NEVPT2) in addition to high-order CC methods including, at least, perturbative triples (CC3, CCSDT, CCSDTQ, etc).
### [QUEST#3](https://doi.org/10.1021/acs.jctc.9b01216) ### [QUEST#3](/publications#QUEST%233)
The QUEST#3 benchmark set is, by far, our largest set, and consists of highly accurate vertical transition energies and oscillator strengths obtained for 27 molecules encompassing 4, 5, and 6 non-hydrogen atoms (acetone, acrolein, benzene, butadiene, cyanoacetylene, cyanoformaldehyde, cyanogen, cyclopentadiene, cyclopropenone, cyclopropenethione, diacetylene, furan, glyoxal, imidazole, isobutene, methylenecyclopropene, propynal, pyrazine, pyridazine, pyridine, pyrimidine, pyrrole, tetrazine, thioacetone, thiophene, thiopropynal, and triazine) for a total of 238 vertical transition energies and 90 oscillator strengths with a reasonably good balance between singlet, triplet, valence, and Rydberg excited states. The QUEST#3 benchmark set is, by far, our largest set, and consists of highly accurate vertical transition energies and oscillator strengths obtained for 27 molecules encompassing 4, 5, and 6 non-hydrogen atoms (acetone, acrolein, benzene, butadiene, cyanoacetylene, cyanoformaldehyde, cyanogen, cyclopentadiene, cyclopropenone, cyclopropenethione, diacetylene, furan, glyoxal, imidazole, isobutene, methylenecyclopropene, propynal, pyrazine, pyridazine, pyridine, pyrimidine, pyrrole, tetrazine, thioacetone, thiophene, thiopropynal, and triazine) for a total of 238 vertical transition energies and 90 oscillator strengths with a reasonably good balance between singlet, triplet, valence, and Rydberg excited states.
For these 238 transitions, we have estimated that 224 are chemically accurate for the considered geometry. For these 238 transitions, we have estimated that 224 are chemically accurate for the considered geometry.
To define the TBEs of the QUEST#3 set, we employed CC methods up to the highest technically possible order (CC3, CCSDT, and CCSDTQ), and, when affordable SCI calculations with very large reference spaces (up to hundred million determinants in certain cases), as well as the most reliable multiconfigurational method, NEVPT2, for double excitations. To define the TBEs of the QUEST#3 set, we employed CC methods up to the highest technically possible order (CC3, CCSDT, and CCSDTQ), and, when affordable SCI calculations with very large reference spaces (up to hundred million determinants in certain cases), as well as the most reliable multiconfigurational method, NEVPT2, for double excitations.
Most of our TBEs are based on CCSDTQ (4 non-hydrogen atoms) or CCSDT (5 and 6 non-hydrogen atoms) excitation energies. Most of our TBEs are based on CCSDTQ (4 non-hydrogen atoms) or CCSDT (5 and 6 non-hydrogen atoms) excitation energies.
For all the transitions of the QUEST#3 set, we reported at least CCSDT/aug-cc-pVTZ (sometimes with basis set extrapolation) and CC3/aug-cc-pVQZ transition energies as well as CC3/aug-cc-pVTZ oscillator strengths for each dipole-allowed transition. For all the transitions of the QUEST#3 set, we reported at least CCSDT/aug-cc-pVTZ (sometimes with basis set extrapolation) and CC3/aug-cc-pVQZ transition energies as well as CC3/aug-cc-pVTZ oscillator strengths for each dipole-allowed transition.
### [QUEST#4](https://doi.org/10.1021/acs.jctc.0c00227) ### [QUEST#4](/publications#QUEST%234)
The QUEST#4 benchmark set consists of two subsets of excitations and oscillator strengths. The QUEST#4 benchmark set consists of two subsets of excitations and oscillator strengths.
An "exotic" subset of 30 excited states for closed-shell molecules containing {{< tex "\ce{F}">}}, {{< tex "\ce{Cl}">}}, {{< tex "\ce{P}">}}, and {{< tex "\ce{Si}">}} atoms (carbonyl fluoride, {{< tex "\ce{CCl2}">}}, {{< tex "\ce{CClF}">}}, {{< tex "\ce{CF2}">}}, difluorodiazirine, formyl fluoride, {{< tex "\ce{HCCl}">}}, {{< tex "\ce{HCF}">}}, {{< tex "\ce{HCP}">}}, {{< tex "\ce{HPO}">}}, {{< tex "\ce{HPS}">}}, {{< tex "\ce{HSiF}">}}, {{< tex "\ce{SiCl2}">}}, and silylidene) and a "radical" subset of 51 doublet-doublet transitions in small radicals (allyl, {{< tex "\ce{BeF}">}}, {{< tex "\ce{BeH}">}}, {{< tex "\ce{BH2}">}}, {{< tex "\ce{CH}">}}, {{< tex "\ce{CH3}">}}, {{< tex "\ce{CN}">}}, {{< tex "\ce{CNO}">}}, {{< tex "\ce{CON}">}}, {{< tex "\ce{CO+}">}}, {{< tex "\ce{F2BO}">}}, {{< tex "\ce{F2BS}">}}, {{< tex "\ce{H2BO}">}}, {{< tex "\ce{HCO}">}}, {{< tex "\ce{HOC}">}}, {{< tex "\ce{H2PO}">}}, {{< tex "\ce{H2PS}">}}, {{< tex "\ce{NCO}">}}, {{< tex "\ce{NH2}">}}, nitromethyl, {{< tex "\ce{NO}">}}, {{< tex "\ce{OH}">}}, {{< tex "\ce{PH2}">}}, and vinyl) characterized by open-shell electronic configurations and an unpaired electron. An "exotic" subset of 30 excited states for closed-shell molecules containing {{< tex "\ce{F}">}}, {{< tex "\ce{Cl}">}}, {{< tex "\ce{P}">}}, and {{< tex "\ce{Si}">}} atoms (carbonyl fluoride, {{< tex "\ce{CCl2}">}}, {{< tex "\ce{CClF}">}}, {{< tex "\ce{CF2}">}}, difluorodiazirine, formyl fluoride, {{< tex "\ce{HCCl}">}}, {{< tex "\ce{HCF}">}}, {{< tex "\ce{HCP}">}}, {{< tex "\ce{HPO}">}}, {{< tex "\ce{HPS}">}}, {{< tex "\ce{HSiF}">}}, {{< tex "\ce{SiCl2}">}}, and silylidene) and a "radical" subset of 51 doublet-doublet transitions in small radicals (allyl, {{< tex "\ce{BeF}">}}, {{< tex "\ce{BeH}">}}, {{< tex "\ce{BH2}">}}, {{< tex "\ce{CH}">}}, {{< tex "\ce{CH3}">}}, {{< tex "\ce{CN}">}}, {{< tex "\ce{CNO}">}}, {{< tex "\ce{CON}">}}, {{< tex "\ce{CO+}">}}, {{< tex "\ce{F2BO}">}}, {{< tex "\ce{F2BS}">}}, {{< tex "\ce{H2BO}">}}, {{< tex "\ce{HCO}">}}, {{< tex "\ce{HOC}">}}, {{< tex "\ce{H2PO}">}}, {{< tex "\ce{H2PS}">}}, {{< tex "\ce{NCO}">}}, {{< tex "\ce{NH2}">}}, nitromethyl, {{< tex "\ce{NO}">}}, {{< tex "\ce{OH}">}}, {{< tex "\ce{PH2}">}}, and vinyl) characterized by open-shell electronic configurations and an unpaired electron.
This represents a total of 81 high-quality TBEs, the vast majority being obtained at the FCI level with at least the aug-cc-pVTZ basis set. This represents a total of 81 high-quality TBEs, the vast majority being obtained at the FCI level with at least the aug-cc-pVTZ basis set.
We further performed high-order CC calculations to ascertain these estimates. We further performed high-order CC calculations to ascertain these estimates.
### [QUEST#5]() ### [QUEST#5](/publications#QUEST%235)
The QUEST#5 subset is composed by additional accurate excitation energies that we have produced for the present website. The QUEST#5 subset is composed by additional accurate excitation energies that we have produced for the present website.
This new set gathers small molecules as well as larger molecules (aza-naphthalene, benzoquinone, cyclopentadienone, cyclopentadienethione, hexatriene, maleimide, naphthalene, nitroxyl, streptocyanine-C3, streptocyanine-C5, and thioacrolein). This new set gathers small molecules as well as larger molecules (aza-naphthalene, benzoquinone, cyclopentadienone, cyclopentadienethione, hexatriene, maleimide, naphthalene, nitroxyl, streptocyanine-C3, streptocyanine-C5, and thioacrolein).
@ -45,4 +45,3 @@ QUEST#5 does also provide additional FCI/6-31+G* estimates of the lowest singlet

13
layouts/index.html Normal file
View File

@ -0,0 +1,13 @@
{{ define "main" }}
<div role="main" class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
{{ with .Content }}
<div class="well" align="justify">
{{.}}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,12 @@
# Molecule : Acetaldehyde
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 4.27 _ _ false
1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 3.86 _ _ false

View File

@ -0,0 +1,15 @@
# Molecule : Acetylene
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 \Sigma_g 1 1 \Sigma_u^- (\mathrm{V};\pi \rightarrow \pi^\star) 6.98 _ _ false
1 1 \Sigma_g 1 1 \Delta_u (\mathrm{V};\pi \rightarrow \pi^\star) 7.31 _ _ false
1 1 \Sigma_g 1 3 \Sigma_u^+ (\mathrm{V};\pi \rightarrow \pi^\star) 5.50 _ _ false
1 1 \Sigma_g 1 3 \Delta_u (\mathrm{V};\pi \rightarrow \pi^\star) 6.31 _ _ false
1 1 \Sigma_g 1 3 \Sigma_u^- (\mathrm{V};\pi \rightarrow \pi^\star) 6.99 _ _ false

View File

@ -0,0 +1,15 @@
# Molecule : Ammonia
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{R};n \rightarrow 3s) 6.52 _ _ false
1 1 A_1 1 1 E (\mathrm{R};n \rightarrow 3p) 8.04 _ _ false
1 1 A_1 2 1 A_1 (\mathrm{R};n \rightarrow 3p) 9.21 _ _ false
1 1 A_1 2 1 A_2 (\mathrm{R};n \rightarrow 4s) 9.84 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{R};n \rightarrow 3s) 6.23 _ _ false

View File

@ -0,0 +1,21 @@
# Molecule : Carbon monoxide
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 \Sigma^+ 1 1 \Pi (\mathrm{V};n \rightarrow \pi^\star) 8.46 _ _ false
1 1 \Sigma^+ 1 1 \Sigma^- (\mathrm{V};\pi \rightarrow \pi^\star) 9.88 _ _ false
1 1 \Sigma^+ 1 1 \Delta (\mathrm{V};\pi \rightarrow \pi^\star) 10.06 _ _ false
1 1 \Sigma^+ 2 1 \Sigma^+ (\mathrm{R}) 11.05 _ _ false
1 1 \Sigma^+ 3 1 \Sigma^+ (\mathrm{R}) 11.58 _ _ false
1 1 \Sigma^+ 2 1 \Pi (\mathrm{R}) 11.79 _ _ false
1 1 \Sigma^+ 1 3 \Pi (\mathrm{V};n \rightarrow \pi^\star) 6.21 _ _ false
1 1 \Sigma^+ 1 3 \Sigma^+ (\mathrm{V};\pi \rightarrow \pi^\star) 8.38 _ _ false
1 1 \Sigma^+ 1 3 \Delta (\mathrm{V};\pi \rightarrow \pi^\star) 9.18 _ _ false
1 1 \Sigma^+ 1 3 \Sigma^- (\mathrm{V};\pi \rightarrow \pi^\star) 9.77 _ _ false
1 1 \Sigma^+ 2 3 \Sigma^+ (\mathrm{R}) 10.56 _ _ false

View File

@ -0,0 +1,14 @@
# Molecule : Cyclopropene
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 B_1 (\mathrm{V};\sigma \rightarrow \pi^\star) 6.65 _ _ false
1 1 A_1 1 1 B_2 (\mathrm{V};\pi \rightarrow \pi^\star) 6.71 _ _ false
1 1 A_1 1 3 B_2 (\mathrm{V};\pi \rightarrow \pi^\star) 4.27 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{V};\sigma \rightarrow \pi^\star) 6.36 _ _ false

View File

@ -0,0 +1,17 @@
# Molecule : Diazomethane
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{V};\pi \rightarrow \pi^\star) 3.04 _ _ false
1 1 A_1 1 1 B_1 (\mathrm{R};\pi \rightarrow 3s) 5.43 _ _ false
1 1 A_1 2 1 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 5.72 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{V};\pi \rightarrow \pi^\star) 2.72 _ _ false
1 1 A_1 1 3 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 3.92 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{R};\pi \rightarrow 3s) 5.29 _ _ false
1 1 A_1 2 3 A_1 (\mathrm{R};\pi \rightarrow 3p) 6.72 _ _ false

View File

@ -0,0 +1,21 @@
# Molecule : Dinitrogen
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 \Sigma_g 1 1 \Pi_g (\mathrm{V};n \rightarrow \pi^\star) 9.32 _ _ false
1 1 \Sigma_g 1 1 \Sigma_u^- (\mathrm{V};\pi \rightarrow \pi^\star) 9.79 _ _ false
1 1 \Sigma_g 1 1 \Delta_u (\mathrm{V};\pi \rightarrow \pi^\star) 10.27 _ _ false
1 1 \Sigma_g 1 1 \Sigma_g^+ (\mathrm{R}) 13.00 _ _ false
1 1 \Sigma_g 1 1 \Pi_u (\mathrm{R}) 13.15 _ _ false
1 1 \Sigma_g 1 1 \Sigma_u^+ (\mathrm{R}) 13.08 _ _ false
1 1 \Sigma_g 2 1 \Pi_u (\mathrm{R}) 13.70 _ _ false
1 1 \Sigma_g 1 3 \Sigma_u^+ (\mathrm{V};\pi \rightarrow \pi^\star) 7.70 _ _ false
1 1 \Sigma_g 1 3 \Pi_g (\mathrm{V};n \rightarrow \pi^\star) 7.98 _ _ false
1 1 \Sigma_g 1 3 \Delta_u (\mathrm{V};\pi \rightarrow \pi^\star) 8.80 _ _ false
1 1 \Sigma_g 1 3 \Sigma_u^- (\mathrm{V};\pi \rightarrow \pi^\star) 9.69 _ _ false

View File

@ -0,0 +1,16 @@
# Molecule : Ethylene
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_g 1 1 B_{3u} (\mathrm{R};\pi \rightarrow 3s) 7.25 _ _ false
1 1 A_g 1 1 B_{1u} (\mathrm{V};\pi \rightarrow \pi^\star) 7.80 _ _ false
1 1 A_g 1 1 B_{1g} (\mathrm{R};\pi \rightarrow 3p) 7.92 _ _ false
1 1 A_g 1 3 B_{1u} (\mathrm{V};\pi \rightarrow \pi^\star) 4.44 _ _ false
1 1 A_g 1 3 B_{3u} (\mathrm{R};\pi \rightarrow 3s) 7.14 _ _ false
1 1 A_g 1 3 B_{1g} (\mathrm{R};\pi \rightarrow 3p) 7.88 _ _ false

View File

@ -0,0 +1,23 @@
# Molecule : Formaldehyde
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{V}; n \rightarrow \pi^\star) 3.91 _ _ false
1 1 A_1 1 1 B_2 (\mathrm{R};n \rightarrow 3s) 7.06 _ _ false
1 1 A_1 2 1 B_2 (\mathrm{R};n \rightarrow 3p) 7.99 _ _ false
1 1 A_1 2 1 A_1 (\mathrm{R};n \rightarrow 3p) 8.04 _ _ false
1 1 A_1 2 1 A_2 (\mathrm{R};n \rightarrow 3p) 8.50 _ _ false
1 1 A_1 1 1 B_1 (\mathrm{V};\sigma \rightarrow \pi^\star) 9.17 _ _ false
1 1 A_1 3 1 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 9.26 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{V};n \rightarrow \pi^\star) 3.47 _ _ false
1 1 A_1 1 3 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 5.96 _ _ false
1 1 A_1 1 3 B_2 (\mathrm{R};n \rightarrow 3s) 6.92 _ _ false
1 1 A_1 2 3 B_2 (\mathrm{R};n \rightarrow 3p) 7.82 _ _ false
1 1 A_1 2 3 A_1 (\mathrm{R};n \rightarrow 3p) 7.93 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{R};n \rightarrow 3d) 8.36 _ _ false

View File

@ -0,0 +1,16 @@
# Molecule : Formamide
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 5.60 _ _ false
1 1 A^\prime 2 1 A^\prime (\mathrm{R};n \rightarrow 3s) 6.73 _ _ true
1 1 A^\prime 3 1 A^\prime (\mathrm{V};\pi \rightarrow \pi^\star) 7.59 _ _ true
1 1 A^\prime 4 1 A^\prime (\mathrm{R};n \rightarrow 3p) 7.47 _ _ true
1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 5.29 _ _ false
1 1 A^\prime 1 3 A^\prime (\mathrm{V};\pi \rightarrow \pi^\star) 5.75 _ _ false

View File

@ -0,0 +1,11 @@
# Molecule : Hydrogen chloride
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 \Sigma^+ 1 1 \Pi (\mathrm{CT}) 7.88 _ _ false

View File

@ -0,0 +1,14 @@
# Molecule : Hydrogen sulfide
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{R};n \rightarrow 4p) 6.21 _ _ false
1 1 A_1 1 1 B_1 (\mathrm{R};n \rightarrow 4s) 6.26 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{R};n \rightarrow 4p) 5.79 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{R};n \rightarrow 4s) 5.88 _ _ false

View File

@ -0,0 +1,17 @@
# Molecule : Ketene
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{V};\pi \rightarrow \pi^\star) 3.89 _ _ false
1 1 A_1 1 1 B_1 (\mathrm{R};n \rightarrow 3s) 5.95 _ _ false
1 1 A_1 2 1 A_2 (\mathrm{R};\pi \rightarrow 3p) 7.12 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{V};n \rightarrow \pi^\star) 3.74 _ _ false
1 1 A_1 1 3 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 5.53 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{R};n \rightarrow 3s) 5.76 _ _ false
1 1 A_1 2 3 A_2 (\mathrm{R};\pi \rightarrow 3p) 7.09 _ _ false

View File

@ -0,0 +1,12 @@
# Molecule : Methanimine
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V}; n \rightarrow \pi^\star) 5.17 _ _ false
1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V}; n \rightarrow \pi^\star) 4.53 _ _ false

View File

@ -9,6 +9,6 @@
####################### ####################### ######################################## ############# ####### ################### ############## ####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe # Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 1.88 _ _ false 1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 1.88 _ _ false
1 1 A^\prime 2 1 A^\prime (\mathrm{R};n \rightarrow 3s/3p) 5.86 _ _ false 1 1 A^\prime 3 1 A^\prime (\mathrm{R};n \rightarrow 3s/3p) 5.86 _ _ false
1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 1.03 _ _ false 1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 1.03 _ _ false
1 1 A^\prime 1 3 A^\prime (\mathrm{V};\pi \rightarrow \pi^\star) 5.75 _ _ false 1 1 A^\prime 1 3 A^\prime (\mathrm{V};\pi \rightarrow \pi^\star) 5.75 _ _ false

View File

@ -0,0 +1,14 @@
# Molecule : Nitrosomethane
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A^\prime 1 1 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 1.80 _ _ false
1 1 A^\prime 3 1 A^\prime (\mathrm{R};n \rightarrow 3s/3p) 6.17 _ _ false
1 1 A^\prime 1 3 A^{\prime\prime} (\mathrm{V};n \rightarrow \pi^\star) 0.94 _ _ false
1 1 A^\prime 1 3 A^\prime (\mathrm{V};\pi \rightarrow \pi^\star) 5.39 _ _ false

View File

@ -0,0 +1,12 @@
# Molecule : Streptocyanine-C1
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 B_2 (\mathrm{V};\pi \rightarrow \pi^\star) 7.08 _ _ false
1 1 A_1 1 3 B_2 (\mathrm{V};\pi \rightarrow \pi^\star) 5.44 _ _ false

View File

@ -0,0 +1,16 @@
# Molecule : Thioformaldehyde
# Comment :
# code : MRCC
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 A_2 (\mathrm{V};n \rightarrow \pi^\star) 2.15 _ _ false
1 1 A_1 1 1 B_2 (\mathrm{R};n \rightarrow 4s) 5.87 _ _ false
1 1 A_1 2 1 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 6.28 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{V};n \rightarrow \pi^\star) 1.81 _ _ false
1 1 A_1 1 3 A_1 (\mathrm{V};\pi \rightarrow \pi^\star) 3.26 _ _ false
1 1 A_1 1 3 B_2 (\mathrm{R};n \rightarrow 4s) 5.67 _ _ false

View File

@ -0,0 +1,16 @@
# Molecule : Water
# Comment :
# code :
# method : ADC(2.5),aug-cc-pVTZ
# geom : CC3,aug-cc-pVTZ
# article : 10.1021/acs.jctc.8b00406
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces unsafe
####################### ####################### ######################################## ############# ####### ################### ##############
# Number Spin Symm Number Spin Symm type E_abs %T1 f is unsafe
1 1 A_1 1 1 B_1 (\mathrm{R}; n \rightarrow 3s) 7.51 _ _ false
1 1 A_1 1 1 A_2 (\mathrm{R}; n \rightarrow 3p) 9.23 _ _ false
1 1 A_1 2 1 A_1 (\mathrm{R}; n \rightarrow 3s) 9.87 _ _ false
1 1 A_1 1 3 B_1 (\mathrm{R}; n \rightarrow 3s) 7.13 _ _ false
1 1 A_1 1 3 A_2 (\mathrm{R}; n \rightarrow 3p) 9.07 _ _ false
1 1 A_1 1 3 A_1 (\mathrm{R}; n \rightarrow 3s) 9.43 _ _ false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/img/CEISAM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

0
static/img/CNRS.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
static/img/LCPQ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
static/img/Pisa.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
static/img/TOC_JPCL.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

BIN
static/img/UPS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
static/img/UnivNantes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

View File

@ -237,8 +237,7 @@ class dataFileBase {
var vals = line.match(/\([^\)]+\)|\S+/g) var vals = line.match(/\([^\)]+\)|\S+/g)
var start = new state(parseInt(vals[0], 10), parseInt(vals[1], 10), vals[2]); var start = new state(parseInt(vals[0], 10), parseInt(vals[1], 10), vals[2]);
var end = new state(parseInt(vals[3], 10), parseInt(vals[4], 10), vals[5]); var end = new state(parseInt(vals[3], 10), parseInt(vals[4], 10), vals[5]);
var hasType = vals.length >= 7 && isNaN(vals[6]) var type = ((vals.length >= 7) ? vals[6] : null)
var type = ((vals.length >= 7 && hasType) ? vals[6] : null)
if (type === "_") { if (type === "_") {
type = null type = null
} }
@ -248,10 +247,10 @@ class dataFileBase {
type = m[1] type = m[1]
} }
} }
var val = ((vals.length >= 7 + hasType) ? new stringNumber(vals[6 + hasType]) : NaN) var val = ((vals.length >= 8) ? new stringNumber(vals[7]) : NaN)
var T1 = ((vals.length >= 8 + hasType) ? new stringNumber(vals[7 + hasType]) : NaN) var T1 = ((vals.length >= 9) ? new stringNumber(vals[8]) : NaN)
var oscilatorForces = ((vals.length >= 9 + hasType) ? new stringNumber(vals[8 + hasType]) : NaN) var oscilatorForces = ((vals.length >= 10) ? new stringNumber(vals[9]) : NaN)
var isUnsafe = ((vals.length >= 10 + hasType) ? vals[9 + hasType] === true.toString() : false) var isUnsafe = ((vals.length >= 11) ? vals[10] === true.toString() : false)
var ex = new excitationValue(start, end, type, val, oscilatorForces, T1, isUnsafe); var ex = new excitationValue(start, end, type, val, oscilatorForces, T1, isUnsafe);
if (this.VertExcitationKind) { if (this.VertExcitationKind) {
ex.VertExcitationKind = this.VertExcitationKind ex.VertExcitationKind = this.VertExcitationKind

105
tools/ADC25generator.py Executable file
View File

@ -0,0 +1,105 @@
#!/usr/bin/env python3
import os
import re
import sys
import copy
from statistics import mean
from math import nan,isnan
from pathlib import Path
from collections import defaultdict,OrderedDict
from lib.data import dataFileBase,DataType,method,state,excitationValue
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--debug', action='store_true', help='Debug mode')
parser.add_argument("--sets",nargs="*")
parser.add_argument("--articles",nargs="*")
args=parser.parse_args()
scriptpath=Path(sys.argv[0]).resolve()
datadir=scriptpath.parents[1]/"static"/"data"
articles=None
if args.articles is not None or args.sets is not None:
articles=set()
if args.articles is not None:
for article in args.articles:
articles.add(article)
if args.sets is not None:
import yaml
pubindex=datadir/"publis"/"index.yaml"
with pubindex.open("r") as pubindexstream:
pubindexdata = yaml.load(pubindexstream,Loader=yaml.loader.FullLoader)
pubsetsdata=pubindexdata["sets"]
for myset in args.sets:
if myset in pubsetsdata:
artset=pubsetsdata[myset]
for article in artset:
articles.add(article)
outputdir=datadir/"test" if args.debug else datadir
ADC23re=re.compile(r"ADC\(([23])\)")
def getValue(ADC2,ADC3,parametername):
vals = [getattr(x,parametername) for x in [ADC2,ADC3]]
isObject=hasattr(vals[0], '__dict__')
if isObject:
if vars(vals[0]) == vars(vals[1]):
return copy.deepcopy(vals[0])
else:
if vals[0] == vals[1]:
return vals[0]
d=OrderedDict()
for i in range(2):
key=f"ADC({i+2})"
if isObject:
d[key]=copy.deepcopy(vals[i])
else:
d[key]=vals[i]
index=-1
while len(vals)<index or index<0:
if index==0:
raise ValueError()
print("The Two values are different")
i=0
for k in d:
i+=1
print(f"{i}){k} value: {vars(d[k]) if isObject else d[k]}")
index=int(input("Select value from the menu:"))
return vals[index-1]
for t in DataType:
dFiles=dict()
for i in range(2,4):
dFiles[i]=defaultdict(dict)
currdir=datadir/t.name.lower()
for file in currdir.glob("*.dat"):
with file.open('r') as f: # open in readonly mode
dFile = dataFileBase.readFile(f,DataType.ABS)
m=ADC23re.match(dFile.method.name)
if m and (articles == None or dFile.article in articles):
dFiles[int(m.group(1))][dFile.molecule][dFile.method.basis]=dFile
for molecule in dFiles[2]:
for basis in dFiles[2][molecule]:
if basis in dFiles[3][molecule]:
try:
ADC2File,ADC3File=[dFiles[i][molecule][basis] for i in range(2,4)]
ADC25File=ADC2File.__class__()
adc2Dic=vars(ADC2File)
adc3Dic=vars(ADC3File)
for k in adc2Dic:
if k not in ["excitations","method"]:
val=getValue(ADC2File,ADC3File,k)
setattr(ADC25File,k,val)
ADC25File.method=method("ADC(2.5)",ADC2File.method.basis)
for exADC2 in ADC2File.excitations:
exADC3s=[x for x in ADC3File.excitations if vars(x.initial) == vars(exADC2.initial) and vars(x.final) == vars(exADC2.final)]
if len(exADC3s)>0:
exADC3=exADC3s[0]
value=mean([(float(x.value)) for x in [exADC2,exADC3]])
value= "_" if isnan(value) else "{0:.2f}".format(value)
T1 = "_"
f = "_"
isUnsafe = exADC2.isUnsafe or exADC3.isUnsafe
Type=getValue(exADC2,exADC3,"type")
exADC25=excitationValue(copy.deepcopy(exADC2.initial),copy.deepcopy(exADC2.final),value,Type,T1,isUnsafe,f)
ADC25File.excitations.append(exADC25)
ADC25File.toFile(outputdir)
except ValueError as ex:
pass

View File

@ -69,7 +69,6 @@ class dataFileBase(object):
for TexState in StateTablelist: for TexState in StateTablelist:
st=str(extractMath(TexState,Soup=True,commands=commands)) st=str(extractMath(TexState,Soup=True,commands=commands))
m=re.match(r"^\^(?P<multiplicity>\d)(?P<symm>[^\s\[(]*)\s*(?:\[(?:\\mathrm{)?(?P<special>\w)(?:})\])?\s*(:?\((?P<type>[^\)]*)\))?",st) m=re.match(r"^\^(?P<multiplicity>\d)(?P<symm>[^\s\[(]*)\s*(?:\[(?:\\mathrm{)?(?P<special>\w)(?:})\])?\s*(:?\((?P<type>[^\)]*)\))?",st)
seq=m.group("multiplicity","symm")
mul=int(m.group("multiplicity")) mul=int(m.group("multiplicity"))
symm=m.group("symm") symm=m.group("symm")
spgrp=m.group("special") spgrp=m.group("special")
@ -87,6 +86,18 @@ class dataFileBase(object):
count=countlst.count(countitem) count=countlst.count(countitem)
lst.append((state(count,item[0],item[1]),item[2],item[3])) lst.append((state(count,item[0],item[1]),item[2],item[3]))
return lst return lst
def _OnReadMetaPair(self, key, value):
if key == "molecule":
self.molecule = value
elif key == "comment":
self.comment = value
elif key == "code":
self.code = code.fromString(value)
elif key == "method":
self.method = method.fromString(value)
elif key == "article":
self.article = value
@staticmethod @staticmethod
def readFromTable(table,TexOps, commands=[]): def readFromTable(table,TexOps, commands=[]):
for formatName,Cls in getFormatHandlers(): for formatName,Cls in getFormatHandlers():
@ -105,6 +116,59 @@ class dataFileBase(object):
dic["article"]="" if self.article is None else self.article dic["article"]="" if self.article is None else self.article
return dic return dic
def _OnReadMeta(self,line,dataType):
#get key value
match = dataFileBase._GetMetaRexEx().match(line)
# normalize key to lower
key = match.group(1).lower()
# if data has value
if match.group(2):
val = match.group(2)
self._OnReadMetaPair(key, val)
@staticmethod
def _OnReadRow(line):
vals = re.findall(r"\([^\)]+\)|\S+",line)
start = state(int(vals[0]), int(vals[1]), vals[2])
end = state(int(vals[3]), int(vals[4]), vals[5])
Type = vals[6] if (len(vals) >= 7) else None
if Type == "_":
Type = None
if Type:
m = re.match(r"^\(([^\)]*)\)$",Type)
if m:
Type = m[1]
val = vals[7] if len(vals) >= 8 else str(np.NaN)
T1 = vals[8] if len(vals) >= 9 else str(np.NaN)
oscilatorForces = vals[9] if len(vals) >= 10 else str(np.NaN)
isUnsafe = vals[10] == json.dumps(True) if len(vals) >= 11 else False
ex = excitationValue(start, end, val, Type,T1,isUnsafe,oscilatorForces)
return ex
@staticmethod
def _GetMetaRexEx():
#metadata RegExp (start with #; maybe somme spaces; : ; maybe somme space; datas)
return re.compile(r"^#\s*([A-Za-z_]+)\s*:\s*(.*)$")
@staticmethod
def readFile(stream,dataType):
lines = stream.readlines()
# for each line with metadata
ismetaArea = True
dat = datafileSelector(dataType)()
for line in lines:
#if it's not empty line
line = line.strip()
if line:
# if # may be metadata or comment
if line[0] == "#":
# if it's metadata
if ismetaArea and dataFileBase._GetMetaRexEx().match(line):
dat._OnReadMeta(line,dataType)
else: # else its row
ismetaArea = False
dat.excitations.append(dat._OnReadRow(line))
return dat
def toFile(self,datadir,suffix=None): def toFile(self,datadir,suffix=None):
subpath=datadir/self.GetFileType().name.lower() subpath=datadir/self.GetFileType().name.lower()
if not subpath.exists(): if not subpath.exists():
@ -170,6 +234,11 @@ class code:
self.name = name self.name = name
self.version = version self.version = version
@staticmethod
def fromString(string):
vals = string.split(",")
return method(*vals)
def toDataString(self): def toDataString(self):
string=self.name string=self.name
if (self.version): if (self.version):
@ -181,6 +250,12 @@ class oneStateDataFileBase(dataFileBase):
super(oneStateDataFileBase,self).__init__() super(oneStateDataFileBase,self).__init__()
self.geometry = None self.geometry = None
def _OnReadMetaPair(self, key, value):
if key == "geom":
self.geometry = method.fromString(value)
else:
super(oneStateDataFileBase,self)._OnReadMetaPair(key, value)
def getMetadata(self): def getMetadata(self):
dic=super(oneStateDataFileBase,self).getMetadata() dic=super(oneStateDataFileBase,self).getMetadata()
dic["geom"]= "" if self.geometry is None else self.geometry.toDataString() dic["geom"]= "" if self.geometry is None else self.geometry.toDataString()