Running the Build

Now, in our working directory my_vinyl_ester/3-bisgma-styrene-thermoset/, if you haven’t already, go ahead and launch via ./run.sh.

$ ./run.sh

As the two htpolynet run commands indicate, standard output is being redirected from the console to the file console.log:

INFO>
INFO>     HTPolyNet 1.0.8
INFO>     https://abramsgroup.github.io/HTPolyNet/
INFO>
INFO>     Ming Huang
INFO>     mh3429@dragons.drexel.edu
INFO>
INFO>     Cameron F. Abrams
INFO>     cfa22@drexel.edu
INFO>
INFO>     Supported in part by Grants W911NF-17-2-0227
INFO>     and W911NF-12-R-0011 from the US Army Research Lab
INFO>
INFO>     Please cite the HTPolyNet paper:
INFO>
INFO>     Ming Huang and Cameron F. Abrams, HTPolyNet: A general
INFO>     system generator for all-atom molecular simulations of
INFO>     amorphous crosslinked polymers, SoftwareX, vol. 21,
INFO>     pp. 101303, 2023 (doi:10.1016/j.softx.2022.101303)
INFO>
INFO> ******************** HTPolyNet runtime begins *********************
INFO> User library is /home/cfa/htpolynet-tutorials/1.0.8/3-bisgma-styrene-thermoset/lib
INFO> New project in /home/cfa/htpolynet-tutorials/1.0.8/3-bisgma-styrene-thermoset/proj-0
INFO> *************************** Ambertools: ***************************
INFO> ********************  antechamber (ver. 22.0) *********************
INFO> ********************        tleap (ver. 22.0) *********************
INFO> ********************     parmchk2 (ver. 22.0) *********************
INFO> Configuration: GMASTY.yaml

Then a description of all the molecules that need to be created:

INFO> *********** Templates in proj-0/molecules/parameterized ***********
INFO> 32 molecules detected in GMASTY.yaml
INFO>                       explicit: 11
INFO>     implied by stereochemistry: 21
INFO>            implied by symmetry: 0

First are the molecules that are explicit in the configuration file:

INFO> AmberTools> generating GAFF parameters from BPA.mol2
INFO> BPA: 228.28 g/mol
INFO> AmberTools> generating GAFF parameters from HIE.mol2
INFO> HIE: 146.18 g/mol
INFO> AmberTools> generating GAFF parameters from STY.mol2
INFO> STY: 106.16 g/mol
INFO> AmberTools> generating GAFF parameters from GM1.mol2
INFO> GM1: 372.44 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY.mol2
INFO> STY~C1-C2~STY: 210.30 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE.mol2
INFO> HIE~C1-C2~HIE: 290.35 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE.mol2
INFO> STY~C1-C2~HIE: 250.33 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY.mol2
INFO> HIE~C1-C2~STY: 250.33 g/mol
INFO> AmberTools> generating GAFF parameters from STYCC.mol2
INFO> STYCC: 104.14 g/mol
INFO> AmberTools> generating GAFF parameters from HIECC.mol2
INFO> HIECC: 144.17 g/mol
INFO> AmberTools> generating GAFF parameters from GMA.mol2
INFO> GMA: 516.61 g/mol

Next are the diastereomers that are implied by stereocenters. Note that these are just built, not parameterized:

