Wavefunction for a monoatomic molecule

I’d like to calculate energy, homo, lumo, etc, of a monoatomic molecule such as Ar Xe Ne… So I’d like to get a wavefunction for them, Is it possible ?

When doing the following, I got error, please advice me.

energy, wf = psi4.optimize(level, molecule=monoatomic_molecule, return_wfn=True)

ValueError: not enough values to unpack (expected 2, got 0)

Thanks for the bug report. I’ve added this to the list.

In the meantime, use psi4.energy rather than psi4.optimize for single-atom molecules.

Thanks for the comment.
by the way. psi4.energy is available for HOMO, LUMO, etc?

No, psi4.homo and psi4.lumo do not exist.

Whatever procedure you use to get the energy from psi4.optimize will work with psi4.energy. Probably, you’re setting return_wfn=True and reading the orbital energies from the wavefunction object.

Thanks for the additional your reply.
Yes, I use wavefunction.

I wait bug fix!

Accordig to the discussion here Single-Atom Optimization Not Intercepted · Issue #2971 · psi4/psi4 · GitHub

Bug seems not to be critical, and it is just a printing issue,
So, I run the code to get energy, but, I met the error below
Is it actully possible to get a wavefunction from Ar moleclue?
Sorry for my beginner question.

if len(mol.GetAtoms())>1:
    psi4.optimize(level, molecule=molecule)
energy, wf = psi4.energy(level, molecule=molecule, return_wfn=True)
     RDKit          2D

  1  0  0  0  0  0  0  0  0  0999 V2000
    2.0000    0.0000    0.0000 Ar  0  0  0  0  0 15  0  0  0  0  0  0

mol_input = 0 1
 Ar 0.0 0.0 0.0
[16:55:49] UFFTYPER: Unrecognized atom type: Ar3+4 (0)
[16:55:49] SMILES Parse Error: syntax error while parsing: Ar
[16:55:49] SMILES Parse Error: Failed parsing SMILES 'Ar' for input: 'Ar'
ArgumentError                             Traceback (most recent call last)
File <timed exec>:91

ArgumentError: Python argument types in
did not match C++ signature:
    AddHs(RDKit::ROMol mol, bool explicitOnly=False, bool addCoords=False, boost::python::api::object onlyOnAtoms=None, bool addResidueInfo=False)

This error has nothing to do with Psi4. Go ask rdkit developers.

Sorry for this additional email. I successfully got a wave function of Ar.

But I have another question on wavefuntion I got.

With hf/sto-3g, psi4.energy() can not give me HOMO KUMO, etc, I got error as follows

energy, wf = psi4.energy(level, molecule=molecule, return_wfn=True)    
LUMO_idx = wf.nalpha()  
HOMO_idx = LUMO_idx - 1   
print(LUMO_idx, HOMO_idx) # 9, 8   
homo = wf.epsilon_a_subset("AO", "ALL").np[HOMO_idx]   
lumo = wf.epsilon_a_subset("AO", "ALL").np[LUMO_idx]   

[-117.26363060  -12.05489692   -9.30838973   -9.30838973   -9.30838973  
 -1.15443386   -0.49593635   -0.49593635   -0.49593635]
IndexError: index 9 is out of bounds for axis 0 with size 9

But, for instance, with mp2/6-31G(d)
I can get HOMO, LUMO values with above code

[-118.60045327  -12.31830051   -9.56950805   -9.56950805   -9.56950805
 -1.27470938   -0.58893903   -0.58893903   -0.58893903    0.60248449
 0.72598190    0.72598190    0.72598190    1.21780529    1.21780529
 1.21780529    1.21780529    1.21780529    4.87327189]

Why hf/sto-3g provides only 9 outputs, Where can I refere on this things?

Read any introductory quantum chemistry textbook that covers basis sets. This is a consequence of STO-3G being a minimal basis set.

Thank you for the comment.
I did not know taht the outputs are based on some theory on quantum chemistry.
I start to check some text book.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.