Releases: joachimbrand/Rimu.jl
v0.13.0
Rimu v0.13.0
Breaking changes
- Changes to the
AbstractHamiltonian
interface: The functionallowed_address_type
is removed and replaced by the functionallows_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 aReplicaStrategy
.AbstractOperator
is a supertype ofAbstractHamiltonian
and has a similar interface but doesn't requirestarting_address
.VectorInterface.scalartype
is defined forAbstractHamiltonian
andAbstractOperator
to define the underlying scalar type. In contrast,eltype
defines the type returned bydiagonal_element
,offdiagonals
, and the three-way dot product. This may be an array forAbstractOperator
only. ForAbstractHamiltonians
theetype
andscalartype
should be identical.- Attempting to use a complex Hamiltonian with
ProjectorMonteCarloProblem
throws an error. - The
SingleParticleExcitation
andTwoParticleExcitation
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:
- Extra boundary conditions (#265) (@Skuwar1)
- Fix the docstring of
BasisSetRepresentation
(#273) (@joachimbrand) - Feature/reduced density matrix (#276) (@Skuwar1)
- Observables (#278) (@joachimbrand)
- Fix
num_particles
forOccupationNumberFS
(#279) (@mtsch) - Reduce the number of collective MPI calls (#280) (@mtsch)
Closed issues:
v0.12.0
Rimu v0.12.0
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 forProjectorMonteCarloProblem
as the main entrance point
to perform an FCIQMC calculation. Methods forsolve
,solve!
,init
are implemented.
A report in form of aDataFrame
can be returned from a simulation but the column names have changed.ExactDiagonalizationProblem
together with the relevantsolve
method is a new access point for
exact diagonalization ofAbstractHamiltonian
s
See PR#248 for a more detailed description of the changes.
Other new features
LatticeGeometry
,PeriodicBoundaries
,HardwallBoundaries
andLadderBoundaries
replaced withCubicGrid
.- Observables with
eltype(op) <: AbstractArray
are now supported in bothdot
and for use inAllOverlaps
. - 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 manyShiftStrategy
s is deprecated in favor oftarget_walkers
FCIQMCRunStrategy
and its subtypeRunTillLastStep
are deprecated.
Breaking changes
LatticeGeometry
no longer exists,PeriodicBoundaries
,HardwallBoundaries
andLadderBoundaries
are no longer separate types. All user code should still run without modifications.- removed
TripleLogUpdate
lomc!
does not acceptAbstractMatrix
as argument- new default
style=IsDynamicSemistochastic()
fordefault_starting_vector
Merged pull requests:
- Solve interface 3 (#248) (@joachimbrand)
- Exact diagonalization problem (#251) (@joachimbrand)
- Rework Geometry, add new G2 correlator (#254) (@mtsch)
- Bump julia-actions/cache from 1 to 2 (#256) (@dependabot[bot])
- Allow computing estimators directly on a PMCSimulation (#257) (@mtsch)
- Feature/rework mpi example (#258) (@joachimbrand)
- New communication strategy: AllToAll (#260) (@mtsch)
- CompatHelper: bump compat for KrylovKit in [weakdeps] to 0.8, (keep existing compat) (#267) (@github-actions[bot])
- Breaking changes before v1.0 release (#268) (@joachimbrand)
- Make it easier to run continuation runs (#272) (@mtsch)
v0.11.2
Rimu v0.11.2
Non-breaking release with a new feature and a number of bug fixes and enhancements.
New features
- New observable
ParticleNumberOperator
#255
Bug fixes
- Avoid
NaN
s in harmonic oscillator Hamiltonians working around a bug inHypergeometricFunctions.jl
#253
Other changes
Merged pull requests:
- Use explicit imports (#249) (@joachimbrand)
- Bump julia-actions/setup-julia from 1 to 2 (#250) (@dependabot[bot])
- Tweak the CI setup for MPI tests (#252) (@mtsch)
- bugfix: dodge
NaN
in 3F2 (#253) (@christofbradly) - ParticleNumberOperator (#255) (@joachimbrand)
v0.11.1
Rimu v0.11.1
Non-breaking release with one major new feature and a number of bug fixes and enhancements.
New features
- New
AbstractHamiltonian
modelFroehlichPolaron
#237
Changed behaviour
dimension
works separately on address types andAbstractHamiltonian
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:
- FroehlichPolaron Hamiltonian (#237) (@joachimbrand)
- Example script polishing (#239) (@mtsch)
- Use caching in GH actions (#240) (@mtsch)
- Bump peter-evans/find-comment from 1 to 3 (#241) (@dependabot[bot])
- Bump peter-evans/create-or-update-comment from 1 to 4 (#242) (@dependabot[bot])
- Fix bug in dimension (#243) (@joachimbrand)
- rework dimension (#244) (@joachimbrand)
- Skip docs and benchmarks on dependabot PRs (#245) (@mtsch)
- Dependabot benchmark and doc ignores, reorganize what action is run when (#246) (@mtsch)
v0.11.0
Rimu v0.11.0
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
andStringCorrelator
for 1D Hubbard chains #227
Changed behaviour
- Fock states can be constructed by passing occupation numbers directly into constructors for
BoseFS
,FermiFS
, andOccupationNumberFS
#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) withm
modes, but is now interpreted as a state withm
particles in a single mode. UseBoseFS(m::Integer, 1=>0)
to construct the vacuum state withm
modes.
Merged pull requests:
- Fix bug with
single_particle_density
, integer vectors andCompositeFS
(#225) (@mtsch) - Fix formula in
HubbardRealSpace
documentation (#226) (@mtsch) - SuperfluidCorrelator and StringCorrelator (#227) (@rohan-kumar-uoa)
- fix docstring of lomc! (#228) (@joachimbrand)
- Minor fix in
RimuIO.load_df
andbose_hubbard_interaction
docstrings (#229) (@yangmr04) - Fix probability in Bernoulli spawning (#233) (@mtsch)
- Number non-conserving Fock states (#234) (@joachimbrand)
- Fix failing benchmarks (#235) (@mtsch)
- Service update: Initiators (#236) (@joachimbrand)
Closed issues:
v0.10.2
Rimu v0.10.2
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 shiftthreading
(reinstated) - controls parallelism and is used for initial starting vectorshift
(new) - initial value of shiftdτ
(now documented) - initial time steptargetwalkers
(new) - target norm forDoubleLogUpdate
New functions
default_starting_vector
- the default starting vector forlomc!
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:
- Simplify lomc! arguments (#223) (@joachimbrand)
v0.10.1
Rimu v0.10.1
New feature
- Metadata is added to the report
DataFrame
bylomc!
(including custom user metadata). The metadata is also saved toArrow
files and transported by theload_df
andsave_df
functions.
Merged pull requests:
- Metadata support for reports (#222) (@joachimbrand)
v0.10.0
Rimu v0.10.0
Breaking changes:
- The
HOCartesianEnergyConserved
Hamiltonian renamed toHOCartesianContactInteractions
. Energy blocking in this Hamiltonian can now be disabled with theblock_by_level
keyword argument.
New features:
PDVec
: an alternative toDVec
that does most operations in a threaded and MPI-distributed fashion.DataFrame
s saved withsave_df
orReportToFile
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
fromKrylovKit
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
Rimu v0.9.0
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
withBoseFS
(#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
onFermiOccupiedModes
(#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
Rimu v0.8.1
Closed issues:
- Tests fail on Julia v1.8rc4 (#157)
Merged pull requests:
- Optimize sparse matrix construction, add option to select column based on their diagonal elements. (#156) (@mtsch)
- Feature/doc fix (#159) (@christofbradly)
- Feature/g2 example (#160) (@christofbradly)
- Fix #157, test on latest and nightly Julia (#162) (@mtsch)
Stoquastic
wrapper for Hamiltonians (#163) (@joachimbrand)- Fix maxlength reached error in allocation tests (#164) (@mtsch)
- Bugfix/momentum (#165) (@joachimbrand)
- add trap to
HubbardRealSpace
(#167) (@christofbradly) - remove example testing (#168) (@christofbradly)
- Bugfix/working memory (#170) (@joachimbrand)