Skip to content

Releases: joachimbrand/Rimu.jl

v0.13.0

13 Sep 03:22
7cb56f7
Compare
Choose a tag to compare

Rimu v0.13.0

Diff since v0.12.0

Breaking changes

  • Changes to the AbstractHamiltonian interface: The function allowed_address_type is removed and replaced by the function allows_address_type, which takes two arguments, an operator and a type and returns a boolean.

New features

  • AbstractOperator is a new abstract type that can be used for operators that are to be used as observables, e.g. for calculating their dot products in the context of a ReplicaStrategy. AbstractOperator is a supertype of AbstractHamiltonian and has a similar interface but doesn't require starting_address.
  • VectorInterface.scalartype is defined for AbstractHamiltonian and AbstractOperator to define the underlying scalar type. In contrast, eltype defines the type returned by diagonal_element, offdiagonals, and the three-way dot product. This may be an array for AbstractOperator only. For AbstractHamiltonians the etype and scalartype should be identical.
  • Attempting to use a complex Hamiltonian with ProjectorMonteCarloProblem throws an error.
  • The SingleParticleExcitation and TwoParticleExcitation operators, which can be used to compute reduced density matrices were added.
  • ExtendedHubbardReal1D now supports twisted boundary conditions and complex hopping strengths.
  • The number of MPI calls during a projector Monte Carlo run has been reduced.

Merged pull requests:

