Closed gustavojra closed 3 years ago
:exclamation: No coverage uploaded for pull request base (
master@6c6275b
). Click here to learn what that means. The diff coverage isn/a
.
@@ Coverage Diff @@
## master #61 +/- ##
=========================================
Coverage ? 24.46%
=========================================
Files ? 35
Lines ? 1680
Branches ? 0
=========================================
Hits ? 411
Misses ? 1269
Partials ? 0
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 6c6275b...c2005ac. Read the comment docs.
TBLIS.jl
has been integrated toTensorOperations.jl
through the newly createdFermiMDArray
which stands for a dense array held in memory. This thin wrap allowed me to dispatch dynamically tensor contracting according to the desired tool (BLAS or TBLIS). This is controlled by the optiontblis
.Options.jl
were completely modified. First, it is a module now that holds two dictionaries:Fermi.Options.Current
andFermi.Options.Default
.Current
is empty from the beginning (no longer a copy ofDefault
). New keys are added as keywords are changed. However, changing these dictionaries must be done by handling functions:Fermi.Options.get
: Retuns a keyword. It checks first if exists inCurrent
if not it falls back toDefault
.Fermi.Options.set
: Set an options to the desired value. That is, it creates a key intoCurrent
. Two important checks are made. First, the key must exist inDefault
(we had that before), and second (new) it checks if the type of the value to be assigned to the key is the correct one (again it must matchDefault
).Fermi.Options.reset
: Reset a keyword by deleting it inCurrent
.The macros we had before are still there, but now they simply create shortcuts to these functions, which should be less fragile. In particular,
@set
works with local variables.Output.jl
is no longer a module. It basically just exports the functionoutput
. The macro@output
is dead. Since we mainly use it inside the code (not terminal user level that is) I prefer functions! However, this comes with an advantage. Now we can dynamically check what type of printing the user wants: stdout, both, file, none...The
IntegralHelper
was reformulated to incorporate information regarding precision and orbitals. Among theAbstractOrbitals
subtype isAtomicOrbitals
which is a singleton used to flag integrals in atomic basis. Moreover, a third parametric type that indicates if density fitting was used for ERIs is also present. Now methods that use DF or specific types of orbitals can take advantage of the information stored in such way.Other modifications are clean-ups and documentations.