Skip to content

Commit 81b7605

Browse files
committed
Parse basis sets from files
1 parent 2701691 commit 81b7605

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

src/parser.jl

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ function _getbasis_fromfile(atoms, basis)
8787
atomicnumbers = [atom.number for atom in atoms]
8888
elements = join(atomicnumbers, ",")
8989

90-
met = metaadata()
90+
met = metadata()
9191
imp = met[basis]["versions"]["1"]["file_relpath"]
9292
imp2 = JSON3.read("src/data/" * imp)
9393

@@ -97,7 +97,7 @@ function _getbasis_fromfile(atoms, basis)
9797
imp3 = JSON3.read("src/data/" * imp2["elements"]["$(atom.number)"])
9898
imp4 = imp3["elements"]["$(atom.number)"]["components"]
9999
imp5 = JSON3.read("src/data/" * imp4[1])
100-
push!(data, imp5)
100+
push!(data, imp5["elements"]["$(atom.number)"])
101101
end
102102

103103
return data
@@ -197,3 +197,38 @@ function parsebasis(molecule, basisset)
197197

198198
return basis
199199
end
200+
201+
function parsebasis_fromfile(molecule, basisset)
202+
atoms = getatoms(molecule)
203+
data = _getbasis_fromfile(atoms, basisset)
204+
205+
basis = GaussianBasisSet[]
206+
207+
for (i, atom) in enumerate(atoms)
208+
for shell in data[i]["electron_shells"]
209+
for (index, ℓ) in enumerate(shell["angular_momentum"])
210+
for momentum in _angularmomentum(ℓ)
211+
α = hcat(parse.(Float64, shell["exponents"])...)
212+
d = hcat(parse.(Float64, shell["coefficients"][index])...)
213+
= momentum[1]
214+
m = momentum[2]
215+
n = momentum[3]
216+
push!(basis,
217+
GaussianBasisSet(
218+
atom.coords,
219+
α,
220+
d,
221+
normalization.(α, ℓ, m, n),
222+
length(α),
223+
ℓ,
224+
m,
225+
n
226+
)
227+
)
228+
end
229+
end
230+
end
231+
end
232+
233+
return basis
234+
end

0 commit comments

Comments
 (0)