10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-07-22 18:57:38 +02:00

Fix missing

This commit is contained in:
Mickaël Véril 2019-12-03 15:24:29 +01:00
parent abed4bfeaa
commit 4448d8d9db
5 changed files with 65 additions and 32 deletions

View File

@ -24,7 +24,7 @@
\newcommand{\DAVPZ}{d-\emph{aug}-cc-pV5Z}
\newcommand{\PopleDZ}{6-31+G(d)}
\begin{table}{llcccccc}
\begin{tabular}{llcccccc}
& & & & TBE(FC)& \multicolumn{3}{c}{Corrected TBE} \\
& State & $f$ & \%$T_1$ & AVTZ & Method & Corr. & Value \\
Acetaldehyde &$^1A''(\mathrm{V};n \rightarrow \pis)$ & 0.000 &91.3& 4.31 & {\exCI}/AVTZ & AVQZ &4.31 \\
@ -99,7 +99,7 @@
&$^1A' (\Ryd;n \rightarrow 3s)$ &0.001 &88.6 &6.77$^a$ & & &6.81 \\
&$^1A' (\mathrm{V};\pi \rightarrow \pis)$ &0.251 &89.3 &7.63 &{\exCI}/AVTZ & AVQZ &7.64 \\
&$^1A' (\Ryd;n \rightarrow 3p)$ &0.111 &89.6 &7.38$^b$ &{\CCSDT}/AVTZ& AVQZ &7.41 \\
&$^3A'' (\mathrm{V};n \rightarrow \pis)$ & &97.7 &5.38$^c$ &{\exCI}/AVDZ& AVQZ &5.37 \\%X-EX
&$^3A'' (\mathrm{V};n \rightarrow \pis)$ & &97.7 &5.38$^c$ &{\exCI}/AVDZ& AVQZ &5.37 \\
&$^3A' (\mathrm{V};\pi \rightarrow \pis)$ & &98.2 &5.81$^c$ & & &5.81 \\
Hydrogen chloride & $^1\Pi (\mathrm{CT})$ &0.056 &94.3 &7.84 & {\exCI}/AVQZ &dAV5Z &7.86 \\
Hydrogen sulfide &$^1A_2 (\Ryd;n \rightarrow 4p)$ & &94.6 &6.18 & {\exCI}/AVQZ &dAV5Z &6.10 \\
@ -120,7 +120,7 @@
&$^1A' (\mathrm{V};n,n \rightarrow \pis,\pis)$ &0.000 &2.5 &4.72 & {\exCI}/AVTZ & AVQZ & 4.69 \\
&$^1A' (\Ryd;n \rightarrow 3s/3p)$ &0.006 &90.8 &6.40$^a$ &{\exCI}/AVDZ & AVQZ &6.42 \\
&$^3A'' (\mathrm{V};n \rightarrow \pis)$ & &98.4 &1.16 & & &1.16 \\
&$^3A' (\mathrm{V};\pi \rightarrow \pis)$ & &98.9 &5.60 & & &5.61 <EFBFBD>\\
&$^3A' (\mathrm{V};\pi \rightarrow \pis)$ & &98.9 &5.60 & & &5.61 \\
&$^1A'' [\mathrm{F}] (\mathrm{V};n \rightarrow \pis)$ & &92.7&1.67$^a$ &{\exCI}/AVDZ & AVQZ &1.66 \\
Streptocyanine-C1&$^1B_2 (\mathrm{V};\pi \rightarrow \pis)$ & 0.347 &88.7&7.13$^a$ & {\exCI}/AVDZ & AVQZ &7.12 \\
& $^3B_2 (\mathrm{V};\pi \rightarrow \pis)$ & &98.3 &5.52 & {\exCI}/AVTZ & AVQZ &5.52 \\
@ -137,4 +137,4 @@
& $^3B_1 (\Ryd; n \rightarrow 3s)$ & &98.1 &7.25 & & &7.33 \\
& $^3A_2 (\Ryd; n \rightarrow 3p)$ & &98.0 &9.24 & & &9.30 \\
& $^3A_1 (\Ryd; n \rightarrow 3s)$ & &98.2 &9.54 & & &9.59 \\
\end{tabular}
\end{tabular}

