Skip to content

Releases: pablosanjose/Quantica.jl

Release v1.2.0

06 Feb 15:56
9f1d6fd
Compare
Choose a tag to compare

Changes since v1.1.0

Fixes

  • Fixed some rare band artifacts (#284)
  • Fixed bug in reverse (#285)
  • Various plot fixes and updates (#273, #288, #290)
  • Remove unnecessary intermediary copies (#292, #333)
  • Fixed bug in supercell with mincoordination (#296)
  • Fixed bugs in combine (#305, #313)
  • Fixed bug when computing the adjoint of parametric models (#312)
  • Fixed aliasing bugs (#319, #321)
  • Fixed subtle bug due to type-piracy (#328)

New features

  • Unexported Quantica.retarded_eigvals and Quantica.decay_lengths functions for 1D AbstractHamiltonians (#289)
  • Unexported Quantica.gap and Quantica.gaps for 1D AbstractHamiltonians (#294, #324)
  • We can now use a fast solver, based on the Generalized Schur algorithm and adaptive numerical integration, to compute the density matrix in 1D and 2D systems (#291, #332)
  • Serializers/Deserializers for AbstractHamiltonians and OrbitalSliceArrays (#299, #301, #302)
  • Made josephson computation more flexible (#306, #307, #309, #310)
  • Made densitymatrix computations more powerful (#311)
  • Generalized integration paths for josephson and densitymatrix. New Paths submodule (#325, #330)
  • New meanfield: efficient and general Hartree-Fock-Bogoliubov mean fields (#316, #323, #326)
  • Introduced sitepairs as a more general sparse indexer for GreenFunctions, a kind of "hopping" complement to diagonal (#315)

Refactors

  • Did a major rewrite of the indexing machinery for GreenFunctions, to allow for new features, such as general sparse indexing (#315)

Breaking changes

  • Converted EigenSolvers into extensions. The relevant libraries have to be imported before the corresponding solvers can be used (#298)
  • Renamed torus to stitch, and introduced a parametric @stitch (#331, #334)

v1.1.0

25 Apr 16:11
ce5f2a8
Compare
Choose a tag to compare

Changes since v1.0.1

New features

  • current(h::AbstractHamiltonian; direction = 1) returns the current Operator along a given direction (#227)
  • OrbitalSliceArrays and CellSites: indexing has been improved (#234, #245, #271, #277, #280)
  • GreenSolvers.Spectrum (#240)
  • densitymatrix observable (#241)
  • omegamap option in josephson 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 a transform keyword in its most general method (#263)
  • Partial evaluation of g::GreenFunctions with g(; params) (#270)
  • combine now works also with ParametricHamiltonians and ParametricModels 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 or dcells 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 to torus due to a future name collision with Base (#237)

v1.0.1

22 Oct 20:26
Compare
Choose a tag to compare

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

23 Jan 07:35
Compare
Choose a tag to compare

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

28 Jun 16:38
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

Bugfix release with a more complete manual. It is still missing the GreenFunction section, though.

v0.6.0

09 Jun 11:44
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

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

21 Sep 14:51
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

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

14 May 18:00
6118d1a
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

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

02 Oct 18:15
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

The main new features/fixes of v0.4.0 are:

  • Extended SiteSelectors to allow specifying indices and exclusions (not): #84, #97
  • The range in HopSelector can now be an interval, and defaults to nearest neightbor distance: #87, #88, #89
  • Introduced KetModels, based on SiteSelectors for use in KPM: #80, #99
  • Reworked unitcell/supercell functionality to integrate with SiteSelectors: #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 of h's matrix for bloch!: #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

18 Jun 14:15
2152d2f
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

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 ParametricHamiltonians, or along lines connecting points using linearmesh (#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)