htpolynet 2.13.0__tar.gz → 2.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. {htpolynet-2.13.0 → htpolynet-2.14.0}/CHANGELOG.md +37 -0
  2. {htpolynet-2.13.0 → htpolynet-2.14.0}/PKG-INFO +1 -1
  3. {htpolynet-2.13.0 → htpolynet-2.14.0}/ROADMAP.md +3 -26
  4. {htpolynet-2.13.0 → htpolynet-2.14.0}/pyproject.toml +1 -1
  5. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/postsim.py +5 -0
  6. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/drag-npt.mdp +2 -2
  7. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/drag-nvt.mdp +1 -1
  8. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/npt.mdp +2 -2
  9. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/nvt.mdp +1 -1
  10. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/relax-npt.mdp +2 -2
  11. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/relax-nvt.mdp +1 -1
  12. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/single-molecule-nvt.mdp +1 -1
  13. htpolynet-2.14.0/tests/unit/test_mdp_ensembles.py +109 -0
  14. {htpolynet-2.13.0 → htpolynet-2.14.0}/.claude/settings.json +0 -0
  15. {htpolynet-2.13.0 → htpolynet-2.14.0}/.claude/skills/htpolynet/SKILL.md +0 -0
  16. {htpolynet-2.13.0 → htpolynet-2.14.0}/.envrc +0 -0
  17. {htpolynet-2.13.0 → htpolynet-2.14.0}/.github/workflows/conda-forge-sync.yml +0 -0
  18. {htpolynet-2.13.0 → htpolynet-2.14.0}/.github/workflows/docker.yml +0 -0
  19. {htpolynet-2.13.0 → htpolynet-2.14.0}/.github/workflows/docs.yml +0 -0
  20. {htpolynet-2.13.0 → htpolynet-2.14.0}/.github/workflows/release.yaml +0 -0
  21. {htpolynet-2.13.0 → htpolynet-2.14.0}/.github/workflows/test.yml +0 -0
  22. {htpolynet-2.13.0 → htpolynet-2.14.0}/.gitignore +0 -0
  23. {htpolynet-2.13.0 → htpolynet-2.14.0}/.readthedocs.yaml +0 -0
  24. {htpolynet-2.13.0 → htpolynet-2.14.0}/CITATION.cff +0 -0
  25. {htpolynet-2.13.0 → htpolynet-2.14.0}/CLAUDE.md +0 -0
  26. {htpolynet-2.13.0 → htpolynet-2.14.0}/LICENSE +0 -0
  27. {htpolynet-2.13.0 → htpolynet-2.14.0}/MANIFEST.in +0 -0
  28. {htpolynet-2.13.0 → htpolynet-2.14.0}/README.md +0 -0
  29. {htpolynet-2.13.0 → htpolynet-2.14.0}/docker/Dockerfile +0 -0
  30. {htpolynet-2.13.0 → htpolynet-2.14.0}/docker/compose.yml +0 -0
  31. {htpolynet-2.13.0 → htpolynet-2.14.0}/docker/docker-entrypoint.sh +0 -0
  32. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/Makefile +0 -0
  33. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/README.rst +0 -0
  34. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/make.bat +0 -0
  35. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/requirements.txt +0 -0
  36. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/_static/.gitkeep +0 -0
  37. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/_static/htpolynet-favicon.ico +0 -0
  38. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/_static/htpolynet-landing.jpg +0 -0
  39. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/_static/htpolynet-logo-dark.png +0 -0
  40. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/_static/htpolynet-logo-light.png +0 -0
  41. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/changelog.rst +0 -0
  42. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/conf.py +0 -0
  43. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/configuration.rst +0 -0
  44. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/index.rst +0 -0
  45. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/introduction.rst +0 -0
  46. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/monomer.rst +0 -0
  47. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/postsim.rst +0 -0
  48. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/results.rst +0 -0
  49. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/0-liquid-styrene/run.rst +0 -0
  50. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/configuration.rst +0 -0
  51. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/index.rst +0 -0
  52. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/introduction.rst +0 -0
  53. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/monomer.rst +0 -0
  54. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/STY.png +0 -0
  55. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/STYCC.png +0 -0
  56. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/buildtraces.png +0 -0
  57. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/cure_info.png +0 -0
  58. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/densification-density.png +0 -0
  59. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/final-box.png +0 -0
  60. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/reaction_network.png +0 -0
  61. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/sty-coloring.tcl +0 -0
  62. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/sty-cured.png +0 -0
  63. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/sty-detail.png +0 -0
  64. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/sty-liq.png +0 -0
  65. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/pics/styrene-polymerization.png +0 -0
  66. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/postsim.rst +0 -0
  67. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/reactions.rst +0 -0
  68. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/results.rst +0 -0
  69. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/1-polystyrene/run.rst +0 -0
  70. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/configuration.rst +0 -0
  71. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/index.rst +0 -0
  72. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/introduction.rst +0 -0
  73. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/BPA.png +0 -0
  74. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/GMA.png +0 -0
  75. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/HIE.png +0 -0
  76. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/buildtraces.png +0 -0
  77. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/cure_info.png +0 -0
  78. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/densification-density.png +0 -0
  79. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.eps +0 -0
  80. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.fig +0 -0
  81. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.png +0 -0
  82. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-coloring.tcl +0 -0
  83. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-cured.png +0 -0
  84. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-detail.png +0 -0
  85. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-liq.png +0 -0
  86. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/p1-traces.png +0 -0
  87. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/reaction_network.png +0 -0
  88. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.eps +0 -0
  89. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.fig +0 -0
  90. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.png +0 -0
  91. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/postsim.rst +0 -0
  92. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/reactions.rst +0 -0
  93. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/results.rst +0 -0
  94. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/run.rst +0 -0
  95. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/configuration.rst +0 -0
  96. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/index.rst +0 -0
  97. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/introduction.rst +0 -0
  98. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/monomers.rst +0 -0
  99. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/DGE-epoxy.png +0 -0
  100. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/DGE-labelled.png +0 -0
  101. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/PAC-2d.png +0 -0
  102. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/PAC-labelled.png +0 -0
  103. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/buildtraces.png +0 -0
  104. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/cure_info.png +0 -0
  105. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/densification-density.png +0 -0
  106. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-coloring.tcl +0 -0
  107. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-cured.png +0 -0
  108. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-detail.png +0 -0
  109. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-liq.png +0 -0
  110. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.eps +0 -0
  111. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.fig +0 -0
  112. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.png +0 -0
  113. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/equil-rho_v_ns.png +0 -0
  114. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/postsim-typical.png +0 -0
  115. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-e.png +0 -0
  116. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-equil-rho_v_ns.png +0 -0
  117. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-rho_v_ns.png +0 -0
  118. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-tg.png +0 -0
  119. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r1.png +0 -0
  120. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r2.png +0 -0
  121. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r3.png +0 -0
  122. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/reaction_network.png +0 -0
  123. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/rho_v_ns.png +0 -0
  124. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/short-e.png +0 -0
  125. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/short-tg.png +0 -0
  126. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/postsim.rst +0 -0
  127. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/reactions.rst +0 -0
  128. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/results.rst +0 -0
  129. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/run.rst +0 -0
  130. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/configuration.rst +0 -0
  131. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/index.rst +0 -0
  132. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/introduction.rst +0 -0
  133. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/monomers.rst +0 -0
  134. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/buildtraces.png +0 -0
  135. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/cure_info.png +0 -0
  136. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/densification-density.png +0 -0
  137. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-coloring.tcl +0 -0
  138. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-cured.png +0 -0
  139. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-detail.png +0 -0
  140. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-liq.png +0 -0
  141. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/reaction_network.png +0 -0
  142. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/postsim.rst +0 -0
  143. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/reactions.rst +0 -0
  144. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/results.rst +0 -0
  145. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/run.rst +0 -0
  146. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/configuration.rst +0 -0
  147. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/index.rst +0 -0
  148. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/introduction.rst +0 -0
  149. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/monomers.rst +0 -0
  150. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/buildtraces.png +0 -0
  151. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/cure_info.png +0 -0
  152. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/densification-density.png +0 -0
  153. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-coloring.tcl +0 -0
  154. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-cured.png +0 -0
  155. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-detail.png +0 -0
  156. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-liq.png +0 -0
  157. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/pics/reaction_network.png +0 -0
  158. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/postsim.rst +0 -0
  159. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/reactions.rst +0 -0
  160. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/results.rst +0 -0
  161. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/5-htpb-ipdi/run.rst +0 -0
  162. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/configuration.rst +0 -0
  163. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/index.rst +0 -0
  164. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/introduction.rst +0 -0
  165. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/monomers.rst +0 -0
  166. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-coloring.tcl +0 -0
  167. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-cured.png +0 -0
  168. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-detail.png +0 -0
  169. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-liq.png +0 -0
  170. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/buildtraces.png +0 -0
  171. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/cure_info.png +0 -0
  172. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/densification-density.png +0 -0
  173. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/pics/reaction_network.png +0 -0
  174. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/postsim.rst +0 -0
  175. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/reactions.rst +0 -0
  176. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/results.rst +0 -0
  177. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/6-cyanate-ester/run.rst +0 -0
  178. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/example-tutorials/index.rst +0 -0
  179. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/htpolynetpackage.rst +0 -0
  180. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/index.rst +0 -0
  181. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/install.rst +0 -0
  182. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/references/index.rst +0 -0
  183. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/references/mol2-reference.pdf +0 -0
  184. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/references.bib +0 -0
  185. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/CURE.odg +0 -0
  186. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/bond_filter.odg +0 -0
  187. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/building-a-system.rst +0 -0
  188. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/configs/configs-for-analyze.rst +0 -0
  189. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/configs/configs-for-postsim.rst +0 -0
  190. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/configs/configs-for-run.rst +0 -0
  191. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/configuration-files.rst +0 -0
  192. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/container-usage.rst +0 -0
  193. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/flow1.odg +0 -0
  194. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/flow1yaml.odg +0 -0
  195. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/hydrogenated.eps +0 -0
  196. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/hydrogenated.fig +0 -0
  197. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/index.rst +0 -0
  198. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/molecular-structure-inputs.rst +0 -0
  199. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/periodic-networks.rst +0 -0
  200. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/STY.png +0 -0
  201. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/STYCC.png +0 -0
  202. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/TypicalUsageFlow.png +0 -0
  203. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/bond_filter.png +0 -0
  204. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/chemdoodle-2dsketcher-emb.png +0 -0
  205. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/chemdoodle-2dsketcher-styrene.png +0 -0
  206. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/hydrogenated.png +0 -0
  207. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/ring_pierce/ring_pierce_cases.png +0 -0
  208. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/pics/ring_pierce/ring_pierce_linkcell.png +0 -0
  209. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/postcure-repair.rst +0 -0
  210. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/program-flow.rst +0 -0
  211. {htpolynet-2.13.0 → htpolynet-2.14.0}/docs/source/user-guide/usage.rst +0 -0
  212. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/check-conda-sync.py +0 -0
  213. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/release.sh +0 -0
  214. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/render-detail.sh +0 -0
  215. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/render-detail.tcl +0 -0
  216. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/render-snapshot.sh +0 -0
  217. {htpolynet-2.13.0 → htpolynet-2.14.0}/scripts/run_all_examples.sh +0 -0
  218. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/__init__.py +0 -0
  219. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/__init__.py +0 -0
  220. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/analyze.py +0 -0
  221. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/piercings.py +0 -0
  222. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/plot.py +0 -0
  223. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/analysis/utils.py +0 -0
  224. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cli.py +0 -0
  225. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/__init__.py +0 -0
  226. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/bondtemplate.py +0 -0
  227. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/configuration.py +0 -0
  228. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/coordinates.py +0 -0
  229. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/molecule.py +0 -0
  230. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/paramcache.py +0 -0
  231. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/productsplice.py +0 -0
  232. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/projectfilesystem.py +0 -0
  233. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/runtime.py +0 -0
  234. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/topocoord.py +0 -0
  235. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/core/topology.py +0 -0
  236. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/__init__.py +0 -0
  237. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/chain.py +0 -0
  238. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/curecontroller.py +0 -0
  239. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/expandreactions.py +0 -0
  240. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/reaction.py +0 -0
  241. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/ringcontroller.py +0 -0
  242. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/cure/triplesearch.py +0 -0
  243. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/__init__.py +0 -0
  244. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/ambertools.py +0 -0
  245. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/command.py +0 -0
  246. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/gromacs.py +0 -0
  247. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/slurm.py +0 -0
  248. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/smiles_input.py +0 -0
  249. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/external/software.py +0 -0
  250. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/__init__.py +0 -0
  251. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/bondlist.py +0 -0
  252. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/lattice.py +0 -0
  253. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/linkcell.py +0 -0
  254. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/matrix4.py +0 -0
  255. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/piercing.py +0 -0
  256. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/placement.py +0 -0
  257. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/ring.py +0 -0
  258. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/geometry/templategeom.py +0 -0
  259. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/io/__init__.py +0 -0
  260. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/io/gro.py +0 -0
  261. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/io/mol2.py +0 -0
  262. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/io/pdb.py +0 -0
  263. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/repair/__init__.py +0 -0
  264. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/repair/cyanate_cap.py +0 -0
  265. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/repair/topology_surgery.py +0 -0
  266. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/README.md +0 -0
  267. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/__init__.py +0 -0
  268. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/claude/SKILL.md +0 -0
  269. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/0-liquid-styrene.yaml +0 -0
  270. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/1-polystyrene.yaml +0 -0
  271. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.yaml +0 -0
  272. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.yaml +0 -0
  273. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.yaml +0 -0
  274. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/5-htpb-ipdi.yaml +0 -0
  275. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/example_depot/6-cyanate-ester.yaml +0 -0
  276. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/README.md +0 -0
  277. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/drag-min.mdp +0 -0
  278. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/min.mdp +0 -0
  279. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/relax-min.mdp +0 -0
  280. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/mdp/single-molecule-min.mdp +0 -0
  281. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/DFA.pdb +0 -0
  282. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/DGE.mol2 +0 -0
  283. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/EMB.mol2 +0 -0
  284. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/FDE.pdb +0 -0
  285. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/GMA.mol2 +0 -0
  286. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/PAC.mol2 +0 -0
  287. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/inputs/STY.mol2 +0 -0
  288. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/make-monomers.sh +0 -0
  289. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/DFA.png +0 -0
  290. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/DGE.png +0 -0
  291. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/EMB.png +0 -0
  292. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/FDE.png +0 -0
  293. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/GMA.png +0 -0
  294. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/PAC.png +0 -0
  295. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/pics/STY.png +0 -0
  296. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/DFA.pdb +0 -0
  297. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/DGE.mol2 +0 -0
  298. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/EMB.mol2 +0 -0
  299. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/FDE.pdb +0 -0
  300. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/GMA.mol2 +0 -0
  301. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/PAC.mol2 +0 -0
  302. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/molecules/sample-inputs/STY.mol2 +0 -0
  303. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/tcl/readbonds.tcl +0 -0
  304. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/tcl/readgrx.tcl +0 -0
  305. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/resources/tcl/render.tcl +0 -0
  306. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/schema/base.yaml +0 -0
  307. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/__init__.py +0 -0
  308. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/banner.py +0 -0
  309. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/checkpoint.py +0 -0
  310. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/convergence.py +0 -0
  311. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/dataframetools.py +0 -0
  312. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/inputcheck.py +0 -0
  313. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/logsetup.py +0 -0
  314. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/profiling.py +0 -0
  315. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/stringthings.py +0 -0
  316. {htpolynet-2.13.0 → htpolynet-2.14.0}/src/htpolynet/utils/vmd_viz.py +0 -0
  317. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/__init__.py +0 -0
  318. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/conftest.py +0 -0
  319. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/__init__.py +0 -0
  320. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/README-postsim-traces.md +0 -0
  321. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/config1.gro +0 -0
  322. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/config1.top +0 -0
  323. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/config2.gro +0 -0
  324. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/config2.top +0 -0
  325. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/deform-x-FDE-FCPDA.csv +0 -0
  326. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/items31.edr +0 -0
  327. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/items43.edr +0 -0
  328. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/items45.edr +0 -0
  329. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/ladder-FDE-DFDA.csv +0 -0
  330. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/fixtures/short.mdp +0 -0
  331. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_bondtemplate.py +0 -0
  332. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_cap_placement.py +0 -0
  333. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_chain.py +0 -0
  334. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_checkout_shadowing.py +0 -0
  335. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_completion_bias.py +0 -0
  336. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_conda_sync.py +0 -0
  337. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_config_docs_coverage.py +0 -0
  338. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_configuration.py +0 -0
  339. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_convergence.py +0 -0
  340. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_cure_site_functionality.py +0 -0
  341. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_dataframetools.py +0 -0
  342. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_density_gate.py +0 -0
  343. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_gpu_usability.py +0 -0
  344. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_gromacs_get_energy_menu.py +0 -0
  345. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_gromacs_gmx_energy_trace.py +0 -0
  346. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_grompp_warnings.py +0 -0
  347. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_inputcheck.py +0 -0
  348. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_linkcell_pierce.py +0 -0
  349. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_mdrun_gpu_options.py +0 -0
  350. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_mol2_bond_fallback.py +0 -0
  351. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_molecule_charge_report.py +0 -0
  352. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_moleculetype_name.py +0 -0
  353. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_multibody_reactions.py +0 -0
  354. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_overlong_bond_report.py +0 -0
  355. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_paramcache.py +0 -0
  356. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_paramcache_ambertools.py +0 -0
  357. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_parameterize_react.py +0 -0
  358. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_piercings.py +0 -0
  359. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_placement_and_ringclose.py +0 -0
  360. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_plot_smoke.py +0 -0
  361. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_postsim_moduli.py +0 -0
  362. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_postsim_real_traces.py +0 -0
  363. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_postsim_shear.py +0 -0
  364. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_productsplice.py +0 -0
  365. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_projectfilesystem.py +0 -0
  366. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_relax_instrumentation.py +0 -0
  367. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_repair_charge_neutrality.py +0 -0
  368. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_repair_conversion.py +0 -0
  369. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_resources.py +0 -0
  370. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_ring.py +0 -0
  371. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_ring_cure_schema.py +0 -0
  372. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_ring_pierce_figs.py +0 -0
  373. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_ringcontroller.py +0 -0
  374. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_setup_claude.py +0 -0
  375. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_sibling_templates.py +0 -0
  376. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_slurm_script.py +0 -0
  377. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_smiles_input.py +0 -0
  378. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_software_provenance.py +0 -0
  379. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_templategeom.py +0 -0
  380. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_topology/test.top +0 -0
  381. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_topology.py +0 -0
  382. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_transrot_turn_scan.py +0 -0
  383. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_triplesearch.py +0 -0
  384. {htpolynet-2.13.0 → htpolynet-2.14.0}/tests/unit/test_user_frcmod.py +0 -0
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.14.0] - 2026-09-30
11
+
12
+ ### Changed
13
+
14
+ - **No packaged mdp uses a Berendsen thermostat or barostat any more, and every one of
15
+ them now passes `grompp` with zero warnings** --- which none of them did before.
16
+
17
+ - **Every temperature-coupled stage now uses the V-rescale thermostat.** All seven
18
+ packaged mdps used Berendsen, which Gromacs deprecates in the same breath as the
19
+ barostat: *"does not generate the correct kinetic energy distribution."* That is every
20
+ stage htpolynet runs, including the ones that produce published densities and
21
+ transition temperatures. Same cause as the barostat, and the same remedy; `tau_t` is
22
+ unchanged at 0.1 ps.
23
+
24
+ - **Constant-pressure stages no longer use the Berendsen barostat.** `npt.mdp`,
25
+ `drag-npt.mdp` and `relax-npt.mdp` now use **C-rescale**, which samples a correct NPT
26
+ ensemble and is robust far from equilibrium; Berendsen is neither, and Gromacs has said
27
+ so at every `grompp` since 2025 --- unheard, because those warnings were being
28
+ discarded (fixed in 2.13.0). This covers densification, precure and postcure
29
+ equilibration, the CURE relax and drag ladders, and the ring cure's relax and
30
+ equilibrate.
31
+
32
+ The deformation stages are the exception: they force `pcoupltype = anisotropic`, which
33
+ C-rescale does not support at all --- `grompp` errors outright --- so `deform` and
34
+ clamped `shear` now set **Parrinello-Rahman**, which does support it and also samples
35
+ the right ensemble. Isochoric shear has no barostat and is unaffected.
36
+
37
+ **This changes the sampled ensemble.** Densities, glass-transition temperatures and
38
+ moduli from earlier versions are not strictly comparable with ones produced now. That
39
+ cost is deliberate and was taken on Cameron's decision, in the same spirit as the 2.7.0
40
+ constraint change. `tau_p` is unchanged at 0.5 ps, so that if anything proves unstable
41
+ there is only one variable to look at; it is the first knob to try.
42
+
43
+ A test now fails if any packaged mdp reintroduces a deprecated barostat, or pairs
44
+ C-rescale with the anisotropic coupling it cannot do.
45
+
46
+
10
47
  ## [2.13.0] - 2026-09-29
