Equation used for annealing

164 views
Skip to first unread message

ASSIDUO Network

unread,
Apr 6, 2021, 2:43:25 AM4/6/21
to cp2k
Hi there everyone. Does anyone perhaps know the equation that is used for annealing (https://manual.cp2k.org/trunk/CP2K_INPUT/MOTION/MD.html). Here I know a scaling factor is multiplied to the initial temperature, but I don't know if it takes on the form of:
T(n) = sT(n-1) or some other complicated equation.

Could anyone let me know as I want to do the annealing properly.

Much appreciated,
Lenard

Julian Heske

unread,
Apr 8, 2021, 7:09:34 AM4/8/21
to cp2k
Dear Lenard,

your equation is true for the keyword TEMPERATURE_ANNEALING, which modifies the target temperature of the thermostat each step and I would suggest you to use this. The more general form is than

T(n)=s^n * T(n=0).

However, the ANNEALING parameter is for the velocities, so my guess is (I never used it, please s.o. correct me if I'm wrong):

|v|(n)= q * |v|(n-1)

and

|v|(n)=q^n * |v|(n=0).

Using the relation T(n) ~ |v|(n)^2 ( https://en.wikipedia.org/wiki/Thermal_velocity ), you can also calculate the impact of the scaling parameter q on the temperature if you want to use this one.



Best,
Julian

Lenard Carroll

unread,
Apr 8, 2021, 8:37:40 AM4/8/21
to cp...@googlegroups.com
And this n, is this per MD step? For example, if I run the simulation for 20 ps with a time step of 2 fs [10000 steps], is n then an element of [0,10000]?

--
You received this message because you are subscribed to the Google Groups "cp2k" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cp2k+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cp2k/57bd6cf9-75b3-41f4-88c7-2e3ef357606fn%40googlegroups.com.

Lenard Carroll

unread,
Apr 8, 2021, 9:03:57 AM4/8/21
to cp...@googlegroups.com
I might be wrong, but for the NVE ensemble, T(n)=s^n * T(n=0) can be derived directly from |v|(n)=q^n * |v|(n=0) if we write:
T(n) = (Σ[k=0→K] |v_k(n)|^2)/(3k(K-m)) = (Σ[k=0→K] |q^n v_k(0)|^2)/(3k(K-m)) = q^n T(0)

So I should then be able to use T(n)=s^n * T(n=0) to find the value of s. But when I tried this earlier, I got much different results. That's why I just wanted to make sure my understanding of n in T(n) is correct.

In another case I am using a 20 fs time step and 1000 steps, equating to 20 ps. Is n still an element of [0,1000]? 

Moon Moon

unread,
Dec 14, 2022, 5:58:24 AM12/14/22
to cp2k
Hi, Lenard.
Have you resolved the problem of changing temperature in cp2k?
I also can't get expected results by using TEMPERATURE_ANNEALING.

Reply all
Reply to author
Forward
0 new messages