PSCF v1.2
RealMove

The RealMove classes used by both the pscf_pc and pscf_pg programs implements a simple MC move for which the attempted move is a random change at every grid point.

Two closely analogous classes named Pscf::Rpc::RealMove and Pscf::Rpg::RealMove that are defined in different namespaces are used to implement this the same step algorithm for different programs. The RealMove class defined in the Rpc namespace is used in the pscf_pc program (using CPU hardware) and the class defined in the Rpg namespace is used in the pscf_pg program (using GPU acceleration). These two classes implement the same step algorithm and use the same parameter file format, which are documented below.

Step Algorithm

A general discussion of MC move algorithms for PS-FTS is given here. As discussed there, each move consists of an unconstrained change in the fields, followed by application of a compressor to re-impose the incompressibility constraint. The decision about whether to accept or reject the move is based on the value of the Hamiltonian after incompressibility has been restored.

The RealMove algorithm takes one parameter, denoted by sigma in the parameter file. The unconstrained move changes each monomer field component by a random amount chosen from the Gaussian distribution with zero mean and a standard deviation of a sigma.

Parameter File

The only parameter needed by this algorithm are the "probability" parameter, which determines the probability that a move of this type will be chosen on any step, and a required parameter named sigma, as described above. A typical example of the contents of this is shown below.

RealMove{
probability 0.05
sigma 0.005
}

The parameter file format is thus:

RealMove{
probability float (in range [0,1])
sigma float
}

Meanings of both parameters are described briefly below:

Label Description
probability probability of attempting a step of this type
sigma the standard deviation of the Gaussian distribution from which the step size is chosen