This command is used to build the table of BensonRules. The command line is:
Benson Filename Source Test
where:
A sample input line could be:
Benson BensonTest.txt Standard true
Here, the 'Groups.input' file will be read from the directory where the command was given. It is recommended to run the command with a Test value of true to see whether the input format is correct. If there are no errors and the output is what is expected, then the command to insert it in the database can be tried:
Benson BensonTest.txt Standard false
The Benson thermodynamic information input file has the basic form of the StandardThermodynamicBlock, with the Benson Atom configuration given as the structure. The BensonRule is defined as a central atom connected to one or more other atoms. For each Benson structure there is a set of thermodynamic constants.
Each atom in the BensonRule is a either an atom specification (for example, (c)
, (h)
, (n)
, (o)
, etc.) or a meta-atom specification (such as (co).
The description starts with a center atom followed by a dash (-). Each atom in the connection is surrounded by parentheses. If there are more than one, then the number is given after a slash (/). The next connection follows. The center atom is not surrounded by parentheses, but the connection atoms are.
For example the specification of a primary carbon is:
c-(h)/3-(c)
where the c
is the central atom. The central atom is connected to 3 hydrogens ((h)/3
)and 1 carbon ((c)
). A specification using meta-atoms, for example an aldehyde is:
co-(h)-(c)
where co
is the central meta-atom (representing the carbon with double bond to oxygen as a single entity) connected to a hydrogen ((h)
) and a carbon ((c)
). For more examples, you can look at the standard benson rule input file.
The substructure correction file modifies the following mySQL databases:
These tables are all referenced by the ElementName
of the structure.
For example, the Benson rule for c/b-(h)-(c/b)/2
is represented in these four tables.
select * from GroupElement where ElementName='c/b-(h)-(c/b)/2';
+------------+----------------+-------+-----------------+--------------------+
| CenterAtom | ConnectingAtom | Count | ElementName | ConnectElementName |
+------------+----------------+-------+-----------------+--------------------+
| c/b | h | 1 | c/b-(h)-(c/b)/2 | c/b-(h)-(c/b)/2-1 |
| c/b | c/b | 2 | c/b-(h)-(c/b)/2 | c/b-(h)-(c/b)/2-0 |
+------------+----------------+-------+-----------------+--------------------+
select * from GroupStandardEntropy where ElementName='c/b-(h)-(c/b)/2';
+-----------------+-----------+---------------------+-----------------+
| ElementName | Reference | Time | StandardEntropy |
+-----------------+-----------+---------------------+-----------------+
| c/b-(h)-(c/b)/2 | Test | 2021-01-13 17:10:56 | 11.6 |
+-----------------+-----------+---------------------+-----------------+
select * from GroupStandardEnthalpy where ElementName='c/b-(h)-(c/b)/2';
+-----------------+------------------+-----------+---------------------+
| ElementName | StandardEnthalpy | Reference | Time |
+-----------------+------------------+-----------+---------------------+
| c/b-(h)-(c/b)/2 | 3.27 | Test | 2021-01-13 17:10:56 |
+-----------------+------------------+-----------+---------------------+
select * from HeatCapacityElement where ElementName='c/b-(h)-(c/b)/2';
+-------------+--------------+-----------+---------------------+-----------------+
| Temperature | HeatCapacity | Reference | Time | ElementName |
+-------------+--------------+-----------+---------------------+-----------------+
| 1500 | 9.73 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 1000 | 8.41 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 800 | 7.54 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 600 | 6.3 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 500 | 5.46 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 400 | 4.44 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 300 | 3.25 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
+-------------+--------------+-----------+---------------------+-----------------+
7 rows in set (0.00 sec)
Suppose we want to modify two Benson rules:
c/b-(h)-(c/b)/2
c/b-(c)-(c/b)/2
For example, before the
select * from HeatCapacityElement where ElementName='c/b-(h)-(c/b)/2';
+-------------+--------------+-----------+---------------------+-----------------+
| Temperature | HeatCapacity | Reference | Time | ElementName |
+-------------+--------------+-----------+---------------------+-----------------+
| 1500 | 9.73 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 1000 | 8.41 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 800 | 7.54 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 600 | 6.3 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 500 | 5.46 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 400 | 4.44 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
| 300 | 3.25 | Standard | 2011-03-18 15:04:46 | c/b-(h)-(c/b)/2 |
+-------------+--------------+-----------+---------------------+-----------------+
7 rows in set (0.00 sec)
mysql> select * from HeatCapacityElement where ElementName='c/b-(c)-(c/b)/2';
+-------------+--------------+-----------+---------------------+-----------------+
| Temperature | HeatCapacity | Reference | Time | ElementName |
+-------------+--------------+-----------+---------------------+-----------------+
| 1500 | 5.65 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 1000 | 5.11 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 800 | 4.63 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 600 | 3.82 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 500 | 3.35 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 400 | 2.81 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
| 300 | 2.33 | Standard | 2011-03-18 15:04:46 | c/b-(c)-(c/b)/2 |
+-------------+--------------+-----------+---------------------+-----------------+
7 rows in set (0.01 sec)
mysql>
We can read in corrections to these elements with the following file:
c ecriture lineaire version octobre 85
c groupes,corrections cycles et table 12
c (cbf ajoutes)
g
1 32 1 c/b-(h)-(c/b)/2 0 0.0 1.0 1 1.0j21
1 32 2 1 3.27 1 11.6 1 3.18 4.40 5.43 6.26 7.48 8.32 11.7 0 j21
1 32 3 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0j21
1 33 1 c/b-(c)-(c/b)/2 0 0.0 1.0 1 1.0j21
1 33 2 1 5.62 1 -8.03 1 2.58 3.30 3.94 4.47 5.23 5.69 6.26 0 j21
1 33 3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0j21
First we check the file for errors with this command. The filename is 'BensonTest.txt' and the 'true' at the end means that this is a test.
Benson BensonTest.txt Test true
If the file format was correct and read in the 'Parsed Information' should mimic the blocks in the file:
=========================================
Parsed Information=======================
=========================================
1 32 1 c/b-(h)-(c/b)/2 0 0.0 1.0 1.0j21
1 32 2 1 3.270 1 11.600 1 3.18 4.40 5.43 6.26 7.48 8.32 11.70 0 j21
1 32 3 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0j21
1 33 1 c/b-(c)-(c/b)/2 0 0.0 1.0 1.0j21
1 33 2 1 5.620 1 -8.030 1 2.58 3.30 3.94 4.47 5.23 5.69 6.26 0 j21
1 33 3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0j21
=========================================
If the file was read in correctly, there should be no problem adding the information to the database. This is done with the same command, except that the test parameter is false:
Benson BensonTest.txt Test true
If no errors occurred, then this command should end with:
Database successfully updated
And after this command, the database values can be seen to have changed:
select * from HeatCapacityElement where ElementName='c/b-(c)-(c/b)/2';
+-------------+--------------+-----------+---------------------+-----------------+
| Temperature | HeatCapacity | Reference | Time | ElementName |
+-------------+--------------+-----------+---------------------+-----------------+
| 500 | 3.94 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 1000 | 5.69 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 300 | 2.58 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 800 | 5.23 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 600 | 4.47 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 1500 | 6.26 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
| 400 | 3.3 | Test | 2021-01-12 20:37:02 | c/b-(c)-(c/b)/2 |
+-------------+--------------+-----------+---------------------+-----------------+
7 rows in set (0.00 sec)
mysql> select * from HeatCapacityElement where ElementName='c/b-(h)-(c/b)/2';
+-------------+--------------+-----------+---------------------+-----------------+
| Temperature | HeatCapacity | Reference | Time | ElementName |
+-------------+--------------+-----------+---------------------+-----------------+
| 300 | 3.18 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 400 | 4.4 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 1500 | 11.7 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 500 | 5.43 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 1000 | 8.32 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 600 | 6.26 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
| 800 | 7.48 | Test | 2021-01-12 20:37:02 | c/b-(h)-(c/b)/2 |
+-------------+--------------+-----------+---------------------+-----------------+
7 rows in set (0.00 sec)