mpcd.integrate

Overview

slit NVE integration with bounce-back rules in a slit channel.
slit_pore NVE integration with bounce-back rules in a slit pore channel.

Details

MPCD integration methods

Defines bounce-back methods for integrating solutes (MD particles) embedded in an MPCD solvent. The integration scheme is velocity Verlet (NVE) with bounce-back performed at the solid boundaries defined by a geometry, as in mpcd.stream. This gives a simple approximation of the interactions required to keep a solute bounded in a geometry, and more complex interactions can be specified, for example, by writing custom external fields.

Similar caveats apply to these methods as for the mpcd.stream methods. In particular:

  1. The simulation box is periodic, but the geometry imposes inherently non-periodic boundary conditions. You must ensure that the box is sufficiently large to enclose the geometry and that all particles lie inside it, or an error will be raised at runtime.
  2. You must also ensure that particles do not self-interact through the periodic boundaries. This is usually achieved for simple pair potentials by padding the box size by the largest cutoff radius. Failure to do so may result in unphysical interactions.
  3. Bounce-back rules do not always enforce no-slip conditions at surfaces properly. It may still be necessary to add additional ‘ghost’ MD particles in the surface to achieve the right boundary conditions and reduce density fluctuations.

The integration methods defined here are not restricted to only MPCD simulations: they can be used with both md.integrate.mode_standard and mpcd.integrator. For example, the same integration methods might be used to run DPD simulations with surfaces.

These bounce-back methods do not support anisotropic integration because torques are currently not computed for collisions with the boundary. Similarly, rigid bodies will also not be treated correctly because the integrators are not aware of the extent of the particles; the surface reflections are treated as point particles. An error will be raised if an anisotropic integration mode is specified.

class hoomd.mpcd.integrate.slit(group, H, V=0.0, boundary='no_slip')

NVE integration with bounce-back rules in a slit channel.

Parameters:
  • group (hoomd.group) – Group of particles on which to apply this method.
  • H (float) – channel half-width
  • V (float) – wall speed (default: 0)
  • boundary – ‘slip’ or ‘no_slip’ boundary condition at wall (default: ‘no_slip’)

This integration method applies to particles in group in the parallel-plate channel geometry. This method is the MD analog of stream.slit, which documents additional details about the geometry.

A hoomd.compute.thermo is automatically specified and associated with group.

Examples:

all = group.all()
slit = mpcd.integrate.slit(group=all, H=5.0)
slit = mpcd.integrate.slit(group=all, H=10.0, V=1.0)

New in version 2.7.

disable()

Disables the integration method.

Examples:

method.disable()

Executing the disable command will remove the integration method from the simulation. Any hoomd.run() command executed after disabling an integration method will not apply the integration method to the particles during the simulation. A disabled integration method can be re-enabled with enable().

enable()

Enables the integration method.

Examples:

method.enable()

See also

disable().

set_params(H=None, V=None, boundary=None)

Set parameters for the slit geometry.

Parameters:
  • H (float) – channel half-width
  • V (float) – wall speed (default: 0)
  • boundary – ‘slip’ or ‘no_slip’ boundary condition at wall (default: ‘no_slip’)

Examples:

slit.set_params(H=8.)
slit.set_params(V=2.0)
slit.set_params(boundary='slip')
slit.set_params(H=5, V=0., boundary='no_slip')
class hoomd.mpcd.integrate.slit_pore(group, H, L, boundary='no_slip')

NVE integration with bounce-back rules in a slit pore channel.

Parameters:
  • group (hoomd.group) – Group of particles on which to apply this method.
  • H (float) – channel half-width.
  • L (float) – pore half-length.
  • boundary – ‘slip’ or ‘no_slip’ boundary condition at wall (default: ‘no_slip’)

This integration method applies to particles in group in the parallel-plate (slit) pore geometry. This method is the MD analog of stream.slit_pore, which documents additional details about the geometry.

A hoomd.compute.thermo is automatically specified and associated with group.

Examples:

all = group.all()
slit_pore = mpcd.integrate.slit_pore(group=all, H=10.0, L=10.)

New in version 2.7.

disable()

Disables the integration method.

Examples:

method.disable()

Executing the disable command will remove the integration method from the simulation. Any hoomd.run() command executed after disabling an integration method will not apply the integration method to the particles during the simulation. A disabled integration method can be re-enabled with enable().

enable()

Enables the integration method.

Examples:

method.enable()

See also

disable().

set_params(H=None, L=None, boundary=None)

Set parameters for the slit pore geometry.

Parameters:
  • H (float) – channel half-width.
  • L (float) – pore half-length.
  • boundary – ‘slip’ or ‘no_slip’ boundary condition at wall (default: ‘no_slip’)

Examples:

slit_pore.set_params(H=8.)
slit_pore.set_params(L=2.0)
slit_pore.set_params(boundary='slip')
slit_pore.set_params(H=5, L=4., boundary='no_slip')