[lammps-users] Dipole colloids


I want to simulate spherical colloidal particles with dipoles.
I am confused as to who pair_style, pair_coeff to use.
I am providing the input script below…this script works but I am not sure if I am doing the right thing. Can you help me?

There are 4 major parts to your question/problem:

  1. which potential function to use to describe the model that you are interested in. that determines what pair/atom/whatever styles you have to use.
  2. how to derive/get suitable parameters for that potential function
  3. how to write correct input to represent that potential function and parameters
  4. how to validate whether your input is correct.

only item 3) is something that is fully on-topic for this mailing list, and for the most part it requires that you carefully study the manual first.
i will add some comments to your input pointing out some issues for your current selection of settings and styles.

for items 1) and 2) you have to study the published literature and relevant textbooks. it is you that has to decide what is a suitable model for what you want to study as that then determines the potential functions and setting and not that the kind of system you want to represent determines what you pair_style and pair_coeff commands you have to use.
for example, you have to decide whether you want to model the solvent (or small particles) explicitly or implicitly. then it matters how to represent the dipoles (or multipoles), i.e. whether they should be point dipoles or they are the consequence of a distribution of point charges. then you also need to see whether you want to represent the colloidal particles through explicit particles or just as one big particle, and whether they should be rigid or flexible entities etc. this is usually done by looking for studies on the same or sufficiently similar materials/systems. once you have decided on the model, you need to find suitable parameterizations for your materials, or - in the worst case - teach yourself how to derive them. this is all something you have to figure out before even looking into using an MD code (regardless of which one).

as for item 4), you need to keep in mind that even if you have a syntactically correct and meaningful looking input deck (i.e. cleared item 3)), you may still have bogus results if your simulation settings were not adequate, or the statistical sampling insufficient or the geometry you set up not representative, or your workflow not well balanced so that you are missing equilibration or other required steps. for that you need to determine what properties you can compute from a simulation and how representative those are for validating whether your chosen model is suitably representative for what you want to study and what you want to learn from the simulations.

thus, apart from a few comments related to item 3), you will have to do your “homework” and work with your PI or supervisor to properly plan your project. this is beyond the scope of this mailing list and not really a LAMMPS issue but an issue of how the general scientific workflow for conducting molecular dynamics simulation studies.

on to some comments.


I want to simulate spherical colloidal particles with dipoles.
I am confused as to who pair_style, pair_coeff to use.
I am providing the input script below…this script works but I am not sure if I am doing the right thing. Can you help me?

units lj
atom_style hybrid sphere dipole
dimension 3
boundary p p p

lattice sc 0.01
region box block 0 10 0 10 0 10
create_box 1 box
create_atoms 1 box

#set group all type/fraction 2 0.8 23984

set type 1 mass 5.0 diameter 2.0

setting the diameter has no impact on the model and is thus meaningless, since your pair style does not use that property.
please also note that for your specific setup you need to also set the per type masses with the “mass” command.

set type 1 dipole/random 45672873 0.1

velocity all create 1.44 87287 loop geom

multi neighbor and comm for efficiency

neighbor 1 multi
neigh_modify delay 0
comm_modify mode multi

using “multi” style neighborlist building and communication is meaningless and wasteful unless you have multiple atom types with significantly different cutoffs.
you don’t, so using regular binning and communication should work fine and will cause less overhead unless you change your model to something that would benefit from it.

colloid potential

pair_style lj/cut/dipole/long 2.0 10.0

this is an unusual choice of cutoffs for a simulation in reduced units (unit style “lj”).

#pair_coeff 1 1 25 2.0 2.0 2.0 10.0
pair_coeff 1 1 2.0 2.0

this is an unusual choice of parameters for using reduced units and only one atom type.

#pair_coeff 1 1 1.0 2.0 2.0 10.0
kspace_style ewald/dipole 1.0e-6

you may want to look into using pppm/dipole for better scaling with system size.

fix 1 all nvt/sphere temp 0.2 0.2 1.0 drag 1.0 update dipole

why “drag”?

thermo_style custom step temp pe ke epair etotal press vol density
dump 1 all xyz 1000 nvt_dipole.xyz
thermo 1000
run 50000

fix 2 all npt/sphere temp 0.2 0.2 1.0 iso 0.0 1.0 10.0 drag 1.0 &
mtk no pchain 0 tchain 1 update dipole

why disable the Martyna, Tuckerman, Klein correction (“mtk”) and resetting the nose-hoover chains?