[lammps-users] questions about nvt/sllod code

Dear Pieter,
Thank you so much for your comprehensive reply. First, I might mislead the discuss because of ambiguously using term “lab-frame of reference”. In my question, the lab-frame of reference is actually a fixed frame of reference without any translational velocity. In your reply, the lab-frame of reference means a moving frame of reference with herein the streaming velocity. Am I correct?
So my question is still there. In eqn 33 of Heyes, the capital P in the equation is peculiar momenta wrt the lab-frame of reference you mentioned. Thus, the dP/dt is the particle accelerations in the lab-frame of reference, this is the reason SLLOD correction comes in. However, according to my understanding, you use this acceleration to get the velocity increment at t+1/2dt. Should this lab-frame of reference acceleration should be used to advance the velocity or the acceleration in the fixed frame of reference? I think it should be the acceleration in the fixed frame of reference. Actually, if you try to differentiate eqn 32 wrt time and substitute eqn 33, this will give the expression for acceleration in the fixed frame of reference d^2(q)/dt^2 (eqn 21 in Tuckerman et al. J. Chem. Phys 106, 1997). This is how the SLLOD correction term cancels and time-dependent strain rate term comes out. Thus, the key problem remains as which acceleration should be used.

Best
Frank

Frank,

I look at these equations by taking out the streaming velocity, which in LAMMPS is always assumed to be a linear profile. Normal thermal fluctuation principles apply once transform into this frame of reference, with the exception of the kinetic contribution as a result of the flow field. The capital P you are referring to does not arise from a flow field, as you can see from the comparison between eqn 2 and 33. This means, that such a term should also not be extra in just the nvt/slodd fix. Comparison between the nvt and nvt/sllod fixes shows the additional flow field corrections in the latter. The nvt fix encompasses the acceleration term as you call it.

Best Regards,
Dr. Pieter J. in 't Veld
Polymer Physics

Phone: +49 621 60-46293, Fax: +49 621 60-6646293, E-Mail: [email protected]…253…
Postal Address: BASF SE, GKC/M - G200, 67056 Ludwigshafen, Germany

BASF - The Chemical Company

BASF SE, Registered Office: 67056 Ludwigshafen, Germany
Companies’ Register: Amtsgericht Ludwigshafen, Registration No.: HRB 6000
Chairman of the Supervisory Board: Juergen Strube
Board of Executive Directors:
Juergen Hambrecht, Chairman; Eggert Voscherau, Vice Chairman;
Kurt Bock, Martin Brudermueller, John Feldmann, Andreas Kreimeyer, Stefan Marcinowski, Harald Schwager

Frank Yong <[email protected]…24…>

06/08/2010 07:15 PM

An
[email protected]…253…

Kopie
Steve Plimpton [email protected], [email protected]

Thema
Re: Re: [lammps-users] questions about nvt/sllod code

Dear Pieter,
Thank you so much for your comprehensive reply. First, I might mislead the discuss because of ambiguously using term “lab-frame of reference”. In my question, the lab-frame of reference is actually a fixed frame of reference without any translational velocity. In your reply, the lab-frame of reference means a moving frame of reference with herein the streaming velocity. Am I correct?
So my question is still there. In eqn 33 of Heyes, the capital P in the equation is peculiar momenta wrt the lab-frame of reference you mentioned. Thus, the dP/dt is the particle accelerations in the lab-frame of reference, this is the reason SLLOD correction comes in. However, according to my understanding, you use this acceleration to get the velocity increment at t+1/2dt. Should this lab-frame of reference acceleration should be used to advance the velocity or the acceleration in the fixed frame of reference? I think it should be the acceleration in the fixed frame of reference. Actually, if you try to differentiate eqn 32 wrt time and substitute eqn 33, this will give the expression for acceleration in the fixed frame of reference d^2(q)/dt^2 (eqn 21 in Tuckerman et al. J. Chem. Phys 106, 1997). This is how the SLLOD correction term cancels and time-dependent strain rate term comes out. Thus, the key problem remains as which acceleration should be used.

Best
Frank

Dear Pieter,
Thank you so much for your patient explanation. However, I think maybe I didn’t explain my point clearly enough, and may confuse you. Let’s look at the code you wrote for fix nvt/sllod.
in void FixNVTSllod::nh_v_temp(), first, “temperature->remove_bias(i,v[i])” transfers the velocity to the lab-frame of reference by removing the streaming velocity. The streaming velocity we are talking about is qDel u, where q is the position and Del u is the general strain rate.
Then, performing half-step thermostat scale PLUS SLLOD correction to obtain part of half-step velocity in lab-frame of reference
v[i][0] = v[i][0]factor_eta - dthalfvdelu[0];
v[i][1] = v[i][1]factor_eta - dthalfvdelu[1];
v[i][2] = v[i][2]factor_eta - dthalfvdelu[2];,
Following “temperature->restore_bias(i,v[i]);” transfers the velocity back to the fixed frame of reference by adding back the streaming velocity. Then, the final half-step velocity in fixed frame of reference is obtained by adding the interparticle force term in void FixNH::nve_v()
v[i][0] += dtfm
f[i][0];
v[i][1] += dtfmf[i][1];
v[i][2] += dtfm
f[i][2];

According to your code, above description is my understanding of how you advance the particle velocity from t to t+1/2dt. If we look backwards, the interparticle force term of acceleration (half-step velocity change) “dtfm*f[i][0]” is perfectly correct without dispute. The thermostat term “v[i][0]factor_eta" is also correct since the thermostat is applied on the peculiar velocity as you said “Normal thermal fluctuation principles apply once transform into this frame of reference”. The only debate lies in whether SLLOD correction "__dthalfvdelu[0]__” should vanish and additional force term (acceleration term) from the time-dependent strain rate (i.e. oscillatory shear) “q*d(Del u)/dt”. My point is that half-step velocity change is the current acceleration times half time step 1/2dt, and this acceleration should be in the fixed frame of reference. Do you agree with this argument? If yes, then “v[i][0] = v[i][0]factor_eta - dthalfvdelu[0];” is not right, since the embedded acceleration used to compute this velocity change is in the lab-frame of reference according to eqn 33. If you don’t agree with my understanding of computing velocity change, why?

P.S. " - dthalf*vdelu[0]" is basically a fictitious force because the lab-frame of reference we talked about is a non-inertial frame of reference.

Thank you so much for your helpful discussion and thanks again in advance.

Best
Frank