Hi efought,
There are two ways to accomplish adding tags to specific atoms. To set the tags in the BulkConfiguration constructor, the atom indices need to be specified as a set or a frozenset of integers. So to create a bulk configuration with two oxygen atoms, you can use something like:
configuration = BulkConfiguration(
bravais_lattice=SimpleCubic(10*Ang),
elements=[Oxygen, Oxygen],
fractional_coordinates=[[0.25,0.25,0.25], [0.75,0.75,0.75]],
tag_data={'ATOM_A': set([0]), 'ATOM_B': set([1])}
)
The other way to add tags is to use the tag editing functions 'addTags' and 'removeTags'. This is the recommended way to add tags to configurations. The input for 'addTags' is a little more flexible, and accepts either an integer or a list of integers to specify the tags. So using this method to set the tags, the same bulk configuration as before could be created with:
configuration = BulkConfiguration(
bravais_lattice=SimpleCubic(10*Ang),
elements=[Oxygen, Oxygen],
fractional_coordinates=[[0.25,0.25,0.25], [0.75,0.75,0.75]],
)
configuration.addTags('ATOM_A', 0)
configuration.addTags('ATOM_B', [1])
Both methods add tags to the configuration that can be used in a forcefield potential.
Cheers,
Brad.