LAMMPS capability

1) So it would be great if there is a member function somewhere in
the LAMMPS code which allows the programmer to create an atom, or an
entire molecule, specify its location and orientation

It looks like CreateAtoms::add_molecule() chooses the orientation of
the molecule randomly. There is currently no way to override this (or
tell it not to rotate the molecule). But it's trivial to modify the
code to allow the caller/user to specify the rotation axis and angle
(or quaternion). See attached.

  I have not tested the code yet, but it compiles. I will email you
again after I have a chance to test it.

3) A few months ago you and Paul Saxe and I discussed how to generate
angle, dihedral, and improper interactions automatically. We can
finally attack that problem too.

If nobody else wants to do this, I am happy to try to write some code
that walks through the bond network (atom->bond_atom) and generates
angles, dihedrals, impropers. Moltemplate does this (and I'm
currently trying to sort out the issue with impropers anyway).
Alternately, if you would prefer to do this, that's fine. But it
would be nice to get that working too.

2) It would also be fantastic to have a function to explicitly
create and destroy bonds (and angles, dihedrals, etc...) is also
desirable.

This is important too, but we can worry about this later...

create_atoms.cpp (28.8 KB)

create_atoms.h (3.66 KB)

It looks like CreateAtoms::add_molecule() chooses the orientation of
the molecule randomly. There is currently no way to override this (or
tell it not to rotate the molecule). But it’s trivial to modify the
code to allow the caller/user to specify the rotation axis and angle
(or quaternion). See attached.

Added this as a create_atoms rotate option. See the 31Oct14 patch.

Thanks Andrew.

Steve

‎Thanks Andrew! Thanks Steve!

Jake



From: Steve Plimpton
Sent: Thursday, October 30, 2014 1:47 PM
To: Andrew Jewett
Cc: Jacob Gissinger; lammps
Subject: Re: [lammps-users] LAMMPS capability

It looks like CreateAtoms::add_molecule() chooses the orientation of
the molecule randomly. There is currently no way to override this (or
tell it not to rotate the molecule). But it’s trivial to modify the
code to allow the caller/user to specify the rotation axis and angle
(or quaternion). See attached.

Added this as a create_atoms rotate option. See the 31Oct14 patch.

Thanks Andrew.

Steve