Confusion about LAMMPS pressure units

Sorry I take the unit metal as real.
But the question is still open.

For unit metal:
pressure=force/area=eV/A/A^2=1.6x10^6 bars, but the pressure unit in lammps is bar.

For unit real:
pressure=force/area=Kcal/mole-Angstrom/A^2=0.043 eV/A^3=6.9x10^4 bar, while 1 bar \appro 1 atm.
However, in Lammps real units, pressure = atmospheres

Anyone has ideas? Thank you.

i think it's said along the doc itself, but the units aren't fully consistent,
you won't get 1 pressure unit dividing 1 force unit by 2 length units. this
definition is quite handy when you realize that, sometimes, scaling factors
are simply too big to carry them along.

pablo

2013/7/4 Yunjiang Wang <[email protected]>:

check the code?
I don't know if this helps, but look at lines 140-18 of the file
"update.cpp", and line 28 of "force.h", in particular the variable
"nktv2p".

} else if (strcmp(style,"real") == 0) {
    force->boltz = 0.0019872067;
    force->hplanck = 95.306976368;
    force->mvv2e = 48.88821291 * 48.88821291;
    force->ftm2v = 1.0 / 48.88821291 / 48.88821291;
    force->mv2d = 1.0 / 0.602214179;
    force->nktv2p = 68568.415;
    force->qqr2e = 332.06371;
    force->qe2f = 23.060549;
    force->vxmu2f = 1.4393264316e4;
    force->xxt2kmu = 0.1;
    force->e_mass = 1.0/1836.1527556560675;
    force->hhmrr2e = 0.0957018663603261;
    force->mvh2r = 1.5339009481951;
    force->angstrom = 1.0;
    force->femtosecond = 1.0;
    force->qelectron = 1.0;

    dt = 1.0;
    neighbor->skin = 2.0;

  } else if (strcmp(style,"metal") == 0) {
    force->boltz = 8.617343e-5;
    force->hplanck = 4.135667403e-3;
    force->mvv2e = 1.0364269e-4;
    force->ftm2v = 1.0 / 1.0364269e-4;
    force->mv2d = 1.0 / 0.602214179;
    force->nktv2p = 1.6021765e6;
    force->qqr2e = 14.399645;
    force->qe2f = 1.0;
    force->vxmu2f = 0.6241509647;
    force->xxt2kmu = 1.0e-4;
    force->e_mass = 0.0; // not yet set
    force->hhmrr2e = 0.0;
    force->mvh2r = 0.0;
    force->angstrom = 1.0;
    force->femtosecond = 1.0e-3;
    force->qelectron = 1.0;

    dt = 0.001;
    neighbor->skin = 2.0;
}

(I ran the command "grep metal" in LAMMPS' "src" directory.
I admit I am too lazy to interpret what this means.)

Hopefully this helps in some way.
Cheers!

Andrew

check the code?
I don't know if this helps, but look at lines 140-18 of the file
"update.cpp", and line 28 of "force.h", in particular the variable
"nktv2p".

[...]

(I ran the command "grep metal" in LAMMPS' "src" directory.
I admit I am too lazy to interpret what this means.)

why interpret, if you can just read?
e.g. in src/force.h

class Force : protected Pointers {
public:
  double boltz; // Boltzmann constant (eng/degree-K)
  double hplanck; // Planck's constant (energy-time)
  double mvv2e; // conversion of mv^2 to energy
  double ftm2v; // conversion of ft/m to velocity
  double mv2d; // conversion of mass/volume to density
  double nktv2p; // conversion of NkT/V to pressure
  double qqr2e; // conversion of q^2/r to energy
  double qe2f; // conversion of qE to force
  double vxmu2f; // conversion of vx dynamic-visc to force
  double xxt2kmu; // conversion of xx/t to kinematic-visc
  double dielectric; // dielectric constant
  double qqrd2e; // q^2/r to energy w/ dielectric constant
  double e_mass; // electron mass
  double hhmrr2e; // conversion of (hbar)^2/(mr^2) to energy
  double mvh2r; // conversion of mv/hbar to distance
                                     // hbar = h/(2*pi)
  double angstrom; // 1 angstrom in native units
  double femtosecond; // 1 femtosecond in native units
  double qelectron; // 1 electron charge abs() in native units