The user has to define all materials, including the reactants, products and the unreactive materials in the system. Some other materials may have to be defined to store buffers or to serve as intermediate products. lndividual parameters and their meaning are listed below. The titles of the following subsections show the names of the parameters and the class or type of the parameter is given in parentheses after the name. The XML tag for defining materials is <material>.
This field defines the case-sensitive name of the material. Materials have to be assigned a unique name. In the GUI, creating a new material with the same name will replace the earlier material. This property is defined using the attribute “name” with the <material> tag.
This field defines the unique index of the material. The user may define ids of materials to control the order of processing and listing in output files. The id is an optional attribute. The value has to be an integer greater than zero and should be unique. lds are automatically assigned to the other materials in no particular order. This property is defined using the attribute “id” with the <material> tag.
This field defines the “base” density of the material. Although this is the default density of the material, a DensityVariation plugin can be defined to vary this density. It is assumed that the volume of the materials defined in the reactions is based on this density. The XML tag for defining this property is <density>.
This field defines the fraction of the computational volume occupied by this material at the beginning of the simulation. For example, if a material occupies half the volume in the beginning, this value has to be set to 0.5.
This field is true if this material can be formed only inside the original bounds of the particles. This implies that if this material is produced in a reaction where another material from the same particle is consumed, the volume of this material produced can not be more than the volume of the reactant material from that particle.
If a material is defined to be inner, a variant material for this material has to be defined. Since the inner material can only occupy the space within the original boundaries of the particle, any amount of this material produced beyond this limit is transferred to the variant material, which can either increase the size of its own particles, or transfer this amount to another form due to a change defined in a reaction. The XML tags for defining these properties are <inner>, <hasVariant> and <variantName>.
Materials can be classified as discrete or diffuse. Diffuse materials are assumed to be uniformly mixed in discrete materials. Only discrete materials can be hosts for diffuse materials and each discrete material can host several diffuse materials. For example the user can use the names of the host materials to define layers in particles. The averaging of the amounts of the materials is done at the level of each particle.
If a material is not defined to be discrete, a host for this material has to be defined. Only discrete materials are drawn in the images produced by the programme. The XML tags for defining these properties are <discrete> and <hostName>.
Note: A material can be present only in one of the layers of only one of the particle models. If a material is required to be present in several particle types, several materials and rule for inter-conversion or distribution have to be defined.
If this parameter is set to be true, the material is defined to be present “universally”, implying that it is not present in a layer in any of the particles. The material can still have an initial and current amount and buffers for reactions, and can be used as reactant or product. The XML tag for defining this property is <universal>.
Note: All universal materials have to be defined to be discrete.
This field can be used to define any user defined parameter for use by a plugin. For example, this parameter could define the rate of diffusion of ions through this material for the DiffusionControlledKinetics plugin. This value can be used by plugins.The XML tag for defining this property is <userDefinedParameter>.
This field can be used to group similar materials together. Two materials with the same class will be grouped together. This property can be used in plugins to put together results of materials from the same class. This in the XML file this parameter can be defined using the attribute <class>.
As most reactions entail consumption and production of materials, the phase present at one of the pixels of a discretised computational volume may change with time. Also, since the size of spherical particles only represents a circumsphere, many points inside this circumsphere may not belong to that particle and may come from a layer in another particle. This means that rules to change the phase in the pixels may have to be defined. To do that, a list of other discrete materials that a material is allowed to replace due to reaction in an image can be defined. In all cases, the programme tries to guess the correct settings for this parameter. The XML tag for defining this property is <replace>.
This parameter defines the colour of the material in images produced by the programme. If a string is passed for this parameter, the programme tries to match the string with English names of colors and hexadecimal RGB definitions. If a colour for a discrete material is not defined, a random colour is assigned. The XML tag for defining this property is <color>.
The block of XML below shows an example setup for a material
<material id="2" name="myMaterial">
<density>2.0</density>
<userDefinedParameter>1.0</userDefinedParameter>
<inner>true</inner>
<universal>false</universal>
<discrete>false</discrete>
<hostName>myOtherMaterial</hostName>
<hasVariant>true</hasVariant>
<variantName>myThirdMaterial</variantName>
<initialAmount>0.30</initialAmount>
<color>red</color>
<replace>anotherMaterial</replace>
</material>
If the material is discrete (line 6), line 7 (hostName) can be omitted. If the field hasVariant (line 8) is false, line 9 (variantName) can be omitted. For automatic detection of the materials to replace, line 12 can be omitted.