# Define average density during simulation

Hi,
during a gcmc simulation, I produce density of gas per step. I would produce other column with the average density for every n-th step: for second step the average between the first and second, the third as the average between the first, the second, the third, and so on.
I’m a young user of lammps, and on manual I found the keyword fix ave/time command. It’s a good idea to produce the results that I wish, or exist other procedure, or it’s not possible during lammps run?

Regards

Al

The fix ave/time command can do averaging with a moving window or cummulative

ave, see its doc page and keywords.

Steve

Hi,

I define a variable
variable dal equal atoms/vol

and I use fix ave/time as

fix avload all ave/time 1 100000 1 v_dal ave one, where 100000 is the total steps of my simulation

but I obtain message error

ERROR: Illegal fix ave/time command

Al

hi,

I tried to define
variable dal equal atoms/vol (in real units)

and

fix avload all ave/time 1 1 1 v_dal file ave.log

in my case 100 points

the file ave.log report a wrong average

1 0.1
2 0.3
3 0.0

.

I expect that

Step. Atoms. Vol. Density. Av

1. 10 0.1. 0.1
1. 10 0.3. 0.2
3 0. 10 0 0.1

Av = ( 0.1+ 0.3) /2 = 0.2

I must define manually expression to calculate it. I can print the results in themo_style ?

Al

Re: your previous Q:
fix avload all ave/time 1 100000 1

is invalid, hence the error. See the fix ave/time doc

page about how to define those 3 numeric values. The

last one would have to be >= 100000 in this case.

Re: your unexpected output.
I imagine you can debug this yourself

Print v_dal with thermo output. Verify it

is what you expect at each timestep.

Then output it with fix ave/time with no averaging.

See if the values are the same.

Then expt with some averaging, and check by

hand that the values you now get are the averages

of the single timestep values. Etc, etc.

Steve

Hi steve,
thank for your reply. After some test I produced a correct average loading calculated on total number of steps. It’s a very good results for me.
I think that is not possible produce an average for every steps iteratively.
For this I think that is necessary define function with ‘ave’ and ‘sum’ with c++ syntax

Regard

Al

Hi steve,
after some tests I produced average for all steps on my simulation, but I think that to produce iterative average loding per steps, I would write a function with ‘sum’ and ‘mean’ in syntax c++

Regards

Al

The “ave” keyword for fix ave/time has an option for

“running”, which should produce averages for any

length run.

Steve

Thanks,
I noticed that the atoms created fall down immediately.
I think that the problem is the set of velocity or the timestep of my simulation…

Infact…

Step v_T v_p1 E_vdwl E_coul PotEng KinEng TotEng Density Volume Atoms
v_rho_al Temp Press
0 87 1 -0.085806415 0
-0.085806415 0.25933047 0.17352406 0.13265713 1000
2 0.002 87 0.85264037
10 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
20 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
30 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
40 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
50 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
60 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
70 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
80 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
90 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
100 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558
110 87 1 -0.0027002717 0
-0.0027002717 -0 -0.0027002717 0 1000
0 0 0 -0.36973558

velocity ars create {T} {vel_seed} sum yes mom yes rot yes dist
uniform loop all

Timestep is 1.0 in real style

Regards

Al