PSCF v1.1

An BinaryRelaxIterator solves is an iterator that uses the simple relaxation method presented by F. Drolet and G.H. Fredrickson to solve the SCFT equations of a 1D problem with only two monomer types, such as an AB block copolymer or A/B polymer blend. The iteration algorithm will halt if applied to a system with more than two types of monomer.

Parameter File

The parameter file format for an BinaryRelaxIterator parameter file block is:

BinaryRelaxIterator{
epsilon real
maxItr int
lambdaPlus real
lambdaMinus real
}

Parameters are described below:

Label Description
epsilon Error tolerance
maxItr maximum number of iterations attempted
lambdaPlus relaxation parameter for W_{+} (field conjugate to total concentration)
lambdaMinus relaxation parameter for W_{-} (field conjugate to composition)

Iteration stops when the scalar error is less than epsilon. The total error is defined in BinaryRelaxIterator as a root-mean-square of errors at individual grid points, as described in greater detail below.

Algorithm and Residual

Let \( w_{i} \) and \( \phi_{i} \) denote values of the monomer chemical potential field and volume fraction field for monomer type \( i \) at some grid point, respectively. At each grid point, we define residual components

\begin{eqnarray*} r_{+} & = & \phi_{0} + \phi_{1} - 1 \\ r_{-} & = & \frac{1}{2}\left \{ \phi_{0} - \phi_{1} - [ w_{1} - w_{0} ]/\chi \right \} \end{eqnarray*}

The algorithm updates the field components \( w_{0} \) and \( w_{1} \) associated with monomer types 0 and 1 using using a rule

\begin{eqnarray*} w_{0} & \rightarrow & w_{0} + \lambda_{+} r_{+} - \lambda_{-} r_{-} \\ w_{1} & \rightarrow & w_{1} + \lambda_{+} r_{+} + \lambda_{-} r_{-} \end{eqnarray*}

Here, \( \lambda_{+} \) and \( \lambda_{-} \) are the relaxation parameters whose values are given by in the parameter file by the parameters lambdaPlus and lambdaMinus, respectively.

The total scalar error, denoted by \( R \), is defined as the total root-mean-squared residual value, given by

\[ R = \left [ \overline{r_{+}^{2}} + \overline{r_{-}^{2}} \right ]^{1/2} \quad, \]

where an overline \( \overline{\cdots} \) denotes an average of its argument (e.g., the square of a residual component) over grid points, i.e., a sum of values at different grid points divided by the number of grid points.) Iteration stops when \( R \) becomes less than the tolerance epsilon specified in the parameter file, or when the maximum number of iterations is exceeded.