11
48
 
12
49
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: htpolynet
3
- Version: 2.13.0
3
+ Version: 2.14.0
4
4
  Summary: Automated MD System Builder for Amorphous Network Polymers
5
5
  Project-URL: Source, https://github.com/cameronabrams/htpolynet
6
6
  Project-URL: Documentation, https://htpolynet.readthedocs.io/
@@ -601,7 +601,9 @@ Coverage as of the last measurement: **38.8%** overall.
601
601
  question is whether a short one converges at all or whether the barostat needs
602
602
  something like CURE's 100 ps --- which is the other thing the A/B will show.
603
603
 
604
- - **Properties measured before the threading filter may carry threaded rings.** The
604
+ - **DECLINED 2026-09-30 by Cameron: "no, I am not interested in answering that
605
+ question."** Left here so it is not raised again as though it were open. What was
606
+ asked: properties measured before the threading filter may carry threaded rings. The
605
607
  filter shipped in 2.11.4; every build made before it could contain a triazine closed
606
608
  around a monomer, which happened in 2 of 4 unfiltered builds --- 4, 2, 0 and 0
607
609
  piercings, a mean of 1.5 each.
@@ -1863,31 +1865,6 @@ Coverage as of the last measurement: **38.8%** overall.
1863
1865
 
1864
1866
  ## Simulation defaults
