Dump global vectors at variable time

Dear LAMMPS-users,

I need to dump some global vectors (from compute msd) to a file at variable times. I know this is possible for per-atom vectors using dump_modify, and a variable like:

variable s equal logfreq(1,9,10).

But for fix ave/all, which I’d like to use to write a global vector at exponential times, this doesn’t seem possible; it only accepts integers for Nfreq and fix_modify is of no use either. Is there a way to do this? I didn’t find any in the mailing list archive or the manual.

Thank you,

Jan

Dear LAMMPS-users,

I need to dump some global vectors (from compute msd) to a file at variable
times. I know this is possible for per-atom vectors using dump_modify, and a
variable like:

variable s equal logfreq(1,9,10).

But for fix ave/all, which I'd like to use to write a global vector at

there is no fix ave/all. i assume you are talking about fix ave/time.

exponential times, this doesn't seem possible; it only accepts integers for
Nfreq and fix_modify is of no use either. Is there a way to do this?

it would be difficult to implement this in a general fashion, as the
requirement to use a logarithmic scale is not easily translated to the
Nevery, Nrepeat, Nfreq pattern.

the simplest approach would be to split your run into chunks, and then
change the fix definition with different settings for Nevery, Nrepeat
and Nfreq in between and then concatenate the resulting outputs.

axel.

Interesting idea to have fix ave/time work that way.
The issue is that it “pulls” data from the compute.
The compute does not “push” data to fix ave/time.
So fix ave/time has to control the output and the compute.

We could probably add logic to fix ave/time to have
it take a variable for its Nfreq. So long as its other
2 params were for single timestep output (no averaging).

Something like:

variable s equal logfreq(1,9,10)

fix … ave/time v_s 1 v_s ,

Steve