diff --git a/doc/units.html b/doc/units.html
index 4f6c93aa33..3b781b6eb9 100644
--- a/doc/units.html
+++ b/doc/units.html
@@ -30,6 +30,10 @@ and data file, as well as quantities output to the screen, log file,
and dump files. Typically, this command is used at the very beginning
of an input script.
+For real and metallic units, LAMMPS uses physical constants from
+www.physics.nist.gov. For the definition of Kcal in real units, LAMMPS
+uses the thermochemical calorie = 4.184 J.
+
For style lj, all quantities are unitless:
- distance = sigma
diff --git a/doc/units.txt b/doc/units.txt
index 447400f568..332c9fced1 100644
--- a/doc/units.txt
+++ b/doc/units.txt
@@ -27,6 +27,10 @@ and data file, as well as quantities output to the screen, log file,
and dump files. Typically, this command is used at the very beginning
of an input script.
+For real and metallic units, LAMMPS uses physical constants from
+www.physics.nist.gov. For the definition of Kcal in real units, LAMMPS
+uses the thermochemical calorie = 4.184 J.
+
For style {lj}, all quantities are unitless:
distance = sigma
diff --git a/src/update.cpp b/src/update.cpp
index 12ab0db154..d929364d65 100644
--- a/src/update.cpp
+++ b/src/update.cpp
@@ -92,6 +92,11 @@ void Update::init()
void Update::set_units(char *style)
{
+
+ // physical constants from:
+ // http://physics.nist.gov/cuu/Constants/Table/allascii.txt
+ // using thermochemical calorie = 4.184 J
+
if (strcmp(style,"lj") == 0) {
force->boltz = 1.0;
force->mvv2e = 1.0;
@@ -101,23 +106,23 @@ void Update::set_units(char *style)
force->qe2f = 1.0;
dt = 0.005;
neighbor->skin = 0.3;
-
+
} else if (strcmp(style,"real") == 0) {
- force->boltz = 0.001987191;
- force->mvv2e = 48.88821 * 48.88821;
- force->ftm2v = 1.0 / 48.88821 / 48.88821;
- force->nktv2p = 68589.796;
- force->qqr2e = 332.0636;
- force->qe2f = 23.0602;
+ force->boltz = 0.0019872067;
+ force->mvv2e = 48.88821291 * 48.88821291;
+ force->ftm2v = 1.0 / 48.88821291 / 48.88821291;
+ force->nktv2p = 68568.415;
+ force->qqr2e = 332.06371;
+ force->qe2f = 23.060549;
dt = 1.0;
neighbor->skin = 2.0;
} else if (strcmp(style,"metal") == 0) {
- force->boltz = 8.617e-5;
- force->mvv2e = 1.0365e-4;
- force->ftm2v = 1 / 1.0365e-4;
- force->nktv2p = 1.602e6;
- force->qqr2e = 14.40659;
+ force->boltz = 8.617343e-5;
+ force->mvv2e = 1.0364269e-4;
+ force->ftm2v = 1 / 1.0364269e-4;
+ force->nktv2p = 1.6021765e6;
+ force->qqr2e = 14.399645;
force->qe2f = 1.0;
dt = 0.001;
neighbor->skin = 2.0;