.. index:: compute pair/gran/local, compute wall/gran/local compute pair/gran/local command =============================== compute wall/gran/local command =============================== Syntax """""" .. parsed-literal:: compute ID group-ID pair/gran/local general_keywords general_values keywords ... compute ID group-ID wall/gran/local general_keywords general_values keywords ... * ID, group-ID are documented in :doc:`compute ` command * pair/gran/local or wall/gran/local = style name of this compute command * general_keywords general_values are documented in `compute `_ * zero or more keywords may be appended .. parsed-literal:: keyword = *pos* or *vel* or *id* or *force* or *torque* or *history* or *contactArea* or *delta*:l *pos* = positions of particles in contact (6 values) *vel* = velocities of particles in contact (6 values) *id* = IDs of particles in contact and a periodicity flag (3 values) or IDs of the mesh, the triangle and the particle (3 values) *force* = contact force (3 values) *force_normal* = normal component of contact force (3 values) *force_tangential* = tangential component of contact force (3 values) *torque* = torque divided by particle diameter (3 values) *history* = contact history (# depends on pair style, e.g. 3 shear history values) *contactArea* = area of the contact (1 value) *contactPoint* = contact point (3 value) *delta* = overlap of the contact (1 value) *heatFlux* = conductive heat flux of the contact (1 value) *ms_id* = multisphere IDs of clumps where of particles in contact belong to (in case of wall, second value will be -1) (2 values) Examples """""""" .. parsed-literal:: compute 1 all pair/gran/local compute 1 all pair/gran/local pos force compute 1 all wall/gran/local Description """"""""""" Define a computation that calculates properties of individual pairwise or particle-wall interactions of a granular pair style. The number of datums generated, aggregated across all processors, equals the number of pairwise interactions or particle-wall interactions in the system. The local data stored by this command is generated by looping over the pairwise neighbor list. Info about an individual pairwise interaction will only be included if both atoms in the pair are in the specified compute group, and if the current pairwise distance is less than the force cutoff distance for that interaction, as defined by the :doc:`pair_style ` and :doc:`pair_coeff ` commands. .. warning:: For accessing particle-wall contact data, only mesh walls (see :doc:`fix mesh `) can be used. For computing particle-wall (compute wall/gran/local), the code will automatically look for a :doc:`fix wall/gran ` command that uses mesh walls. The order of the meshes in the fix wall/gran command is called the mesh id (starting with 0), and the triangle id reflects the order of the triangles in the STL/VTK file read via the dedicated fix mesh command. For how to output the trangle id, see "dump mesh/gran/VTK command"dump.html. The output *pos* is the particle positions (6 values) in distance :doc:`units `. Keyword *vel* will do the same for velocities. For computing pairwise data, the output *id* will be the two particle IDs (using this option requires to use an atom map) and a flag that is 1 for interaction over a periodic boundary and 0 otherwise. For computing particle-wall data, the output *id* will be the mesh id, the triangle id and the particle id. The output *force*, *force_normal*, *force_tangential* and *torque* are the total contact force, the normal and tangential components of the contact force, and the torque divided by the particle radius, both in force :doc:`units `. Note that the normal and tangential components are not necessarily exactly equal to the forces added by :doc:`the normal and tangential model used ` , but are geometrically composed, using the connection line between the particle centers as normal direction. Note also that the torque does NOT contain any rolling friction torque. The output *history* will depend on what this history represents, according to the granular pair style used. The output *contactArea* will output the contact area, in distance^2 :doc:`units `. Note that *contactArea* is based on an analytic geometric calculation of sphere-sphere or sphere-plane intersection rather than a calculation based on mechanics. This is to ensure that *contactArea* works with all types of contact models. The *contactPoint* output will store the point at which contact forces are computed. The output *delta* will output the overlap (sum of radii - distance between particle centers) in distance :doc:`units ` .The output *heatFlux* (available only if a :doc:`fix heat/gran ` is used to compute heat fluxes) will output the per-contact conductive heat flux area, in energy/time :doc:`units `. .. warning:: The data associated to the different keywords is output in the following order: *pos*, *vel*, *id*, *force*, *force_normal*, *force_tangential*, *torque*, *history*, *contactArea*, *heatFlux*, *contactPoint*. This is independant of the order in which the keywords are specified. Note that as atoms migrate from processor to processor, there will be no consistent ordering of the entries within the local vector or array from one timestep to the next. The only consistency that is guaranteed is that the ordering on a particular timestep will be the same for local vectors or arrays generated by other compute commands. For example, pair output from the :doc:`compute property/local ` command can be combined with data from this command and output by the :doc:`dump local ` command in a consistent way. .. warning:: This compute, will, when invoked, issue a call to the pair or wall contact models to calculate what would be the contact forces given the current positions, velocities etc Since this compute is typically done when output is created (at the end of the time-step), this is not necessarily exactly equal to (with machine precision) the p-p or p-w forces which were calculated within one time-step. Output info """"""""""" This compute calculates a local vector or local array depending on the number of keywords. The length of the vector or number of rows in the array is the number of pairs. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that uses local values from a compute as input. See :ref:`this section <4_15>` for an overview of LIGGGHTS(R)-PUBLIC output options. For information on the :doc:`units ` of the output, see above. Restrictions """""""""""" Can only be used together with a granular pair style. For accessing particle-wall contact data, only mesh walls can be used. Related commands """""""""""""""" :doc:`dump local `, :doc:`compute property/local ` Default """"""" By default, all of the outputs keywords (except force_normal, force_tangential, heat flux and delta) are activated, i.e. when no keyword is used, positions velocities, ids, forces, torques, history and contact area are output. .. _liws: http://www.cfdem.com .. _ld: Manual.html .. _lc: Section_commands.html#comm