grow_particles command

Purpose

Command for changing the particle size.

Warning

GPU support for this command has not been tested and may not work as expected.

Syntax

grow_particles target_scale_factor target_scale keyword arg
  • target_scale_factor = obligatory keyword

  • target_scale = scale factor that has to be reached

  • zero or more keyword/arg pairs may be appended

  • keyword = id or growth_rate or duration or particle_group or grow_every_time or constant

id value = command-ID
  command-ID = user-assigned name for the command call
growth_rate = rate
  rate = growth rate of particle's diameter (1/time units)
duration = time
  time = duration of the size change up to the target_scale_factor (time units)
particle_group value = group-ID
  group-ID = ID of the group of particles on which the command is applied
grow_every_time value = DeltaT
  DeltaT = time interval between two consecutive particle size updates
constant = property
  property = keep density (default) or mass constant during size changes

Examples

grow_particles id my_grow1 target_scale_factor 1.01
grow_particles id my_grow2 particle_group coated_particles target_scale_factor 2.0 growth_rate 0.2 grow_every_time 1e-4
grow_particles id my_grow3 target_scale_factor 1.5 duration 0.7

Description

This command allows to increase or decrease the diameter of a static group of particles so that the ratio between their final and initial diameter corresponds to the value specified by the keyword target_scale_factor, which must be bigger than zero. For values larger than 1 the particle size will grow, while for values below 1 the particle size will shrink. Once the specified value is reached, the particle size will no longer change.

How long it will take to reach this limiting target_scale_factor depends on the used growth_rate or duration (which are mutually exclusive). If the growth/shrinkage is too quick (a high growth_rate or a short duration), instabilities might occur (a warning will be shown in this case). In case no growth_rate or duration is specified, a default growth_rate of 0.001 is used (particles will grow every time unit with a factor of 1.001).

The keyword growth_rate indicates the growth/shrinkage rate of the particle. It is defined as the normalized diameter change per unit time and must differ from zero and be larger than -1. A positive rate leads to particle growth, while a negative rate leads to particle shrinkage. To illustrate this with an example: the id_my_grow2 command from above will increase the initial particle size every time unit with a factor of 1.2 (1 + growth_rate). As the growth is exponential, the target_scale_factor of 2.0 will be reached around log(2.0) / log(1.2) = 3.8 time units, after which the growing will stop.

The keyword duration indicates how long it will take to grow/shrink the particle up to the target_scale_factor. This can be illustrated by the id_my_grow3 command from above: after 0.7 (duration) time units the particles will have reached the target_scale_factor of 1.5.

The change in size is imposed every time interval, which is defined by the keyword grow_every_time. This value must be larger than zero, and will be set to the used time step size if a value lower than the time step size is provided. Note that this keyword / value pair does not affect the growth/shrinkage directly, it only changes how smooth it behaves in time.

By default constant density is used, which changes the mass of each particle when the diameter changes. With constant mass the opposite will happen: the density will change when the diameter changes.

Additional information

If the growth_rate or duration keywords are not specified, the command will give a hint to the user about how long the simulation should run in order to achieve the target scale factor.

If a time dependent growth of the particles is applied, the particle group must be static.

Restrictions

none

Default

particle_group = all, grow_every_time = time-step, target_scale_factor = 1e50, constant = density