# calculating force autocorrelation function

``````Dear lammps user's:
``````
``````i would ask if it is possible to calculate directly force autocorrelation function (FOF) using the command: fix ave/correlate and how to do this if it is possible. how to calculate force for using in this command? i find in manual two examples of using autocorrelation functions for calculating viscosity and thermal conductivity. how about force autocorrelation function for calculating the friction coefficient?
``````
``````Thanks for your answers in advance.
``````
`````` best regards,
``````
``````Aisan
``````

Dear lammps user's:

i would ask if it is possible to calculate directly force autocorrelation function (FOF) using the command: fix ave/correlate and how to do this if it is possible. how to calculate force for using in this command? i find in manual two examples of using autocorrelation functions for calculating viscosity and thermal conductivity. how about force autocorrelation function for calculating the friction coefficient?

as the documentation for the ​fix ave/correlate command explains, it can

be used to process​ *any* kind of per atom compute. so computing a force
auto-correlation works in the same way as you would compute a velocity
auto-correlation or other per-atom (or global) auto-correlation. the force
vector components are accessible in the same way as the velocity vector
components via compute property/atom.

so all the components are there, all you'll have to do is to assemble them
and process the resulting pre-processed data accordingly. the latter step
itself is beyond the scope of the LAMMPS manual. check out a statistical

axel.

the documentation for the compute property/atom said"Define a computation that simply stores atom attributes for each atom in the group". it calculate force for each atom in a group, but in order to calculate the friction coffiecient of water in nanotubes i need to compute the force between water and carbon atoms. i think i should use compute group/group command. but the script gives me an error of variables in thermo_style.
following is a part of my script.
Any advice will be greatly appreciated.
thanks

compute force oxygen group/group mem

variable fx equal c_force[1]
variable fy equal c_force[2]
variable fz equal c_force[3]
fix FF all ave/correlate \$s \$p d & v_fx v_fy v_fz type auto file F0Ft.dat ave running variable scale equal {convert}/(\${kB}\$T)\$V*s*{dt}
variable la11 equal trap(f_FF[3]){scale} variable la22 equal trap(f_FF[4])*{scale}
variable la33 equal trap(f_FF[5])
\${scale}
variable la equal (v_la11+v_la22+v_la33)/3.0
thermo_style custom step cpu temp press v_fx v_fy v_fz v_la11 v_la22 v_la33 v_la
run 1000

the documentation for the compute property/atom said"Define a computation
that simply stores atom attributes for each atom in the group". it
calculate force for each atom in a group, but in order to calculate the
friction coffiecient of water in nanotubes i need to compute the force
between water and carbon atoms. i think i should use compute

​this is a different question than what you originally asked. the
principle, however, is the same and it is ultimately your job to assemble
the computation that you are looking for from the components that LAMMPS
offers (or program the missing pieces). it seems to me, though, that your
approach is a bit more random and guess-based than what it should be. there
should be a clean definition of the computation that you want to do and
from that it is merely a matter of matching the the steps of that
computation to the functionality that LAMMPS offers.

group/group command. but the script gives me an error of variables in
thermo_style.
following is a part of my script.

​you have to debug your own script yourself. nobody will do this kind of
debugging for you, and unless there is a gross mistake, it is impossible to
infer the source of the error and how to correct it from some input script
fragment and some vague mentioning of an error somewhere. the best way to
approach this is to reduce the number of unknowns and ​build your input in
stages and validate each step. then you can rather easily see where things
go astray and can then make adjustments.

axel.