interval position, velocity, force and potential

Dear all,

I’m trying to quantify the uncertainty in simulation, and one of my goals is to lift the position, velocity, force and potential from double type to another custom type, say Interval, which includes 2 doubles. What would be the easiest way to do that? I have read the LAMMPS manual and looked into the source codes quite sometimes, but I haven’t found a good way to do it. Please let me know what you suggest.

Many thanks,
Anh Tran

Dear all,

I'm trying to quantify the uncertainty in simulation, and one of my goals is
to lift the position, velocity, force and potential from double type to
another custom type, say Interval, which includes 2 doubles. What would be
the easiest way to do that?

write a new MD code.

I have read the LAMMPS manual and looked into
the source codes quite sometimes, but I haven't found a good way to do it.

there is no good way.

Please let me know what you suggest.

what you are trying to do is a pretty much pointless exercise. MD is
at its core a chaotic method; the tiniest changes will cause otherwise
identical calculations to diverge exponentially. however, those
diverging trajectories still approximate the same ensemble and thus
these kind of errors don't accumulate, but cancel. uncertainty in MD
simulations on the other hand results predominantly from the fact,
that one cannot know all possible conformations with the same energy
(there are far too many degrees of freedom) and some of them may be
improbable to reach during a simulation run (so-called rare events),
but still significant.

axel.

Hello Axel,

Thank you for your very helpful response. I have thought about the Lyapunov exponents that you mention here, and also about the shadowing theorem. As you said, the uncertainties in MD are mostly related to energy and the interatomic potential. So in this study, I’m taking into account that many potentials are calibrated against some known, but different quantities (e.g. Young moduli, stacking fault energy, etc.) and thus create numerous potentials for the same element. The approach that I’m using is the optimal interval approach (which is an intrusive UQ method) and I hope somehow I can get lammps adapt to it.

Please allow me to rephrase my question: is it possible to modify lammps somehow to adapt to the interval formulation instead of real number formulation, assuming the ensemble are also reformulated in interval as well. That would be great if so.

Thank you very much,

Anh Tran

Hello Axel,

Thank you for your very helpful response. I have thought about the Lyapunov
exponents that you mention here, and also about the shadowing theorem. As
you said, the uncertainties in MD are mostly related to energy and the
interatomic potential.

no, they are not and that is not what i was saying. the uncertainties
are typically dominated by incomplete statistical sampling, finite
size effects and approximations to the nature of the interactions
(e.g. reducing manybody interactions to pairwise additive interactions
and thus relying to a very large degree on error cancellation). again,
this is explained in texts on statistical mechanics, which is the
theory that connects the mircoscopic properties computed in MD
simulations to bulk (thermodynamic) properties.

So in this study, I'm taking into account that many
potentials are calibrated against some known, but different quantities (e.g.
Young moduli, stacking fault energy, etc.) and thus create numerous
potentials for the same element. The approach that I'm using is the optimal
interval approach (which is an intrusive UQ method) and I hope somehow I can
get lammps adapt to it.

but that would this tell you, that cannot be better be evaluated by a
simple sensitivity analysis (i.e. repeat the computation of such
properties with a series of different parameter sets and then measure
the response of the desired property to those changes)? please keep in
mind that typically such calibration properties are not simple static
properties that are determined from a single energy evaluation, but
require sufficient statistical sampling to achieve a converged
property. it is a bit different for properties that are determined
from a series of energy minimizations, but those are not strictly
molecular *dynamics* calculations, since those are properties computed
at 0K temperature.

Please allow me to rephrase my question: is it possible to modify lammps
somehow to adapt to the interval formulation instead of real number
formulation, assuming the ensemble are also reformulated in interval as
well. That would be great if so.

that is not really a reformulation of the question but a restatement
and i already answered that with a "no". you would have to rewrite
practically all of the code. as i mentioned, it would be easier to
write a new MD code from scratch. a simple serial MD code for a single
type of atoms with a simple LJ potential and no thermostat is fairly
easy to implement. a complex code like LAMMPS requires a *massive*
amount of programming, including all the parallel communication and
many other complex tasks, not to mention the amount of debugging
required and the performance hit inferred.

but writing your own code would not make your prospects of producing
any meaningful information any better in my opinion.

axel.

You could take code from a few basic classes in LAMMPS to do
what Axel suggests, and create a barebones MD code for one
model that you could rewrite in whatever precision you like.

A neighbor list, pair lj/cut, verlet, fix nve.

If you Google for Mantevo you will find what are called mini-apps,
one of which is miniMD, which was created from LAMMPS in just
that manner. There are several variants that rewrote some of
those kernels for GPUs, Intel Phi, etc. The base code is tiny
and meant to be experimented with.

Steve

Hello Steve,

Thank you very much for your suggestion. I went to https://mantevo.org and downloaded 2 main mini-apps CoMD and miniMD. The CoMD seems to work fine, at least on the Tiny Core Linux (according to the tutorial). The miniMD seems to be a little complicated than I thought.

So I successfully compiled 2 miniMD versions - 1 default and 1 openmpi. To my surprise, none of the input works. Here is what I have tried:

  1. run run_one_test without modifying MPIOPTIONS (originally it was MPIOPTIONS="-bind-to socket -map-by socket")

The returned error was mpiexec was unable to launch the specific application as it could not find an executable.

Executable: -bind-to

  1. I took out the MPIOPTIONS (i.e. MPIOPTIONS = “”)

The error returned was “mpiexec noticed that process rank 0 with PID 4324 on node dv6700 exited on signal 4 (Illegal instruction).”

  1. I have tried different inputs in the same directory. None of them appear to be working, and they all give the same error (as above).

Below is the log message I received when running miniMD.

Mantevo and miniMD have its own user group and mail list,
so I suggest you post your issues to them. I have no current
connection to miniMD. Nor does Axel so far as I know.

Steve