View File

@ -78,7 +78,7 @@ class DOI {
}
class excitationBase {
constructor(initial, final, type, T1=null) {
constructor(initial, final, type=null, T1=null) {
this.initial = initial;
this.final = final
if (type !== null) {

View File

@ -5,15 +5,15 @@ from enum import IntEnum,auto,unique
import numpy as np
from pathlib import Path
from lib import LaTeX
from lib.Orientation import Orientation
from lib.Format import Format
from TexSoup import TexSoup
from lib.data import dataFileBase,dataType
import argparse
DEBUG=False
DEBUG=True
parser = argparse.ArgumentParser()
parser.add_argument('--file', type=argparse.FileType('r'))
parser.add_argument('--defaultType', type=str, choices=[t.name for t in list(dataType)])
parser.add_argument('--MoleculeOrentation',type=str, choices=[t.name for t in list(Orientation)],default=Orientation.LINE.name)
parser.add_argument('--format',type=str, choices=[t.name for t in list(Format)],default=Format.LINE.name)
args = parser.parse_args()
print(args)
lines=args.file.readlines()
@ -26,6 +26,6 @@ if DEBUG:
datapath=datapath/"test"
if not datapath.exists():
datapath.mkdir()
datalst=dataFileBase.readFromTable(dat,orientation=Orientation[args.MoleculeOrentation],default=dataType[args.defaultType])
datalst=dataFileBase.readFromTable(dat,format=Format[args.format],default=dataType[args.defaultType])
for data in datalst:
data.toFile(datapath)

View File

@ -1,5 +1,6 @@
from enum import IntEnum,auto,unique
@unique
class Orientation(IntEnum):
class Format(IntEnum):
LINE=auto()
COLUMN=auto()
COLUMN=auto()
TBE=auto()

View File

@ -1,6 +1,6 @@
from collections import OrderedDict
from enum import IntEnum,auto,unique,IntFlag
from .Orientation import Orientation
from .Format import Format
import re
import numpy as np
@ -53,18 +53,18 @@ class dataFileBase(object):
for index,item in enumerate(tmplst):
unformfirststate=(str(firstState.multiplicity),firstState.symetry)
count=([unformfirststate]+tmplst[:index+1]).count(item)
lst.append((state(count,int(item[0]),item[1]),item[2]))
lst.append((state(count,int(item[0]),item[1]),item[2],item[3]))
return lst
@staticmethod
def readFromTable(table,orientation=Orientation.LINE,default=dataType.ABS ,firstState=state(1,1,"A_1")):
def readFromTable(table,format=Format.LINE,default=dataType.ABS ,firstState=state(1,1,"A_1")):
datalist=list()
switcher={
dataType.ABS:AbsDataFile,
dataType.FLUO:FluoDataFile,
dataType.ZPE:ZPEDataFile
}
if orientation==Orientation.LINE:
if format==Format.LINE:
for col in range(1,np.size(table,1)):
col=table[:,col]
mymolecule=str(col[0])
@ -84,11 +84,11 @@ class dataFileBase(object):
data=cl()
data.molecule=mymolecule
data.method=mymethod
data.excitations.append(excitationValue(firstState,finst[0],val))
data.excitations.append(excitationValue(firstState,finst[0],val,type=finst[2]))
for value in datacls.values():
datalist.append(value)
return datalist
else:
elif format==Format.COLUMN:
subtablesindex=list()
firstindex=2
for i in range(3,np.size(table,0)):
@ -96,11 +96,6 @@ class dataFileBase(object):
subtablesindex.append((firstindex,i-1))
firstindex=i
for first, last in subtablesindex:
for col in range(2,np.size(table,1)):
col=table[:,col]
mymolecule=str(table[first,0])
mymethod=method(str(col[1]),str(col[0]))
finsts=dataFileBase.convertState(table[first:last+1,1],default=default,firstState=firstState)
for col in range(2,np.size(table,1)):
datacls=dict()
col=table[:,col]
@ -121,10 +116,41 @@ class dataFileBase(object):
data.molecule=mymolecule
data.method=mymethod
datacls[dt]=data
data.excitations.append(excitationValue(firstState,finst[0],val))
data.excitations.append(excitationValue(firstState,finst[0],val,type=finst[2]))
for value in datacls.values():
datalist.append(value)
return datalist
elif format==Format.TBE:
subtablesindex=list()
firstindex=2
for i in range(2,np.size(table,0)):
if str(table[i,0])!="":
subtablesindex.append((firstindex,i-1))
firstindex=i
for first, last in subtablesindex:
mymolecule=str(table[first,0])
mymethod="TBE"
finsts=dataFileBase.convertState(table[first:last+1,1],default=default,firstState=firstState)
for row in table[first,last+1]:
OscilatorForces=float(str(cell.contents)[2])
T1 = float(str(list(cell.contents)[3]))
val = float(str(list(cell.contents)[4]))
corr = float(str(list(cell.contents[7])))
finst=finsts[index]
dt=finst[1]
if dt in datacls:
data = datacls[dt]
else:
cl=switcher[dt]
data=cl()
data.molecule=mymolecule
data.method=mymethod
datacls[dt]=data
data.excitations.append(excitationValue(firstState,finst[0],val,type=finst[2],T1=T1,corrected=corr))
for value in datacls.values():
datalist.append(value)
return datalist
def getMetadata(self):
dic=OrderedDict()
dic["Molecule"]=self.molecule
@ -145,11 +171,11 @@ class dataFileBase(object):
if value is not None:
f.write("# {:9s}: {}\n".format(key,value))
f.write("""
# Initial state Final state Energies (eV) Oscilator forces
####################### ####################### ################# ###################
# Number Spin Symm Number Spin Symm E_{:5s} Corr \n""".format(self.GetFileType().name.lower()))
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces
####################### ####################### ################ ################# ####### ###################
# Number Spin Symm Number Spin Symm type E_{:5s} Corr %T1 f \n""".format(self.GetFileType().name.lower()))
for ex in self.excitations:
mystr=" {:8s}{:7s}{:10s}{:8s}{:6s}{:13s}{:8s}{:8s}{}\n".format(str(ex.initial.number),str(ex.initial.multiplicity),ex.initial.symetry,str(ex.final.number),str(ex.final.multiplicity),ex.final.symetry,str(ex.value) if ex.value is not None else "_",str(ex.corrected) if ex.corrected is not None else "_",str(ex.OscilatorForces) if ex.OscilatorForces is not None else "_")
mystr=" {:8s}{:7s}{:10s}{:8s}{:6s}{:13s}{:16s}{:8s}{:10s}{:15s}{}\n".format(str(ex.initial.number),str(ex.initial.multiplicity),ex.initial.symetry,str(ex.final.number),str(ex.final.multiplicity),ex.final.symetry,str(ex.type) if ex.type is not None else "_",str(ex.value) if ex.value is not None else "_",str(ex.corrected) if ex.corrected is not None else "_",str(ex.T1) if ex.T1 is not None else "_", str(ex.oscilatorForces) if ex.oscilatorForces is not None else "_")
f.write(mystr)
class method:
def __init__(self,name, *args):
@ -233,13 +259,19 @@ class ZPEDataFile(twoStateDataFileBase):
return dataType.ZPE
class excitationBase:
def __init__(self,initial, final):
def __init__(self,initial, final, **kwargs):
self.initial = initial
self.final = final
self.type = kwargs["type"] if "type" in kwargs else None
self.T1 = kwargs["T1"] if "T1" in kwargs else None
class excitationValue(excitationBase):
def __init__(self,initial, final, value,*args):
super(excitationValue,self).__init__(initial, final)
def __init__(self,initial, final, value,**kwarg):
supkwarg=kwarg.copy()
for item in ["forces","corrected"]:
if item in supkwarg:
supkwarg.pop(item)
super(excitationValue,self).__init__(initial, final,**supkwarg)
self.value = value
self.Corrcorrectedection=args[0] if len(args)>0 else None
self.OscilatorForces=args[1] if len(args)>1 else None
self.corrected=kwarg["corrected"] if "corrected" in kwarg else None
self.oscilatorForces=kwarg["forces"] if "forces" in kwarg else None