Constant chemical potential

Note

GALAMOST v4.0.0’s function

Constant Chemical Potential Molecular Dynamics (C \(\mu\) MD) method introduces an external force that controls the environment of the chemical process of interest. This external force, drawing molecules from a finite reservoir, maintains the chemical potential constant in the region where the process takes place. This method is able to study crystal growth dynamics under constant supersaturation conditions or evaporation dynamics under constant vapor pressure. Reference: C. Perego, M. Salvalaglio, and M. Parrinello, J. Chem. Phys., 2015, 142, 144113.

Constant Chemical Potential Molecular Dynamics

Description:

\begin{eqnarray*} F^{\mathrm{\mu}}(z) &=& k(n^{CR}-n_{0})G(z, Z_{F}) \\ G(z-Z_{F}) &=& \frac{1}{4\omega}\left[ 1+cosh \left(\frac{z-Z_{F}}{\omega} \right) \right]^{-1} \\ \end{eqnarray*}

Coefficients:

  • \(n_0\) - target constant concentration n0 (in reduced units)
  • \(k\) - spring constant k (in units of energy/distance^2)
  • \(\sigma\) - width of external force region sigma (in units of distance)
  • \(\omega\) - an intensity peak proportional to omega and a width proportional to omega (in units of distance)
class CCPMD(all_info, group)

The constructor of a constant chemical potential object of a group of particles.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
setWall(float ox, float oy, float oz, float dx, float dy, float dz)

specifies external force region with plane center (ox, oy, oz) and direction (dx, dy, dz). If the normal direction of wall is in Z direction, the center position of plane is (0.0, 0.0, \(Z_{F}\)).

setParams(float n0, float k, float sigma, float omega, float Len_CR)

specifies target concentration, spring constant, sigma, omega, and the length of control region.

Example:

groupS = galamost.ParticleSet(all_info, 'S')
ccp = galamost.CCPMD(all_info, groupS)
ccp.setWall(0.0, 0.0, -25.0, 0.0, 0.0, -1.0)
ccp.setParams(0.5, 1000.0, 1.0, 0.1, 5.0)
app.add(ccp)