1865
1867
 
1866
- - **Every constant-pressure stage uses the Berendsen barostat, which does not sample the
1867
- NPT ensemble and is deprecated upstream.** `npt.mdp`, `drag-npt.mdp` and
1868
- `relax-npt.mdp` all set `pcoupl = Berendsen`, and nothing in the Python overrides it,
1869
- so this covers densification, precure and postcure equilibration, the CURE relax
1870
- ladder, the ring cure's relax and equilibrate, and both deformation stages. Gromacs
1871
- 2025 says so at every `grompp`: *"The Berendsen barostat does not generate any strictly
1872
- correct ensemble, and should not be used for new production simulations... We recommend
1873
- using the C-rescale barostat instead."*
1874
-
1875
- Raised by htpolynet-study 2026-09-28 in the context of moduli, where it matters most:
1876
- a barostat that does not sample the right volume fluctuations is a poor foundation for
1877
- a mechanical measurement.
1878
-
1879
- **The reason this has not simply been changed is reproducibility, not doubt.**
1880
- Switching to C-rescale changes the sampled ensemble, so every density, Tg and modulus
1881
- htpolynet has produced becomes not strictly comparable with anything produced after.
1882
- There is precedent for taking that cost deliberately --- 2.7.0 changed the constraint
1883
- scheme for the same kind of reason and said so in the notes --- and the same treatment
1884
- fits here: change all three together, say plainly in the changelog that prior results
1885
- are not comparable, and ideally re-measure one known system across the change so the
1886
- size of the shift is on record rather than assumed.
1887
-
1888
- Whoever takes it should also check whether `tau_p` wants revisiting: a value tuned for
1889
- Berendsen's weak coupling is not necessarily right for C-rescale.
1890
-
1891
1868
  - **The density-convergence tolerance may be tight for example 6.** In the
