mcupdate — Attempts particle configuration moves until one is accepted.
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.
Only that the parent has been processed.
none
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.
| name | condition | datatype | default | meaning |
|---|---|---|---|---|
| mcsteps | n/a | int | 100000 | The 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. |
| stride | n/a | int | 1000 | Number 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_wait | n/a | int | 50000 | Number of Monte Carlo steps performed before starting Wang-Landau procedure or measurements. The equilibration time. |
| interpolate_frames | n/a | int | 250 | Number of frames in the reaction path after it is spline-interpolated by the Projector. |
| alpha | eV/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_MEP | n/a | boolean | false | Set 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 | false | Set 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 | boolean | false | Set 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 | 0 | Do 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_finish | n/a | int | 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. |
| halvings | n/a | int | 10 | The 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_s | n/a | string | default | If 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_stride | n/a | int | 50 | In a parallel run, the number of Monte Carlo steps between synchronization of system states (alpha, histogram, free energy, ...) for all processes. |
| relax_steps | n/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_threshold | Angstroms | scalar | 0.5 | The maximum displacement in configuration space by which a particle configuration can differ from known basins. |
| relax_stride | >=3 | int | 4095 | Number of iterations to wait between relaxations / calling the ``bifurcation algorithm'' (see MCUpdate::relax in the code documentation). |
| accuracy | < relax_stride | int | 128 | Maximum ``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.5 | Friction 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. |
| timestep | fsec | scalar | 2 | Timestep used for force integration in particle configuration relaxation. |
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>