Skip to content

Generalize OneParticleOperator to NParticleOperator and separate operators from densities#200

Merged
jonasleitner merged 26 commits intoadc-connect:masterfrom
frieschneider:2p_operators
Feb 1, 2026
Merged

Generalize OneParticleOperator to NParticleOperator and separate operators from densities#200
jonasleitner merged 26 commits intoadc-connect:masterfrom
frieschneider:2p_operators

Conversation

@frieschneider
Copy link
Contributor

The current OneParticleOperator class mixes up operators and densities:
the AO↔MO transformation implemented on the operator level is actually for the
density transformation (although it is used correctly).

For example, in Hartree–Fock (HF):

  • the Fock operator transforms as
    F_MO = C† F_AO C = ε

  • the HF density transforms as
    D_MO_HF = C† S D_AO_HF S C = n

where S is the overlap matrix and n is the matrix of orbital occupancies.

Thus, operators and densities in HF obey different AO↔MO transformation rules.
It therefore makes sense to explicitly distinguish between operators and densities
and to consistently choose the appropriate transformations, also for MP and ADC.

In addition, this separation allows the computation of trace products of arbitrary
operators and densities in both AO and MO representations, yielding basis-independent
results.

What was done

  • generalized OneParticleOperator to NParticleOperator
  • explicitly differentiated between operators and densities
  • explicitly included Hermitian and anti-Hermitian symmetries
  • infrastructure for TwoParticleOperators and TwoParticleDensities

@frieschneider frieschneider marked this pull request as ready for review January 21, 2026 14:31
@jonasleitner jonasleitner merged commit 40c22a9 into adc-connect:master Feb 1, 2026
8 checks passed
@frieschneider frieschneider deleted the 2p_operators branch February 2, 2026 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants