API
Rimu
Rimu.Rimu — ModuleRimuRandom integrators for many-body quantum systems
Welcome to Rimu version 0.10.3. Read the documentation online.
Rimu.PACKAGE_VERSION — ConstantRimu.PACKAGE_VERSIONConstant that contains the current VersionNumber of Rimu.
Rimu.AllOverlaps — TypeAllOverlaps(num_replicas=2; operator=nothing, transform=nothing, vecnorm=true) <: ReplicaStrategy{num_replicas}Run num_replicas replicas and report overlaps between all pairs of replica vectors. If operator is not nothing, the overlap dot(c1, operator, c2) is reported as well. If operator is a tuple of operators, the overlaps are computed for all operators.
Column names in the report are of the form c{i}_dot_c{j} for vector-vector overlaps, and c{i}_Op{k}_c{j} for operator overlaps.
See lomc!, ReplicaStrategy and AbstractHamiltonian (for an interface for implementing operators).
Transformed Hamiltonians
If a transformed Hamiltonian G has been passed to lomc! then overlaps can be calculated by passing the same transformed Hamiltonian to AllOverlaps by setting transform=G. A warning is given if these two Hamiltonians do not match.
Implemented transformations are:
In the case of a transformed Hamiltonian the overlaps are defined as follows. For a similarity transformation G of the Hamiltonian (see e.g. GutzwillerSampling.)
\[ \hat{G} = f \hat{H} f^{-1}.\]
The expectation value of an operator $\hat{A}$ is
\[ \langle \hat{A} \rangle = \langle \psi | \hat{A} | \psi \rangle = \frac{\langle \phi | f^{-1} \hat{A} f^{-1} | \phi \rangle}{\langle \phi | f^{-2} | \phi \rangle}\]
where
\[ | \phi \rangle = f | \psi \rangle\]
is the (right) eigenvector of $\hat{G}$ and $| \psi \rangle$ is an eigenvector of $\hat{H}$.
For a K-tuple of input operators (\hat{A}_1, ..., \hat{A}_K), overlaps of $\langle \phi | f^{-1} \hat{A} f^{-1} | \phi \rangle$ are reported as c{i}_Op{k}_c{j}. The correct vector-vector overlap $\langle \phi | f^{-2} | \phi \rangle$ is reported last as c{i}_Op{K+1}_c{j}. This is in addition to the bare vector-vector overlap $\langle \phi | f^{-2} | \phi \rangle$ that is reported as c{i}_dot_c{j}.
In either case the c{i}_dot_c{j} overlap can be omitted with the flag vecnorm=false.
Rimu.ConstantTimeStep — TypeConstantTimeStep <: TimeStepStrategyKeep dτ constant.
Rimu.DontUpdate — TypeDontUpdate(; targetwalkers = 1_000_000) <: ShiftStrategyDon't update the shift. Return when targetwalkers is reached.
See ShiftStrategy, lomc!.
Rimu.DoubleLogProjected — TypeDoubleLogProjected(; target, projector, ζ = 0.08, ξ = ζ^2/4) <: ShiftStrategyStrategy for updating the shift according to the log formula with damping parameter ζ and ξ after projecting onto projector.
\[S^{n+1} = S^n -\frac{ζ}{dτ}\ln\left(\frac{P⋅Ψ^{(n+1)}}{P⋅Ψ^{(n)}}\right)-\frac{ξ}{dτ}\ln\left(\frac{P⋅Ψ^{(n+1)}}{\text{target}}\right)\]
Note that adjusting the keyword maxlength in lomc! is advised as the default may not be appropriate.
See ShiftStrategy, lomc!.
Rimu.DoubleLogSumUpdate — TypeDoubleLogSumUpdate(; targetwalkers = 1000, ζ = 0.08, ξ = ζ^2/4, α = 1/2) <: ShiftStrategyStrategy for updating the shift according to the log formula with damping parameters ζ and ξ.
\[S^{n+1} = S^n -\frac{ζ}{dτ}\ln\left(\frac{N_\mathrm{w}^{n+1}}{N_\mathrm{w}^n}\right) - \frac{ξ}{dτ}\ln\left(\frac{N_\mathrm{w}^{n+1}}{N_\mathrm{w}^\text{target}}\right),\]
where $N_\mathrm{w} =$ (1-α)*walkernumber() + α*UniformProjector()⋅ψ computed with walkernumber() and UniformProjector(). When ξ = ζ^2/4 this corresponds to critical damping with a damping time scale T = 2/ζ.
See ShiftStrategy, lomc!.
Rimu.DoubleLogUpdate — TypeDoubleLogUpdate(; targetwalkers = 1000, ζ = 0.08, ξ = ζ^2/4) <: ShiftStrategyStrategy for updating the shift according to the log formula with damping parameter ζ and ξ.
\[S^{n+1} = S^n -\frac{ζ}{dτ}\ln\left(\frac{\|Ψ\|_1^{n+1}}{\|Ψ\|_1^n}\right)-\frac{ξ}{dτ}\ln\left(\frac{\|Ψ\|_1^{n+1}}{\|Ψ\|_1^\text{target}}\right)\]
When ξ = ζ^2/4 this corresponds to critical damping with a damping time scale T = 2/ζ.
See ShiftStrategy, lomc!.
Rimu.DoubleLogUpdateAfterTargetWalkers — TypeDoubleLogUpdateAfterTargetWalkers(targetwalkers, ζ = 0.08, ξ = 0.0016) <: ShiftStrategyStrategy for updating the shift: After targetwalkers is reached, update the shift according to the log formula with damping parameter ζ and ξ.
See DoubleLogUpdate, ShiftStrategy, lomc!.
Rimu.FciqmcRunStrategy — Type FciqmcRunStrategy{T}Abstract type representing the strategy for running and terminating lomc!(). The type parameter T is relevant for reporting the shift and the norm.
Implemented strategies:
Rimu.FirstOrderTransitionOperator — TypeFirstOrderTransitionOperator(hamiltonian, shift, dτ) <: AbstractHamiltonianFirst order transition operator
\[𝐓 = 1 + dτ(S - 𝐇)\]
where $𝐇$ is the hamiltonian and $S$ is the shift.
$𝐓$ represents the first order expansion of the exponential evolution operator of the imaginary-time Schrödinger equation (Euler step) and repeated application will project out the ground state eigenvector of the hamiltonian. It is the transition operator used in FCIQMC.
Rimu.LogUpdate — TypeLogUpdate(ζ = 0.08) <: ShiftStrategyStrategy for updating the shift according to the log formula with damping parameter ζ.
\[S^{n+1} = S^n -\frac{ζ}{dτ}\ln\left(\frac{\|Ψ\|_1^{n+1}}{\|Ψ\|_1^n}\right)\]
See ShiftStrategy, lomc!.
Rimu.LogUpdateAfterTargetWalkers — TypeLogUpdateAfterTargetWalkers(targetwalkers, ζ = 0.08) <: ShiftStrategyStrategy for updating the shift: After targetwalkers is reached, update the shift according to the log formula with damping parameter ζ.
See LogUpdate, ShiftStrategy, lomc!.
Rimu.MultiScalar — TypeMultiScalarWrapper over a tuple that supports +, *, min, and max. Used with MPI communication because SVectors are treated as arrays by MPI.Allreduce and Tuples do not support scalar operations.
Example
Suppose you want to compute the sum of a vector dv and also get the number of positive elements it has in a single pass. You can use MultiScalar:
julia> dv = DVec(:a => 1, :b => -2, :c => 1);
julia> s, p = mapreduce(+, values(dv)) do v
Rimu.MultiScalar(v, Int(sign(v) == 1))
end;
julia> s, p
(0, 2)This will work with MPIData.
Note that only MultiScalars with the same types can be operated on. This is a feature, as it forces type stability.
Rimu.NoStats — TypeNoStats(N=1) <: ReplicaStrategy{N}The default ReplicaStrategy. N replicas are run, but no statistics are collected.
See also lomc!.
Rimu.PostStepStrategy — TypePostStepStrategySubtypes of PostStepStrategy can be used to perform arbitrary computation on a replica after an FCIQMC step is finished and report the results.
Implemented strategies:
Note: A tuple of multiple strategies can be passed to lomc!. In that case, all reported column names must be distinct.
Interface:
A subtype of this type must implement post_step(::PostStepStrategy, ::ReplicaState).
Rimu.ProjectedEnergy — TypeProjectedEnergy(hamiltonian, projector; hproj=:hproj, vproj=:vproj) <: PostStepStrategyAfter every step, compute hproj = dot(projector, hamiltonian, dv) and vproj = dot(projector, dv), where dv is the instantaneous coefficient vector. projector can be an AbstractDVec, or an AbstractProjector.
Reports to columns hproj and vproj, which can be used to compute projective energy, e.g. with projected_energy. The keyword arguments hproj and vproj can be used to change the names of these columns. This can be used to make the names unique when computing projected energies with different projectors in the same run.
See also projected_energy, ratio_of_means, mixed_estimator, and PostStepStrategy.
Rimu.Projector — TypeProjector(name=projector) <: PostStepStrategyAfter each step, compute dot(projector, dv) and report it in the DataFrame under name. projector can be an AbstractDVec, or an AbstractProjector.
Rimu.QMCState — TypeQMCStateHolds all information needed to run lomc!, except the dataframe. Holds an NTuple of ReplicaStates, the Hamiltonian, and various strategies that control the algorithm. Constructed and returned by lomc!.
Rimu.ReplicaState — TypeReplicaState(v, wm, pnorm, params, id)Struct that holds all information needed for an independent run of the algorithm.
Can be advanced a step forward with advance!.
Fields
hamiltonian: the model Hamiltonian.v: vector.pv: vector from the previous step.wm: working memory.pnorm: previous walker number (seewalkernumber).params: theFciqmcRunStrategy.id: string ID appended to reported column names.
See also QMCState, ReplicaStrategy, replica_stats, lomc!.
Rimu.ReplicaStrategy — TypeReplicaStrategy{N}Supertype for strategies that can be passed to lomc! and control how many replicas are used, and what information is computed and returned. The number of replicas is N.
Concrete implementations
NoStats: run (possibly one) replica(s), but don't report any additional info.AllOverlaps: report overlaps between all pairs of replica vectors.
Interface
A subtype of ReplicaStrategy{N} must implement the following function:
Rimu.replica_stats- return a tuple ofStrings orSymbolsof names for replica statistics and a tuple of the values. These will be reported to theDataFramereturned bylomc!.
Rimu.Report — TypeReport()Internal structure that holds the temporary reported values as well as metadata.
See report!, report_metadata!, get_metadata.
Rimu.ReportDFAndInfo — TypeReportDFAndInfo(; reporting_interval=1, info_interval=100, io=stdout, writeinfo=false) <: ReportingStrategyThe default ReportingStrategy. Report every reporting_intervalth step to a DataFrame and write info message to io every info_intervalth reported step (unless writeinfo == false). The flag writeinfo is useful for controlling info messages in MPI codes, e.g. by setting writeinfo =is_mpi_root().
Rimu.ReportToFile — TypeReportToFile(; kwargs...) <: ReportingStrategyReportingStrategy that writes the report directly to a file in the Arrow format. Useful when dealing with long jobs or large numbers of replicas, when the report can incur a significant memory cost.
The arrow file can be read back in with load_df(filename) or using Arrow; Arrow.Table(filename).
Keyword arguments
filename = "out.arrow": the file to report to. If the file already exists, a new file is created.reporting_interval = 1: interval between simulation steps that are reported.chunk_size = 1000: the size of each chunk that is written to the file. ADataFrameof this size is collected in memory and written to disk. When saving, an info message is also printed toio.save_if =is_mpi_root(): if this value is true, save the report, otherwise ignore it.return_df = false: if this value is true, read the file and return the data frame at the end of computation. Otherwise, an emptyDataFrameis returned.io = stdout: TheIOto print messages to. Set todevnullif you don't want to see messages printed out.compress = :zstd: compression algorithm to use. Can be:zstd,:lz4ornothing.
Rimu.ReportingStrategy — TypeReportingStrategyAbstract type for strategies for reporting data in a DataFrame with report!().
Implemented strategies:
Interface:
A ReportingStrategy can define any of the following:
Rimu.RunTillLastStep — TypeRunTillLastStep(step::Int = 0 # number of current/starting timestep
laststep::Int = 100 # number of final timestep
shiftMode::Bool = false # whether to adjust shift
shift = 0.0 # starting/current value of shift
dτ::Float64 = 0.01 # current value of time step
) <: FciqmcRunStrategyParameters for running lomc!() for a fixed number of time steps. For alternative strategies, see FciqmcRunStrategy.
Rimu.ShiftStrategy — TypeAbstract type for defining the strategy for updating the shift. Passed as a parameter to lomc!.
Implemented strategies:
DontUpdateDoubleLogUpdate- default inlomc!()LogUpdateLogUpdateAfterTargetWalkers- FCIQMC standardDoubleLogUpdateAfterTargetWalkers
Rimu.SignCoherence — TypeSignCoherence(reference[; name=:coherence]) <: PostStepStrategyAfter each step, compute the proportion of configurations that have the same sign as they do in the reference_dvec. Reports to a column named name, which defaults to coherence.
Rimu.SingleParticleDensity — TypeSingleParticleDensity(; save_every=1, component) <: PostStepStrategyPostStepStrategy to compute the diagonal single_particle_density. It records a Tuple with the same eltype as the vector.
Computing the density at every time step can be expensive. This cost can be reduced by setting the save_every argument to a higher value. If the value is set, a vector of zeros is recorded when the saving is skipped.
If the address type has multiple components, the component argument can be used to compute the density on a per-component basis.
The density is not normalized, and must be divided by the vector norm(⋅,2) squared.
See also
Rimu.TimeStepStrategy — TypeTimeStepStrategyAbstract type for strategies for updating the time step with update_dτ(). Implemented strategies:
Rimu.Timer — TypeTimer <: PostStepStrategyRecord current time after every step. See Base.Libc.time for information on what time is recorded.
Rimu.TripleLogUpdate — TypeTripleLogUpdate(; targetwalkers = 1000, ζ = 0.08, ξ = ζ^2/4, η = 0.01) <: ShiftStrategyStrategy for updating the shift according to the extended log formula with damping parameters ζ, ξ, and η.
\[S^{n+1} = S^n -\frac{ζ}{dτ}\ln\left(\frac{N_\mathrm{w}^{n+1}}{N_\mathrm{w}^n}\right) - \frac{ξ}{dτ}\ln\left(\frac{N_\mathrm{w}^{n+1}}{N_\mathrm{w}^\text{target}}\right) - \frac{η}{dτ}\ln\left(\frac{\|ℜ(Ψ^{n+1})\|_1^2 + \|ℑ(Ψ^{n+1})\|_1^2} {\|ℜ(Ψ^{n})\|_1^2 + \|ℑ(Ψ^{n})\|_1^2}\right),\]
where $N_\mathrm{w}$ is the walkernumber(). When ξ = ζ^2/4 this corresponds to critical damping with a damping time scale T = 2/ζ.
See ShiftStrategy, lomc!.
Rimu.WalkerLoneliness — TypeWalkerLoneliness(threshold=1) <: PostStepStrategyAfter each step, compute the proportion of configurations that are occupied by at most threshold walkers. Reports to a column named loneliness.
Rimu._n_walkers — Method_n_walkers(v, s_strat)Returns an estimate of the expected number of walkers as an integer.
Rimu.advance! — Methodadvance!(report::Report, state::QMCState, replica::ReplicaState)Advance the replica by one step. The state is used only to access the various strategies involved. Steps, stats, and computed quantities are written to the report.
Returns true if the step was successful and calculation should proceed, false when it should terminate.
Rimu.all_overlaps — Methodall_overlaps(operators, vectors, working_memories, vecnorm=true)Get all overlaps between vectors and operators. This function is overloaded for MPIData. The flag vecnorm can disable the vector-vector overlap c{i}_dot_c{j}.
Rimu.check_transform — Methodcheck_transform(r::AllOverlaps, ham)Check that the transformation provided to r::AllOverlaps matches the given Hamiltonian ham. Used as a sanity check before starting main lomc! loop.
Rimu.default_logger — Methoddefault_logger(args...)Reset the global_logger to Logging.ConsoleLogger. Undoes the effect of smart_logger. Arguments are passed on to Logging.ConsoleLogger.
Rimu.default_starting_vector — Methoddefault_starting_vector(hamiltonian::AbstractHamiltonian; kwargs...)
default_starting_vector(
address=starting_address(hamiltonian);
style=IsStochasticInteger(),
initiator=NonInitiator(),
threading=nothing
)Return a default starting vector for lomc!. The default choice for the starting vector is
v = PDVec(address => 10; style, initiator)if threading is available, or otherwise
v = DVec(address => 10; style)if initiator == NonInitiator(), and
v = InitiatorDVec(address => 10; style, initiator)if not. See PDVec, DVec, InitiatorDVec, StochasticStyle, and [InitiatorRule].
Rimu.finalize_report! — Methodfinalize_report!(::ReportingStrategy, report)Finalize the report. This function is called after all steps in lomc! have finished.
Rimu.get_metadata — Methodget_metadata(report::Report, key)Get metadata key from report. key is converted to a String.
See also report_metadata!, Report, report!.
Rimu.lomc! — Methodlomc!(ham::AbstractHamiltonian, [v]; kwargs...) -> df, state
lomc!(state::QMCState, [df]; kwargs...) -> df, stateLinear operator Monte Carlo: Perform a projector quantum Monte Carlo simulation for determining the lowest eigenvalue of ham. The details of the simulation are controlled by the optional keyword arguments and by the type of the optional starting vector v. Alternatively, a QMCState can be passed in to continue a previous simulation.
Common keyword arguments and defaults:
laststep = 100- controls the number of steps.dτ = 0.01- time step.targetwalkers = 1000- target for the 1-norm of the coefficient vector.address = starting_address(ham)- set starting address for defaultvandshift.style = IsStochasticInteger()- setStochasticStylefor defaultv; unused ifvis specified.initiator = NonInitiator()- setInitiatorRulefor defaultv; unused ifvis specified.threading- default is to use multithreading and MPI if multiple threads are available. Set totrueto forcePDVecfor the starting vector,falsefor serial computation; unused ifvis specified.shift = diagonal_element(ham, address)- initial value of shift.post_step::NTuple{N,<:PostStepStrategy} = ()- extract observables (e.g.ProjectedEnergy), seePostStepStrategy.replica::ReplicaStrategy = NoStats(1)- run several synchronised simulations, seeReplicaStrategy.r_strat::ReportingStrategy = ReportDFAndInfo()- how and when to report results, seeReportingStrategyname = "lomc!"- name displayed in progress bar (viaProgressLogging)metadata- user-supplied metadata to be added to the reportdf. Must be an iterable of pairs or aNamedTuple, e.g.metadata = ("key1" => "value1", "key2" => "value2"). All metadata is converted to strings.
Some metadata is automatically added to the report df including Rimu.PACKAGE_VERSION and data from state.
Return values
lomc! returns a named tuple with the following fields:
df: aDataFramewith all statistics being reported.state: aQMCStatethat can be used for continuations.
Example
julia> add = BoseFS(1,2,3);
julia> hamiltonian = HubbardReal1D(add);
julia> df1, state = lomc!(hamiltonian; targetwalkers=500, laststep=100);
julia> df2, _ = lomc!(state, df1; laststep=200, metadata=(;info="cont")); # Continuation run
julia> size(df1)
(100, 11)
julia> size(df2)
(200, 11)
julia> using DataFrames; metadata(df2, "info") # retrieve custom metadata
"cont"
julia> metadata(df2, "hamiltonian") # some metadata is automatically added
"HubbardReal1D(BoseFS{6,3}(1, 2, 3); u=1.0, t=1.0)"Further keyword arguments and defaults:
τ_strat::TimeStepStrategy = ConstantTimeStep()- adjust time step or not, seeTimeStepStrategys_strat::ShiftStrategy = DoubleLogUpdate(; targetwalkers, ζ = 0.08, ξ = ζ^2/4)- how to update theshift, seeShiftStrategy.maxlength = 2 * s_strat.targetwalkers + 100- upper limit on the length ofv; when reached,lomc!will abortparams::FciqmcRunStrategy = RunTillLastStep(laststep = 100, dτ = 0.01, shift = diagonal_element(ham, address)- basic parameters of simulation state, seeFciqmcRunStrategy. Parameter values are overridden by explicit keyword argumentslaststep,dτ,shift; is mutated.wm- working memory for re-use in subsequent calculations; is mutated.df = DataFrame()- when called withAbstractHamiltonianargument, aDataFramecan be passed for merging with the reportdf.
The default choice for the starting vector is v = default_starting_vector(; address, style, threading, initiator). See default_starting_vector, PDVec, DVec, StochasticStyle, and InitiatorRule.
Rimu.post_step — Functionpost_step(::PostStepStrategy, ::ReplicaState) -> kvpairsCompute statistics after FCIQMC step. Should return a tuple of :key => value pairs. This function is only called every reporting_interval steps, as defined by the ReportingStrategy.
See also PostStepStrategy, ReportingStrategy.
Rimu.refine_r_strat — Methodrefine_r_strat(r_strat::ReportingStrategy) -> r_stratInitialize the reporting strategy. This can be used to set up filenames or other attributes that need to be unique for a run of FCIQMC.
Rimu.replica_stats — Functionreplica_stats(RS::ReplicaStrategy{N}, replicas::NTuple{N,ReplicaState}) -> (names, values)Return the names and values of statistics related to N replicas consistent with the ReplicaStrategy RS. names should be a tuple of Symbols or Strings and values should be a tuple of the same length. This function will be called every reporting_interval steps from lomc!, or once per time step if reporting_interval is not defined.
Part of the ReplicaStrategy interface. See also ReplicaState.
Rimu.report! — Method report!(::ReportingStrategy, step, report::Report, keys, values, id="")
report!(::ReportingStrategy, step, report::Report, nt, id="")Report keys and values to report, which will be converted to a DataFrame before lomc! exits. Alternatively, a nt::NamedTuple can be passed in place of keys and values. If id is specified, it is appended to all keys. This is used to differentiate between values reported by different replicas.
To overload this function for a new ReportingStrategy, overload report!(::ReportingStrategy, step, args...) and apply the report by calling report!(args...).
Rimu.report! — Methodreport!(report, keys, values, id="")
report!(report, pairs, id="")Write keys, values pairs to report that will be converted to a DataFrame later. Alternatively, a named tuple or a collection of pairs can be passed instead of keys and values.
The value of id is appended to the name of the column, e.g. report!(report, :key, value, :_1) will report value to a column named :key_1.
Rimu.report_after_step — Methodreport_after_step(::ReportingStrategy, step, report, state)This function is called at the very end of a step, after reporting_interval steps. For example, it can be used to print some information to stdout.
Rimu.report_metadata! — Methodreport_metadata!(report::Report, key, value)
report_metadata!(report::Report, kvpairs)Set metadata key to value in report. key and value are converted to Strings. Alternatively, an iterable of key-value pairs or a NamedTuple can be passed.
Throws an error if key already exists.
See also get_metadata, report!, Report.
Rimu.reporting_interval — Methodreporting_interval(::ReportingStrategy)Get the interval between steps for which non-essential statistics are reported. Defaults to 1 if chosen ReportingStrategy does not specify an interval.
Rimu.single_particle_density — Methodsingle_particle_density(dvec; component)
single_particle_density(add; component)Compute the diagonal single particle density of vector dvec or address add. If the component argument is given, only that component of the addresses is taken into account. The result is always normalized so that sum(result) ≈ num_particles(address).
Examples
julia> v = DVec(fs"|⋅↑⇅↓⋅⟩" => 1.0, fs"|↓↓⋅↑↑⟩" => 0.5)
DVec{FermiFS2C{2, 2, 5, 4, FermiFS{2, 5, BitString{5, 1, UInt8}}, FermiFS{2, 5, BitString{5, 1, UInt8}}},Float64} with 2 entries, style = IsDeterministic{Float64}()
fs"|↓↓⋅↑↑⟩" => 0.5
fs"|⋅↑⇅↓⋅⟩" => 1.0
julia> single_particle_density(v)
(0.2, 1.0, 1.6, 1.0, 0.2)
julia> single_particle_density(v; component=1)
(0.0, 1.6, 1.6, 0.4, 0.4)See also
Rimu.smart_logger — Methodsmart_logger(args...)Enable terminal progress bar during interactive use (i.e. unless running on CI or HPC). Arguments are passed on to the logger. This is run once during Rimu startup. Undo with default_logger or by setting Base.global_logger().
Rimu.update_dτ — Methodupdate_dτ(s<:TimeStepStrategy, dτ, tnorm) -> new dτUpdate the time step according to the strategy s.
Rimu.update_shift — Functionupdate_shift(s <: ShiftStrategy, shift, shiftMode, tnorm, pnorm, dτ, step, df, v_new, v_old)Update the shift according to strategy s. See ShiftStrategy.
Reexported Submodules
Interfaces
StochasticStyles
Hamiltonians
BitStringAddresses
DictVectors
StatsTools
RMPI
See Module RMPI
Index
Rimu.DictVectorsRimu.HamiltoniansRimu.InterfacesRimu.RMPIRimu.RimuRimu.RimuIORimu.StatsToolsRimu.StochasticStylesRimu.PACKAGE_VERSIONRimu.RMPI.mpi_rootBase.MatrixCore.NamedTupleMonteCarloMeasurements.ParticlesRimu.AllOverlapsRimu.BitStringAddresses.AbstractFockAddressRimu.BitStringAddresses.BitStringRimu.BitStringAddresses.BoseFSRimu.BitStringAddresses.BoseFS2CRimu.BitStringAddresses.BoseFSIndexRimu.BitStringAddresses.CompositeFSRimu.BitStringAddresses.FermiFSRimu.BitStringAddresses.FermiFS2CRimu.BitStringAddresses.FermiFSIndexRimu.BitStringAddresses.OccupationNumberFSRimu.BitStringAddresses.OccupiedModeMapRimu.BitStringAddresses.OccupiedPairsMapRimu.BitStringAddresses.SingleComponentFockAddressRimu.BitStringAddresses.SortedParticleListRimu.ConstantTimeStepRimu.DictVectors.AbstractInitiatorValueRimu.DictVectors.AbstractProjectorRimu.DictVectors.CoherentInitiatorRimu.DictVectors.CommunicatorRimu.DictVectors.DVecRimu.DictVectors.FrozenDVecRimu.DictVectors.FrozenPDVecRimu.DictVectors.InitiatorRimu.DictVectors.InitiatorDVecRimu.DictVectors.InitiatorRuleRimu.DictVectors.InitiatorValueRimu.DictVectors.LocalPartRimu.DictVectors.MainSegmentIteratorRimu.DictVectors.NonInitiatorRimu.DictVectors.NonInitiatorValueRimu.DictVectors.Norm1ProjectorPPopRimu.DictVectors.Norm2ProjectorRimu.DictVectors.NormProjectorRimu.DictVectors.NotDistributedRimu.DictVectors.PDVecRimu.DictVectors.PDWorkingMemoryRimu.DictVectors.PDWorkingMemoryColumnRimu.DictVectors.PointToPointRimu.DictVectors.SegmentedBufferRimu.DictVectors.SimpleInitiatorRimu.DictVectors.UniformProjectorRimu.DontUpdateRimu.DoubleLogProjectedRimu.DoubleLogSumUpdateRimu.DoubleLogUpdateRimu.DoubleLogUpdateAfterTargetWalkersRimu.FciqmcRunStrategyRimu.FirstOrderTransitionOperatorRimu.Hamiltonians.AbstractOffdiagonalsRimu.Hamiltonians.AxialAngularMomentumHORimu.Hamiltonians.BasisSetRepRimu.Hamiltonians.BoseHubbardMom1D2CRimu.Hamiltonians.BoseHubbardReal1D2CRimu.Hamiltonians.DensityMatrixDiagonalRimu.Hamiltonians.ExtendedHubbardReal1DRimu.Hamiltonians.G2MomCorrelatorRimu.Hamiltonians.G2RealCorrelatorRimu.Hamiltonians.GuidingVectorSamplingRimu.Hamiltonians.GutzwillerSamplingRimu.Hamiltonians.HOCartesianCentralImpurityRimu.Hamiltonians.HOCartesianContactInteractionsRimu.Hamiltonians.HOCartesianEnergyConservedPerDimRimu.Hamiltonians.HardwallBoundariesRimu.Hamiltonians.HubbardMom1DRimu.Hamiltonians.HubbardMom1DEPRimu.Hamiltonians.HubbardReal1DRimu.Hamiltonians.HubbardReal1DEPRimu.Hamiltonians.HubbardRealSpaceRimu.Hamiltonians.LadderBoundariesRimu.Hamiltonians.LatticeGeometryRimu.Hamiltonians.MatrixHamiltonianRimu.Hamiltonians.MomentumRimu.Hamiltonians.OffdiagonalsRimu.Hamiltonians.ParitySymmetryRimu.Hamiltonians.PeriodicBoundariesRimu.Hamiltonians.StoquasticRimu.Hamiltonians.StringCorrelatorRimu.Hamiltonians.SuperfluidCorrelatorRimu.Hamiltonians.TimeReversalSymmetryRimu.Hamiltonians.Transcorrelated1DRimu.Interfaces.AbstractDVecRimu.Interfaces.AbstractHamiltonianRimu.Interfaces.CompressionStrategyRimu.Interfaces.LOStructureRimu.Interfaces.NoCompressionRimu.Interfaces.StochasticStyleRimu.Interfaces.StyleUnknownRimu.LogUpdateRimu.LogUpdateAfterTargetWalkersRimu.MultiScalarRimu.NoStatsRimu.PostStepStrategyRimu.ProjectedEnergyRimu.ProjectorRimu.QMCStateRimu.RMPI.MPIAllToAllRimu.RMPI.MPIDataRimu.RMPI.MPINoWalkerExchangeRimu.RMPI.MPIOneSidedRimu.RMPI.MPIPointToPointRimu.ReplicaStateRimu.ReplicaStrategyRimu.ReportRimu.ReportDFAndInfoRimu.ReportToFileRimu.ReportingStrategyRimu.RunTillLastStepRimu.ShiftStrategyRimu.SignCoherenceRimu.SingleParticleDensityRimu.StatsTools.BlockingResultRimu.StatsTools.RatioBlockingResultRimu.StochasticStyles.BernoulliRimu.StochasticStyles.DynamicSemistochasticRimu.StochasticStyles.ExactRimu.StochasticStyles.IsDeterministicRimu.StochasticStyles.IsDynamicSemistochasticRimu.StochasticStyles.IsStochastic2PopRimu.StochasticStyles.IsStochasticIntegerRimu.StochasticStyles.IsStochasticWithThresholdRimu.StochasticStyles.SingleSpawnRimu.StochasticStyles.SpawningStrategyRimu.StochasticStyles.ThresholdCompressionRimu.StochasticStyles.WithReplacementRimu.StochasticStyles.WithoutReplacementRimu.TimeStepStrategyRimu.TimerRimu.TripleLogUpdateRimu.WalkerLonelinessBase.adjointLinearAlgebra.dotMeasurements.measurementOrderedCollections.freezeRimu.BitStringAddresses.bose_hubbard_interactionRimu.BitStringAddresses.excitationRimu.BitStringAddresses.excitationRimu.BitStringAddresses.find_modeRimu.BitStringAddresses.find_occupied_modeRimu.BitStringAddresses.hopnextneighbourRimu.BitStringAddresses.near_uniformRimu.BitStringAddresses.num_componentsRimu.BitStringAddresses.num_modesRimu.BitStringAddresses.num_occupied_modesRimu.BitStringAddresses.num_particlesRimu.BitStringAddresses.occupied_modesRimu.BitStringAddresses.onrRimu.BitStringAddresses.time_reverseRimu.DictVectors.collect_local!Rimu.DictVectors.copy_to_local!Rimu.DictVectors.dot_from_rightRimu.DictVectors.from_initiator_valueRimu.DictVectors.initiator_valtypeRimu.DictVectors.is_distributedRimu.DictVectors.local_segmentsRimu.DictVectors.main_columnRimu.DictVectors.merge_remote_reductionsRimu.DictVectors.move_and_compress!Rimu.DictVectors.mpi_commRimu.DictVectors.mpi_commRimu.DictVectors.mpi_rankRimu.DictVectors.mpi_rankRimu.DictVectors.mpi_recv_any!Rimu.DictVectors.mpi_sendRimu.DictVectors.mpi_sizeRimu.DictVectors.mpi_sizeRimu.DictVectors.num_columnsRimu.DictVectors.num_rowsRimu.DictVectors.perform_spawns!Rimu.DictVectors.remote_segmentsRimu.DictVectors.replace_collections!Rimu.DictVectors.synchronize_remote!Rimu.DictVectors.synchronize_remote!Rimu.DictVectors.target_segmentRimu.DictVectors.to_initiator_valueRimu.DictVectors.total_num_segmentsRimu.DictVectors.walkernumberRimu.Hamiltonians.build_basisRimu.Hamiltonians.check_address_typeRimu.Hamiltonians.continuum_dispersionRimu.Hamiltonians.dimensionRimu.Hamiltonians.fock_to_cartRimu.Hamiltonians.four_oscillator_integral_generalRimu.Hamiltonians.get_all_blocksRimu.Hamiltonians.ho_delta_potentialRimu.Hamiltonians.hubbard_dispersionRimu.Hamiltonians.log_abs_oscillator_zeroRimu.Hamiltonians.momentumRimu.Hamiltonians.neighbour_siteRimu.Hamiltonians.num_dimensionsRimu.Hamiltonians.num_neighboursRimu.Hamiltonians.rayleigh_quotientRimu.Hamiltonians.shift_latticeRimu.Hamiltonians.shift_lattice_invRimu.Interfaces.allowed_address_typeRimu.Interfaces.apply_column!Rimu.Interfaces.apply_operator!Rimu.Interfaces.compress!Rimu.Interfaces.default_styleRimu.Interfaces.deposit!Rimu.Interfaces.diagonal_elementRimu.Interfaces.get_offdiagonalRimu.Interfaces.has_adjointRimu.Interfaces.localpartRimu.Interfaces.num_offdiagonalsRimu.Interfaces.offdiagonalsRimu.Interfaces.random_offdiagonalRimu.Interfaces.sort_into_targets!Rimu.Interfaces.starting_addressRimu.Interfaces.step_statsRimu.Interfaces.storageRimu.Interfaces.working_memoryRimu.RMPI.is_mpi_rootRimu.RMPI.mpi_all_to_allRimu.RMPI.mpi_allprintlnRimu.RMPI.mpi_barrierRimu.RMPI.mpi_combine_walkers!Rimu.RMPI.mpi_no_exchangeRimu.RMPI.mpi_one_sidedRimu.RMPI.mpi_point_to_pointRimu.RMPI.mpi_seed!Rimu.RMPI.next_mpiIDRimu.RMPI.targetrankRimu.RimuIO.load_dfRimu.RimuIO.load_dvecRimu.RimuIO.save_dfRimu.RimuIO.save_dvecRimu.StatsTools.autocovarianceRimu.StatsTools.blockerRimu.StatsTools.blocking_analysisRimu.StatsTools.blocking_analysis_dataRimu.StatsTools.blocks_with_mRimu.StatsTools.errsRimu.StatsTools.growth_estimatorRimu.StatsTools.growth_estimator_analysisRimu.StatsTools.growth_witnessRimu.StatsTools.growth_witnessRimu.StatsTools.mean_and_seRimu.StatsTools.mixed_estimatorRimu.StatsTools.mixed_estimator_analysisRimu.StatsTools.mtestRimu.StatsTools.particlesRimu.StatsTools.particlesRimu.StatsTools.projected_energyRimu.StatsTools.pseudo_covRimu.StatsTools.ratio_estimatorsRimu.StatsTools.ratio_of_meansRimu.StatsTools.rayleigh_replica_estimatorRimu.StatsTools.rayleigh_replica_estimator_analysisRimu.StatsTools.replica_fidelityRimu.StatsTools.shift_estimatorRimu.StatsTools.smoothenRimu.StatsTools.to_measurementRimu.StatsTools.valRimu.StatsTools.val_and_errsRimu.StatsTools.variational_energy_estimatorRimu.StatsTools.w_expRimu.StatsTools.w_linRimu.StatsTools.x_by_y_linearRimu.StochasticStyles.diagonal_step!Rimu.StochasticStyles.projected_deposit!Rimu.StochasticStyles.spawn!Rimu._n_walkersRimu.advance!Rimu.all_overlapsRimu.check_transformRimu.default_loggerRimu.default_starting_vectorRimu.finalize_report!Rimu.get_metadataRimu.lomc!Rimu.post_stepRimu.refine_r_stratRimu.replica_statsRimu.report!Rimu.report!Rimu.report_after_stepRimu.report_metadata!Rimu.reporting_intervalRimu.single_particle_densityRimu.smart_loggerRimu.update_dτRimu.update_shiftSparseArrays.sparseStatistics.covRimu.BitStringAddresses.@fs_strRimu.RMPI.@mpi_root