Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updates and new methods associated with BandGraphs work (#49)
This merges work from the BandGraphs branch (bandpaths-data), that related directly to Crystalline. Mainly, this is involves a handful of new or revised features: - `remap_to_kstar`: obtain `lgirreps` at another k-point in the star of the original k-point (exported) - `conjugacy_relations`: obtain transformations between the settings of sub/supergroups (exported) - `can_intersect`: check whether two `AbstractVec` can intersect, for some values of their free parameters (not exported). New implementation is more robust than previous, e.g., allowing more generic kinds of intersections, and return more information about the intersection. There are small minor nits/improvements/fixes/extensions to existing functionality. ----- * wip: crawl and parse k-space connectivity data * WIP: BandGraphs work * progress on BandGraphs; working as a separate module - graph plotting via extension system * fixes to BandGraphsGraphMakie extension * holdover updates to BandBraphs stuff * aggregate updates to BandGraphs implementation; mostly groundwork but some physics and preliminary results also * use a proper prime unicode character for BandRep sitesym irrep labels (to be consistent with `mulliken`) * fix bug in chinese postman single-vertex handling * nits * add `cosets` function for computing a set of coset representatives * fix a bug in `rotation_axis_3d` that could cause failures on certain axis orientations * add `conjugacy_relations` - returns the set of possible transformations between sub or supergraphs, exploring all possible paths through the conjugacy classes and sub/supergraph structure * add a note about testing `BandRep` site-symmetry group labels; should probably be an issue * fix doctest syntax * more fixes to broken doctest * add careful subgroup checks to the weyl identification scheme, to exploit subgroup relations - this does quite an involved set of checks to carefully understand how a given irrep may be subduced into irreps of a subgroup; the tricky thing is to keep in mind that the subduction might involve a basis change (of the k-point, the little group operations; it may even impact the irreps of nonsymmorphic cases) - eventually, much of this should be factored out into separate methods since it is not specific to Weyl points - also adds some graph construction to visualize the relationships between base * comment-nit * fix typo for Y `LGIrrep`s of plane group 7 - bad copy-paste typo in `build/setup_2d_littlegroup_irreps_nonzymmorph.jl` that meant we had never actually recorded the Y-irreps of plane group 7 (p2mg) - update the irrep data for plane groups to fix this - update our calculated `BandRepSet`s for plane group 7 as well - fortunately, this omission does not change what is inferred about the possible symmetry-detectable topology in plane group 7: e.g., there are still no fragile phases detectable after the correction. * bump version to v0.5.2 * minor consistency and clarity nits to code; non-functional changes * make the free parameter of Δ in plane group 12 "u" rather than "v" for consistency with other plane group irreps * fix `compose(::SymOperation, ::KVec)` (fixes #57) * fix small typo in `littlegroup` * add `cosets` function for computing a set of coset representatives * more fixes to broken doctest * allow `KVec` and `RVec` to feature basic use of multiplication signs before free variables - this is in order to parse formats from Bilbao more correctly in general * update crawled 3D ½k-space connectivity data: `connectionsd(-tr).jld2` and `subductionsd(-tr).jld2` - this fixes issues for space groups 143, 147, 149, 150, 156, 157, 162, 164, 168, 174, 175, 177, 183, 187, 189, 191 where the parsed `KVec` was previously wrong (because Bilbao included a multiplication `*` sign in their **k**-vector listings for these groups, which we didn't parse correctly; we do now, cf. 03a9e315304c44085d508f4ddbc06913d4cd3954). - additionally, it seems that Bilbao has been updated to include several (for some ~151 groups in TR-invariant cases, e.g.,) additional monodromy-related points in their k-connectivity listings of nonsymmorphic groups; we now included these as well. * merge `_can_intersect` and `is_compatible` to `is_compatible` and return info about _how_ they are compatible - also make a bit more general * fix `compose(::SymOperation, ::KVec)` (fixes #57) * correct parsing & ensure roundtrippability of `KVec` and `RVec` for fractions in free part * move `is_compatible` to `/src/compability.jl` and rename it `can_intersect` - also various improvements to generality and type-stability; can now be used whole-sale. * fix rollback from accidental overriding merge * add `IrrepCollection` type to improve treatment (e.g., `show`) of collections of `AbstractIrrep`s - also improve associated `show` methods * update README.md * add an in-place `realify!` method working on `AbstractDict`s to simplify "adding" time-reversal to a dict of `LGIrrep`s - export `realify!` as well * fix a typo-bug in arithmetic (`+` & `-`) between `AbstractVector`s and `AbstractVec`s * implement (unexported) `remap_lgirreps_to_point_in_kstar`, which gives the computes the set of `LGIrrep`s associated with a point in the star of an input set of `LGIrrep`s - TODO: tests and docstring; only used in BandGraphs atm * leftover: use `realify!` in a spot * aggregate commit to `BandGraphs` utility: myriad changes, fixes, improvements, and new functionality * fixes after merge - fixes a few real bugs from merge, but mainly avoids a set of pointless differences with master branch * nit to nit * use the new `SymmetryVector` from Crystalline instead of old `SymVector` from BandGraphs * drop vendored copy of `eulerian` (now in Graphs.jl) * add fast-path checks for subset-sum checks - speeds up `solve_subset_sum_variant` dramatically for most cases - also improve how `Model` is instantiated, to save time on this * improve type-stability of loading subduction tables in `__init__` & fix two issues with BCS band-paths data - we now load a list of corrections into the tabulated band-paths data (corrections stored in `src/subduction-table-corrections.jl`) * BIG chunk of updates - this commits a large number of updates to the BandGraphs code; many aspects have received corrections, very aggressive performance optimizations (e.g., work-arrays), as well as algorithmic improvements (e.g., checks of articulation point), and many changes to the types - we also now do a much more general job of splitting degeneracies: in particular, we now allow splitting of degeneracies connected to non-nondegenerate nonmaximal irreps; this required multiset permutations. - the main point of entry at the moment is in `test/scan-separable-irreps.jl` * a nit to Crystalline's `test/calc_bandreps.jl`: special casing no longer needed (#59 has been resolved earlier) * aggregate updates to BandGraphs - correctness fixes - improvements to structs, paving way to recursive permutation walk work and for photonic band connectivity work - ahead of time/commit changes in preparation for changes/additions to Crystalline * implement functionality necessary to analyze photonic band graphs with singular zero-frequency content - adds a weak dep on PhotonicBandConnectivity.jl * implement a recursive approach to searching the space of graph permutations - this exploits the fact that every (appropriate, with some structural notions) induced subgraph is separable only if the original graph is * remove all code associated with BandGraphs.jl; moving to separate repo * add doc strings to new functionality and set Crystalline version to 0.6.8 * improve documentation of conjugacy_relations; previously had bugged jldoctest
- Loading branch information
cee7aa2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JuliaRegistrator register
cee7aa2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/122978
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: