Group Contributions Section
Applicability: Cranium, Synapse (core versions 0315+)

The Group Contributions Section contains two large fields:

  • Group Contributions Field: stores values for groups and their contributions.
  • Group Priorities Field: stores explicit priority weights used to sort groups before they are used to dissect molecular structures.
Group Contributions Field

The Technique Chapter's Group Contributions Section stores group contributions for the current technique. The section contains two fields: the Group Contributions field; the Group Priorities field.

Typical Usage

Group contribution techniques are a very common type of estimation technique. The underlying assumption is that each molecular structure fragment or group contributes a certain value to the compound's property. The MKS modeling language provides the Contribution library function to access a technique's group contributions.

// Retrieve the contribution c = Contribution(technique, groups[i], "", "", err); if( err != 0 ) return FALSE;

The Contribution function takes five arguments and returns the contribution value. The first argument is the technique's name, the second and third arguments are the names of groups used to index the contribution, the fourth argument is a key string, and the fifth argument is the error variable.

The previous example shows that each contribution is indexed by two groups and a key string. This is done because some techniques assign several contributions to a single group or assign a contribution to a pairing of groups. For example, Orrick and Erbar's technique for estimating the liquid viscosity has two parameters, named A and B, for each group. These are entered into the Group Contributions field as two separate contributions using the key string to differentiate between them.

1
The group contribution's keyword term is often used to classify different sets of contribution values. This example estimation technique has two parameters, A and B, which are calculated by group contributions. The contribution for each group for each parameter both listed in the Group Contributions field but are differentiated by using the keyword term.

Certain group contribution techniques, e.g., UNIFAC, use two groups to index a contribution. Typically this is done to estimate the interaction between groups. For example, the group interactions between the two categories "main 01" and "main 02" are shown in the following table. (See documentation on the Group Categories Section for further discussion on group categories.)

main 01 main 02
main 01 0.0 86.020
main 02 -35.360 0.0

These interactions are entered in four separate rows in the group contributions field.

Tip: Contribution keywords have many uses

The group contribution key string can be used in somewhat creative ways. Missenard's method estimates a chemical's liquid heat capacity as a function of temperature. The technique uses six different contributions for each group. Each contribution is specified for a particular temperature range. Each of these contributions is entered using a key string to indicate the temperature dependence.

1
The key string is used to indicate group contribution values that should be used at different temperatures.

For each group in the current chemical's molecular structure the technique retrieves contributions which bracket the given temperature. The fourth argument to the Contribution function, the key string, is used to retrieve these different contributions.

// Retrieve the low temperature contribution con1 = Contribution(technique, groups[i], "", "348", err); if( err != 0 ) return FALSE; // Retrieve the high temperature contribution con2 = Contribution(technique, groups[i], "", "373", err); if( err != 0 ) return FALSE; // Total the contributions total1 = total1 + con1 * occurs[i]; total2 = total2 + con2 * occurs[i];

The technique first estimates two heat capacities, one using the lower contributions and one using the higher contributions. The technique then returns an average of these two values.

Example: Entering a group contribution
  1. Open a knowledge base document. Create a working copy of the document (see here) to use with this example.
  2. Change to the document's Techniques chapter and create a new Technique entity by pressing the "+" button in the menubar or executing the "Add New Page" command found on the Edit menu. A new, blank Technique page will be added to the current document.
  3. Scroll down to the Group Contributions Section and click on the large table control. The application will activate the Group Contributions edit dialog. (See documentation on the Group Contributions Dialog for details.)
  4. Click the left mouse button on an empty row and press the dialog's Edit button. The application activates the Group Contribution edit dialog.

    The dialog enables you to specify one or two groups (the first group is required) and one key string for each contribution. Press the List button to the right of the group edit controls to display a list of all groups present in the current document.

  5. Enter a value for the group's contribution and press the dialog's OK button. The contribution is added to the Group Contributions dialog.
  6. Finally press the dialog's Save button to store the group contribution in the current document.
