Compiled Command Line Interface

Prerequisites

Unfortunately, this packaged form is not independent of some external software packages:

  • JAVA: The platform independent language that JThermodynamics is written. Instructions for installation on any machine type, from Linux, to MacOS to Windows, can be found on the JAVA site.
  • MySQL: This is the database that the JThermodynamics system is based on. This section tells how to get it up and running. The installation not involves setting up a mysql server on your machine, but also importing the JThermodynamics database.
  • Git: The software is under git revision control in GitHub. The explanation how to install Git is found in this section.

Clone JThermodynamics system

The source code of the JThermodynamics system can be found on GitHub. To compile the system, you need to download (clone) the system to your local computer. This is done with a git command using the Git version control system. If it is not already installed, you can find instructions here.

To clone the system, there are basically two steps to perform:

The following is the procedure in more detail.

To download the three packages of the JThermodynamics system, first go to the directory of your local computer where you want the cloned source code to be stored. As a note, the cloned system is created under a single directory called 'JThermodynamics'.

The command to clone the system is:

git clone https://github.com/blurock/JThermodynamics.git

The output should look something like:

Cloning into 'JThermodynamics'...
remote: Enumerating objects: 362, done.
remote: Counting objects: 100% (362/362), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 1146 (delta 48), reused 342 (delta 34), pack-reused 784
Receiving objects: 100% (1146/1146), 95.80 MiB | 5.58 MiB/s, done.

Resolving deltas: 100% (282/282), done.

After this command, using the command, ls, we see that one directory has been created:

JThermodynamics

Going into this directory and doing ls again shows the three (actually four, but one is ignored for now) packages:

>> cd JThermodynamics/
>> ls
JTherGas    JThermodynamicData  JThermodynamicsWebInterface README.md   ThermodynamicInterface

Each one of the directories has the source code for each package.

Compiling the subsystems

The packages are organized using Maven which is a convenient way to compile and package code and keep track of dependencies. To use Maven, you have to download it. The instructions are found here.

A summary of the steps to compile the system are shown here (details are shown afterward for those interested):

  • Go inside the JThermodynamics directory (you should see the three package folders: JTherGas, JThermodynamicsData and ThermodynamicInterface)
  • cd JTherGas (go into the JTherGas directory)
  • mvn clean compile package install (compile and install the whole package)
  • cd ../JThermodynamicData (hop to the next package)
  • mvn -Dmaven.test.skip=true clean compile package install (compile and install the whole package)

Now all the packages are installed in the local Maven repository on your local machine.

At the end of each mvn -Dmaven.test.skip=true clean compile package install, if the command was successful, then you should see something like:

Installing /Users/edwardblurock/thermo/JThermodynamics/JThermodynamicData/target/JThermodynamicData-1.0.jar to /Users/edwardblurock/.m2/repository/info/esblurock/JThermodynamicData/1.0/JThermodynamicData-1.0.jar
[INFO] Installing /Users/edwardblurock/thermo/JThermodynamics/JThermodynamicData/pom.xml to /Users/edwardblurock/.m2/repository/info/esblurock/JThermodynamicData/1.0/JThermodynamicData-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.041 s
[INFO] Finished at: 2020-12-30T11:39:13+01:00
[INFO] Final Memory: 32M/117M
[INFO] ------------------------------------------------------------------------

You can see that the install command put the jar file (all the compiled code) in my local repository:

<home_directory>/.m2/repository/info/esblurock/JThermodynamicData/1.0/JThermodynamicData-1.0.jar

The position in the repository was determined by the pom.xml file having the section:

  <version>1.0</version>
  <groupId>info.esblurock</groupId>
  <artifactId>JThermodynamicData</artifactId>

The package JThermodynamicData, version 1.0, is stored in repository directory info/esblurock (from the groupId info.esblurock). All the packages have this same groupID.

Running the compiled jar

In target directory there are two jar files:

  • JThermodynamicData-1.0.jar: This is just the JThermodynamicData package compiled
  • JThermodynamicData-1.0-jar-with-dependencies.jar: This is a self-contained JThermodynamicData package with all the extra dependencies built in

With the JThermodynamicData package you can compute:

java -jar ./target/JThermodynamicData-1.0-jar-with-dependencies.jar <commands>

where <commands> are the set of computational commands we can use. For example, to compute the thermodynamics of 1-propyl radical:

java -jar JThermodynamicData-1.0-jar-with-dependencies.jar MOLECULE 'ch3/ch3/ch2(.)' '1-propyl'


Computation 1-propyl

Using the command:

java -jar JThermodynamicData-1.0-jar-with-dependencies.jar MOLECULE 'ch3/ch3/ch2(.)' '1-propyl'

we can calculate the thermodynamics of 1-propyl.

The end of the output (there might be some intermediate output) has three parts:

  • The list of parts making up how the final result was calculated. It is important to look at this to make sure all the corrections you were expecting.
  • The total correction in Benson format
  • The total correction in NASA polynomial format

The output looks something like this:

-------------- Corrections --------------
BensonThermodynamicBase(c-(h)/3-(c)):  H298:-10.098  S298:30.423  Reference:'Standard'  [500.0, 9.4]  [600.0, 10.79]  [1000.0, 14.77]  [800.0, 13.02]  [300.0, 6.15]  [400.0, 7.84]  [1500.0, 17.58]
BensonThermodynamicBase(c-(h)/2-(c)/2):  H298:-4.93  S298:9.357  Reference:'Standard'  [1000.0, 12.34]  [500.0, 8.25]  [1500.0, 14.25]  [300.0, 5.47]  [400.0, 6.95]  [600.0, 9.35]  [800.0, 11.07]
BensonThermodynamicBase(c-(h)/3-(c)):  H298:-10.098  S298:30.423  Reference:'Standard'  [600.0, 10.79]  [400.0, 7.84]  [1000.0, 14.77]  [800.0, 13.02]  [500.0, 9.4]  [1500.0, 17.58]  [300.0, 6.15]
BensonThermodynamicBase:  H298:0.0  S298:-4.363418960440238  Reference:'InternalSymmetry(9)'
BensonThermodynamicBase:  H298:0.0  S298:-1.3765054247197919  Reference:'ExternalSymmetry-C(B1)(B1)(B2)(B2)'
BensonThermodynamicBase:  H298:131.0  S298:0.0  Reference:'Disassociation Energy From: c///ch'
BensonThermodynamicBase:  H298:0.0  S298:1.3765054247197919  Reference:'Spin Contribution: Rln(2) = (1.98587755)*(0.6931471805599453)'
BensonThermodynamicBase:  H298:-52.1  S298:0.0  Reference:'Hydrogen Radical'
BensonThermodynamicBase:  H298:0.0  S298:1.9085130337993101  Reference:'Correction:  CCH(tw)-Bend: 1150.0   Count=8.0'  [300.0, 1.9547962246106307]  [400.0, 4.477191661529886]  [500.0, 6.840457627309437]  [1000.0, 12.704810473646875]  [1500.0, 14.367181485654925]  [600.0, 8.729697075939983]  [800.0, 11.250073308762051]
BensonThermodynamicBase:  H298:0.0  S298:3.3074134532289152  Reference:'Correction:  CHH-SecondaryBend: 700.0   Count=-4.0'  [800.0, 6.971028404765653]  [500.0, 5.722755025878192]  [400.0, 4.800094877835307]  [300.0, 3.3432485718878415]  [600.0, 6.31199475271108]  [1500.0, 7.651210559543411]  [1000.0, 7.3037568746643045]
BensonThermodynamicBase:  H298:0.0  S298:4.1726964407651907E-4  Reference:'Correction:  C.H-Stretch: 3100.0   Count=3.0'  [600.0, 0.1939004897244822]  [400.0, 0.010560586889450331]  [800.0, 0.705118184779108]  [1000.0, 1.3992406665771298]  [1500.0, 2.9877447214442086]  [500.0, 0.06299646096503521]  [300.0, 4.5496500430436296E-4]
BensonThermodynamicBase:  H298:0.0  S298:0.3754828434500743  Reference:'Correction:  C.C-Stretch: 1000.0   Count=1.0'  [500.0, 1.0378852774581537]  [600.0, 1.255078703887745]  [1000.0, 1.6755681091408947]  [800.0, 1.526530286198852]  [1500.0, 1.8401410921863695]  [300.0, 0.38282410149983986]  [400.0, 0.7432940986689677]
BensonThermodynamicBase:  H298:0.0  S298:4.1726964407651907E-4  Reference:'Correction:  CH-Stretch: 3100.0   Count=3.0'  [600.0, 0.1939004897244822]  [1500.0, 2.9877447214442086]  [400.0, 0.010560586889450331]  [800.0, 0.705118184779108]  [1000.0, 1.3992406665771298]  [500.0, 0.06299646096503521]  [300.0, 4.5496500430436296E-4]
BensonThermodynamicBase:  H298:0.0  S298:0.3754828434500743  Reference:'Correction:  CC-Stretch: 1000.0   Count=1.0'  [300.0, 0.38282410149983986]  [400.0, 0.7432940986689677]  [600.0, 1.255078703887745]  [1500.0, 1.8401410921863695]  [800.0, 1.526530286198852]  [500.0, 1.0378852774581537]  [1000.0, 1.6755681091408947]
BensonThermodynamicBase:  H298:0.0  S298:3.3074134532289152  Reference:'Correction:  CCH-SecondaryBend(op): 700.0   Count=4.0'  [500.0, 5.722755025878192]  [400.0, 4.800094877835307]  [1000.0, 7.3037568746643045]  [600.0, 6.31199475271108]  [300.0, 3.3432485718878415]  [1500.0, 7.651210559543411]  [800.0, 6.971028404765653]
BensonThermodynamicBase:  H298:0.0  S298:0.9542565168996551  Reference:'Correction:  CCH-SecondaryBend: 1150.0   Count=4.0'  [1500.0, 7.183590742827462]  [400.0, 2.238595830764943]  [500.0, 3.4202288136547185]  [300.0, 0.9773981123053154]  [600.0, 4.3648485379699915]  [1000.0, 6.352405236823437]  [800.0, 5.6250366543810255]
BensonThermodynamicBase:  H298:0.0  S298:0.3538766650631874  Reference:'Correction:  CCH-SecondaryBend(rk): 1450.0   Count=-4.0'  [400.0, 1.1831662117394728]  [800.0, 4.635818372667078]  [1500.0, 6.77617782650123]  [1000.0, 5.592341289094274]  [500.0, 2.194646500422028]  [600.0, 3.155048060658377]  [300.0, 0.3659031168955553]
BensonThermodynamicBase:  H298:0.0  S298:0.23856412922491377  Reference:'Correction:  CCH-SecondaryBend(tw): 1150.0   Count=-2.0'  [300.0, 0.24434952807632884]  [400.0, 0.5596489576912358]  [1500.0, 1.7958976857068656]  [1000.0, 1.5881013092058593]  [500.0, 0.8550572034136796]  [600.0, 1.0912121344924979]  [800.0, 1.4062591635952564]
BensonThermodynamicBase:  H298:0.0  S298:1.9085130337993101  Reference:'Correction:  CCH(rk)-Bend: 1150.0   Count=-8.0'  [300.0, 1.9547962246106307]  [400.0, 4.477191661529886]  [1500.0, 14.367181485654925]  [800.0, 11.250073308762051]  [500.0, 6.840457627309437]  [600.0, 8.729697075939983]  [1000.0, 12.704810473646875]
BensonThermodynamicBase:  H298:0.0  S298:0.7077533301263748  Reference:'Correction:  CHH-Bend: 1450.0   Count=-8.0'  [600.0, 6.310096121316754]  [800.0, 9.271636745334156]  [300.0, 0.7318062337911106]  [1000.0, 11.184682578188548]  [500.0, 4.389293000844056]  [400.0, 2.3663324234789456]  [1500.0, 13.55235565300246]
BensonThermodynamicBase:  H298:-0.0  S298:2.181709480220119  Reference:'InternalSymmetry(3)'

-------------- Total --------------
BensonThermodynamicBase(Total):  H298:53.773999999999994  S298:81.45939436133877  Reference:'Sum Total'  [1000.0, 62.366778278917245]  [1500.0, 63.88850586063044]  [800.0, 56.61627868022346]  [400.0, 76.73028461023205]  [300.0, 63.277547148297096]  [600.0, 79.073890083705]  [500.0, 58.89231817084702]
-------------- NASA Polynomial --------------
propyl                  c   3h   7          G    300.00   2000.00   1000.00    1
+2.96388114e+01+3.55271368e-15-3.46944695e-18-8.47032947e-22+0.00000000e+00    2
-2.57590245e+03-1.26138096e+02+4.98000468e+01-1.10452483e-01+2.20330236e-04    3
-1.90183083e-07+6.00853145e-11-5.42560088e+03-2.16746580e+02                   4