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:
- Go to the directory where you want the package to be installed
- run the git command:
git clone https://github.com/blurock/JThermodynamics.git
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
andThermodynamicInterface
) 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 compiledJThermodynamicData-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