INFO> Built GM1S-1 using topology of GM1; copying GM1.top to GM1S-1.top
INFO> GM1S-1: 372.44 g/mol
INFO> Built GM1S-2 using topology of GM1; copying GM1.top to GM1S-2.top
INFO> GM1S-2: 372.44 g/mol
INFO> Built GM1S-3 using topology of GM1; copying GM1.top to GM1S-3.top
INFO> GM1S-3: 372.44 g/mol
INFO> Built GMAS-1 using topology of GMA; copying GMA.top to GMAS-1.top
INFO> GMAS-1: 516.61 g/mol
INFO> Built GMAS-2 using topology of GMA; copying GMA.top to GMAS-2.top
INFO> GMAS-2: 516.61 g/mol
INFO> Built GMAS-3 using topology of GMA; copying GMA.top to GMAS-3.top
INFO> GMAS-3: 516.61 g/mol
INFO> Built GMAS-4 using topology of GMA; copying GMA.top to GMAS-4.top
INFO> GMAS-4: 516.61 g/mol
INFO> Built GMAS-5 using topology of GMA; copying GMA.top to GMAS-5.top
INFO> GMAS-5: 516.61 g/mol
INFO> Built GMAS-6 using topology of GMA; copying GMA.top to GMAS-6.top
INFO> GMAS-6: 516.61 g/mol
INFO> Built GMAS-7 using topology of GMA; copying GMA.top to GMAS-7.top
INFO> GMAS-7: 516.61 g/mol
INFO> Built GMAS-8 using topology of GMA; copying GMA.top to GMAS-8.top
INFO> GMAS-8: 516.61 g/mol
INFO> Built GMAS-9 using topology of GMA; copying GMA.top to GMAS-9.top
INFO> GMAS-9: 516.61 g/mol
INFO> Built GMAS-10 using topology of GMA; copying GMA.top to GMAS-10.top
INFO> GMAS-10: 516.61 g/mol
INFO> Built GMAS-11 using topology of GMA; copying GMA.top to GMAS-11.top
INFO> GMAS-11: 516.61 g/mol
INFO> Built GMAS-12 using topology of GMA; copying GMA.top to GMAS-12.top
INFO> GMAS-12: 516.61 g/mol
INFO> Built GMAS-13 using topology of GMA; copying GMA.top to GMAS-13.top
INFO> GMAS-13: 516.61 g/mol
INFO> Built GMAS-14 using topology of GMA; copying GMA.top to GMAS-14.top
INFO> GMAS-14: 516.61 g/mol
INFO> Built GMAS-15 using topology of GMA; copying GMA.top to GMAS-15.top
INFO> GMAS-15: 516.61 g/mol

Notice that this generates three of the four diastereomers of the intermediate GM1, and 15 of the 16 diastereomers of GMA; the missing ones were already generated! This set of 16 GMA diastereomers is used to add GMA molecules to the initial liquid.

Finally, the 32 molecules implied by chain-expansion of the cure reactions:

