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.
The parameter file format for an BinaryRelaxIterator parameter file block is:
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.
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.