Lammps units micro

Dear all,

I have a question about the units of ‘micro’ in LAMMPS.

Now I have a bulk system composed of bead-spring fibers, and I used ‘lj’ and ‘micro’ units respectively to check how the simulation runs.

For the lj unit, the simulation runs well. But when I use ‘micro’, some errors occur. The following is my script using ‘micro’ uints, can anyone give me some advice?
Best

###########################################################
units         micro
atom_style    molecular
dimension     3
boundary      p p p
timestep      2

###################### Interactions ######################
bond_style      harmonic
angle_style     cosine
pair_style      soft 8.0
special_bonds   lj 0 0 1
read_data       fiber.data
mass            * 0.956

################## Coefficients ############################
bond_coeff      * 72 5.5
angle_coeff     * 1
pair_coeff      * * 10.0

thermo_style    custom step temp press etotal pe ke epair ebond eangle lx ly lz vol density
thermo          100

velocity        all create 310 4679874
variable        prefactor equal ramp(0,300)
fix             rampSoft all adapt 1 pair soft a * * v_prefactor

################## Output ###################################
timestep        2
thermo_style    custom step temp press etotal pe ke epair ebond eangle lx ly lz vol density
thermo          100
dump            1 all custom 500 min.lammpstrj id type mol x y z
minimize        1.0e-12 1.0e-12 20000 20000 # 500000 500000
write_data      min.data
unfix           rampSoft
undump          1

################## Weeks-Chandler-Anderson ##################
pair_style         lj/cut 20
pair_coeff         * * 1 8 9
pair_modify        shift yes

################## Dynamics ##################
reset_timestep      0
thermo              1
thermo_style        custom step temp press etotal pe ke epair ebond eangle lx ly lz vol density
dump                3 all  custom 1 relax.lammpstrj id type mol x y z
fix                 0 all nve
fix                 1 all langevin 310 310 100 699483
run                 500000
undump              3
write_data          Equil.data
write_restart       Equil.rest
print               "ALL DONE"

The error is like this, the temp blows up:

Total # of neighbors = 822
Ave neighs/atom = 0.36696429
Ave special neighs/atom = 6.3267857
Neighbor list builds = 53821
Dangerous builds = 53177
System init for write_data ...
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Setting up Verlet run ...
  Unit style    : micro
  Current step  : 0
  Time step     : 2
Per MPI rank memory allocation (min/avg/max) = 7.407 | 7.491 | 7.684 Mbytes
   Step          Temp          Press          TotEng         PotEng         KinEng         E_pair         E_bond        E_angle           Lx             Ly             Lz           Volume        Density    
         0   310            2.2685207e-09  0.29099682     0.27662238     0.014374435   -0.13765038     3.6334669e-05  0.41423643     200            200            200            8000000        0.00026768   
         1   52266797       0.00020305861  2429.4986      5.932048       2423.5666     -0.12470287     5.6364512      0.42029968     200            200            200            8000000        0.00026768   
ERROR on proc 9: Bond atoms 2195 2196 missing on proc 9 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 0: Bond atoms 892 893 missing on proc 0 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 1: Bond atoms 221 222 missing on proc 1 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 2: Bond atoms 929 930 missing on proc 2 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 3: Bond atoms 2151 2152 missing on proc 3 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 5: Bond atoms 1854 1855 missing on proc 5 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 8: Bond atoms 1003 1004 missing on proc 8 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 6: Bond atoms 1669 1670 missing on proc 6 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 7: Bond atoms 1564 1565 missing on proc 7 at step 2 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000

Without seeing you input script for LJ units it is impossible to know, but I would initially suspect you have missed some unit conversion somewhere when changing from LJ to micro units.

Forget about the lj unit, I just use 1 for all quantities.
For the units micro, I just chose some reasonable parameters (in my opinion).

The fact that you get this gigantic temperature of 52266797K with just one timestep is proof that those values are not so reasonable. Your system is exploding in a massive way.

Thanks, so could you please tell me what values (or values range) are reasonable for micro units? I mean in LJ units, all quantities are 1, and in ‘real’ units, the harmonic coefficients of bond and angle are about 80, 50 kcal/mol A^2 and kcal/mol rad^2, the lj parameters of epsilon and sigma are about 0.5 kcal/mol and 5 A.

I tried many times with different values in micro units, but they all failed.

Thanks.

You should discuss this with your adviser or supervisor or tutor. This is not a LAMMPS issue but a question of what you want to simulate and how to convert or determine suitable parameters. That makes it a question about your research and thus you are asking in the wrong place for it. We don’t know what your project is and thus what is suitable.

Thank you so much for your response.

I have talked with my supervisor, and the simulation went wrong when I used the values converted from other MD simulation work (simulation with C++ code), that’s why I was asking about the reasonable values in ‘micro’ units last time and I would like to know how much difference between the reasonable values and the values I used.

The following is my simulation input file and data file. The simulation went well during energy minimization but then got an error at the first step during the NVE+Langevin dynamics. Could you please help with this issue? Thank you so much.

FiberNetwork.in (1.8 KB)
Fiber-netwrok.data (1.5 MB)

WARNING: Communication cutoff 8.8 is shorter than a bond length based estimate of 10.25. This may lead to errors. (src/lammps/src/comm.cpp:730)
Per MPI rank memory allocation (min/avg/max) = 6.816 | 6.823 | 6.83 Mbytes
   Step          Time           Temp          Press          TotEng         PotEng         KinEng         E_pair         E_bond        E_angle           Lx             Ly             Lz           Volume        Density    
         0   0              310            0.059875546    36319.405      36319.308      0.096293945    18974.169      81.334326      17263.805      144.22496      144.22496      144.22496      3000000        0.0101       
ERROR on proc 4: Bond atoms 11630 11631 missing on proc 4 at step 1 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 9: Bond atoms 2890 2891 missing on proc 9 at step 1 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000
ERROR on proc 14: Bond atoms 11008 11009 missing on proc 14 at step 1 (src/lammps/src/ntopo_bond_all.cpp:59)
Last command: run                 500000

So then the only logical consequence is that your conversion was incorrect. You surely don’t want to ask people here to show you how to convert between units, right?

Beyond that my previous statements stand and still apply.

P.S.: you also should not ignore warnings printed by LAMMPS unless you know they don’t apply to your case.

OK, thanks.