INFO> 32 molecules implied by chaining
INFO> AmberTools> generating GAFF parameters from HIE~C1=C2~STY~C1-C2~STY.mol2
INFO> HIE~C1=C2~STY~C1-C2~STY: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1=C2~HIE~C1-C2~HIE.mol2
INFO> HIE~C1=C2~HIE~C1-C2~HIE: 434.51 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1=C2~STY~C1-C2~HIE.mol2
INFO> HIE~C1=C2~STY~C1-C2~HIE: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1=C2~HIE~C1-C2~STY.mol2
INFO> HIE~C1=C2~HIE~C1-C2~STY: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1=C2~STY~C1-C2~STY.mol2
INFO> STY~C1=C2~STY~C1-C2~STY: 314.45 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1=C2~HIE~C1-C2~HIE.mol2
INFO> STY~C1=C2~HIE~C1-C2~HIE: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1=C2~STY~C1-C2~HIE.mol2
INFO> STY~C1=C2~STY~C1-C2~HIE: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1=C2~HIE~C1-C2~STY.mol2
INFO> STY~C1=C2~HIE~C1-C2~STY: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~HIE.mol2
INFO> STY~C1-C2~STY~C1=C2~HIE: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~HIE.mol2
INFO> HIE~C1-C2~HIE~C1=C2~HIE: 434.51 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~HIE.mol2
INFO> STY~C1-C2~HIE~C1=C2~HIE: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~HIE.mol2
INFO> HIE~C1-C2~STY~C1=C2~HIE: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~STY.mol2
INFO> STY~C1-C2~STY~C1=C2~STY: 314.45 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~STY.mol2
INFO> HIE~C1-C2~HIE~C1=C2~STY: 394.49 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~STY.mol2
INFO> STY~C1-C2~HIE~C1=C2~STY: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~STY.mol2
INFO> HIE~C1-C2~STY~C1=C2~STY: 354.47 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~STY~C1-C2~STY.mol2
INFO> STY~C1-C2~STY~C1=C2~STY~C1-C2~STY: 418.59 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~HIE~C1-C2~HIE.mol2
INFO> STY~C1-C2~STY~C1=C2~HIE~C1-C2~HIE: 498.64 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~STY~C1-C2~HIE.mol2
INFO> STY~C1-C2~STY~C1=C2~STY~C1-C2~HIE: 458.61 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~STY~C1=C2~HIE~C1-C2~STY.mol2
INFO> STY~C1-C2~STY~C1=C2~HIE~C1-C2~STY: 458.61 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~STY~C1-C2~STY.mol2
INFO> HIE~C1-C2~HIE~C1=C2~STY~C1-C2~STY: 498.64 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~HIE~C1-C2~HIE.mol2
INFO> HIE~C1-C2~HIE~C1=C2~HIE~C1-C2~HIE: 578.68 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~STY~C1-C2~HIE.mol2
INFO> HIE~C1-C2~HIE~C1=C2~STY~C1-C2~HIE: 538.66 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~HIE~C1=C2~HIE~C1-C2~STY.mol2
INFO> HIE~C1-C2~HIE~C1=C2~HIE~C1-C2~STY: 538.66 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~STY~C1-C2~STY.mol2
INFO> STY~C1-C2~HIE~C1=C2~STY~C1-C2~STY: 458.61 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~HIE~C1-C2~HIE.mol2
INFO> STY~C1-C2~HIE~C1=C2~HIE~C1-C2~HIE: 538.66 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~STY~C1-C2~HIE.mol2
INFO> STY~C1-C2~HIE~C1=C2~STY~C1-C2~HIE: 498.64 g/mol
INFO> AmberTools> generating GAFF parameters from STY~C1-C2~HIE~C1=C2~HIE~C1-C2~STY.mol2
INFO> STY~C1-C2~HIE~C1=C2~HIE~C1-C2~STY: 498.64 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~STY~C1-C2~STY.mol2
INFO> HIE~C1-C2~STY~C1=C2~STY~C1-C2~STY: 458.61 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~HIE~C1-C2~HIE.mol2
INFO> HIE~C1-C2~STY~C1=C2~HIE~C1-C2~HIE: 538.66 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~STY~C1-C2~HIE.mol2
INFO> HIE~C1-C2~STY~C1=C2~STY~C1-C2~HIE: 498.64 g/mol
INFO> AmberTools> generating GAFF parameters from HIE~C1-C2~STY~C1=C2~HIE~C1-C2~STY.mol2
INFO> HIE~C1-C2~STY~C1=C2~HIE~C1-C2~STY: 498.64 g/mol
INFO> Generated 64 molecule templates
INFO> Initial composition is STY 150, GMA 75
INFO> 100% conversion is 300 bonds

Now the creation and densification of the initial liquid:

