Odd conflict between dt/reset and npt

Hello List,
is there a known problem with the interaction of fix dt/reset and the
npt integrator?
I'm trying to run a simple temperature ram with a dynamic timestep
(EAM potential, so units are metal)

Timestep setup:

lattice fcc 3.52 origin 0.25 0.25 0.25
timestep 0.001
# overwrite timestep dynamically
fix dtreset all dt/reset 1 1.0e-5 0.01 0.01

Now I can try running the simulation with two different integrators.
First npt. This generates unphysically huge negative pressures and
causes the simulation box to implode (the potential is not at fault,
the cell was relaxed with fix box/relax and minimize prior to
integration)

fix 1 all npt temp 0.1 3000.0 0.5 aniso 0.0 0.0 2.0

Step Temp Enthalpy PotEng TotEng Press Volume Dt
       3 0.2 -72908.094 -72908.8 -72908.376
2.5323198 178643.8 0.01
      10 0 2529775.9 2584087 2584087
-5.6425263e+22 1.5421446e-12 0.00053889929
      20 0 2573986.1 2651263.3 2651263.3
-1.785051e+23 6.9360366e-13 0.0005518149
      30 0 2591438.2 2677665.1 2677665.1
-4.672673e+23 2.9565675e-13 0.00055317686

Second try with constant volume integration yields more physical dynamics.

fix 1 all nvt temp 0.1 3000.0 0.5

Step Temp Enthalpy PotEng TotEng Press Volume Dt
       3 0.2 -72908.094 -72908.8 -72908.376
2.5323198 178643.8 0.01
      10 0.10703189 -72907.947 -72908.594 -72908.367
3.7630799 178643.8 0.01
      20 0.11238726 -72907.922 -72908.601 -72908.363
3.9502799 178643.8 0.01
      30 0.11082415 -72907.9 -72908.59 -72908.355
4.0798992 178643.8 0.01

The manual did not mention dt/reset on the npt page, nor did it
mention npt on the dt/reset page.
In the fix_nh.cpp it looks like there is code to take a changing dt
into account at FixNH::reset_dt().
Any idea what is going on?

Daniel

Hello List,
is there a known problem with the interaction of fix dt/reset and the
npt integrator?
I'm trying to run a simple temperature ram with a dynamic timestep
(EAM potential, so units are metal)

i don't think there is much of a benefit from using dt/reset
at this point,
but i would expect that nose-hoover thermostats get horribly
confused by it.

since you are equilibrating/initializing your system,
why not start with much less critical settings like
using fix nve with fix langevin.

axel.

i don't think there is much of a benefit from using dt/reset
at this point,

Fair enough, I thought otherwise, since the temperature range covered
by the ramp is significant and thus the optimal time steps should vary
quite a bit over the course of the run.

since you are equilibrating/initializing your system,
why not start with much less critical settings like
using fix nve with fix langevin.

I have to let the volume vary as I am sampling enthalpy along the
hysteresis loop of melting and recrystalizing (ramp up, ramp down)
I have tried to equilibrate the system at low temperature using nve
before switching to npt to start the ramp, but it still implodes.
It still surprises me that even though the code seems to be aware of
the possibility of a dt change that it still fails so
catastrophically. How can the pressure calculation be so insanely off.
Maybe the equations assume the previous and next timesteps to be
identical to the current timestep (second time derivatve).

Daniel

It seems that dt/reset and npt don't play well together because
dt/reset limits the timestep only according to the velocities of the
atoms, not according to the velocity of the volume change of the box.
Looking closer at my output it turns out that npt simply overshoots
because it changes the box way too much during a single simulation
step.
Daniel