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 (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
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