mpcd.methods¶
Overview
Velocity Verlet integration method with bounce-back from surfaces. |
Details
MPCD integration methods.
Extra integration methods for solutes (MD particles) embedded in an MPCD
fluid. These methods are not restricted to MPCD simulations: they can be used
as methods of hoomd.md.Integrator
. For example, BounceBack
might be used to
run DPD simulations with surfaces.
- class hoomd.mpcd.methods.BounceBack(filter, geometry)¶
Bases:
Method
Velocity Verlet integration method with bounce-back from surfaces.
- Parameters:
filter (hoomd.filter.filter_like) – Subset of particles on which to apply this method.
geometry (hoomd.mpcd.geometry.Geometry) – Surface to bounce back from.
A bounce-back method for integrating solutes (MD particles) embedded in an MPCD fluid. The integration scheme is velocity Verlet with bounce-back performed at the solid boundaries defined by a geometry, as in
hoomd.mpcd.stream.BounceBack
. 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
hoomd.mpcd.stream.BounceBack
. In particular:The simulation box is periodic, but the
geometry
may impose non-periodic boundary conditions. You must ensure that the box is sufficiently large to enclose thegeometry
and that all particles lie inside itYou 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.
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.
Warning
This method does not support anisotropic integration because torques are not computed for collisions with the boundary. Rigid bodies will also not be treated correctly because the integrator is not aware of the extent of the particles. The surface reflections are treated as point particles. These conditions are too complicated to validate easily, so it is the user’s responsibility to choose the
filter
correctly.Example:
plates = hoomd.mpcd.geometry.ParallelPlates(separation=6.0) nve = hoomd.mpcd.methods.BounceBack( filter=hoomd.filter.All(), geometry=plates) simulation.operations.integrator.methods.append(nve)
- filter¶
Subset of particles on which to apply this method (read only).
- Type:
- geometry¶
Surface to bounce back from (read only).