mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-25 05:43:46 +01:00
Fix missing
This commit is contained in:
parent
abed4bfeaa
commit
4448d8d9db
@ -24,7 +24,7 @@
|
|||||||
\newcommand{\DAVPZ}{d-\emph{aug}-cc-pV5Z}
|
\newcommand{\DAVPZ}{d-\emph{aug}-cc-pV5Z}
|
||||||
\newcommand{\PopleDZ}{6-31+G(d)}
|
\newcommand{\PopleDZ}{6-31+G(d)}
|
||||||
|
|
||||||
\begin{table}{llcccccc}
|
\begin{tabular}{llcccccc}
|
||||||
& & & & TBE(FC)& \multicolumn{3}{c}{Corrected TBE} \\
|
& & & & TBE(FC)& \multicolumn{3}{c}{Corrected TBE} \\
|
||||||
& State & $f$ & \%$T_1$ & AVTZ & Method & Corr. & Value \\
|
& 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 \\
|
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' (\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' (\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 \\
|
&$^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 \\
|
&$^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 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 \\
|
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' (\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 \\
|
&$^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};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 \\
|
&$^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 \\
|
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 \\
|
& $^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 \\
|
& $^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_2 (\Ryd; n \rightarrow 3p)$ & &98.0 &9.24 & & &9.30 \\
|
||||||
& $^3A_1 (\Ryd; n \rightarrow 3s)$ & &98.2 &9.54 & & &9.59 \\
|
& $^3A_1 (\Ryd; n \rightarrow 3s)$ & &98.2 &9.54 & & &9.59 \\
|
||||||
\end{tabular}
|
\end{tabular}
|
@ -78,7 +78,7 @@ class DOI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class excitationBase {
|
class excitationBase {
|
||||||
constructor(initial, final, type, T1=null) {
|
constructor(initial, final, type=null, T1=null) {
|
||||||
this.initial = initial;
|
this.initial = initial;
|
||||||
this.final = final
|
this.final = final
|
||||||
if (type !== null) {
|
if (type !== null) {
|
||||||
|
@ -5,15 +5,15 @@ from enum import IntEnum,auto,unique
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from lib import LaTeX
|
from lib import LaTeX
|
||||||
from lib.Orientation import Orientation
|
from lib.Format import Format
|
||||||
from TexSoup import TexSoup
|
from TexSoup import TexSoup
|
||||||
from lib.data import dataFileBase,dataType
|
from lib.data import dataFileBase,dataType
|
||||||
import argparse
|
import argparse
|
||||||
DEBUG=False
|
DEBUG=True
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--file', type=argparse.FileType('r'))
|
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('--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()
|
args = parser.parse_args()
|
||||||
print(args)
|
print(args)
|
||||||
lines=args.file.readlines()
|
lines=args.file.readlines()
|
||||||
@ -26,6 +26,6 @@ if DEBUG:
|
|||||||
datapath=datapath/"test"
|
datapath=datapath/"test"
|
||||||
if not datapath.exists():
|
if not datapath.exists():
|
||||||
datapath.mkdir()
|
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:
|
for data in datalst:
|
||||||
data.toFile(datapath)
|
data.toFile(datapath)
|
@ -1,5 +1,6 @@
|
|||||||
from enum import IntEnum,auto,unique
|
from enum import IntEnum,auto,unique
|
||||||
@unique
|
@unique
|
||||||
class Orientation(IntEnum):
|
class Format(IntEnum):
|
||||||
LINE=auto()
|
LINE=auto()
|
||||||
COLUMN=auto()
|
COLUMN=auto()
|
||||||
|
TBE=auto()
|
@ -1,6 +1,6 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from enum import IntEnum,auto,unique,IntFlag
|
from enum import IntEnum,auto,unique,IntFlag
|
||||||
from .Orientation import Orientation
|
from .Format import Format
|
||||||
import re
|
import re
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
@ -53,18 +53,18 @@ class dataFileBase(object):
|
|||||||
for index,item in enumerate(tmplst):
|
for index,item in enumerate(tmplst):
|
||||||
unformfirststate=(str(firstState.multiplicity),firstState.symetry)
|
unformfirststate=(str(firstState.multiplicity),firstState.symetry)
|
||||||
count=([unformfirststate]+tmplst[:index+1]).count(item)
|
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
|
return lst
|
||||||
|
|
||||||
@staticmethod
|
@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()
|
datalist=list()
|
||||||
switcher={
|
switcher={
|
||||||
dataType.ABS:AbsDataFile,
|
dataType.ABS:AbsDataFile,
|
||||||
dataType.FLUO:FluoDataFile,
|
dataType.FLUO:FluoDataFile,
|
||||||
dataType.ZPE:ZPEDataFile
|
dataType.ZPE:ZPEDataFile
|
||||||
}
|
}
|
||||||
if orientation==Orientation.LINE:
|
if format==Format.LINE:
|
||||||
for col in range(1,np.size(table,1)):
|
for col in range(1,np.size(table,1)):
|
||||||
col=table[:,col]
|
col=table[:,col]
|
||||||
mymolecule=str(col[0])
|
mymolecule=str(col[0])
|
||||||
@ -84,11 +84,11 @@ class dataFileBase(object):
|
|||||||
data=cl()
|
data=cl()
|
||||||
data.molecule=mymolecule
|
data.molecule=mymolecule
|
||||||
data.method=mymethod
|
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():
|
for value in datacls.values():
|
||||||
datalist.append(value)
|
datalist.append(value)
|
||||||
return datalist
|
return datalist
|
||||||
else:
|
elif format==Format.COLUMN:
|
||||||
subtablesindex=list()
|
subtablesindex=list()
|
||||||
firstindex=2
|
firstindex=2
|
||||||
for i in range(3,np.size(table,0)):
|
for i in range(3,np.size(table,0)):
|
||||||
@ -96,11 +96,6 @@ class dataFileBase(object):
|
|||||||
subtablesindex.append((firstindex,i-1))
|
subtablesindex.append((firstindex,i-1))
|
||||||
firstindex=i
|
firstindex=i
|
||||||
for first, last in subtablesindex:
|
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)):
|
for col in range(2,np.size(table,1)):
|
||||||
datacls=dict()
|
datacls=dict()
|
||||||
col=table[:,col]
|
col=table[:,col]
|
||||||
@ -121,10 +116,41 @@ class dataFileBase(object):
|
|||||||
data.molecule=mymolecule
|
data.molecule=mymolecule
|
||||||
data.method=mymethod
|
data.method=mymethod
|
||||||
datacls[dt]=data
|
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():
|
for value in datacls.values():
|
||||||
datalist.append(value)
|
datalist.append(value)
|
||||||
return datalist
|
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):
|
def getMetadata(self):
|
||||||
dic=OrderedDict()
|
dic=OrderedDict()
|
||||||
dic["Molecule"]=self.molecule
|
dic["Molecule"]=self.molecule
|
||||||
@ -145,11 +171,11 @@ class dataFileBase(object):
|
|||||||
if value is not None:
|
if value is not None:
|
||||||
f.write("# {:9s}: {}\n".format(key,value))
|
f.write("# {:9s}: {}\n".format(key,value))
|
||||||
f.write("""
|
f.write("""
|
||||||
# Initial state Final state Energies (eV) Oscilator forces
|
# Initial state Final state Transition Energies (eV) %T1 Oscilator forces
|
||||||
####################### ####################### ################# ###################
|
####################### ####################### ################ ################# ####### ###################
|
||||||
# Number Spin Symm Number Spin Symm E_{:5s} Corr \n""".format(self.GetFileType().name.lower()))
|
# Number Spin Symm Number Spin Symm type E_{:5s} Corr %T1 f \n""".format(self.GetFileType().name.lower()))
|
||||||
for ex in self.excitations:
|
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)
|
f.write(mystr)
|
||||||
class method:
|
class method:
|
||||||
def __init__(self,name, *args):
|
def __init__(self,name, *args):
|
||||||
@ -233,13 +259,19 @@ class ZPEDataFile(twoStateDataFileBase):
|
|||||||
return dataType.ZPE
|
return dataType.ZPE
|
||||||
|
|
||||||
class excitationBase:
|
class excitationBase:
|
||||||
def __init__(self,initial, final):
|
def __init__(self,initial, final, **kwargs):
|
||||||
self.initial = initial
|
self.initial = initial
|
||||||
self.final = final
|
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):
|
class excitationValue(excitationBase):
|
||||||
def __init__(self,initial, final, value,*args):
|
def __init__(self,initial, final, value,**kwarg):
|
||||||
super(excitationValue,self).__init__(initial, final)
|
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.value = value
|
||||||
self.Corrcorrectedection=args[0] if len(args)>0 else None
|
self.corrected=kwarg["corrected"] if "corrected" in kwarg else None
|
||||||
self.OscilatorForces=args[1] if len(args)>1 else None
|
self.oscilatorForces=kwarg["forces"] if "forces" in kwarg else None
|
||||||
|
Loading…
Reference in New Issue
Block a user