1892
1869
  v2.10.0 sweep, example 6 failed the gate for the first time in four sweeps:
1893
1870
  "sem 1.070 exceeds tolerance 1.000" after 6 extensions, with the last window
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "htpolynet"
7
- version = "2.13.0"
7
+ version = "2.14.0"
8
8
  authors = [
9
9
  { name="Cameron F Abrams", email="cfa22@drexel.edu" },
10
10
  ]
@@ -339,6 +339,9 @@ class PostSimDeform(PostSimMD):
339
339
  'tau_p':1.0,
340
340
  'refcoord_scaling': 'com',
341
341
  'pcoupltype': 'anisotropic',
342
+ # the packaged mdp uses C-rescale, which does not support anisotropic
343
+ # coupling; Parrinello-Rahman does and samples the right ensemble too
344
+ 'pcoupl': 'Parrinello-Rahman',
342
345
  # stress is what this stage exists to measure, so sample it far more often
343
346
  # than the packaged npt.mdp does. At 1 ps the frames are already
344
347
  # near-independent, so ten times as many cut the standard error on a fitted
@@ -467,6 +470,8 @@ class PostSimShear(PostSimMD):
467
470
  'tau_p':1.0,
468
471
  'refcoord_scaling': 'com',
469
472
  'pcoupltype': 'anisotropic',
