Add (Node)

Insert molecules into a box
Context Generation
Name Required? No
Branches

Overview

The Add node is a core component of nearly all configuration generators requiring the initial construction of a suitable starting point. It adds a number of copies of a given target species to the current box, either at specific or random coordinates. By default, the box is resized to accommodate the new population of molecules based on a supplied density.

If the species is periodic, the box associated with that species can be copied to the model as part of the Add process. In that case, an initial Box node is not necessary in the procedure.

Description

When adding molecules of the target species to the current configuration, there are several possible actions on the periodic box for that configuration:

  1. No resizing of the box is performed (BoxAction = None) - The box retains its original geometry regardless of the number of added molecules. This is useful if an explicit box geometry has already been set by a Box node, or it has existing contents that should not be resized (e.g. a crystal).
  2. The box volume is increased to accommodate the new molecules (BoxAction = AddVolume) - Additional volume is added to the box based on the density and population of the target species. Existing molecules within the box have their centres of geometry scaled as well.
  3. The box volume is scaled to give the supplied density (BoxAction = ScaleVolume) - The box volume is scaled to give the requested density, taking into account the existing box contents and the new population of molecules requested. Existing molecules within the box have their centres of geometry scaled as well.
  4. The box is set (BoxAction = Set) from a definition on the species itself (if it is periodic). This is typically used when the species is a framework-type model (e.g. a metal organic framework) and it is to be used as the main basis for a configuration.

When resizing the box, the default is to scale equally in all directions A, B, and C. The scaling can be restricted to two or even one principal axis by setting ScaleA, ScaleB, and/or ScaleC to false. At least one axis must remain scalable, for obvious reasons!

Options

Target

Keyword Arguments Default Description
Species name

Required

Target species to add, unless a CoordinateSets has been given. Using the Species option will result in identical copies of the molecule being added to the box. Note that the two options are mutually exclusive, and setting both will result in an error.
CoordinateSets CoordinateSets

Required

Target coordinate set source to use when adding, unless a Species has been given. Note that the two options are mutually exclusive, and setting both will result in an error.
Density expr
DensityUnit
0.1 atoms/A3 Density at which to add the target species. Note that the use of this value differs according to the selected BoxAction (see above).
Population expr 0 Population of the target species to add.

Box Modification

Keyword Arguments Default Description
BoxAction BoxActionStyle AddVolume Action to take on the Box geometry / volume on addition of the species
ScaleA bool true Whether to scale the A cell axis when changing the cell volume.
ScaleB bool true Whether to scale the B cell axis when changing the cell volume.
ScaleC bool true Whether to scale the C cell axis when changing the cell volume.

Positioning

Keyword Arguments Default Description
Positioning PositioningType Random Positioning type for individual molecules.
Region name Region node controlling the location of inserted species into the configuration.
Rotate bool true Whether to randomly rotate molecules on insertion.
Last modified October 30, 2024: feat: TR module added (#1956) (fe192b8)