## group

### Syntax

```
group group_name style_cg style_at group_shape
x lower_b upper_b i j k
y lower_b upper_b i j k
z lower_b upper_b i j k
boolean_in group_axis
group_centroid_x group_centroid_y group_centroid_z
group_radius_large group_radius_small
```

`group_name`

= a string (length <= 30)`style_cg`

=*element*or*node*or*null*`style_at`

=*atom*or*null*`group_shape`

=*block*or*cylinder*or*cone*or*tube*or*sphere*`lower_b`

,`upper_b`

= real number or*inf*`i`

,`j`

,`k`

= real number`boolean_in`

=*t*or*f*`t is true f is false`

`group_axis`

=*1*or*2*or*3*`group_centroid_x`

,`group_centroid_y`

,`group_centroid_z`

= real number`group_radius_large`

,`group_radius_small`

= positive real number

### Examples

```
group top_box null atom block x inf inf 1. 0. 0. y inf inf 0. 1. 0. z 14.4 inf 0. 0. 1. t 3 20. 5. 0. 10. 10.
group cylin node null cylinder x inf inf 1. 0. 0. y inf inf 0. 1. 0. z 14.4 inf 0. 0. 1. f 3 20. 5. 0. 10. 10.
group red_cone element atom cone x inf inf 1. 0. 0. y inf inf 0. 1. 0. z 14.4 inf 0. 0. 1. t 3 20. 5. 0. 10. 5.
group big_sphere element null sphere x inf inf 1. 0. 0. y inf inf 0. 1. 0. z 14.4 inf 0. 0. 1. t 3 20. 5. 0. 10. 10.
```

### Description

This command sets new groups, the number of which is provided in the group_num command. The elements/nodes/atoms in a group, either a new group or a restar group, can be moved at each simulation step, deformed with the simulation cell (when `boolean_def`

in both fix and deform commands = *t*), or not moved/deformed. The syntax is similar to the first of that of the modify command.

Different new groups cannot have the same `group_name`

. Also, since the restart groups are automatically named `group_*`

, where `*`

is a positive integer starting from `new_group_number`

+ 1, the `group_name`

in this command cannot have any of those names.

`style_cg`

decides whether the group contains elements (*element*), nodes (*node*), or nothing (*null*) in the coarse-grained domain; the differences between *element* and *node* are discussed here. `style_at`

decides whether the group contains atoms (*atom*) or nothing (*null*) in the atomistic domain.

There are currently five `group_shape`

: *block*, *cylinder*, *cone*, *tube*, and *sphere*.

`lower_b`

and `upper_b`

are the lower and upper boundaries of the `group_shape`

, respectively, in units of the component of the lattice periodicity length vector $\vec{l'}_0$ along the corresponding direction. When `lower_b`

or `upper_b`

= *inf*, the corresponding lower or upper simulation cell boundaries are taken as the `group_shape`

boundaries, respectively. Note that when `group_shape`

= *cylinder* or *cone* or *tube*, `lower_b`

and `upper_b`

are the lower and upper plane boundaries normal to the central axis `group_axis`

direction, respectively.

`i`

, `j`

, and `k`

decide the `group_shape`

($\neq$ *sphere*) boundary plane orientations with respect to the simulation cell, similar to those in the box_dir command.

Note that these five options (`lower_b`

, `upper_b`

, `i`

, `j`

, and `k`

) are irrelevant when `group_shape`

= *sphere*, and when `group_shape`

= *cylinder* or *cone* or *tube* if the corresponding direction is not `group_axis`

. Also, `group_axis`

is irrelevant when `group_shape`

= *block* or *sphere*. However, they need to be provided regardless.

When `boolean_in`

= *t*, elements/nodes/atoms inside the `group_shape`

belong to the group; otherwise, those outside do.

`group_centroid_x`

, `group_centroid_y`

, and `group_centroid_z`

, in units of the component of the lattice periodicity length vector $\vec{l'}_0$ and with respect to the lower boundaries of the simulation cell along the corresponding direction, are the coordinates of the center of the base plane of a *cylinder* or *cone* or *tube*, or the center of a *sphere*. When `group_shape`

= *cylinder* or *cone* or *tube*, the `group_centroid_*`

that corresponds to the `group_axis`

direction becomes irrelevant. For example, when `group_axis`

= *2*, `group_centroid_y`

can take any real number without affecting the results.

`group_radius_large`

is the base radius of a *cylinder*, the large base radius of a *cone*, the outer base radius of a *tube*, or the radius of a *sphere*. `group_radius_small`

, the small base radius of a *cone* or the inner base radius of a *tube*, is irrelevant for other `group_shape`

. Both `group_radius_large`

and `group_radius_small`

are in units of the maximum lattice periodicity length $l'_\mathrm{max}$.

Note that these six options (`group_axis`

, `group_centroid_*`

, and `group_radius_*`

) are not relevant when `group_shape`

= *block*. Yet, they need to be provided regardless.

### Related commands

There cannot be fewer `group`

commands than `new_group_number`

. When there are too many `group`

commands, those appearing later will be ignored. The `group_name`

in the cal and fix commands must match that in the current command.

This command becomes irrelevant when `new_group_number`

= 0.

### Related files

`group.f90`

, `fix_displacement.f90`

, `fix_force.f90`

, and `group_cal.f90`

### Default

None