mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-25 05:43:46 +01:00
Apply titou format
This commit is contained in:
parent
50bb65cbe8
commit
74e2936f61
@ -38,35 +38,50 @@ draft: false
|
||||
par.innerHTML='';
|
||||
var md=[];
|
||||
var els=[];
|
||||
md.push(["Title",dat.title]);
|
||||
md.push(["Code",dat.code]);
|
||||
md.push(["ZPE geometry",dat.ZPE])
|
||||
md.push(["Method",dat.method])
|
||||
md.push(["Basis",dat.basis]);
|
||||
md.push(["Molecule",dat.molecule]);
|
||||
md.push(["Comment",dat.comment])
|
||||
var dict = {
|
||||
"Ground state": dat.GS,
|
||||
"exited states": dat.ES,
|
||||
};
|
||||
for (var key in dict){
|
||||
md.push(key)
|
||||
md.push(["Code",dict[key].code])
|
||||
md.push(["Method",dict[key].method])
|
||||
md.push(["Geometry",dict[key].geometry])
|
||||
}
|
||||
md.push("ZPE")
|
||||
md.push(["Code",dat.ZPE.code])
|
||||
md.push(["Method",dat.ZPE.method])
|
||||
md.push(["DOI",dat.doi]);
|
||||
div=document.getElementById("meta_div")
|
||||
md.forEach(function(element){
|
||||
var node = document.createElement("div");
|
||||
node.innerText= element[0]+': '+element[1];
|
||||
par.appendChild(node);
|
||||
var node =null;
|
||||
if(typeof element==="string"){
|
||||
node= document.createElement("h2");
|
||||
node.innerText=element;
|
||||
} else {
|
||||
node = document.createElement("div");
|
||||
node.innerText= element[0]+': '+element[1];
|
||||
}
|
||||
div.appendChild(node);
|
||||
});
|
||||
var exDiv= document.createElement("div");
|
||||
par.appendChild(exDiv);
|
||||
var exTitle = document.createElement("h2");
|
||||
exTitle.innerText= "Excitations";
|
||||
exDiv.appendChild(exTitle);
|
||||
var exPar= document.createElement("p");
|
||||
exDiv.appendChild(exPar);
|
||||
await dat.excitations.reduce(async (promise,el)=> {
|
||||
await promise;
|
||||
var node = document.createElement("div");
|
||||
node.innerHTML= String.raw`${LatexInline[0]} ${el.start.toLaTeX()} \rightarrow ${el.end.toLaTeX()}${LatexInline[1]}, ${LatexInline[0]}${el.Eabs.toPrecision(3)}\:\mathrm{eV}${LatexInline[1]}`;
|
||||
node.hidden=true
|
||||
exPar.appendChild(node);
|
||||
await MathJax.typesetPromise();
|
||||
node.hidden=false;
|
||||
var t=document.getElementById("ex_table")
|
||||
dat.excitations.forEach(el=> {
|
||||
var row=document.createElement("tr")
|
||||
var rowd=[]
|
||||
rowd.push(String.raw`${LatexInline[0]} ${el.start.toLaTeX()} \rightarrow ${el.end.toLaTeX()}${LatexInline[1]}`)
|
||||
var e=[el.Eabs,el.Efluo,el.EZPE,el.Ezz]
|
||||
e.forEach((val)=>rowd.push(val.toFixed(2)))
|
||||
rowd.forEach((d)=>{
|
||||
td=document.createElement("td")
|
||||
td.innerText=d
|
||||
row.appendChild(td)
|
||||
})
|
||||
t.appendChild(row)
|
||||
});
|
||||
|
||||
|
||||
await MathJax.typesetPromise();
|
||||
document.getElementById("ex_div").hidden=false
|
||||
var lnkdoi = document.createElement("a");
|
||||
// Wait for the value of publi when required
|
||||
let publi=await publiPromise;
|
||||
@ -93,5 +108,19 @@ draft: false
|
||||
</select>
|
||||
</label><br/>
|
||||
<h1>Data</h1>
|
||||
<p id=data_par></p>
|
||||
<p id=data_par>
|
||||
<div id="meta_div"></div>
|
||||
<div id="ex_div" hidden=true>
|
||||
<h2>exitation</h2>
|
||||
<table id="ex_table">
|
||||
<tr>
|
||||
<th>Transition</th>
|
||||
<th>\(E_{abs}\)</th>
|
||||
<th>\(E_{fluo}\)</th>
|
||||
<th>\(\Delta E_{ZPE}\)</th>
|
||||
<th>\(E_{00}\)</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</p>
|
||||
<a target="_blank" id='lnk_file'>Go to file</a>
|
21
static/data/water_aug-cc-pVDZ_CCpVQZ_CC3.dat
Normal file
21
static/data/water_aug-cc-pVDZ_CCpVQZ_CC3.dat
Normal file
@ -0,0 +1,21 @@
|
||||
# Molecule : Water
|
||||
# Comment : 0-0 energies of the water molecule
|
||||
# GS_code : Dalton
|
||||
# GS_method : CC3,aug-cc-pVDZ
|
||||
# GS_geom : CC3,aug-cc-pVTZ
|
||||
# ES_code : Molpro
|
||||
# ES_method : CCSD,aug-cc-pVQZ
|
||||
# ES_geom : CC2,cc-pVDZ
|
||||
# ZPE_code : Gaussian16
|
||||
# ZPE_method : B3LYP,6-31+G*
|
||||
# DOI : 10.1021/acs.jctc.8b00406
|
||||
|
||||
# Initial state Final state Energies (eV)
|
||||
####################### ####################### #######################
|
||||
# Spin Number Symm Spin Number Symm E_abs E_fluo E_zpe
|
||||
1 1 A_1 1 1 B_1 7.51 0.23 0.01
|
||||
1 1 A_1 1 1 A_2 9.29 4.23 -0.02
|
||||
1 1 A_1 1 2 A_1 9.92 8.38 -0.03
|
||||
1 1 A_1 1 3 B_1 7.13
|
||||
1 1 A_1 3 1 A_2 9.12
|
||||
1 1 A_1 3 1 A_1 9.47
|
@ -10,12 +10,24 @@ class code {
|
||||
}
|
||||
return str;
|
||||
}
|
||||
static fromString(str) {
|
||||
var vals=str.split(",")
|
||||
if(vals.length>=2){
|
||||
return new code(vals[0],vals[1]);
|
||||
} else {
|
||||
return new code(vals[0],null);
|
||||
}
|
||||
}
|
||||
}
|
||||
class method {
|
||||
constructor(name,basis){
|
||||
this.name=name;
|
||||
this.basis=basis;
|
||||
}
|
||||
static fromString(str) {
|
||||
var vals=str.split(",")
|
||||
return new method(vals[0],vals[1]);
|
||||
}
|
||||
toString() {
|
||||
var str=this.name;
|
||||
if (this.name) {
|
||||
@ -24,22 +36,12 @@ class method {
|
||||
return str;
|
||||
}
|
||||
}
|
||||
class geometry {
|
||||
constructor(symetry,method){
|
||||
this.symetry=method
|
||||
this.symetry=method
|
||||
}
|
||||
toString(){
|
||||
return String.raw `${this.symetry}-${this.method}`
|
||||
}
|
||||
}
|
||||
|
||||
class state{
|
||||
constructor(number,multiplicity,symetry,geometry){
|
||||
constructor(number,multiplicity,symetry){
|
||||
this.number=number;
|
||||
this.multiplicity=multiplicity;
|
||||
this.symetry=symetry;
|
||||
this.geometry=geometry
|
||||
};
|
||||
toString() {
|
||||
var str=this.number+ ' ^'+this.multiplicity+this.symetry;
|
||||
@ -62,22 +64,41 @@ class doi{
|
||||
};
|
||||
}
|
||||
class excitation{
|
||||
constructor(start,end,Eabs){
|
||||
constructor(start,end,Eabs,Efluo,EZPE){
|
||||
this.start=start;
|
||||
this.end=end;
|
||||
this.Eabs=Eabs;
|
||||
this.Efluo=Efluo;
|
||||
this.EZPE=EZPE;
|
||||
}
|
||||
get Ezz() {
|
||||
return this.Eabs-this.Efluo+this.EZPE
|
||||
}
|
||||
toString() {
|
||||
return this.start+ ', ' + this.end +', '+ this.Eabs.toPrecision(3);
|
||||
}
|
||||
}
|
||||
|
||||
class CalcParams {
|
||||
constructor(){
|
||||
this.code=null;
|
||||
this.method=null;
|
||||
}
|
||||
}
|
||||
class StateCalcParams extends CalcParams {
|
||||
constructor(){
|
||||
super()
|
||||
this.geometry;
|
||||
}
|
||||
}
|
||||
|
||||
class data {
|
||||
constructor(){
|
||||
this.title='';
|
||||
this.code=null;
|
||||
this.ZPE=null;
|
||||
this.method=null;
|
||||
this.molecule='';
|
||||
this.comment;
|
||||
this.GS=new StateCalcParams();
|
||||
this.ES=new StateCalcParams();
|
||||
this.ZPE=new CalcParams();
|
||||
this.doi=null;
|
||||
this.excitations=[];
|
||||
}
|
||||
@ -88,7 +109,7 @@ class data {
|
||||
// for each line with metadata
|
||||
var ismetaArea=true;
|
||||
//metadata RegExp (start with #; maybe somme spaces; : ; maybe somme space; datas)
|
||||
var meta=/^#\s*([A-Za-z]+)\s*:\s*(.*)$/;
|
||||
var meta=/^#\s*([A-Za-z_]+)\s*:\s*(.*)$/;
|
||||
var dat=new data();
|
||||
function readmeta(line){
|
||||
// get key value
|
||||
@ -99,24 +120,35 @@ class data {
|
||||
if(match.length==3 && match[2]) {
|
||||
var val=match[2];
|
||||
switch(key) {
|
||||
case "title":
|
||||
dat.title=val;
|
||||
case "molecule":
|
||||
dat.molecule=val
|
||||
break;
|
||||
case "code":
|
||||
var vals=val.split(",")
|
||||
if(vals.length>=2){
|
||||
dat.code=new code(vals[0],vals[1]);
|
||||
} else {
|
||||
dat.code=new code(vals[0],null);
|
||||
}
|
||||
case "comment":
|
||||
dat.comment=val
|
||||
break;
|
||||
case "method":
|
||||
var vals=val.split(",")
|
||||
dat.method=new method(vals[0],vals[1]);
|
||||
case "gs_code":
|
||||
dat.GS.code=code.fromString(val)
|
||||
break;
|
||||
case "zpe":
|
||||
var vals=val.split(",")
|
||||
dat.ZPE=new method(vals[0],vals[1]);
|
||||
case "gs_method":
|
||||
dat.GS.method=method.fromString(val)
|
||||
break;
|
||||
case "gs_geom":
|
||||
dat.GS.geometry=method.fromString(val)
|
||||
break;
|
||||
case "es_code":
|
||||
dat.ES.code=code.fromString(val)
|
||||
break
|
||||
case "es_method":
|
||||
dat.ES.method=method.fromString(val)
|
||||
break;
|
||||
case "es_geom":
|
||||
dat.ES.geometry=method.fromString(val)
|
||||
break;
|
||||
case "zpe_code":
|
||||
dat.ZPE.code=code.fromString(val)
|
||||
break
|
||||
case "zpe_method":
|
||||
dat.ZPE.method=method.fromString(val)
|
||||
break;
|
||||
case "doi":
|
||||
dat.doi=new doi(val);
|
||||
@ -125,12 +157,13 @@ class data {
|
||||
}
|
||||
}
|
||||
function readrow(line){
|
||||
var vals=line.split(/\s+/);
|
||||
var geom=vals[3].split(",")
|
||||
var start=new state(parseInt(vals[0],10),parseInt(vals[1],10),vals[2], new geometry(geom[0],new method(geom[1],geom[2])));
|
||||
geom=vals[7].split(",")
|
||||
var end=new state(parseInt(vals[4],10),vals[5],vals[6], new geometry(geom[0],new method(geom[1],geom[2])));
|
||||
var ex=new excitation(start,end,parseFloat(vals[8],10));
|
||||
var vals=line.split(/\s+/);
|
||||
while (vals.length<8){
|
||||
vals.push(null);
|
||||
}
|
||||
var start=new state(parseInt(vals[0],10),parseInt(vals[1],10),vals[2]);
|
||||
var end=new state(parseInt(vals[3],10),vals[4],vals[5]);
|
||||
var ex=new excitation(start,end,parseFloat(vals[6],10),parseFloat(vals[7],10),parseFloat(vals[8],10));
|
||||
dat.excitations.push(ex);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user