-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor of LatticeSlice and Contacts #234
Conversation
WIP contact_subcells_latslice & combine SiteLike + iterators selfenergy model fixed fixing site_to_orbs orbsdict -> cellorbsdict rename subcells to cellsdict sites_to_orbs_grouped cleanup working on inverse_green_mat fixed reordered_site_orbitals g runs small fix cleanup faspaths in sites_to_orbs_grouped fixing tests fixing tests fixing tests fixing tests fixing tests fixing tests fix tests fixing tests fixing orbranges/groups mess fix tests fix tests
Codecov ReportAttention:
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #234 +/- ##
==========================================
+ Coverage 92.40% 92.78% +0.37%
==========================================
Files 34 34
Lines 5477 5500 +23
==========================================
+ Hits 5061 5103 +42
+ Misses 416 397 -19 ☔ View full report in Codecov by Sentry. |
Mmm, so that was unexpected. The test failure on Linux was completely unrelated to the PR, but still worrying. It was produced by the The workaround is to call the wrapped eigensolver function once before exiting In any case, this is a completely unrelated issue, see #235 |
The use of Dictionaries.jl required some methods that were missing, but they have now been added to that repo (andyferris/Dictionaries.jl#130), and a release has been tagged, so we no longer need the workaround. |
This addresses the first part of the proposal in #232:
LatticeSlice
a general lattice slice object that can refer either to sites (SiteSlice
), orbitals (OrbitalSlice
), or orbitals grouped by sites (OrbitalSliceGrouped
)CellIndices
a general cell slice object that can also refer to either of the aboveLatticeSlice
organize its differentCellIndices
with aDictionary
for efficient iteration and accessSiteSlice
,OrbitalSlice
,OrbitalSliceGrouped
,CellSites
,CellOrbitals
, etc simply aliases of the above objectsOrbitalSliceArrays
by basingSelfEnergy
s,Contacts
,GreenFunctions
etc onOrbitalSliceGrouped
instead ofSiteSlice
s.The refactor has been far more tricky that expected, since it touches the internals of all Green solvers. The result, however, is a cleaner and conceptually clearer codebase, I think.
No new tests have been added for the moment, but some additional testing would be advisable.