adcc icon indicating copy to clipboard operation
adcc copied to clipboard

Additional operator integrals and selection of gauge origin

Open frieschneider opened this issue 2 years ago • 1 comments

Operator integrals: For the pyscf backend I added additional operator integrals:

  • diamagnetic magnetizability
  • electric quadrupole
  • electric quadrupole traceless
  • selection of gauge origin (origin, mass_center, charge_center, [x,y,z])

and the

  • nuclear coordinates
  • number of atoms
  • nuclear masses
  • nuclear charges

as reference state properties.

The magnetic dipole moment operator integrals are zero for adc1 for linear molecules for the coordinate parallel to the main axis. I added to the conjugate solver to return "is zero" for this integral and exit.

Testing: test_properties_consistencty.py: I added the different gauge origins, which would require the addition of testdata.

test_properties.py I added the electric quadrupole, requires regenerating testdata and new testdata.

ToDo:

  • Testing
  • Zero integrals

Workflow: Selection of the gauge origin: state = adcc.adc1(scfres, n_states=1, gauge_origin="origin")

frieschneider avatar Aug 03 '23 07:08 frieschneider

The selection of the origin is now an argument of the respective property, i.e. state.reference_state.operators.magnetic_dipole('mass_center').

I changed the tests so that I can reproduce some reference data I previously generated. However, I think my tests and how I generated this reference data can still be improved. (So far I still need to change the generation of the reference data for the new implementation. )

Thus, @apapapostolou , @Drrehn , @maxscheurer maybe we should talk about how I should generate reference data and how to change the tests?

frieschneider avatar Sep 19 '24 12:09 frieschneider

Concerning the new tests:

I updated the test and in order to do that I also needed to generate new hf data with pyscf. I adapted the dump_pyscf.py script (from the submodule adcc-testdata).

You can find the modified file in my HeiBox: https://heibox.uni-heidelberg.de/d/7d2e9c3c6dbc4f8eb217/

I needed to regenerate new adcc reference data, I changed the file generate_adcc_reference.py, however, this changed file can be found in this pull request.

The new reference files can be generated with the provided scripts. Should I add the updated reference data to the HeiBox as well?

frieschneider avatar Oct 18 '24 12:10 frieschneider

Probably the reference data (adcc ref, that is) need to be re-generated once #175 is merged because that affects the data as well.

maxscheurer avatar Oct 18 '24 14:10 maxscheurer

@frieschneider #175 has been merged. You can now regenerate the reference data and then make it available to me so that I can upload it.

apapapostolou avatar Oct 23 '24 12:10 apapapostolou

  • I implemented the nuclear quadrupole moments with the help of @apapapostolou and @jonasleitner.
  • I needed to adapt the old hfdata for the tests because with the newly generated hfdata some atd tests failed (the same problem which was as already mentioned in PR #158 )
  • I will share the new reference data with @apapapostolou

frieschneider avatar Oct 25 '24 15:10 frieschneider

@frieschneider I uploaded the reference data to https://wwwagdreuw.iwr.uni-heidelberg.de/adcc_test_data/0.7.0/ for you. You need to change the URL accordingly and also adapt the SHA256SUMS file.

apapapostolou avatar Oct 28 '24 17:10 apapapostolou

Maybe gauge_origin should rather be a tuple than a list?

apapapostolou avatar Mar 07 '25 15:03 apapapostolou