DQMC
The DQMC
struct represents both the determinant quantum monte carlo algorithm and the simulation as a whole. Because of that it includes a bunch of options that aren't directly relevant to the algorithm. The minimal default is given by dqmc = DQMC(model, beta=beta)
and the simulation can then be started with run!(dqmc)
. Additional keyword arguments include:
beta
: The inverse temperature of the simulation.delta_tau = 0.1
: The imaginary time discretization.slices = beta / delta_tau
: The number of imaginary time slices.safe_mult = 10
: The number of save matrix multiplications.thermalization = 100
: The number of thermalization sweeps.sweeps = 100
: The number of measurement sweeps.check_sign_problem = true
: Enables or disables checks for sign problems. (negative or imaginary probabilities)check_propagation_error = true
: Enables or disables checks for time slices propagation errors. (Which may happen if safemult or deltatau is too large.)silent = false
: Enable or disable prints for the checks above.measure_rate = 10
: Sets the frequency of measurements. Everymeasure_rate
sweeps a new measurement is taken.print_rate = 10
: Sets the frequency of general information prints (not checks).seed = -1
: Sets a random seed for the simulation. If set to-1
the seed will be chosen randomly.last_sweep = 0
: Sets the last finished sweep. Used internally for continued simulations.
Beyond this there are a couple of keyword arguments which are more involved and will be discussed in other chapters. These include
scheduler = SimpleScheduler(LocalSweep())
: This sets up the sequence of updates performed by the simulation.measurements = Dict{Symbol, AbstractMeasurement}()
: A collection of named measurements that run during the simulation. These are usually added after creating the simulation.thermalization_measurements = Dict{Symbol, AbstractMeasurement}()
: Same as the above, but the measurements run during the thermalization stage. Might be useful to judge convergence or the number of necessary sweeps.recorder = ConfigRecorder
: A recorder for the configurations generated during the simulation.recording_rate = measure_rate
: The rate at which configurations are recorded.field::Type = choose_field(model)
: The type of the field used by the simulation
Running a simulation also comes with a bunch of options via keyword arguments - most dealing with saving the simulation. The options for run(dqmc)
include:
verbose = true
: Enables or disables information printing during the runtime.ignore = tuple()
: Measurement keys to ignore during this run (none by default).safe_before::TimeType = now() + Year(100)
: Sets a time stamp before which the simulation will cancel itself and save.safe_every::TimePeriod = Hour(10000)
: Sets a time period interval for regular saves.grace_period::TimePeriod = Minute(5)
: Sets a buffer time period for saving. By default saves at least 5 minutes before the requested time.resumable_filename = "resumable_$datestring.jld2
: Sets the name the savefile generated from safebefore and safeevery.overwrite = true
: Enables or disables overwriting of existing files.min_update_rate = 0.001
: Sets a minimum update acceptance rate under which a simulation is considered "failed". This will only trigger after1 / min_update_rate
sweeps and only if all updates fall below this rate.fail_filename = "failed_$datestring.jld2"
: Sets the filename of a failed simulation.