fix particletemplate/multiplespheres command

Syntax

fix ID group-ID particletemplate/multiplespheres seed nspheres nspheresvalue keyword values ntry ntryvalue spheres (or spheres_different_types) use_volume_scaling use_vs values_spheres type mt opt_keyword opt_values
  • ID, group-ID are documented in fix command

  • particletemplate/multisphere = style name of this fix command

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

  • nspheres = obligatory keyword

  • nspheresvalue = number of spheres in the template (integer value)

  • zero or more keyword/value pairs can be appended

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

  • ntry = obligatory keyword

  • ntryvalue: number of tries for Monte Carlo approach

  • spheres or spheres_different_types = obligatory keyword

  • use_volume_scaling/use_vs = optional keyword/value pair

use_volume_scaling use_vs = 'yes' or 'no'
    yes = particle densities are scaled according to weight
    no = uniform particle density
  • values_spheres = one out of the following options

option 1 = file filename
option 2 = file filename scale scalefactor
option 3 (when keyword spheres is used and use_volume_scaling is not set) = x1 y1 z1 r1 x2 y2 r2... where x/y/z are sphere positions and r are the radii
  • opt_keyword = bonded or bounding_sphere

bonded value = 'yes' or 'no'
    yes = bonds are created between adjacent spheres
    no = no bonds are created
bounding_sphere arguments = radius b_rad position (bx, by, bz)
    radius = mandatory keyword
    b_rad = radius of bounding sphere
    position = mandatory keyword
    (bx, by, bz) = position of center of bounding sphere

Examples

fix pt1 all particletemplate/multiplespheres 123457 atom_type 2 density constant $*dens* nspheres 237 ntry 1000000 spheres file data/frag_hb2_v3.file scale 0.999999

Description

Define a particle template that is used as input for a fix_particledistribution_discrete command which contains not only one sphere, but multiple spheres. The particle parameters (positions, radii) are either defined manually as arguments to this command or via a text file, via the keyword file. The format of this text file is

x1 y1 z1 r1
x2 y2 z2 r2
...

and the number of lines in this file has to be equal to n_spheres as defined in this command. Comments can be made in this file via the ‘#’ character. Optionally, when a file is used for defining the multi-sphere template, keyword scale can be used to define a scalefactor to scale up or down the particle positions and radii.

In case keyword spheres_different_types is used, the textfile contains the type as and additional column after the radius.

If the use_volume_scaling keyword is set then the textfile needs to contain a the volume V_p as an additional column after radius and type (if applicable). Thus, if both spheres_different_types and use_volume_scaling are used the textfile will look like this

x1 y1 z1 r1 t1 V1
x2 y2 z2 r2 t2 V2
...

If use_volume_scaling is not used then all particles will be assigned a constant density. If use_volume_scaling is used then the density of each particle will be set according to the ratio between the volume V_p that is read from the file and the volume of the sphere. An application of this keyword is a previous calculation of the volume each particle occupies by a Voronoi approach.

After the spheres are read, a Monte Carlo procedure is used to assess center of mass of the assembly.

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).

If the bonded keyword is set to ‘yes’ the spheres in one batch of n_spheres are bonded in case the cohesion model bond model is used and if the particles satisfy the distance criterion of this model.

This template also allows the explicit definition of a bounding sphere. It is normally calculated using a monte carlo approach that can be controlled with the ntry value. If you are inserting particles using the create_particles command you might be interested in exact particle positioning. The particle is placed at the center of the bounding sphere and the monte carlo calculation might not be accurate enough. In this case specify the bounding_sphere keyword followed by specifying both its radius and position. Aspherix will validate your input by checking whether it is close enough to the calculated values and issue a warning if it is not.

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

radius = 1.0, density = 1.0, use_volume_scaling = no