[lammps-users] reducing system size using symmetry

I am currently working on a relatively large fluid simulation problem
that exhibits good cylindrical symmetry which led me to think about MD
simulaiton using what I can only think to call symmetric boundary
conditions. For example, what I am envisaging is simulating only a
1/4 for example of the simulation domain with fixed boundary
conditions on the 'external' walls and symmetric boundary conditions
on the internal cutting planes. There would no doubt be additional
book keeping to do in terms of ghost mirror image atoms along the
internal edges (but across the symmetry plane) so that the atoms near
those edges interact completely as they would if they were in the full
system.

I recognize my description here is simplistic and would introduce an
artifact into the simulation that would not otherwise be present and
would neglect the (typically slight) loss of symmetry which may
randomly occur due to fluctuation, etc... That being said I was just
wondeirng if this has been tried before within the development of
LAMMPS (or other similarly general MD codes).

Many thanks,

Dan

You'd have to be more precise about what you want to
occur at the boundaries for me to say whether LAMMPS could
do something like you envision.

Steve

Hi. I noticed something strange when using bond_style hybrid. It seems
to be incompatible with having newton_bond = false. I attach a script
and a small system which demonstrates the problem. The system has 207
bonds of type 1, and 11 of type 2. I set up the bonding using

bond_style hybrid fene harmonic
bond_coeff 1 fene 30 1.5 1.0 1.0
bond_coeff 2 harmonic 10 0.0

If I run with newton_bond = true, i. e. "newton on on" in the input
script, everything seems fine. But if I use "newton on off", LAMMPS can't
seem to see the type 2 bonds. I added a line to bond_fene.cpp and
bond_harmonic.cpp which outputs the length of the bondlists (the code is
otherwise the stock May-26-08 version).

With "newton on on", LAMMPS outputs

Setting up run ...
Proc 0 fene nbondlist = 207
Proc 0 harmonic nbondlist = 11
Memory usage per processor = 1.93811 Mbytes
Step Temp E_pair E_bond Pxx Pyy Pzz
       0 0 5.8275689 19.913966 5.6248537 5.8392709
5.8560848

which seems correct. However, with "newton on off", LAMMPS outputs

Setting up run ...
Proc 0 fene nbondlist = 207
Proc 0 harmonic nbondlist = 0
Memory usage per processor = 2.08733 Mbytes
Step Temp E_pair E_bond Pxx Pyy Pzz
       0 0 5.8275689 19.913966 5.6248537 5.8392709
5.8560848

and it seems the harmonic bonds are ignored (or, more specifically, the
harmonic bondlist is not created), even though LAMMPS still sees
218 total bonds.

So, it seems like something is wrong, perhaps a bug.

Thoughts?

Rob

initialstate.Nch.3.N.70.Nstick.11.self (11.6 KB)

pushoffscript.small (917 Bytes)

Oops, I meant the JUNE-26-08 version of LAMMPS, not May-26.

This has nothing to do with bond hybrid. It is b/c you defined
these type 2 bonds as

208 2 44 44
209 2 54 54
210 2 68 68

I.e. atoms are bonded to themselves. For newton off, the logic
is such that those bonds won't be listed. LAMMPS is expecting
the 2 bond partners to have different IDs.

Steve