-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Breaking changes before v1.0 release (#268)
* rename df.steps to df.step * rename :dτ to :time_step in report/DataFrame * rename update_dτ to update_time_step * rename :targetwalkers to :target_walkers * update G2-example.jl * fix benchmarks * skip reporting time step if constant * fix skip reporting time step * doc page on Projector Monte Carlo * removing lomc! references from docstrings * Apply suggestions from code review Co-authored-by: mtsch <[email protected]> * Apply suggestions from code review Co-authored-by: christofbradly <[email protected]> * deprecate instead of remove `targetwalkers` --------- Co-authored-by: Joachim Brand <[email protected]> Co-authored-by: mtsch <[email protected]> Co-authored-by: christofbradly <[email protected]>
- Loading branch information
1 parent
8be042d
commit 26e1255
Showing
32 changed files
with
337 additions
and
233 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Projector Monte Carlo / FCIQMC | ||
|
||
The purpose of Projector Monte Carlo is to stochastically sample the ground state, i.e. the | ||
eigenvector corresponding to the lowest eigenvalue of a quantum Hamiltonian, or more generally, | ||
a very large matrix. Rimu implements a flavor of Projector Monte Carlo called | ||
Full Configuration Interaction Quantum Monte Carlo (FCIQMC). | ||
|
||
## `ProjectorMonteCarloProblem` | ||
|
||
To run a projector Monte Carlo simulation you set up a problem with `ProjectorMonteCarloProblem` | ||
and solve it with `solve`. Alternatively you can initialize a `PMCSimulation` struct, `step!` | ||
through time steps, and `solve!` it to completion. | ||
|
||
```@docs; canonical=false | ||
ProjectorMonteCarloProblem | ||
init | ||
solve | ||
solve! | ||
step! | ||
``` | ||
|
||
After `solve` or `solve!` have been called the returned `PMCSimulation` contains the results of | ||
the projector Monte Carlo calculation. | ||
|
||
### `PMCSimulation` and report as a `DataFrame` | ||
|
||
```@docs; canonical=false | ||
Rimu.PMCSimulation | ||
``` | ||
|
||
The `DataFrame` returned from `DataFrame(::PMCSimulation)` contains the time series data from | ||
the projector Monte Carlo simulation that is of primary interest for analysis. Depending on the | ||
`reporting_strategy` and other options passed as keyword arguments to | ||
`ProjectorMonteCarloProblem` it can have different numbers of rows and columns. The rows | ||
correspond to the reported time steps (Monte Carlo steps). There is at least one column with the name `:step`. Further columns are usually present with additional data reported from the simulation. | ||
|
||
For the default option `algorithm = FCIQMC(; shift_strategy, time_step_strategy)` with a single | ||
replica (`n_replicas = 1`) and single spectral state, the fields `:shift`, `:norm`, `:len` will | ||
be present as well as others depending on the `style` argument and the `post_step_strategy`. | ||
|
||
If multiple replicas or spectral states are requested, then the relevant field names in the | ||
`DataFrame` will have a suffix identifying the respective replica simulation, e.g. the `shift`s will be reported as `shift_1`, `shift_2`, ... | ||
|
||
Many tools for analysing the time series data obtained from a | ||
[`ProjectorMonteCarloProblem`](@ref) are contained in the [Module `StatsTools`](@ref). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
26e1255
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JuliaRegistrator register
Release notes:
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 pointto 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 relevantsolve
method is a new access point forexact diagonalization of
AbstractHamiltonian
sSee PR#248 for a more detailed description of the changes.
Other new features
LatticeGeometry
,PeriodicBoundaries
,HardwallBoundaries
andLadderBoundaries
replaced withCubicGrid
.eltype(op) <: AbstractArray
are now supported in bothdot
and for use inAllOverlaps
.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.TripleLogUpdate
lomc!
does not acceptAbstractMatrix
as argumentstyle=IsDynamicSemistochastic()
fordefault_starting_vector
26e1255
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/110788
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: