Hello,
At NIST we are experiencing a problem where due to a pending HPC upgrade, the existing system can only carry a simulation for ~12-15 hours before crashing. This is transitory problem that will eventually be remedied but in the meantime it is creating some hiccups.
For equilibrium simulations we can just use restarts to continue jobs OK, but for diffusive calculations based on the equilibrium output it creates a problem. On the diffusive restart, the chain MSD computed with msd/chunk are reset to zero in contrast to the monomer MSD which remains continuous. We are using the same fix ID’s etc. in the restart file, as stated in the compute_msd_chunk documentation, so our restart procedure seems to be sound.
What we have come to is that the problem is that we compute the chain MSD as an average of a compute in a variable:
# Compute for molecules as chunks
compute cc1 all chunk/atom molecule
# compute average msd/chunk (for all molecules)
compute msd_molecule all msd/chunk cc1
variable msd_mol equal ave(c_msd_molecule[4])
We have tried modifying this for the restart in several ways using fix store/state.
- In the first approach we tried to store the average of all chain MSDs in a variable that stays in the restart file:
compute msd_molecule all msd/chunk cc1
variable msd_mol equal ave(c_msd_molecule[4])
fix store_msd all store/state 200 v_msd_mol
The calculation crashes with the following error:
ERROR: Fix store/state variable msd_mol is not atom-style variable (…/fix_store_state.cpp:288)
OK, we realized the error of our ways there.
- In a second approach we used a compute to store each chain’s MSD with its associated atoms and keep this in the restart file:
compute msd_molecule all msd/chunk cc1
compute spread_chains all chunk/spread/atom cc1 c_msd_molecule[4]
compute msd_chain all reduce ave c_spread_chains
fix store_msd all store/state 200 c_spread_chains
The calculation runs, but c_msd_chain still resets to zero after the restart, according to the thermo output.
Is there a method for doing a continuous chain MSD calculation with msd/chunk using restarts, or is that currently impossible?
Thanks,
~Fred