INFO> ************** Initialization in proj-0/systems/init **************
INFO> Topology "init.top" in proj-0/systems/init
INFO> Initial density: 100.0 kg/m^3
INFO> Total mass: 9.078e-23 kg
INFO> Box aspect ratio: 1.0 x 1.0 x 1.0
INFO> Initial box side lengths: 9.683 nm x 9.683 nm x 9.683 nm
INFO> Coordinates "init.gro" in proj-0/systems/init
INFO> Extended attributes "init.grx" in proj-0/systems/init
INFO> ********** Densification in proj-0/systems/densification **********
INFO> Running Gromacs: minimization
INFO> Running Gromacs: nvt ensemble;  10.00 ps,  300.00 K
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,  10.00 bar
INFO> Current box side lengths: 9.215 nm x 9.215 nm x 9.215 nm
INFO> Density                      116.01
INFO> Running-average-Density      107.13
INFO> Rolling-10-average-Density   114.85
INFO> Repeat 1 out of 8
INFO> Current box side lengths: 8.634 nm x 8.634 nm x 8.634 nm
INFO> Density                      141.04
INFO> Running-average-Density      127.82
INFO> Rolling-10-average-Density   139.92
INFO> Repeat 2 out of 8
INFO> Current box side lengths: 7.969 nm x 7.969 nm x 7.969 nm
INFO> Density                      179.39
INFO> Running-average-Density      157.97
INFO> Rolling-10-average-Density   177.29
INFO> Repeat 3 out of 8
INFO> Current box side lengths: 7.283 nm x 7.283 nm x 7.283 nm
INFO> Density                      235.01
INFO> Running-average-Density      204.78
INFO> Rolling-10-average-Density   231.27
INFO> Repeat 4 out of 8
INFO> Current box side lengths: 6.375 nm x 6.375 nm x 6.375 nm
INFO> Density                      350.34
INFO> Running-average-Density      279.94
INFO> Rolling-10-average-Density   341.25
INFO> Repeat 5 out of 8
INFO> Current box side lengths: 4.669 nm x 4.669 nm x 4.669 nm
INFO> Density                      891.80
INFO> Running-average-Density      548.19
INFO> Rolling-10-average-Density   867.14
INFO> Repeat 6 out of 8
INFO> Current box side lengths: 4.462 nm x 4.462 nm x 4.462 nm
INFO> Density                      1021.60
INFO> Running-average-Density       993.90
INFO> Rolling-10-average-Density   1015.59
INFO> Repeat 7 out of 8
INFO> Current box side lengths: 4.471 nm x 4.471 nm x 4.471 nm
INFO> Density                      1015.42
INFO> Running-average-Density      1013.50
INFO> Rolling-10-average-Density   1012.53
INFO> Repeat 8 out of 8
INFO> Current box side lengths: 4.465 nm x 4.465 nm x 4.465 nm
INFO> Density                      1020.05
INFO> Running-average-Density      1016.22
INFO> Rolling-10-average-Density   1016.10
INFO> Densified coordinates in proj-0/systems/densification/densified-repeat-8-npt.gro

Note that we achieve a pretty good initial density for this liquid of about 1.02 g/cc. Now the CURE algorithm begins, seeking to form 285 out of the total possible 300 bonds. The console output shows that 159 bonds form in just the first two iterations:

INFO> ********* Connect-Update-Relax-Equilibrate (CURE) begins **********
INFO> Attempting to form 285 bonds
INFO> ~~~~~~~~~~~~~~~~~~~~~~~ Iteration 1 begins ~~~~~~~~~~~~~~~~~~~~~~~~
INFO> Bond search using radius 0.5 nm initiated
INFO> Iteration 1 will generate 81 new bonds
INFO> Step "cure_relax" initiated on 81 distances (max 0.493 nm)
INFO>      Stage  Max-distance (nm)  Max-1-4-distance (nm)
INFO>          1              0.454                  0.660
INFO>          2              0.386                  0.607
INFO>          3              0.328                  0.556
INFO>          4              0.275                  0.504
INFO>          5              0.215                  0.461
INFO>          6              0.168                  0.417
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,   1.00 bar
INFO> Current box side lengths: 4.424 nm x 4.424 nm x 4.424 nm
INFO> Density                      1045.35
INFO> Running-average-Density      1013.18
INFO> Rolling-10-average-Density   1044.08
INFO> Iteration 1 current conversion 0.270 or 81 bonds
INFO> ~~~~~~~~~~~~~~~~~~~~~~~ Iteration 2 begins ~~~~~~~~~~~~~~~~~~~~~~~~
INFO> Bond search using radius 0.5 nm initiated
INFO> Iteration 2 will generate 78 new bonds
INFO> Step "cure_relax" initiated on 78 distances (max 0.499 nm)
INFO>      Stage  Max-distance (nm)  Max-1-4-distance (nm)
INFO>          1              0.446                  0.668
INFO>          2              0.394                  0.635
INFO>          3              0.326                  0.565
INFO>          4              0.272                  0.517
INFO>          5              0.218                  0.465
INFO>          6              0.167                  0.423
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,   1.00 bar
INFO> Current box side lengths: 4.393 nm x 4.393 nm x 4.393 nm
INFO> Density                      1064.22
INFO> Running-average-Density      1038.23
INFO> Rolling-10-average-Density   1061.93
INFO> Iteration 2 current conversion 0.530 or 159 bonds

