Releases: RimuQMC/Rimu.jl
v0.14.1
Rimu v0.14.1
Interface changes
- The Interface for
AbstractHamiltonian
andAbstractOperator
are changing and will require anoperator_column
in future. The old interface is still supported for now #317
New features
- The `AbstractHamiltonian
- The function
growth_estimator_analysis
now allows passingtime_step
as a keyword argument - New functions
save_state
andload_state
allow savingDVec
s andPDVec
s #298, these can includeOccupationNumberFS
#307 - Convenient constructors for
OccupationNumberFS
#308 AllOverlaps
is available for excited states #302BasisSetRepresentation
now works on anyAbstractOperator
#311- Matrix free exact diagonalisation refactored and much improved.
LinearMap
fromLinearMaps.jl
implemented forAbstractOperators
; used inExactDiagonalizationProblem
#306 - Complex-valued operators are now fully supported in
ProjectorMonteCarloProblem
#313, #315 ExtendedHubbardReal1D
now supports power-law interactions #319
Discontinued features
save_dvec
was already broken due to BSON.jl dependency #298
Bug fixes
growth_witness
now acceptstime_step
as a keyword argument.- Bugs in
OccupationNumberFS
#307 , #308 momentum_cutoff
was not correctly implemented inFroehlichPolaron
#316
Merged pull requests:
- Saving/loading vectors (#298) (@mtsch)
- AllOverlaps for Excited States (#302) (@jamie-tay)
- Allow passing
time_step
to StatsTools functions (#303) (@mtsch) - CompatHelper: bump compat for KrylovKit in [weakdeps] to 0.9, (keep existing compat) (#304) (@github-actions[bot])
- Better exact diagonalisation (#306) (@mtsch)
- allow saving/loading
OccupationNumberFS
(#307) (@mtsch) - Vacuum constructors for
OccupationNumberFS
(#308) (@joachimbrand) - Import CompressionStrategy interface explicitly (#309) (@lch)
- Allow any operator in BasisSetRep (#311) (@mtsch)
- Complex Hamiltonians and Walkers (#313) (@jamie-tay)
- Fix check for starting vectors with a complex Hamiltonian (#315) (@jamie-tay)
- Bugfix: momentum_cutoff in FrohlichPolaron (#316) (@joachimbrand)
- Operator Column (#317) (@jamie-tay)
- Feacture/extended range interaction (#319) (@Skuwar1)
- Fix interface tests (#324) (@jamie-tay)
Closed issues:
- Saving
DVec
s and restarting long calculations from file (#213)
v0.14.0
Rimu v0.14.0
Breaking changes
- IDs for replicas and spectral states are swapped: replica ids defining
the row in the matrix ofstate_vectors
now are appended first and
spectral ids second. If there is only a single replica, or a single
spectral state, the respective ids are ommitted. - Remove
BoseFS2C
,BoseHubbardMom1D2C
,BoseHubbardReal1D2C
. These models were moved to another package, see RimuLegacyHamiltonians.jl MPIData
was removed - usePDVec
instead.- The submodule
Rimu.RMPI
was removed. The relevant remaining functions are exported at top level.
New features
- new module
Rimu.InterfaceTests
with functions test_observable_interface
test_operator_interface
test_hamiltonian_interface
test_hamiltonian_structure
ReducedDensityMatrix
build_basis
is faster (using threading) and can work on address type
Deprecations
- in keyword arguments to
ProjectorMonteCarloProblem
maxlength
deprecated, replaced bymax_length
walltime
deprecated, replaced bywalltime
lomc!
now prints a deprecation warning
Internal changes
- fix random seeding of tests
- Documentation rework and docstring changes
- remove
lomc!
from most tests
Bug fixes
- normalisation in
single_particle_density
Merged pull requests:
- Excited states (#269) (@jamie-tay)
- Remove MPIData (#270) (@mtsch)
- Fast basis (#287) (@mtsch)
- Feature/reduced density matrix (#289) (@Skuwar1)
- Improve performance of ReducedDensityMatrix (#292) (@mtsch)
- CompatHelper: bump compat for VectorInterface to 0.5, (keep existing compat) (#294) (@github-actions[bot])
- Reduce allocations in
ReducedDensityMatrix
(#295) (@joachimbrand) - Update behind commits (#296) (@Skuwar1)
- Move docs to RimuQMC (#297) (@mtsch)
- Interface tests - remove two component models (#299) (@joachimbrand)
- Fix normalisation in
single_particle_density
(#300) (@mtsch) - Consistently apply snake_case (#301) (@joachimbrand)
v0.13.1
Rimu v0.13.1
New features
ExtendedHubbardMom1D
, new Hamiltonian- Momentum-space Hubbard Hamiltonians accept a complex hopping parameter:
HubbardMom1D
,HubbardMom1DEP
AbstractObservable
, new less restrictive supertype forAbstractHamiltonian
andAbstractObservable
Bug fixes
See list of merged PRs.
Merged pull requests:
- Fix offdiagonals in two particle density matrix (#281) (@mtsch)
- Fix type instability in
Displacements
(#282) (@mtsch) - Feature/dispersion in mom space (#283) (@Skuwar1)
- Fix
UndefVarError
when setting initial shift as vector (#284) (@mtsch) - Feature/ExtendedHubbardMom1D (#286) (@Skuwar1)
- remove spurious bracket from
show(RatioBlockingResult)
(#288) (@christofbradly) AbstractObservable
supertype (#291) (@joachimbrand)
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)