compute surface command

Syntax

compute ID group-ID surface general_keyword general_values arg mode input1 input2 ... keyword args ...
  • ID, group-ID are documented in compute command

  • surface = style name of this compute command

  • general_keywords general_values are documented in compute

  • zero or more keyword/value pairs may be appended

  • keyword = angle or max_dist or point_up or n_vec_up or use_com or region

angle values = ang
  ang = maximum contact angle of particle (degrees)
max_dist values = dist
  dist = search distance for neighboring particles (length units)
point_up values = px py pz
  px, py, pz = coordinates of point UP (length units)
n_vec_up values = nx ny nz
  nx, ny, nz = coordinates of normal vector NUP (length units)
use_com values = yes or no
  yes = do use particle center of mass for calculation for vector NUP
  no = do not use particle center of mass for calculation for vector NUP
region value = regID
  regID = ID of a region which determines which particles are included in the calculation

Examples

compute surf all surface point_up 0.05 0.05 0.05 n_vec_up 1. 1. 0. angle 30 max_dist 0.002

Description

Define a calculation that computes if a particle is on the surface of a particle packing, based on two very simple geometric criteria, which are based on NUP, a normal vector pointing “upwards”, and COM, the center of mass of the fix group

The detection is based on the following criterion:

The particle must not have any neighboring particle, where the angle of the neighboring particle to NUP is smaller than angle. Neighboring particles are particles that can be found within the maximal distance defined by the max_dist value. Please note that this value is crucial for the correct detection of the surface - too small values can lead to the mis-identification of particles as surface particles.

The vector NUP can be defined in 2 ways: as (a) vector from center of mass of the fix group to UP (as defined by point_up ), this is done by using the use_com keyword, or (b) directly via the n_vec_up keyword.

A note on keywords: angle must be defined, and either - for case (a) - use_com and point_up must be defined, or - for case (b) - n_vec_up must be defined.

If the keyword region is used a region ID must be provided as argument to this keyword. In this case the particles considered in the algorithm described above must be contained in the specified region in order to be considered.

Please note that the list of neighbors is looped to calculate criterion (2), which will depend on your neighbor and neigh_modify settings.

Warning

Please take into account that this is a very coarse approach, and also “inner surfaces” within the particle packing may be detected.

Output info:

This compute calculates a compute calculates a global scalar and a per-atom vector. The former is the number of all atoms on the surface, the latter equals 1 if the particle is on the surface, and 0 if the particle is not on the surface. These values can be used by any command that uses per-atom vector values from a compute as input. See Section_howto 15 for an overview of Aspherix® output options. To use these variables it is advisable to use the .global and .atom identifiers to avoid any disambiguity (see the variable command for details).

Restrictions

none

Related commands: none

Default: none