fix particletemplate/concave command

Syntax

fix ID group-ID particletemplate/concave seed keyword values inertial_tensor Ixx Ixy Ixz Iyy Iyz Izz type value n_convex nconv convex_move mx1 my1 mz1 file filename1 further_keyword1 further_values1 convex_move mx2 my2 mz2 file filename2...
  • ID, group-ID are documented in fix command

  • particletemplate/concave = style name of this fix command

  • seed = random number generator seed (prime number greater 10000)

  • zero or more keyword/value pairs can be appended

  • keyword, values are documented in fix particletemplate/sphere command

  • inertial_tensor = optional keyword

  • Ixx Ixy Ixz Iyy Iyz Izz = obligatory inertial tensor components if inertial_tensor keyword is used

  • type = optional keyword

  • value = obligatory type of the concave particle if type keyword is used

  • n_convex = obligatory keyword

  • nconv = number of convex objects

  • convex_move = obligatory keyword

  • mx1 my1 mz1, mx2 my2 mz2 = move each convex object by this vector in x/y/z direction

  • file = obligatory keyword

  • filename1, filename2,… = filenames of stl file containing the particle template

  • further_keyword1, further_keyword2,… = mass or inertia_tensor or center_of_mass

mass value = mass assigned to this particle template
    If used center_of_mass and inertia_tensor need to be specified.
center_of_mass values = xcm ycm zcm
    xcm ycm zcm = 3 values of center of mass
    If used mass and inertia_tensor need to be specified.
inertia_tensor values = Ixx Ixy Ixz Iyy Iyz Izz
    Ixx Ixy Ixz Iyy Iyz Izz = 6 independent components of the inertia tensor
    If used center_of_mass and mass need to be specified.

Examples

fix pts all particletemplate/concave  15485867 atom_type 1 density constant 2500 &
    n_convex 3 &
    convex move 0. 0. 0. &    file data/cube.stl &
    center_of_mass 0. 0. 0. mass $*mass* &
    inertia_tensor $*moi* 0. 0. $*moi* 0. $*moi* &
    convex move 0. 0.1 0. &    file data/cube.stl &
    center_of_mass 0. 0. 0. mass $*mass* &
    inertia_tensor $*moi* 0. 0. $*moi* 0. $*moi* &
    convex move 0. 0. 0.1 &
    file data/cube.stl &
    center_of_mass 0. 0. 0. mass $*mass* &
    inertia_tensor $*moi* 0. 0. $*moi* 0. $*moi*

Description

Define a concave particle template from several convex hull objects that is used as input for a fix_particledistribution_discrete command. A short introduction to concave particles can be found here. The particle template defined by this fix is a concave object defined by the superposition of several (as defined via n_convex) convex non-spherical objects, each defined by an stl file which is moved as defined via keyword convex_move for each convex object. The filename of this stl file is specified the file keyword.

After each convex hull mesh is read, an analytical formula is used to compute mass, center of mass and the inertia tensor including its eigensystem. The only exception from this is if the inertia_tensor keyword is specified before the n_convex keyword. In this case the six specified values are taken for the full concave object. The concave template is then computed from these values. The values calculated are written to the logfile. Note that this assumes a constant density inside the convex hulls and concave object.

As an alternative, the body’s mass and inertia tensor can be specified directly via keywords mass, center_of_mass and inertia_tensor. Note that you can only use these keywords together, i.e. defining only only one or 2 of them will throw an error. As above, if the inertia_tensor is specified for the full concave object then it is not valid to specify an inertia_tensor for the individual convex objects, mass and center_of_mass may still be specified explicitly though.

Warning

As opposed to the number-based distributions, this fix uses the more common distribution based on mass-% for the radius distribution (as does fix_particledistribution_discrete).

The optional keyword type is designed for pure post-processing purposes. It adds an additional per-concave-particle property that allows to distinguish between different shapes/templates. This additional property can be used with compute multisphere and then added to output commands like dump as any other property (e.g. xcm).

Note

The usage of type follows a none-or-all rule. If you use it for one template, you must also define it for all the other concave templates.

This fix is used in the framework of CONCAVE simulations. For more information see also the CONCAVE guide.

Restart, fix_modify, output, run start/stop

Information about the random state in this fix is written to binary restart files so you can restart a simulation with the same particles being chosen for insertion. None of the fix_modify options are relevant to this fix. No global scalar or vector or per-atom quantities are stored by this fix for access by various output commands. No parameter of this fix can be used with the start/stop keywords of the run command.

Restrictions

none

Default

Not applicable, parameters need to be specified.