adcc
adcc copied to clipboard
Additional operator integrals and selection of gauge origin
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")
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?
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?
Probably the reference data (adcc ref, that is) need to be re-generated once #175 is merged because that affects the data as well.
@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.
- 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 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.
Maybe gauge_origin should rather be a tuple than a list?