@@ -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
199199end
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