Releases: pablosanjose/Quantica.jl
v1.1.0
Changes since v1.0.1
New features
current(h::AbstractHamiltonian; direction = 1)
returns the currentOperator
along a givendirection
(#227)OrbitalSliceArray
s andCellSites
: indexing has been improved (#234, #245, #271, #277, #280)GreenSolvers.Spectrum
(#240)densitymatrix
observable (#241)omegamap
option injosephson
observable, to allow parameters to act as frequency (#247)- Non-spatial models. These allow, in particular, to implement self-consistent mean field Hamiltonians (#248)
- Support for Wannier90 imports (#261, #264)
attach
now allows atransform
keyword in its most general method (#263)- Partial evaluation of
g::GreenFunction
s withg(; params)
(#270) combine
now works also withParametricHamiltonian
s andParametricModel
s as couplings (#278)
Fixes and improvements
- Faster bands when using multithreaded julia (#226)
- 32bit support for GreenSolvers (#238)
- Plotting improvements (#249, #251, #255, #258, #272, #273)
- Bugfixes in
GreenSolvers.Bands
(#253, #259) - Bugfix when using a function to constrain
cells
ordcells
in a selector (#254) - Fix to avoid an unnecessary performance drop when computing a
spectrum
in newer Julia versions (#260) - Bugfixes to subtle aliasing problems (#269)
- Generalize macros to parse e.g.
@onsite(o -> 2o, sublats = :A)
, not only@onsite(o -> 2o; sublats = :A)
(#275)
Breaking changes
- rename
wrap
totorus
due to a future name collision withBase
(#237)
v1.0.1
Changes since v1.0.0:
- Optimization of plots with variable sitesize which also allowed some code cleanup: #217, #218
- Threading in bands had a series of bugs that could lead to wrong results or even a segfault: #219
- Introduction of qplotdefaults: #220, #223
- qplot matrix shader bugfix: #221
- embarrassing fix to an old core function foreach_cell that could end prematurely: #222
v1.0.0
Version v1.0.0
This marks the completion of the rewrite described in #190. The list of changes relative to v0.5 is too extensive. Relative to v0.6.1 the most important changes are
- Introduction of diagonal as indices GreenFunctions to obtain only their diagonal
- GreenSolvers.Bands as a new solver for any lattice dimension L>0
- Completed tutorial and docstrings
I expect a period of bugfixes and associated minor point releases. After that additional features and optimizations (e.g precompilation directives or new solver fastpaths) should gradually follow.
If you use Quantica.jl, I would appreciate if you could open issues for any problems/bugs/annoyances that you encounter. Thanks!
v0.6.1
Bugfix release with a more complete manual. It is still missing the GreenFunction section, though.
v0.6.0
This is a full rewrite of Quantica.jl, see #198, and a breaking change. The highlights
- Syntax changes:
unitcell
->supercell
,bandstructure
->bands
,parametric
->hamiltonian
,transform(f, h)
->transform(h, f)
... and possibly more. - New features: Quite a few. Check the new manual (work in progress) and doctrings
Once this is tried and tested for a bit it will become v1.0
v0.5.1
This includes only a compat bound change, nothing relevant. I'm doing it to test reproducibility with some published Manifest.toml. Consider it equivalent to v0.5.0.
v0.5.0
This release includes PR from #110 to #161. The highlights are:
- Wavefunction, currents, density plotting with VegaLite and other vlplot enhancements: #110, #111, #116, #126, #128, #138, #139, #140, #141, #152
- Unflatten to restore orbital structure in matrices, vectors, subspaces...: #112, #161, #147
- Can do algebra with Hamiltonians (sum, linear combinations...): #113
- Can do boolean combinations of
RegionPresets
: #129 - Fixes to
unitcell
: #117 (still needs some more) - Much better handling of degeneracies in bandstructures, including topological defects as Dirac points: #124, #119, #125, #127, #145
- Dangling bond removal with mincoordination: #131, #133
- Remove invalidations for faster compilation: #132
- Indexing into bandstructure gives interpolated eigenpairs: #134
- Add Hexagonal Closed Packing lattice preset: #157
- Implement the deflated Schur algorithm for quasi1D Green functions: #161
v0.4.0
The main new features/fixes of v0.4.0 are:
- Extended
SiteSelector
s to allow specifyingindices
and exclusions (not
): #84, #97 - The
range
inHopSelector
can now be an interval, and defaults to nearest neightbor distance: #87, #88, #89 - Introduced
KetModel
s, based onSiteSelector
s for use in KPM: #80, #99 - Reworked unitcell/supercell functionality to integrate with
SiteSelector
s: #79, #98 - Fixed
wrap
: #81 - Ability to change lattices with
lattice(lat; kw...)
(e.g. change Bravais vectors): #94, #95 similarmatrix(h, flatten)
now allocates a flattened version ofh
's matrix forbloch!
: #106- Removed need to
optimize!
Hamiltonians: #106 - Maintenance and improvements of plot backends: #90, #91, #96, #102, #108, #109
- Overhauled bandstructure functionality (DualNumbers, parametric mappings, linecuts, isometric transforms...): #100, #101, #107
v0.3.0
Apart from various fixes, the main new features of v0.3.0 are
bloch!
can now flatten a Bloch Hamiltonian with non-scalar eltype on the fly (#49)- Bandstructure cuts have been overhauled, and can now also be applied to the mixed Brillouin/parameter space of
ParametricHamiltonian
s, or along lines connecting points usinglinearmesh
(#52, #70) - Bandstructure energies can now be
transform!
-ed (#58) - VegaLite support to plot Hamiltonians and 1D bandstructures (#56, #57)
- Broken KPM methods were fixed and now use multithreading in Julia version 1.5+ (#68, #72)
- Automatic bandrangeKPM with non-scalar eltypes using the
flatten
/bloch!
machinery (#71)
v0.2.0
This version corrects some bugs and adds new functionality respect to v0.1.0. The main additions are:
- Unified sublats syntax
:A => :B
(#29) - Boolean mask operators between superlattices (#34)
- Removed
forcehermitian
in favor of an explicitplusadjoint
inhopping
(#38) - Possibility to specify a
seed
to start filling a region inunitcell
/supercell
(#39) RegionPresets
now admit a center argument (#39)- Reexport
SA
from StaticArrays (#41)