162 lines
5.3 KiB
ReStructuredText
162 lines
5.3 KiB
ReStructuredText
.. index:: pair_style dsmc
|
|
|
|
pair_style dsmc command
|
|
=======================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
pair_style dsmc max_cell_size seed weighting Tref Nrecompute Nsample
|
|
|
|
* max_cell_size = global maximum cell size for DSMC interactions (distance units)
|
|
* seed = random # seed (positive integer)
|
|
* weighting = macroparticle weighting
|
|
* Tref = reference temperature (temperature units)
|
|
* Nrecompute = re-compute v\*sigma_max every this many timesteps (timesteps)
|
|
* Nsample = sample this many times in recomputing v\*sigma_max
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
pair_style dsmc 2.5 34387 10 1.0 100 20
|
|
pair_coeff * * 1.0
|
|
pair_coeff 1 1 1.0
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Style *dsmc* computes collisions between pairs of particles for a
|
|
direct simulation Monte Carlo (DSMC) model following the exposition in
|
|
:ref:`(Bird) <Bird>`. Each collision resets the velocities of the two
|
|
particles involved. The number of pairwise collisions for each pair
|
|
or particle types and the length scale within which they occur are
|
|
determined by the parameters of the pair_style and pair_coeff
|
|
commands.
|
|
|
|
Stochastic collisions are performed using the variable hard sphere
|
|
(VHS) approach, with the user-defined *max_cell_size* value used as
|
|
the maximum DSMC cell size, and reference cross-sections for
|
|
collisions given using the pair_coeff command.
|
|
|
|
There is no pairwise energy or virial contributions associated with
|
|
this pair style.
|
|
|
|
The following coefficient must be defined for each pair of atoms types
|
|
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
|
|
or in the data file or restart files read by the
|
|
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
|
commands:
|
|
|
|
* sigma (area units, i.e. distance-squared)
|
|
|
|
The global DSMC *max_cell_size* determines the maximum cell length
|
|
used in the DSMC calculation. A structured mesh is overlayed on the
|
|
simulation box such that an integer number of cells are created in
|
|
each direction for each processor's sub-domain. Cell lengths are
|
|
adjusted up to the user-specified maximum cell size.
|
|
|
|
----------
|
|
|
|
To perform a DSMC simulation with LAMMPS, several additional options
|
|
should be set in your input script, though LAMMPS does not check for
|
|
these settings.
|
|
|
|
Since this pair style does not compute particle forces, you should use
|
|
the "fix nve/noforce" time integration fix for the DSMC particles,
|
|
e.g.
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix 1 all nve/noforce
|
|
|
|
This pair style assumes that all particles will communicated to
|
|
neighboring processors every timestep as they move. This makes it
|
|
possible to perform all collisions between pairs of particles that are
|
|
on the same processor. To ensure this occurs, you should use
|
|
these commands:
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
neighbor 0.0 bin
|
|
neigh_modify every 1 delay 0 check no
|
|
atom_modify sort 0 0.0
|
|
communicate single cutoff 0.0
|
|
|
|
These commands ensure that LAMMPS communicates particles to
|
|
neighboring processors every timestep and that no ghost atoms are
|
|
created. The output statistics for a simulation run should indicate
|
|
there are no ghost particles or neighbors.
|
|
|
|
In order to get correct DSMC collision statistics, users should
|
|
specify a Gaussian velocity distribution when populating the
|
|
simulation domain. Note that the default velocity distribution is
|
|
uniform, which will not give good DSMC collision rates. Specify
|
|
"dist gaussian" when using the :doc:`velocity <velocity>` command
|
|
as in the following:
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
velocity all create 594.6 87287 loop geom dist gaussian
|
|
|
|
----------
|
|
|
|
Mixing, shift, table, tail correction, restart, rRESPA info
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
This pair style does not support mixing. Thus, coefficients for all
|
|
I,J pairs must be specified explicitly.
|
|
|
|
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
|
shift option for the energy of the pair interaction.
|
|
|
|
The :doc:`pair_modify <pair_modify>` table option is not relevant
|
|
for this pair style.
|
|
|
|
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
|
tail option for adding long-range tail corrections to energy and
|
|
pressure.
|
|
|
|
This pair style writes its information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do not need
|
|
to be specified in an input script that reads a restart file. Note
|
|
that the user-specified random number seed is stored in the restart
|
|
file, so when a simulation is restarted, each processor will
|
|
re-initialize its random number generator the same way it did
|
|
initially. This means the random forces will be random, but will not
|
|
be the same as they would have been if the original simulation had
|
|
continued past the restart time.
|
|
|
|
This pair style can only be used via the *pair* keyword of the
|
|
:doc:`run_style respa <run_style>` command. It does not support the
|
|
*inner*\ , *middle*\ , *outer* keywords.
|
|
|
|
----------
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
This style is part of the MC package. It is only enabled if LAMMPS
|
|
was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`pair_coeff <pair_coeff>`, :doc:`fix nve/noforce <fix_nve_noforce>`,
|
|
:doc:`neigh_modify <neigh_modify>`, :doc:`neighbor <neighbor>`,
|
|
:doc:`comm_modify <comm_modify>`
|
|
|
|
Default
|
|
"""""""
|
|
|
|
none
|
|
|
|
----------
|
|
|
|
.. _Bird:
|
|
|
|
**(Bird)** G. A. Bird, "Molecular Gas Dynamics and the Direct Simulation
|
|
of Gas Flows" (1994).
|