forked from lijiext/lammps
while space and source formatting cleanup
This commit is contained in:
parent
6088f2a6a2
commit
af8a71b1ad
|
@ -17,13 +17,13 @@ wall/gran = style name of this fix command :l
|
||||||
fstyle = style of force interactions between particles and wall :l
|
fstyle = style of force interactions between particles and wall :l
|
||||||
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
||||||
fstyle_params = parameters associated with force interaction style :l
|
fstyle_params = parameters associated with force interaction style :l
|
||||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||||
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
||||||
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
|
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
|
||||||
args = list of arguments for a particular style :l
|
args = list of arguments for a particular style :l
|
||||||
|
|
|
@ -17,20 +17,20 @@ wall/region = style name of this fix command :l
|
||||||
fstyle = style of force interactions between particles and wall :l
|
fstyle = style of force interactions between particles and wall :l
|
||||||
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
||||||
fstyle_params = parameters associated with force interaction style :l
|
fstyle_params = parameters associated with force interaction style :l
|
||||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||||
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
||||||
wallstyle = region (see "fix wall/gran"_fix_wall_gran.html for options for other kinds of walls) :l
|
wallstyle = region (see "fix wall/gran"_fix_wall_gran.html for options for other kinds of walls) :l
|
||||||
region-ID = region whose boundary will act as wall :l,ule
|
region-ID = region whose boundary will act as wall :l,ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
|
|
||||||
fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone
|
fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone
|
||||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
||||||
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||||
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone :pre
|
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone :pre
|
||||||
|
|
|
@ -66,8 +66,8 @@ mixed coefficients for type 1 - type 2 interactions can be determined from
|
||||||
mixing rules discussed below. For additional flexibility,
|
mixing rules discussed below. For additional flexibility,
|
||||||
coefficients as well as model forms can vary between particle types,
|
coefficients as well as model forms can vary between particle types,
|
||||||
as shown in the fourth example: type 1 - type 1 interactions are based
|
as shown in the fourth example: type 1 - type 1 interactions are based
|
||||||
on a Johnson-Kendall-Roberts normal contact model and 2-2 interactions
|
on a Johnson-Kendall-Roberts normal contact model and 2-2 interactions
|
||||||
are based on a DMT cohesive model (see below). In that example, 1-1
|
are based on a DMT cohesive model (see below). In that example, 1-1
|
||||||
and 2-2 interactions have different model forms, in which case mixing of
|
and 2-2 interactions have different model forms, in which case mixing of
|
||||||
coefficients cannot be determined, so 1-2 interactions must be
|
coefficients cannot be determined, so 1-2 interactions must be
|
||||||
explicitly defined via the {pair_coeff 1 *} command, otherwise an
|
explicitly defined via the {pair_coeff 1 *} command, otherwise an
|
||||||
|
@ -215,9 +215,9 @@ For {damping mass_velocity}, the normal damping is given by:
|
||||||
\end\{equation\}
|
\end\{equation\}
|
||||||
|
|
||||||
Here, \(\eta_\{n0\}\) is the damping coefficient specified for the normal
|
Here, \(\eta_\{n0\}\) is the damping coefficient specified for the normal
|
||||||
contact model, in units of {mass}/{time} and
|
contact model, in units of {mass}/{time} and
|
||||||
\(m_\{eff\} = m_i m_j/(m_i + m_j)\) is the effective mass.
|
\(m_\{eff\} = m_i m_j/(m_i + m_j)\) is the effective mass.
|
||||||
Use {damping mass_velocity} to reproduce the damping behavior of
|
Use {damping mass_velocity} to reproduce the damping behavior of
|
||||||
{pair gran/hooke/*}.
|
{pair gran/hooke/*}.
|
||||||
|
|
||||||
The {damping viscoelastic} model is based on the viscoelastic
|
The {damping viscoelastic} model is based on the viscoelastic
|
||||||
|
@ -228,9 +228,9 @@ damping is given by:
|
||||||
\eta_n = \eta_\{n0\}\ a m_\{eff\}
|
\eta_n = \eta_\{n0\}\ a m_\{eff\}
|
||||||
\end\{equation\}
|
\end\{equation\}
|
||||||
|
|
||||||
Here, {a} is the contact radius, given by \(a =\sqrt\{R\delta\}\)
|
Here, {a} is the contact radius, given by \(a =\sqrt\{R\delta\}\)
|
||||||
for all models except {jkr}, for which it is given implicitly according
|
for all models except {jkr}, for which it is given implicitly according
|
||||||
to \(\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}\). For {damping viscoelastic},
|
to \(\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}\). For {damping viscoelastic},
|
||||||
\(\eta_\{n0\}\) is in units of 1/({time}*{distance}).
|
\(\eta_\{n0\}\) is in units of 1/({time}*{distance}).
|
||||||
|
|
||||||
The {tsuji} model is based on the work of "(Tsuji et
|
The {tsuji} model is based on the work of "(Tsuji et
|
||||||
|
@ -583,11 +583,11 @@ The {granular} pair style can reproduce the behavior of the
|
||||||
minor differences can be expected due to corrections in
|
minor differences can be expected due to corrections in
|
||||||
displacement history frame-of-reference, and the application
|
displacement history frame-of-reference, and the application
|
||||||
of the torque at the center of the contact rather than
|
of the torque at the center of the contact rather than
|
||||||
at each particle). The first example above
|
at each particle). The first example above
|
||||||
is equivalent to {pair gran/hooke 1000.0 NULL 50.0 50.0 0.4 1}.
|
is equivalent to {pair gran/hooke 1000.0 NULL 50.0 50.0 0.4 1}.
|
||||||
The second example is equivalent to
|
The second example is equivalent to
|
||||||
{pair gran/hooke/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
{pair gran/hooke/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
||||||
The third example is equivalent to
|
The third example is equivalent to
|
||||||
{pair gran/hertz/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
{pair gran/hertz/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
@ -734,7 +734,7 @@ For the {pair_coeff} settings: {damping viscoelastic}, {rolling none},
|
||||||
J. M., & Poschel, T. (1996). Model for collisions in granular
|
J. M., & Poschel, T. (1996). Model for collisions in granular
|
||||||
gases. Physical review E, 53(5), 5382.
|
gases. Physical review E, 53(5), 5382.
|
||||||
|
|
||||||
:link(Tsuji1992)
|
:link(Tsuji1992)
|
||||||
[(Tsuji et al, 1992)] Tsuji, Y., Tanaka, T., & Ishida,
|
[(Tsuji et al, 1992)] Tsuji, Y., Tanaka, T., & Ishida,
|
||||||
T. (1992). Lagrangian numerical simulation of plug flow of
|
T. (1992). Lagrangian numerical simulation of plug flow of
|
||||||
cohesionless particles in a horizontal pipe. Powder technology, 71(3),
|
cohesionless particles in a horizontal pipe. Powder technology, 71(3),
|
||||||
|
|
|
@ -1161,7 +1161,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz,
|
||||||
if (damping_model == VELOCITY) {
|
if (damping_model == VELOCITY) {
|
||||||
damp_normal = 1;
|
damp_normal = 1;
|
||||||
}
|
}
|
||||||
else if (damping_model == MASS_VELOCITY){
|
else if (damping_model == MASS_VELOCITY) {
|
||||||
damp_normal = meff;
|
damp_normal = meff;
|
||||||
}
|
}
|
||||||
else if (damping_model == VISCOELASTIC) {
|
else if (damping_model == VISCOELASTIC) {
|
||||||
|
|
|
@ -121,7 +121,7 @@ void FixWallGranRegion::init()
|
||||||
region->reset_vel();
|
region->reset_vel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (motion_resetflag){
|
if (motion_resetflag) {
|
||||||
char str[256];
|
char str[256];
|
||||||
snprintf(str,256,"Region properties for region %s are inconsistent "
|
snprintf(str,256,"Region properties for region %s are inconsistent "
|
||||||
"with restart file, resetting its motion",idregion);
|
"with restart file, resetting its motion",idregion);
|
||||||
|
@ -190,7 +190,7 @@ void FixWallGranRegion::post_force(int /*vflag*/)
|
||||||
if (mask[i] & groupbit) {
|
if (mask[i] & groupbit) {
|
||||||
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
|
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
|
||||||
|
|
||||||
if (pairstyle == GRANULAR && normal_model == JKR){
|
if (pairstyle == GRANULAR && normal_model == JKR) {
|
||||||
nc = region->surface(x[i][0],x[i][1],x[i][2],
|
nc = region->surface(x[i][0],x[i][1],x[i][2],
|
||||||
radius[i]+pulloff_distance(radius[i]));
|
radius[i]+pulloff_distance(radius[i]));
|
||||||
}
|
}
|
||||||
|
@ -232,8 +232,8 @@ void FixWallGranRegion::post_force(int /*vflag*/)
|
||||||
|
|
||||||
rsq = region->contact[ic].r*region->contact[ic].r;
|
rsq = region->contact[ic].r*region->contact[ic].r;
|
||||||
|
|
||||||
if (pairstyle == GRANULAR && normal_model == JKR){
|
if (pairstyle == GRANULAR && normal_model == JKR) {
|
||||||
if (history_many[i][c2r[ic]][0] == 0.0 && rsq > radius[i]*radius[i]){
|
if (history_many[i][c2r[ic]][0] == 0.0 && rsq > radius[i]*radius[i]) {
|
||||||
for (m = 0; m < size_history; m++)
|
for (m = 0; m < size_history; m++)
|
||||||
history_many[i][0][m] = 0.0;
|
history_many[i][0][m] = 0.0;
|
||||||
continue;
|
continue;
|
||||||
|
@ -253,7 +253,7 @@ void FixWallGranRegion::post_force(int /*vflag*/)
|
||||||
if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i];
|
if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i];
|
||||||
|
|
||||||
// store contact info
|
// store contact info
|
||||||
if (peratom_flag){
|
if (peratom_flag) {
|
||||||
array_atom[i][0] = (double)atom->tag[i];
|
array_atom[i][0] = (double)atom->tag[i];
|
||||||
array_atom[i][4] = x[i][0] - dx;
|
array_atom[i][4] = x[i][0] - dx;
|
||||||
array_atom[i][5] = x[i][1] - dy;
|
array_atom[i][5] = x[i][1] - dy;
|
||||||
|
@ -382,7 +382,7 @@ void FixWallGranRegion::copy_arrays(int i, int j, int /*delflag*/)
|
||||||
{
|
{
|
||||||
int m,n,iwall;
|
int m,n,iwall;
|
||||||
|
|
||||||
if (use_history){
|
if (use_history) {
|
||||||
n = ncontact[i];
|
n = ncontact[i];
|
||||||
for (iwall = 0; iwall < n; iwall++) {
|
for (iwall = 0; iwall < n; iwall++) {
|
||||||
walls[j][iwall] = walls[i][iwall];
|
walls[j][iwall] = walls[i][iwall];
|
||||||
|
@ -392,7 +392,7 @@ void FixWallGranRegion::copy_arrays(int i, int j, int /*delflag*/)
|
||||||
ncontact[j] = ncontact[i];
|
ncontact[j] = ncontact[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peratom_flag){
|
if (peratom_flag) {
|
||||||
for (int m = 0; m < size_peratom_cols; m++)
|
for (int m = 0; m < size_peratom_cols; m++)
|
||||||
array_atom[j][m] = array_atom[i][m];
|
array_atom[j][m] = array_atom[i][m];
|
||||||
}
|
}
|
||||||
|
@ -406,7 +406,7 @@ void FixWallGranRegion::set_arrays(int i)
|
||||||
{
|
{
|
||||||
if (use_history)
|
if (use_history)
|
||||||
ncontact[i] = 0;
|
ncontact[i] = 0;
|
||||||
if (peratom_flag){
|
if (peratom_flag) {
|
||||||
for (int m = 0; m < size_peratom_cols; m++)
|
for (int m = 0; m < size_peratom_cols; m++)
|
||||||
array_atom[i][m] = 0;
|
array_atom[i][m] = 0;
|
||||||
}
|
}
|
||||||
|
@ -421,7 +421,7 @@ int FixWallGranRegion::pack_exchange(int i, double *buf)
|
||||||
int m;
|
int m;
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (use_history){
|
if (use_history) {
|
||||||
int count = ncontact[i];
|
int count = ncontact[i];
|
||||||
buf[n++] = ubuf(count).d;
|
buf[n++] = ubuf(count).d;
|
||||||
for (int iwall = 0; iwall < count; iwall++) {
|
for (int iwall = 0; iwall < count; iwall++) {
|
||||||
|
@ -430,7 +430,7 @@ int FixWallGranRegion::pack_exchange(int i, double *buf)
|
||||||
buf[n++] = history_many[i][iwall][m];
|
buf[n++] = history_many[i][iwall][m];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (peratom_flag){
|
if (peratom_flag) {
|
||||||
for (int m = 0; m < size_peratom_cols; m++)
|
for (int m = 0; m < size_peratom_cols; m++)
|
||||||
buf[n++] = array_atom[i][m];
|
buf[n++] = array_atom[i][m];
|
||||||
}
|
}
|
||||||
|
@ -448,7 +448,7 @@ int FixWallGranRegion::unpack_exchange(int nlocal, double *buf)
|
||||||
|
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (use_history){
|
if (use_history) {
|
||||||
int count = ncontact[nlocal] = (int) ubuf(buf[n++]).i;
|
int count = ncontact[nlocal] = (int) ubuf(buf[n++]).i;
|
||||||
for (int iwall = 0; iwall < count; iwall++) {
|
for (int iwall = 0; iwall < count; iwall++) {
|
||||||
walls[nlocal][iwall] = (int) ubuf(buf[n++]).i;
|
walls[nlocal][iwall] = (int) ubuf(buf[n++]).i;
|
||||||
|
@ -456,7 +456,7 @@ int FixWallGranRegion::unpack_exchange(int nlocal, double *buf)
|
||||||
history_many[nlocal][iwall][m] = buf[n++];
|
history_many[nlocal][iwall][m] = buf[n++];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (peratom_flag){
|
if (peratom_flag) {
|
||||||
for (int m = 0; m < size_peratom_cols; m++)
|
for (int m = 0; m < size_peratom_cols; m++)
|
||||||
array_atom[nlocal][m] = buf[n++];
|
array_atom[nlocal][m] = buf[n++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,7 +418,7 @@ void PairGranular::compute(int eflag, int vflag)
|
||||||
}
|
}
|
||||||
// rotate and update displacements.
|
// rotate and update displacements.
|
||||||
// see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235
|
// see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235
|
||||||
if (historyupdate){
|
if (historyupdate) {
|
||||||
rsht = history[0]*nx + history[1]*ny + history[2]*nz;
|
rsht = history[0]*nx + history[1]*ny + history[2]*nz;
|
||||||
if (fabs(rsht) < EPSILON) rsht = 0;
|
if (fabs(rsht) < EPSILON) rsht = 0;
|
||||||
if (rsht > 0) {
|
if (rsht > 0) {
|
||||||
|
@ -958,7 +958,7 @@ void PairGranular::coeff(int narg, char **arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
init specific to this pair style
|
init specific to this pair style
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void PairGranular::init_style()
|
void PairGranular::init_style()
|
||||||
|
|
Loading…
Reference in New Issue