mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-25 13:53:48 +01:00
Use ChemDoodle to read geometries
This commit is contained in:
parent
54d883e64b
commit
5008110f99
@ -228,6 +228,34 @@ class dataFileBase {
|
||||
//metadata RegExp (start with #; maybe somme spaces; : ; maybe somme space; datas)
|
||||
return /^#\s*([A-Za-z_]+)\s*:\s*(.*)$/;
|
||||
}
|
||||
async getGeometryAsync(state = null) {
|
||||
var text = await getTextFromFileUrlAsync(`/data/structures/${this.set.name.replace("#", "")}/${this.molecule.toLowerCase()}.xyz`)
|
||||
var lines = text.split("\n")
|
||||
var indexes = lines.findAllIndexes((line) => {
|
||||
return line.match(/^\d+$/)
|
||||
})
|
||||
indexes.push(lines.length)
|
||||
var molsstr = []
|
||||
for (let i = 0; i < indexes.length - 1; i++) {
|
||||
molsstr.push(lines.slice(indexes[i], indexes[i + 1]).join('\n'))
|
||||
}
|
||||
molsstr.filter((molstr) => {
|
||||
var params = molstr.split("\n")[1].split(",")
|
||||
return (state === null || params[0] === `^${state.multiplicity}${state.symetry}`) && params[1] == `${this.method.name},${this.method.basis}`
|
||||
})
|
||||
return molsstr.map((molstr) => {
|
||||
var params = molstr.split("\n")[1].split(",")
|
||||
var regex=/^\^(\d+)(.+)$/
|
||||
var m=params[0].match(regex)
|
||||
return {
|
||||
name: this.molecule,
|
||||
multiplicity:m[1],
|
||||
symmetry:m[2],
|
||||
method:this.geometry,
|
||||
geometry:ChemDoodle.readXYZ(molstr)
|
||||
}
|
||||
})
|
||||
}
|
||||
CopyExcitationsTypeFrom(data) {
|
||||
for (const ex of this.excitations) {
|
||||
const ex2 = data.excitations.find((e) => {
|
||||
|
Loading…
Reference in New Issue
Block a user