Name

mcupdate — Attempts particle configuration moves until one is accepted.

Description

The mcupdate element holds information about the Wang-Landau-specific free energy Monte Carlo algorithm. It sets information about how often to relax the system -- checking for basin escapes, how often to check the histogram flatness, and how stringent of a flatness criterion to use, how much to update the free energy during each move, and how to construct the reaction coordinate. It also has information about how long of a simulation to run. Finally, it includes input and output options.

Processing expectations

Only that the parent has been processed.

Parents

freemc

Children

The following elements occur in simulation: stepper, acceptor

Attributes

none

Implementation details

The mcupdate element is the highest level unit of a free energy simulation. Currently, the acceptor and stepper elements should always be included from mcupdate.

The list of meaningful mcupdate parameters. n/a indicates not-applicable.

nameconditiondatatypedefaultmeaning
mcstepsn/aint100000The total maximum number of monte carlo steps to simulate. Simulation ends when either this completes or when halvings alpha-halvings have occured, whichever comes first.
striden/a int 1000Number of accepted Monte Carlo steps between checking for histogram flatness.
flatness< 1 scalar 0.8 Flatness bound on histogram; how flat the histogram must be in order to continue to the next level of convergence by reducing alpha. More precisely, update alpha, reset histogram if and only if H[i] > flatness * < H > for all i (except the endpoints), with the angle brackets indicating an average. That is, update if no H[i] is too far below the average. Usually between .5 to .9. There is a similar upper bound based on 1/e.
iterations_to_waitn/a int 50000Number of Monte Carlo steps performed before starting Wang-Landau procedure or measurements. The equilibration time.
interpolate_framesn/a int 250Number of frames in the reaction path after it is spline-interpolated by the Projector.
alphaeV/K scalar 1.0 Value by which to increment the free energy (divided by temperature) at the appropriate reaction coordinate value, each Monte Carlo step. Determines how converged the final results is: smaller alpha is better converged, other things equal.
check_MEPn/abooleanfalseSet to true if this parameter exists; no content. If true, then check to see if there are particle configurations explored in the simulation which are lower in energy than the those corresponding to the simulation's particle configurations' reaction coordinate value.
output_energy n/a boolean falseSet to true if this parameter exists; no content. If true, then output energy at every accepted Monte Carlo step. Useful for computing energy correlation.
output_lambda n/a booleanfalseSet to true if this parameter exists; no content or attributes. If true, then output value of the particle configuration's reaction coordinate value at each accepted Monte Carlo step. Useful for computing correlation along the reaction coordinate.
region_start n/a int 0Do not let the system explore particle configurations that project to reaction coordinate values less than this. If used, should also set region_finish. Also, beware that in the current implementation, these numbers are read in again in the acceptor element and the two locations' values must agree.
region_finishn/aint 1 Do not let the system explore particle configurations that project to reaction coordinate values greater than this. If used, should also set region_start. Also, beware that in the current implementation, these numbers are read in again in the acceptor element and the two locations' values must agree.
halvingsn/a int 10The maximum number of halvings of alpha (histogram resettings in the simulation. The simulation ends when either this completes or when mcsteps Monte Carlo steps have occured, whichever comes first.
read_sn/a string defaultIf parameter appears, read in the initial free energy from the file specified. If parameter does not appear, do not read in the free energy from a file -- use a constant function of reaction coordinate as an initial free energy.
message_striden/a int 50In a parallel run, the number of Monte Carlo steps between synchronization of system states (alpha, histogram, free energy, ...) for all processes.
relax_stepsn/a int 200 Maximum number of integration steps to use when relaxing to check for basin escape. If the system fails to relax to a ``known'' minima before this many relaxation steps, the particle configuration has ``escaped.''
relax_position_thresholdAngstroms scalar 0.5The maximum displacement in configuration space by which a particle configuration can differ from known basins.
relax_stride>=3 int 4095Number of iterations to wait between relaxations / calling the ``bifurcation algorithm'' (see MCUpdate::relax in the code documentation).
accuracy< relax_stride int 128Maximum ``first-order'' error in determining when a basin escaped (in units of accepted Monte Carlo steps). Sets lowest (most refined) level of ``bifurcation algorithm'' (see MCUpdate::relax in the code documentation).
friction> 0.001 scalar 0.5Friction parameter during relaxation. Newton's law is used to relax the particle configuration; this sets how much the motion is damped; that is, how little of an effect inertia has.
timestepfsec scalar 2 Timestep used for force integration in particle configuration relaxation.

Examples

This example shows to how to set up the mcupdate simulation with some typical options.

  <mcupdate>
    <stepper type="all"> <!-- use all particle moves; see stepper documentation -->
      ... stepper options go here ...
    </stepper>
    <acceptor type="canonical"> <!-- use the canonical ensemble acceptor; see acceptor documentation -->
      ... acceptor options go here ...
    </acceptor>

    <!-- general Monte Carlo parameters -->
    <parameter name="mcsteps">1000000</parameter>
    <parameter name="stride">1000</parameter>
    <parameter name="iterations_to_wait">5000</parameter>
  
    <!-- output options -->
    <parameter name="outputlevel">1</parameter>
    <parameter name="check_MEP"/>
    <parameter name="output_energy"/>
    <parameter name="output_lambda"/>
  
    <!-- Wang-Landau parameters -->
    <parameter name="flatness">0.85</parameter>
    <parameter name="alpha">1.0</parameter>
    <parameter name="halvings">1</parameter>
  
    <!-- reaction path and regioning options -->
    <!-- for now, this is both here and an acceptor option -->
    <parameter name="interpolate_frames">1000</parameter>
    <parameter name="region_start">370</parameter>
    <parameter name="region_finish">505</parameter>
   
    <!-- communication stride for parallel jobs -->
    <parameter name="message_stride">5</parameter>
    <!-- relaxation options.  If relaxation is not desired (not multiple minima), too bad... contact developers to shut off, or use huge relax_stride. -->
  
    <!-- relaxation parameters -->
    <parameter name="relax_steps">200</parameter>
    <parameter name="relax_position_threshold">0.4</parameter>
    <parameter name="relax_stride">4095</parameter>
    <parameter name="accuracy">128</parameter>
    <parameter name="friction">0.5</parameter>
    <parameter name="timestep">2</parameter>
  
  </mcupdate>