I think we are confused a bit here. My question was a completely
technical one regarding the feasibility of outputting > 32 group
computes during the computation of a trajectory at every time step. My
understanding of these forums are that their exact purpose is on
technical issues regarding the use of the software, and not on the
science. I am fully aware of the computational requirements for
dealing with such data and have the means to deal with them, both in
storage and performance. My scientific reasons for wanting this data
are irrelevant to the current question.
anthony,
sorry, but here we have a difference in understanding.
i already told you that what you were asking for is
practically impossible with the current LAMMPS code
base.
if you want help beyond that you have to "pay the price"
of sharing your intentions and "i want to do it" doesn't
cut it for me. i volunteer my time to help people, because
understanding their needs helps me (and others) to write
better code and anticipate future needs better.
you are certainly free to not share any details of your
scientific motivation, but then i will execute the equivalent
freedom to just ignore your request.
open source is a "quid pro quo" deal.
i am willing to help people w/o that condition only
if i get compensated for my time.
That being said, let me rephrase. Is what I'm asking possible? Is it,
perhaps, possible when I don't want every time step, but every time
step mod N where N > 1? For my purposes I can deal with situations
where N > 1.
this has nothing to do with time steps.
Otherwise, on to your next point ...
that all being said, i would assume that the best way to
approach what you are currently doing, is to do this in
postprocessing (remember that the data files will be huuuuggge).
you can compute ke/atom and pe/atom and then output this
as per-atom property in the dump file and then write a simple
program to aggregate that info according to your group definitions.
This is a reasonable suggestion but it is not related to my question,
and you're right that these files would be huge. I could deal with
them, yes, but I'd much rather not if it is technically possible
within memory in the calculation, and you suggest a method I'm not
familiar with in your next point ...
what you are asking for would create files of almost the same size.
if i assume that those numbers are just going to be input to some
other calculation, then a better approach would be to write a
custom single compute that would operate on atom group all
and then had the various group definitions (molecules?) as input
and then computes and collects the desired information as needed.
that would take some more effort, but would avoid the costly
writing and reading of text files.
This seems like an excellent suggestion and is exactly in line with my
original question. Yes they are molecules. I have absolutely no idea
how to achieve this. Any reference to previous list items would be
very welcome.
the LAMMPS source code is your reference. there are per
molecule computes that could serve as an example.
Also, you mentioned that "the groups are implemented as bitmasks on
integers that are 32-bit on all but a few current systems." For what
systems are they implemented differently? I have many computational
options.
you would have to have a platform for which by
the following statement is true: sizeof(int) == 8
you can trigger this on several setups through a compiler
flag, but then you would need a matching MPI installation,
and on top of that you would have to carefully debug
the LAMMPS code, because i am certain that there may
be places left where sizeof(int) is assumed to be no larger
than 4. if you read through the source code this should
become apparent very quickly.
cheers,
axel.