473
+ # as in PostSimDeform: C-rescale cannot do anisotropic, Parrinello-Rahman can
474
+ 'pcoupl': 'Parrinello-Rahman',
470
475
  # the Cartesian component the shear moves is uncoupled; the other two
471
476
  # normal directions stay at P. Gromacs rejects the run otherwise.
472
477
  'ref_p':f'{params["P"]} {params["P"]} {params["P"]} 0 0 0',
@@ -19,11 +19,11 @@ fourierspacing = 0.12
19
19
  pme_order = 4
20
20
  ewald_rtol = 1e-5
21
21
  optimize_fft = yes
22
- tcoupl = Berendsen
22
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
23
23
  tc-grps = System
24
24
  tau_t = 0.1
25
25
  ref_t = 300
26
- pcoupl = Berendsen ; Pressure coupling on in NPT, also weak coupling
26
+ pcoupl = C-rescale ; correct NPT ensemble and robust far from equilibrium; Berendsen is neither (deprecated 2025+)
27
27
  pcoupltype = isotropic ; uniform scaling of x-y-z box vectors
28
28
  tau_p = 0.5 ; time constant, in ps
29
29
  ref_p = 1.0
@@ -19,7 +19,7 @@ fourierspacing = 0.12
19
19
  pme_order = 4
