Non- equilibrium thermodynamic in DPD simulation

I made a DPD simulation using pair_style hybrid dpd with srp:


units lj
atom_style angle

pair_style hybrid dpd 1.0 1.0 12345 srp 0.8 * min exclude yes
pair_coeff * * dpd 25.0 1.5 1.0
pair_coeff * * srp 25.0 0.5
pair_coeff 1 1 dpd 25.0 4.5 1.0
pair_coeff 2 2 dpd 25.0 4.5 1.0 #explicit solvent
pair_coeff 1 2 dpd 20.0 4.5 1.0
pair_coeff 1 3 none
pair_coeff 2 3 none
pair_coeff 3 3 srp 25.0 0.5

bond_style …

angle_style …

fix 1 all nve


By using fix 1 all nve the system trajectory should be consistent with the microcanonical ensemble. DPD uses a dissipative and a random force. To keep the Energy constant there has to be the same amount of energy to be dissipated as the random force produces. I think I don’t understand what this means for the thermal equilibrium. Is it still thermal equilibrium, local equilibrium?, and if not, are there ways to implement a DPD simulation with local thermal equilibrium only?

You are misunderstanding the implication of what using fix nve means. Fix nve corresponds to simple timestepping according to the velocity Verlet (or r-RESPA) timestepping implemented in LAMMPS.
Using fix nve does NOT automatically mean that you are in the NVE ensemble.

To have an NVE ensemble you also must have no other “modification” of the energy of the system. However pair style dpd will do just that with its dissipative and random force contributions. So your system will converge to a temperature fluctuating around the desired value as determined by the DPD parameters, and if your time step and other simulation settings are chosen well, it will be representing a system in equilibrium.

With the SRP particles, however, you have to be very careful in how you compute the temperature.

Thanks again.
I set the temperature in the input- script to 1.0:
pair_style hybrid dpd 1.0 1.0 12345 srp 0.8 * min exclude yes

I thought the random and dissipative force are connected via the fluctuation dissipation theorem and cancel each other out on average and the discrepancy to the value set in the input- script is caused by the srp.

How do these conservative potentials and the starting configuration and the the accompanying potential energy influence the temperature?
angle_style cosine

bond_style harmonic

My first idea was that the excess energy (caused by the starting configuration of the system) dissipates away till the average kinetic energy and temperature (here 1.0) are reached. But looking at the thermo output there is no indicator that the energy changes. So i assume that the temperature listed in the thermo ouput just sets the strength of the dissipative and random force and correlates to the average disordered motion in the system independent of the energy of bonds and angles. So probably I didn’t quite get the distinction right between Kinetic energy and thermal kinetic energy. Or do I have to take the kinetic contributions of those Potentials into consideration if computing the temperature?

Step Temp E_pair E_mol Press Volume Density
13 0 225787.1 3426.4942 25.368178 15625 3
10000 1.0427923 211395.68 3611.6215 23.58664 15625 3
20000 1.0310682 211359.07 3420.4248 23.652038 15625 3
30000 1.0399334 211291.42 3484.3287 23.658256 15625 3
40000 1.0411657 211443.07 3630.9626 23.709736 15625 3
50000 1.0323323 211565.15 3505.2498 23.676174 15625 3
60000 1.0418044 211451.56 3530.3398 23.5806 15625 3
70000 1.0477978 211616.48 3511.0336 23.657051 15625 3
80000 1.036137 211592.15 3516.8977 23.680632 15625 3
90000 1.032606 211686.26 3480.6188 23.632757 15625 3
100000 1.0408756 211564.16 3591.591 23.596186 15625 3
110000 1.0349283 211184.54 3417.9598 23.584729 15625 3
120000 1.0396078 211644.18 3701.0921 23.585361 15625 3

They will only cancel if the system is in equilibrium and if there are no other “manipulations”.

Sorry, but what you are writing here makes no sense to me. More importantly, you are assuming/guessing things that can be easily looked up in the corresponding literature or that are basic MD knowledge. How LAMMPS computes “temperature” is described in the compute temp docs. How the dpd pair style affects particle forces is documented in its docs.

What is a “thermal kinetic energy”?
Potentials do not have “kinetic contributions” they determine the potential energy and from the gradient of the potential energy you get the forces. It is as simple as that. The forces then can change the velocity of particles during timestepping according to Newton’s laws (since we are doing classical mechanics here).

Thermal kinetic energy is the thermal part of the kinetic energy, the part generated by unordered motion that contributes to defining the temperature of the system. In most cases the term „temperature“ is well defined. But being on a mesoscopic scale of time and space it is not quite so obvious for me what assumptions have to been taken, what is considered unordered motion. If it is only the motion generated by the random force or if the motion of a polymernetwork caused by different potentials also have to be considered unordered motion.

Potentials do not have “kinetic contributions” they determine the potential energy and from the gradient of the potential energy you get the forces. It is as simple as that. The forces then can change the velocity of particles during timestepping according to Newton’s laws (since we are doing classical mechanics here).

That‘s like the detailed description of how the potential energy of the starting configuration causes changes in velocity and kinetic energy, hence a contribution to the kinetic energy. Probably my english phrasing is not the best. Please excuse. I‘m sure I will find what I need in the temp docs. Thanks again, you already helped a lot.

In the context of LAMMPS kinetic energy is well defined. It is the kinetic energy of the (classic) particles that are being simulated. See compute ke command — LAMMPS documentation
That is it. LAMMPS does not pay any attention to the kind of model you use.

Same for temperature, which is computed from the (classical) kinetic energy and the degrees of freedom (see compute temp command — LAMMPS documentation). Please note that all of these commands assume point particles. If you have other energies (e.g. an “internal” kinetic energy of mesocale particles, or rotational kinetic energy of extended particles) those require special, different computes that take those into account (e.g. compute temp/asphere).