For this build, a total of 16 CURE iterations were required to reach 95% conversion. Here is the console output for the last two iterations, and we see they generated one and two bonds, respectively, and the last one required pre-bond dragging before bond formation and relaxation:

INFO> ~~~~~~~~~~~~~~~~~~~~~~~ Iteration 15 begins ~~~~~~~~~~~~~~~~~~~~~~~
INFO> Bond search using radius 0.5 nm initiated
INFO> Radius increased to 0.75 nm
INFO> Iteration 15 will generate 1 new bond
INFO> Step "cure_relax" initiated on 1 distance (max 0.543 nm)
INFO>      Stage  Max-distance (nm)  Max-1-4-distance (nm)
INFO>          1              0.475                  0.674
INFO>          2              0.417                  0.634
INFO>          3              0.349                  0.559
INFO>          4              0.286                  0.518
INFO>          5              0.229                  0.479
INFO>          6              0.158                  0.428
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,   1.00 bar
INFO> Current box side lengths: 4.393 nm x 4.393 nm x 4.393 nm
INFO> Density                      1059.35
INFO> Running-average-Density      1045.04
INFO> Rolling-10-average-Density   1060.65
INFO> Iteration 15 current conversion 0.943 or 283 bonds
INFO> ~~~~~~~~~~~~~~~~~~~~~~~ Iteration 16 begins ~~~~~~~~~~~~~~~~~~~~~~~
INFO> Bond search using radius 0.5 nm initiated
INFO> Radius increased to 0.75 nm
INFO> Iteration 16 will generate 2 new bonds
INFO> Step "cure_drag" initiated on 2 distances (max 0.691 nm)
INFO>      Stage  Max-distance (nm)
INFO>          1              0.645
INFO>          2              0.604
INFO>          3              0.555
INFO>          4              0.497
INFO>          5              0.445
INFO>          6              0.398
INFO>          7              0.356
INFO>          8              0.306
INFO> Step "cure_relax" initiated on 2 distances (max 0.306 nm)
INFO>      Stage  Max-distance (nm)  Max-1-4-distance (nm)
INFO>          1              0.259                  0.501
INFO>          2              0.210                  0.451
INFO>          3              0.165                  0.421
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,   1.00 bar
INFO> Current box side lengths: 4.396 nm x 4.396 nm x 4.396 nm
INFO> Density                      1057.45
INFO> Running-average-Density      1049.88
INFO> Rolling-10-average-Density   1056.57
INFO> Iteration 16 current conversion 0.950 or 285 bonds

And since there are apparently no unreacted double bonds, there are no capping reactions necessary:

INFO> ************************* Capping begins **************************
INFO> Capping will generate 0 new bonds
INFO> ********** Connect-Update-Relax-Equilibrate (CURE) ends ***********

And finally, postcure equilibration and annealing:

INFO> *************** Postcure in proj-0/systems/postcure ***************
INFO> Annealing: 5 points for 2 cycles over 160 ps
INFO> Annealed coordinates in annealed.gro
INFO> Running Gromacs: npt ensemble; 100.00 ps,  300.00 K,   1.00 bar
INFO> Current box side lengths: 4.358 nm x 4.358 nm x 4.358 nm
INFO> Density                      1085.65
INFO> Running-average-Density      1083.04
INFO> Rolling-10-average-Density   1082.58
INFO> *********** Final data to proj-0/systems/final-results ************
INFO> ********************* HTPolyNet runtime ends **********************

So we see our 95% cured system reached about 1.08 g/cc. I am not claiming any of these equilibration runs are long enough or the system is big enough, but this example just serves to illustrate how HTPolyNet works.

Let’s now take a look at some selected results.