20
20
  ewald_rtol = 1e-5
21
21
  optimize_fft = yes
22
- tcoupl = Berendsen
22
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
23
23
  tc-grps = System
24
24
  tau_t = 0.1
25
25
  ref_t = 300
@@ -18,11 +18,11 @@ fourierspacing = 0.12
18
18
  pme_order = 4
19
19
  ewald_rtol = 1e-5
20
20
  optimize_fft = yes
21
- tcoupl = Berendsen
21
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
22
22
  tc-grps = System
23
23
  tau_t = 0.1
24
24
  ref_t = 300
25
- pcoupl = Berendsen ; Pressure coupling on in NPT, also weak coupling
25
+ pcoupl = C-rescale ; correct NPT ensemble and robust far from equilibrium; Berendsen is neither (deprecated 2025+)
26
26
  pcoupltype = isotropic ; uniform scaling of x-y-z box vectors
27
27
  tau_p = 0.5 ; time constant, in ps
28
28
  ref_p = 10.0
@@ -17,7 +17,7 @@ fourierspacing = 0.12
17
17
  pme_order = 4
18
18
  ewald_rtol = 1e-5
19
19
  optimize_fft = yes
20
- tcoupl = Berendsen
20
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
21
21
  tc-grps = System
22
22
  tau_t = 0.1
23
23
  ref_t = 300
@@ -19,11 +19,11 @@ fourierspacing = 0.12
19
19
  pme_order = 4
20
20
  ewald_rtol = 1e-5
21
21
  optimize_fft = yes
22
- tcoupl = Berendsen
22
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
23
23
  tc-grps = System
24
24
  tau_t = 0.1
25
25
  ref_t = 300
26
- pcoupl = Berendsen ; Pressure coupling on in NPT, also weak coupling
26
+ pcoupl = C-rescale ; correct NPT ensemble and robust far from equilibrium; Berendsen is neither (deprecated 2025+)
27
27
  pcoupltype = isotropic ; uniform scaling of x-y-z box vectors
28
28
  tau_p = 0.5 ; time constant, in ps
29
29
  ref_p = 1.0
@@ -19,7 +19,7 @@ fourierspacing = 0.12
19
19
  pme_order = 4
20
20
  ewald_rtol = 1e-5
21
21
  optimize_fft = yes
22
- tcoupl = Berendsen
22
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
23
23
  tc-grps = System
24
24
  tau_t = 0.1
25
25
  ref_t = 300
@@ -14,7 +14,7 @@ rcoulomb = 1.0
14
14
  rvdw = 1.0
15
15
  coulombtype = cut-off
16
16
  vdw_type = cut-off
17
- tcoupl = Berendsen
17
+ tcoupl = V-rescale ; correct canonical ensemble; Berendsen does not give the right kinetic energy distribution (deprecated 2025+)
18
18
  tc-grps = System
19
19
  tau_t = 0.1
20
20
  ref_t = 300