Closed issues:

  • Documentation: consistently denote Fock-space operators with hats (#230)
  • ERROR: UndefVarError: ProjectorMonteCarloProblem not defined (#259)
  • Documentation of releases is not properly saved (#266)

v0.12.0

10 Jul 08:04
26e1255
Compare
Choose a tag to compare

Rimu v0.12.0

Diff since v0.11.2

Breaking release with a major rework of the user interface.
This release is a transition step where a much of the old user interface
is still there an usable but deprecated. If you get warning messages using
your scripts with this release, please follow instructions and update
your script to be ready for the next breaking release.

New user interface

  • CommonSolve.solve is implemented for ProjectorMonteCarloProblem as the main entrance point
    to perform an FCIQMC calculation. Methods for solve, solve!, init are implemented.
    A report in form of a DataFrame can be returned from a simulation but the column names have changed.
  • ExactDiagonalizationProblem together with the relevant solve method is a new access point for
    exact diagonalization of AbstractHamiltonians

See PR#248 for a more detailed description of the changes.

Other new features

  • LatticeGeometry, PeriodicBoundaries, HardwallBoundaries and LadderBoundaries replaced with CubicGrid.
  • Observables with eltype(op) <: AbstractArray are now supported in both dot and for use in AllOverlaps.
  • New G2RealSpace operator, which is aware of the geometry and computes G_2 for all displacement vectors at the same time.

Deprecations

  • lomc!
  • targetwalkers as keyword argument to many ShiftStrategys is deprecated in favor of target_walkers
  • FCIQMCRunStrategy and its subtype RunTillLastStep are deprecated.

Breaking changes

  • LatticeGeometry no longer exists, PeriodicBoundaries, HardwallBoundaries and LadderBoundaries are no longer separate types. All user code should still run without modifications.
  • removed TripleLogUpdate
  • lomc! does not accept AbstractMatrix as argument
  • new default style=IsDynamicSemistochastic() for default_starting_vector

Merged pull requests:

v0.11.2

02 May 04:51
8c8b705
Compare
Choose a tag to compare

Rimu v0.11.2

Diff since v0.11.1

Non-breaking release with a new feature and a number of bug fixes and enhancements.

New features

  • New observable ParticleNumberOperator #255

Bug fixes

  • Avoid NaNs in harmonic oscillator Hamiltonians working around a bug in HypergeometricFunctions.jl #253

Other changes

  • tweaked CI setup for MPI tests #252
  • use explicit imports #249
  • bump julia-actions/setup-julia #250

Merged pull requests:

v0.11.1

29 Feb 23:04
Compare
Choose a tag to compare

Rimu v0.11.1

Diff since v0.11.0

Non-breaking release with one major new feature and a number of bug fixes and enhancements.

New features

  • New AbstractHamiltonian model FroehlichPolaron #237

Changed behaviour

  • dimension works separately on address types and AbstractHamiltonian instances
  • The AbstractHamiltonian interface definition (via the docstring) had some minor changes and clarification #244
  • example scripts were polished #239

Bug fixes

  • Testing of the AbstractHamiltonian interface was tightened; some minor bugs discovered and removed #244
  • dimension #243

Merged pull requests:

v0.11.0

19 Jan 04:54
Compare
Choose a tag to compare

Rimu v0.11.0

Diff since v0.10.2

A minor breaking release with mostly new functionality and minor changes in behaviour that are strictly breaking, but most old scripts should run without changes.

New features

  • Number non-conserving Fock state OccupationNumberFS #234
  • Observables SuperfluidCorrelator and StringCorrelator for 1D Hubbard chains #227

Changed behaviour

  • Fock states can be constructed by passing occupation numbers directly into constructors for BoseFS, FermiFS, and OccupationNumberFS #234
  • Rules related to the initiator method are now exported and can be passed into lomc! with a keyword argument #236

Bug fixes

  • in single_particle_density, #225
  • in BernoulliSpawning, #233
  • Benchmark tune file updated to work with latest package version

Breaking changes

  • BoseFS(m::Integer) was previously interpreted as the vacuum state (zero particles) with m modes, but is now interpreted as a state with m particles in a single mode. Use BoseFS(m::Integer, 1=>0) to construct the vacuum state with m modes.

Merged pull requests:

Closed issues:

  • Bug in single_particle_density with CompositeFS (#224)
  • Potential bug in Bernoulli spawning (#232)

v0.10.2

26 Nov 04:07
Compare
Choose a tag to compare

Rimu v0.10.2

Diff since v0.10.1

A non-breaking restructure of the keyword arguments for lomc!(). More parameters of an FCIQMC calculation can be passed directly as keyword arguments to lomc!() reducing the need to pre-construct the initial vector and strategy-type arguments.

The script BHM-example.jl is redone.

Changed and modified keyword argument to lomc!()

  • address (new) - used for starting vector and initial shift
  • threading (reinstated) - controls parallelism and is used for initial starting vector
  • shift (new) - initial value of shift
  • (now documented) - initial time step
  • targetwalkers (new) - target norm for DoubleLogUpdate

New functions

  • default_starting_vector - the default starting vector for lomc!

The keyword argument params::FciqmcRunStrategy is now obsolete (though still accepted). In practice it should now rarely be necessary to explicitly construct the starting vector v and the s_strat::ShiftStrategy=DoubleLogUpdate keyword argument.

Breaking changes

No breaking changes.

Merged pull requests:

v0.10.1

15 Nov 04:58
Compare
Choose a tag to compare

Rimu v0.10.1

Diff since v0.10.0

New feature

  • Metadata is added to the report DataFrame by lomc! (including custom user metadata). The metadata is also saved to Arrow files and transported by the load_df and save_df functions.

Merged pull requests:

v0.10.0

11 Nov 09:42
2825da8
Compare
Choose a tag to compare

Rimu v0.10.0

Diff since v0.9.0

Breaking changes:

  • The HOCartesianEnergyConserved Hamiltonian renamed to HOCartesianContactInteractions. Energy blocking in this Hamiltonian can now be disabled with the block_by_level keyword argument.

New features:

  • PDVec: an alternative to DVec that does most operations in a threaded and MPI-distributed fashion.
  • DataFrames saved with save_df or ReportToFile can now be compressed and will be compressed by default.
  • Addresses can now be written to and read from Arrow files.
  • The HOCartesianCentralImpurity Hamiltonian for particles in a harmonic trap with a delta potential in the middle.
  • HOCartesianEnergyConservedPerDim now uses a more numerically stable method of computing integrals.
  • eigsolve from KrylovKit now automatically determines whether a Hamiltonian is Hermitian or not.

Merged pull requests:

  • PDVec (#183) (@mtsch)
  • interaction strength for HO hamiltonians (#207) (@christofbradly)
  • remove Papenbrock/1d integral (#208) (@christofbradly)
  • HO 2boson relative (#209) (@christofbradly)
  • HO without blocking (#210) (@christofbradly)
  • Better benchmarks (#211) (@mtsch)
  • Compress DataFrames (#212) (@joachimbrand)
  • CompatHelper: bump compat for VectorInterface to 0.3, (keep existing compat) (#214) (@github-actions[bot])
  • CompatHelper: bump compat for VectorInterface to 0.4, (keep existing compat) (#215) (@github-actions[bot])
  • Add reading/writing addresses from arrow files (#216) (@mtsch)
  • Bugfix/doc errors (#217) (@christofbradly)
  • update coveralls action (#218) (@joachimbrand)
  • CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#219) (@github-actions[bot])
  • CompatHelper: add new compat entry for TOML at version 1, (keep existing compat) (#220) (@github-actions[bot])

v0.9.0

29 May 11:49
Compare
Choose a tag to compare

Rimu v0.9.0

Diff since v0.8.1

Closed issues:

  • Random numbers and threading (#158)
  • Incorrect info in lomc!() docstring (#172)
  • lomc! test randomly failing (#176)
  • Tests failing on Apple Silicon (#197)

Merged pull requests:

  • Exact diagonalisation example (#161) (@mtsch)
  • Make symmetries preserve LOStructures of Hamiltonians (#169) (@mtsch)
  • Sparse Addresses (#173) (@mtsch)
  • Bugfix/g2example tests (#174) (@christofbradly)
  • Make Hamiltonian constructor throw error when passed a type (#175) (@joachimbrand)
  • CompatHelper: bump compat for MPI to 0.20, (keep existing compat) (#177) (@github-actions[bot])
  • Spring cleaning part 1: Remove ConsistentRNG, silence StatsTools tests (#178) (@mtsch)
  • Spring cleaning part II: Clean up StochasticStyles (#180) (@mtsch)
  • Add fix for fold=false with BoseFS (#182) (@mtsch)
  • Clean up MPI testing (#184) (@joachimbrand)
  • Disable fail-fast in GH actions (#185) (@mtsch)
  • Remove threading (#186) (@mtsch)
  • Add an extension for using Rimu with KrylovKit (#187) (@mtsch)
  • PDVec with tuples (#188) (@mtsch)
  • Fix bug in dot on FermiOccupiedModes (#189) (@mtsch)
  • VectorInterface and other vector improvements (#191) (@mtsch)
  • get basis w/o sparse matrix (#192) (@christofbradly)
  • Change tolerance in ratio_of_means test (#193) (@mtsch)
  • Fix long compilation times when creating Fock addresses (#194) (@mtsch)
  • Fix equality for DVec (#195) (@mtsch)
  • Apple silicon workaround (#196) (@joachimbrand)
  • Implement FCIQMC as transition operator (#198) (@mtsch)
  • optional sizehint for building matrix (#199) (@christofbradly)
  • Harmonic oscillator in Cartesian basis (#200) (@christofbradly)
  • CompatHelper: bump compat for StatsBase to 0.34, (keep existing compat) (#201) (@github-actions[bot])
  • HO example (#202) (@christofbradly)
  • CompatHelper: add new compat entry for Combinatorics at version 1, (keep existing compat) (#203) (@github-actions[bot])
  • CompatHelper: add new compat entry for TupleTools at version 1, (keep existing compat) (#204) (@github-actions[bot])
  • CompatHelper: add new compat entry for HypergeometricFunctions at version 0.3, (keep existing compat) (#205) (@github-actions[bot])
  • Feature/dimension (#206) (@joachimbrand)

v0.8.1

18 Sep 22:55
2c8bca2
Compare
Choose a tag to compare

Rimu v0.8.1

Diff since v0.8.0

Closed issues:

  • Tests fail on Julia v1.8rc4 (#157)

Merged pull requests: