FermiQC / Fermi.jl

Fermi quantum chemistry program
MIT License
134 stars 24 forks source link

Gradient macro for general finite differences and analytic RHF gradients #129

Closed hfmull closed 2 years ago

hfmull commented 2 years ago

This adds the macro @gradient which functions similarly to @energy. It calls gradient methods specific to each energy method which currently only does finite differences except for RHF gradients which have analytic methods. However, the file structure is in place to easily add new analytic methods in future commits. Reference test data was gathered using Psi4.

hfmull commented 2 years ago

my tests are passing locally so I will have to figure out what the issue is after we get back

gustavojra commented 2 years ago

@hfmull it's not your code itself, it's the dependencies.

codecov[bot] commented 2 years ago

Codecov Report

Merging #129 (a86b704) into master (a2468af) will increase coverage by 3.43%. The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master     #129      +/-   ##
==========================================
+ Coverage   72.42%   75.85%   +3.43%     
==========================================
  Files          44       50       +6     
  Lines        3198     3293      +95     
==========================================
+ Hits         2316     2498     +182     
+ Misses        882      795      -87     
Impacted Files Coverage Δ
src/Core/Options.jl 100.00% <ø> (ø)
src/Fermi.jl 100.00% <ø> (ø)
...Cluster/PerturbativeTriples/PerturbativeTriples.jl 48.00% <ø> (ø)
.../Methods/CoupledCluster/PerturbativeTriples/abc.jl 0.00% <0.00%> (ø)
...Methods/CoupledCluster/PerturbativeTriples/ijk2.jl 0.00% <0.00%> (ø)
src/Methods/CoupledCluster/RCCSD/RCCSD.jl 39.13% <ø> (ø)
src/Methods/HartreeFock/UHF/UHF.jl 32.14% <ø> (ø)
src/Methods/MollerPlesset/RMP2/RMP2.jl 36.00% <ø> (ø)
...ethods/CoupledCluster/RCCSD/Gradients/RCCSDgrad.jl 55.55% <55.55%> (ø)
src/Tools/FiniteDifferences.jl 28.37% <70.00%> (+28.37%) :arrow_up:
... and 14 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update a2468af...a86b704. Read the comment docs.

hfmull commented 2 years ago

The lack of patch coverage is mostly due to the gradient functions for methods other than RHF that call the finite differences function. It was tested with RHF, and repeating it with other methods would mostly just retest the energy methods its calling.