Group Priorities Field

Very often several dissections of a molecular structure are possible from a given set of groups. For example, consider the following four groups:

-CH3 -CO-OH >C=O -OH

Using these groups to dissect acetic acid's molecular structure could produce two results:

1 (-CH3) + 1 (-COOH) 1 (-CH3) + 1 (>C=O) + 1 (-OH)

The dissection result depends upon the order in which the groups are matched. Cranium and Synapse make the assumption that groups containing more atoms and more bonds contain more "chemical information" and therefore should be matched first. This concept is quantified by using the following weighting equation:

priority weight = 10000 * (number of subtractable atoms) + @@@@100 * (number of nonsubtractable atoms) + @@@@1 * (number of free atoms)

Thus the priority weights for our previous four groups are:

GroupWeightGroupWeight
–CH34001>C=O2002
–CO–OH4001–OH2001

Cranium and Synapse sort all of a technique's groups by their priority weights before they dissect a molecular structure. The default weights would thus result in acetic acid be dissected into two groups:

1 (–CH3)1 (–CO–OH)

For the majority of group contribution estimation techniques, Cranium's and Synapse's default weighting algorithm gives the most meaningful dissection. For some estimation techniques it is necessary to override the default algorithm. The Group Priorities field stores explicitly entered priority weights.

Example: Explicitly enter a group's priority weight
  1. Open the MKS Core Knowledge Base document. Create a working copy of the document (see here) to use with this example.
  2. Change to the document's Techniques chapter and navigate to the "Tb: Joback Method [MKS]" technique.
  3. Select the Dissect Molecule command from the Commands menu. The application will activate the Group Dissection dialog. (See documentation on the Group Dissection Dialog for details.)
  4. Press the dialog's Chemical button and select acetic acid. The application will dissect acetic acid using the current technique's groups and display the resulting occurrences in the Groups table. Specifically: 1 (-CH3); 1 (-CO-OH).
    1
    Acetic acid is selected as the chemical to dissect.
    2
    The default priority settings results in finding one occurrence of the -CO-OH group.
  5. Close the dialog and scroll to the Group Contributions section. Click the left mouse button on the the Group Priorities field's table control. The application activates the Group Priorities edit dialog. (See documentation on the Group Weights Dialog for additional details.)
  6. Select an empty row and press the Edit button. The application activates the Group Priority edit dialog. Assign the values shown in the following image.
    1
    Press the dialog's Find button and select acetic acid from the list of chemicals.
    2
    Enter a value of 50,000 for the Priority Index. This value is higher than the priorty index of the -CO-OH group.
    3
    Press the dialog's OK button to save your changes into the Edit dialog.
  7. Finally, press the Priorities dialog Save button to store the new priority index into the current document.
  8. Once again select the Dissect Molecule command from the Commands menu. The application will activate the Group Dissection dialog.
  9. Press the dialog's Chemical button and select acetic acid. The application will dissect acetic acid using the current technique's groups and display the resulting occurrences in the Groups table. Using the newly entered priority, the dissection will result in different groups occurrences. Specifically: 1 (-OH); 1 (-CH3); 1 (>C=O).
    1
    Acetic acid is selected as the chemical to dissect.
    2
    The entered priority settings results in finding one occurrence of the -OH group first.
    3
    The subtraction of the -OH group results in the >C=O group being found next.
Related Documentation
Topic Description
Estimating Chemical Properties a short video demonstrating how to estimate physical properties using either Synapse or Cranium.
Estimating Mixture Properties a short video demonstrating how to estimate physical properties using either Synapse or Cranium.
Getting Started using Cranium provides a quick tour of Cranium's capabilities including a discussion of structure editing.
Techniques Chapter the techniques chapter contains numerous sections for entering and displaying the code and parameter values needed to generate physical property estimates.