mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-24 13:23:40 +01:00
Support molecule on first column instead of on first line on tex (see example2.tex)
This commit is contained in:
parent
0af6b2d551
commit
92da17ea23
66
docs/example2.tex
Normal file
66
docs/example2.tex
Normal file
@ -0,0 +1,66 @@
|
||||
\newcommand{\TDDFT}{TD-DFT}
|
||||
\newcommand{\CASSCF}{CASSCF}
|
||||
\newcommand{\CASPT}{CASPT2}
|
||||
\newcommand{\ADC}[1]{ADC(#1)}
|
||||
\newcommand{\CC}[1]{CC#1}
|
||||
\newcommand{\CCSD}{CCSD}
|
||||
\newcommand{\EOMCCSD}{EOM-CCSD}
|
||||
\newcommand{\CCSDT}{CCSDT}
|
||||
\newcommand{\CCSDTQ}{CCSDTQ}
|
||||
\newcommand{\CCSDTQP}{CCSDTQP}
|
||||
\newcommand{\CI}{CI}
|
||||
\newcommand{\sCI}{sCI}
|
||||
\newcommand{\exCI}{exFCI}
|
||||
\newcommand{\FCI}{FCI}
|
||||
|
||||
% basis
|
||||
\newcommand{\AVDZ}{\emph{aug}-cc-pVDZ}
|
||||
\newcommand{\AVTZ}{\emph{aug}-cc-pVTZ}
|
||||
\newcommand{\DAVTZ}{d-\emph{aug}-cc-pVTZ}
|
||||
\newcommand{\AVQZ}{\emph{aug}-cc-pVQZ}
|
||||
\newcommand{\DAVQZ}{d-\emph{aug}-cc-pVQZ}
|
||||
\newcommand{\TAVQZ}{t-\emph{aug}-cc-pVQZ}
|
||||
\newcommand{\AVPZ}{\emph{aug}-cc-pV5Z}
|
||||
\newcommand{\DAVPZ}{d-\emph{aug}-cc-pV5Z}
|
||||
\newcommand{\PopleDZ}{6-31+G(d)}
|
||||
|
||||
\begin{tabular}{ll|ccc|ccc|cc}
|
||||
& & \multicolumn{3}{c}{\AVDZ} & \multicolumn{3}{c}{\AVTZ} & \multicolumn{2}{c}{Litt.}\\
|
||||
Molecule &State & {\CC{3}} & {\CCSDT} & {\exCI} & {\CC{3}} & {\CCSDT} & {\exCI}& Exp. & Theo. \\
|
||||
Acetaldehyde &$^1A'' (n \rightarrow \pis)$ &4.34&4.32&4.34& 4.31&4.29&4.31 & 4.27$^a$ &4.29$^b$ \\
|
||||
&$^3A'' (n \rightarrow \pis)$ &3.96&3.95&3.98& 3.95&3.94&4.0$^c$ & 3.97$^a$ &3.97$^b$ \\
|
||||
Cyclopropene &$^1B_1 (\sigma \rightarrow \pis)$ &6.72&6.71&6.7$^c$&6.68&6.68&6.6$^c$& 6.45$^d$ & 6.89$^e$ \\
|
||||
&$^1B_2 (\pi \rightarrow \pis)$ &6.77&6.78&6.82& 6.73&6.75&6.7$^c$ & 7.00$^f$ & 7.11$^e$ \\
|
||||
&$^3B_2 (\pi \rightarrow \pis)$ &4.34&4.35&4.35& 4.34& &4.38 & 4.16$^f$ & 4.28$^g$ \\
|
||||
&$^3B_1 (\sigma \rightarrow \pis)$ &6.43&6.43&6.43& 6.40& &6.45 & & 6.40$^g$ \\
|
||||
Diazomethane &$^1A_2 (\pi \rightarrow \pis)$ &3.10&3.10&3.09& 3.07&3.07&3.14 & 3.14$^h$ &3.21$^i$ \\
|
||||
&$^1B_1 (\pi \rightarrow 3s)$ &5.32&5.35&5.35& 5.45&5.48&5.54 & &5.33$^i$ \\
|
||||
&$^1A_1 (\pi \rightarrow \pis)$ &5.80&5.82&5.79& 5.84&5.86&5.90 & 5.9$^h$ &5.85$^i$ \\
|
||||
&$^3A_2 (\pi \rightarrow \pis)$ &2.84&2.84&2.81& 2.83&2.82&2.8$^c$ & &2.92$^j$ \\
|
||||
&$^3A_1 (\pi \rightarrow \pis)$ &4.05&4.04&4.03& 4.03&4.02&4.05 & &3.97$^j$ \\
|
||||
&$^3B_1 (\pi \rightarrow 3s)$ &5.17&5.20&5.18& 5.31&5.34&5.35 & & \\
|
||||
&$^3A_1 (\pi \rightarrow 3p)$ &6.83&6.83&6.81& 6.80& &6.82 & &7.02$^j$ \\
|
||||
&$^1A'' [\mathrm{F}] (\pi \rightarrow \pis)$ &0.68&0.67&0.65& 0.68&0.67&0.71 & & \\
|
||||
Formamide &$^1A'' (n \rightarrow \pis)$ &5.71&5.68&5.70 &5.66&5.63&5.7$^c$&5.8$^k$ &5.63$^l$ \\
|
||||
&$^1A' (n \rightarrow 3s)$ &6.65&6.64&6.67 &6.74&6.74& &6.35$^k$ &6.62$^l$ \\
|
||||
&$^1A' (\pi \rightarrow \pis)$$^m$ &7.63&7.62&7.64 &7.62& &7.63 &7.37$^k$ &7.22$^l$ \\
|
||||
&$^1A' (n \rightarrow 3p)$$^m$ &7.31&7.29& &7.40&7.38& &7.73$^k$ &7.66$^l$ \\
|
||||
&$^3A'' (n \rightarrow \pis)$ &5.42&5.39&5.42 &5.38& &5.4$^c$ &5.2$^k$ &5.34$^l$ \\
|
||||
&$^3A' (\pi \rightarrow \pis)$ &5.83&5.81&5.82 &5.82& &5.7$^c$ & &5.74$^l$ \\
|
||||
Ketene &$^1A_2 (\pi \rightarrow \pis)$ &3.89&3.88&3.84& 3.88&3.87&3.86 &3.7$^n$ &3.74$^o$ \\
|
||||
&$^1B_1 (n \rightarrow 3s)$ &5.83&5.86&5.88& 5.96&5.99&6.01 &5.86$^n$&5.82$^o$ \\
|
||||
&$^1A_2 (\pi \rightarrow 3p)$ &7.05&7.09&7.08& 7.16&7.20&7.18 & &7.00$^o$ \\
|
||||
&$^3A_2 (n \rightarrow \pis)$ &3.79&3.78&3.79& 3.78&3.78&3.77 &3.8$^p$ &3.62$^q$\\
|
||||
&$^3A_1 (\pi \rightarrow \pis)$ &5.62&5.61&5.64& 5.61&5.60&5.61 &5$^p$ &5.42$^q$\\
|
||||
&$^3B_1 (n \rightarrow 3s)$ &5.63&5.66&5.68& 5.76&5.80&5.79 &5.8$^p$ &5.69$^q$\\
|
||||
&$^3A_2 (\pi \rightarrow 3p)$ &7.01&7.05&7.07& 7.12&7.17&7.12 & & \\
|
||||
&$^1A''[\mathrm{F}] (\pi \rightarrow \pis)$ &1.00&0.99&0.96& 1.00&1.00&1.00 & & \\
|
||||
Nitrosomethane&$^1A'' (n \rightarrow \pis)$ &2.00&1.98&1.99& 1.96&1.95&2.0$^c$ &1.83$^r$&1.76$^s$\\
|
||||
&$^1A' (n,n \rightarrow \pis,\pis)$ &5.75&5.26&4.81& 5.76&5.29 &4.72 & &4.96$^s$\\
|
||||
&$^1A' (n \rightarrow 3s/3p)$ &6.20&6.19&6.29& 6.31&6.30&6.4$^c$ & &6.54$^s$\\
|
||||
&$^3A'' (n \rightarrow \pis)$ &1.13&1.12&1.15& 1.14&1.13&1.16 & &1.42$^t$\\
|
||||
&$^3A' (\pi \rightarrow \pis)$ &5.54&5.54&5.56& 5.51& &5.60 & &5.55$^t$\\
|
||||
&$^1A'' [\mathrm{F}] (n \rightarrow \pis)$ &1.70&1.69&1.70& 1.69&1.66 &1.7$^c$ & & \\
|
||||
Streptocyanine-C1&$^1B_2 (\pi \rightarrow \pis)$ &7.14&7.12&7.14& 7.13&7.11&7.1$^c$ & &7.16$^u$\\
|
||||
& $^3B_2 (\pi \rightarrow \pis)$ &5.48&5.47&5.47& 5.48&5.47&5.52 & & \\
|
||||
\end{tabular}
|
@ -1,16 +1,19 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import re
|
||||
from enum import IntEnum,auto,unique
|
||||
import numpy as np
|
||||
from pathlib import Path
|
||||
from lib import LaTeX
|
||||
from lib.Orientation import Orientation
|
||||
from TexSoup import TexSoup
|
||||
from lib.data import AbsDataFile,ZPEDataFile,FluoDataFile,dataType
|
||||
import argparse
|
||||
DEBUG=False
|
||||
DEBUG=True
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--file', type=argparse.FileType('r'))
|
||||
parser.add_argument('--type', 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)
|
||||
args = parser.parse_args()
|
||||
print(args)
|
||||
lines=args.file.readlines()
|
||||
@ -29,5 +32,6 @@ switcher={
|
||||
dataType.ZPE: ZPEDataFile
|
||||
}
|
||||
filecls=switcher.get(dataType[args.type])
|
||||
for col in range(1,np.size(dat,1)):
|
||||
filecls.readFromTable(dat,col).toFile(datapath)
|
||||
datalst=filecls.readFromTable(dat,Orientation[args.MoleculeOrentation])
|
||||
for data in datalst:
|
||||
data.toFile(datapath)
|
5
tools/lib/Orientation.py
Normal file
5
tools/lib/Orientation.py
Normal file
@ -0,0 +1,5 @@
|
||||
from enum import IntEnum,auto,unique
|
||||
@unique
|
||||
class Orientation(IntEnum):
|
||||
LINE=auto()
|
||||
COLUMN=auto()
|
@ -1,6 +1,8 @@
|
||||
from collections import OrderedDict
|
||||
from enum import IntEnum,auto,unique
|
||||
from .Orientation import Orientation
|
||||
import re
|
||||
import numpy as np
|
||||
|
||||
class state:
|
||||
def __init__(self,number, multiplicity, symetry):
|
||||
@ -43,9 +45,12 @@ class dataFileBase(object):
|
||||
return lst
|
||||
|
||||
@classmethod
|
||||
def readFromTable(cls, table,column,firstState=state(1,1,"A_1")):
|
||||
def readFromTable(cls, table,orientation=Orientation.LINE ,firstState=state(1,1,"A_1")):
|
||||
datalist=list()
|
||||
if orientation==Orientation.LINE:
|
||||
for col in range(1,np.size(table,1)):
|
||||
data=cls()
|
||||
col=table[:,column]
|
||||
col=table[:,col]
|
||||
data.molecule=str(col[0])
|
||||
data.method=method(str(col[2]),str(col[1]))
|
||||
finsts=cls.convertState(table[3:,0],firstState)
|
||||
@ -54,8 +59,29 @@ class dataFileBase(object):
|
||||
val= list(cell.contents)[0]
|
||||
val=float(str(val))
|
||||
data.excitations.append(excitationValue(firstState,finsts[index],val))
|
||||
return data
|
||||
|
||||
datalist.append(data)
|
||||
return datalist
|
||||
else:
|
||||
subtablesindex=list()
|
||||
firstindex=2
|
||||
for i in range(3,np.size(table,0)):
|
||||
if str(table[i,0])!="":
|
||||
subtablesindex.append((firstindex,i-1))
|
||||
firstindex=i
|
||||
for first, last in subtablesindex:
|
||||
for col in range(2,np.size(table,1)):
|
||||
data=cls()
|
||||
col=table[:,col]
|
||||
data.molecule=str(table[first,0])
|
||||
data.method=method(str(col[1]),str(col[0]))
|
||||
finsts=cls.convertState(table[first:last+1,1],firstState)
|
||||
for index,cell in enumerate(col[first:last+1]):
|
||||
if str(cell)!="":
|
||||
val= list(cell.contents)[0]
|
||||
val=float(str(val))
|
||||
data.excitations.append(excitationValue(firstState,finsts[index],val))
|
||||
datalist.append(data)
|
||||
return datalist
|
||||
def getMetadata(self):
|
||||
dic=OrderedDict()
|
||||
dic["Molecule"]=self.molecule
|
||||
@ -130,8 +156,8 @@ class oneStateDataFileBase(dataFileBase):
|
||||
return dic
|
||||
|
||||
@classmethod
|
||||
def readFromTable(cls, table,column,firstState=state(1,1,"A_1")):
|
||||
data=super().readFromTable(table,column,firstState=firstState)
|
||||
def readFromTable(cls, table,orientation=Orientation.LINE,firstState=state(1,1,"A_1")):
|
||||
data=super().readFromTable(table,orientation,firstState=firstState)
|
||||
return data
|
||||
class AbsDataFile(oneStateDataFileBase):
|
||||
def __init__(self):
|
||||
@ -156,8 +182,8 @@ class twoStateDataFileBase(dataFileBase):
|
||||
self.ES=None
|
||||
|
||||
@classmethod
|
||||
def readFromTable(cls, table,column,firstState=state(1,1,"A_1")):
|
||||
data=super().readFromTable(table,column,firstState=firstState)
|
||||
def readFromTable(cls, table,orientation=Orientation.LINE,firstState=state(1,1,"A_1")):
|
||||
data=super().readFromTable(table,Orientation,firstState=firstState)
|
||||
return data
|
||||
def getMetadata(self):
|
||||
dic=super(twoStateDataFileBase,self).getMetadata()
|
||||
|
Loading…
Reference in New Issue
Block a user