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