@@ -0,0 +1,109 @@
1
+ """
2
+
3
+ .. module:: test_mdp_ensembles
4
+ :synopsis: the packaged mdps ask for couplings that sample the right ensemble
5
+
6
+ .. moduleauthor: Cameron F. Abrams, <cfa22@drexel.edu>
7
+
8
+ """
9
+ import importlib.resources as ir
10
+ import unittest
11
+
12
+ DEPRECATED_BAROSTATS = {'berendsen'}
13
+ """Gromacs 2025+: "The Berendsen barostat does not generate any strictly correct
14
+ ensemble, and should not be used for new production simulations." """
15
+
16
+ DEPRECATED_THERMOSTATS = {'berendsen'}
17
+ """Gromacs 2025+: "The Berendsen thermostat does not generate the correct kinetic
18
+ energy distribution... We would recommend the V-rescale thermostat." """
19
+
20
+
21
+ def mdps():
22
+ d = ir.files('htpolynet').joinpath('resources/mdp')
23
+ return {f.name: f.read_text() for f in d.iterdir() if f.name.endswith('.mdp')}
24
+
25
+
26
+ def setting(text, key):
27
+ for line in text.split('\n'):
28
+ if '=' in line and line.split('=')[0].strip() == key:
29
+ return line.split('=')[1].split(';')[0].strip()
30
+ return None
31
+
32
+
33
+ class TestNoPackagedMdpUsesADeprecatedBarostat(unittest.TestCase):
34
+ """This went unnoticed for as long as Gromacs has warned about it, because
35
+ htpolynet runs grompp with -maxwarn 4 and discarded its output on success. A test
36
+ is the only thing that would have caught it, so here is the test."""
37
+
38
+ def test_every_pressure_coupled_mdp_uses_a_correct_ensemble(self):
39
+ bad = {n: setting(t, 'pcoupl') for n, t in mdps().items()
40
+ if (setting(t, 'pcoupl') or 'no').lower() in DEPRECATED_BAROSTATS}
41
+ self.assertEqual(bad, {})
42
+
43
+ def test_the_constant_pressure_mdps_are_actually_coupled(self):
44
+ # guard against "fixing" the warning by switching pressure coupling off
45
+ for name in ('npt.mdp', 'drag-npt.mdp', 'relax-npt.mdp'):
46
+ with self.subTest(name):
47
+ self.assertEqual((setting(mdps()[name], 'pcoupl') or 'no').lower(),
48
+ 'c-rescale')
49
+
50
+ def test_c_rescale_is_only_used_where_it_is_supported(self):
51
+ # C-rescale does not support anisotropic coupling; grompp errors outright.
52
+ # The deformation stages override pcoupltype at runtime and set their own
53
+ # barostat, so no packaged mdp may pair the two.
54
+ for name, text in mdps().items():
55
+ with self.subTest(name):
56
+ if (setting(text, 'pcoupl') or '').lower() == 'c-rescale':
57
+ self.assertNotEqual((setting(text, 'pcoupltype') or '').lower(),
58
+ 'anisotropic')
59
+
60
+
61
+ class TestNoPackagedMdpUsesADeprecatedThermostat(unittest.TestCase):
62
+ """Every mdp htpolynet ships used the Berendsen thermostat, on every stage including
63
+ the ones that produce published numbers. Same cause as the barostat: grompp said so
64
+ at every run, into output that was thrown away."""
65
+
66
+ def test_no_mdp_uses_one(self):
67
+ bad = {n: setting(t, 'tcoupl') for n, t in mdps().items()
68
+ if (setting(t, 'tcoupl') or 'no').lower() in DEPRECATED_THERMOSTATS}
69
+ self.assertEqual(bad, {})
70
+
71
+ def test_the_temperature_coupled_mdps_are_actually_coupled(self):
72
+ # guard against "fixing" it by switching temperature coupling off
73
+ for name, text in mdps().items():
74
+ with self.subTest(name):
75
+ if setting(text, 'tcoupl') is not None:
76
+ self.assertEqual(setting(text, 'tcoupl').lower(), 'v-rescale')
77
+
78
+
79
+ class TestTheDeformationStagesCarryTheirOwnBarostat(unittest.TestCase):
80
+ """They force anisotropic coupling, which C-rescale cannot do."""
81
+
82
+ def built(self, cls, params):
83
+ import os
84
+ import shutil
85
+ import tempfile
86
+
87
+ import numpy as np
88
+ d = tempfile.mkdtemp()
89
+ f = os.path.join(d, 'm.mdp')
90
+ shutil.copy(str(ir.files('htpolynet').joinpath('resources/mdp/npt.mdp')), f)
91
+ cls(params).build_mdp(f, box=np.diag([5.6, 5.6, 5.6]))
92
+ return open(f).read()
93
+
94
+ def test_deform_uses_parrinello_rahman(self):
95
+ from htpolynet.analysis.postsim import PostSimDeform
96
+ text = self.built(PostSimDeform, {'direction': 'x', 'edot': 1e-4, 'ps': 300})
97
+ self.assertEqual(setting(text, 'pcoupl'), 'Parrinello-Rahman')
98
+ self.assertEqual(setting(text, 'pcoupltype'), 'anisotropic')
99
+
100
+ def test_clamped_shear_uses_parrinello_rahman(self):
101
+ from htpolynet.analysis.postsim import PostSimShear
102
+ text = self.built(PostSimShear, {'direction': 'xy', 'edot': 1e-4, 'ps': 300})
103
+ self.assertEqual(setting(text, 'pcoupl'), 'Parrinello-Rahman')
104
+
105
+ def test_isochoric_shear_has_no_barostat_at_all(self):
106
+ from htpolynet.analysis.postsim import PostSimShear
107
+ text = self.built(PostSimShear, {'direction': 'xy', 'edot': 1e-4, 'ps': 300,
108
+ 'coupling': 'isochoric'})
109
+ self.assertEqual(setting(text, 'pcoupl'), 'no')
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes