Compute ti v_lj and v_dlj


I would like to calculate free energy change of my LJ system using
compute ti command.

I couldnt figure out what i should have put to the variables defines
in the documentation page.
   pair style args = v_name1 v_name2
                v_name1 = variable with name1 that is energy scale
factor and function of lambda
                v_name2 = variable with name2 that is derivative of
v_name1 with respect to lambda

the part of the code related is here..

pair_coeff 1 3 lj/cut 0.8 0.75

variable scale1 equal ramp(0.8,0.0)
variable lj equal v_scale1
variable dlj equal 0.8/50000
fix Eps all adapt 100 pair lj/cut epsilon 1 3 v_scale1
compute Thermoint all ti lj/cut v_lj v_dlj
fix FreeEng all ave/time 100 10 1000 c_Thermoint ave one
file 0FreeEng.profile

thermo_style custom step c_Thermoint
thermo_modify norm no
run 50000

I am not sure the definations of v_lj and v_dlj is right ? To my
understanding v_lj is the epsilon value in LJ energy and dlj is how
its changing on the run which is actually ramping.

Best regards

Sai again ...


It depends on the free energy change you are interested in.

Suppose you are interested in the free-energy change for transforming a fully-interacting LJ system (U_normal) into a system which interacts via a new, scaled potential U_scaled. You construct a transformation path, say,

U(lambda) = f(lambda)*U_normal, and U(lambda=1) = U_scaled.

Fix/adapt requires f(lambda) as the input to scale epsilons.

Compute/ti calculates

U’(lambda)= U(lambda)/f(lambda)*f’(lambda),

where ’ = d/dlambda.

Hence, compute/ti requires f(lambda) and f’(lambda) as inputs.

In your sample input script, it looks like f(lambda) = lambda, and so v_lj = v_scale1, and v_dlj = 1.


Thnx for explation.
Actually i guess i manage to use the command to achieve my goal which
is to calculate free energy of a LJ system, where polymer (type 1)
interacts with a substrate (type2) and the pair coefficient for this
interaction changes from 0.8 to 0.

defining the variables as fallows;

variable scale1 equal ramp(0.8,0.02)
variable lj equal 1/v_scale1
variable dlj equal -0.78/50000
and using fix adapt to change the interaction parameter for some interval
fix Eps all adapt 100 pair lj/cut epsilon 1 3 v_scale1

the compute ti command :
compute Thermoint all ti lj/cut v_lj v_dlj

gives me energy change for each epsilon interval, where post
processing these compute values gave exactly what i wanted.

using the variables in this fashion enable me to calculate ( int_0^e de <U/e>)

i guess this kind of formulation just helps one to calculate free
energy without putting in to a loop.

One last question may be related to pair potential used in the
command, only the interaction between atom types 1-3 are calculated,
where lj/cut deals with 1-1 and 1-2 interactions too in my system. Am
i right about this.

Best Regards