Releases: RimuQMC/Rimu.jl
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)
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])