adcc icon indicating copy to clipboard operation
adcc copied to clipboard

How to obtain the one-particle density matrix of the MP ground state

Open Edumars opened this issue 4 years ago • 2 comments

Hi Michael & Maximilian, I wonder if there is a way to extract information about the ground state from the ADCC code, specifically the reduced density matrix corresponding to the reference ground state.

If the second order Møller-Plesset can be considered the ground state for an ADC(2) excited state calculation, another possibility could be requesting an MP2 calculation from the host program. Please advise. Thanks a lot

Edumars avatar Apr 21 '21 08:04 Edumars

What do you mean by "reduced density matrix"? You can get the MP2 one-particle density in the AO or MO representation if that's what you are after.

That can be done by ground_state.density(), which returns a OneParticleOperator that you can convert to a numpy array or convent to the AO basis and return as a numpy array (like a transition or state density).

In this ground_state is the LazyMp object contained in the state or which you can construct from your host program solution via LazyMp(scfres), where scfres is the host program solution you would otherwise pass to the adcc.adcN function.

mfherbst avatar Apr 21 '21 09:04 mfherbst

I would also like to point out that there are different theoretical approaches to evaluate a one-particle density matrix for MP2, i.e., unrelaxed, relaxed, and expectation value. adcc implements the expectation value approach, also for excited state densities. For further details on the similarities and differences of the Lagrangian and expectation-value-based schemes I recommend this publication.

maxscheurer avatar Apr 21 '21 10:04 maxscheurer