htpolynet 2.11.2__tar.gz → 2.11.3__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 (369) hide show
  1. {htpolynet-2.11.2 → htpolynet-2.11.3}/CHANGELOG.md +33 -0
  2. {htpolynet-2.11.2 → htpolynet-2.11.3}/PKG-INFO +1 -1
  3. {htpolynet-2.11.2 → htpolynet-2.11.3}/pyproject.toml +1 -1
  4. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/runtime.py +6 -0
  5. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/ringcontroller.py +41 -0
  6. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/schema/base.yaml +14 -0
  7. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_ringcontroller.py +19 -0
  8. {htpolynet-2.11.2 → htpolynet-2.11.3}/.claude/settings.json +0 -0
  9. {htpolynet-2.11.2 → htpolynet-2.11.3}/.claude/skills/htpolynet/SKILL.md +0 -0
  10. {htpolynet-2.11.2 → htpolynet-2.11.3}/.envrc +0 -0
  11. {htpolynet-2.11.2 → htpolynet-2.11.3}/.github/workflows/conda-forge-sync.yml +0 -0
  12. {htpolynet-2.11.2 → htpolynet-2.11.3}/.github/workflows/docker.yml +0 -0
  13. {htpolynet-2.11.2 → htpolynet-2.11.3}/.github/workflows/docs.yml +0 -0
  14. {htpolynet-2.11.2 → htpolynet-2.11.3}/.github/workflows/release.yaml +0 -0
  15. {htpolynet-2.11.2 → htpolynet-2.11.3}/.github/workflows/test.yml +0 -0
  16. {htpolynet-2.11.2 → htpolynet-2.11.3}/.gitignore +0 -0
  17. {htpolynet-2.11.2 → htpolynet-2.11.3}/.readthedocs.yaml +0 -0
  18. {htpolynet-2.11.2 → htpolynet-2.11.3}/CITATION.cff +0 -0
  19. {htpolynet-2.11.2 → htpolynet-2.11.3}/CLAUDE.md +0 -0
  20. {htpolynet-2.11.2 → htpolynet-2.11.3}/LICENSE +0 -0
  21. {htpolynet-2.11.2 → htpolynet-2.11.3}/MANIFEST.in +0 -0
  22. {htpolynet-2.11.2 → htpolynet-2.11.3}/README.md +0 -0
  23. {htpolynet-2.11.2 → htpolynet-2.11.3}/ROADMAP.md +0 -0
  24. {htpolynet-2.11.2 → htpolynet-2.11.3}/docker/Dockerfile +0 -0
  25. {htpolynet-2.11.2 → htpolynet-2.11.3}/docker/compose.yml +0 -0
  26. {htpolynet-2.11.2 → htpolynet-2.11.3}/docker/docker-entrypoint.sh +0 -0
  27. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/Makefile +0 -0
  28. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/README.rst +0 -0
  29. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/make.bat +0 -0
  30. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/requirements.txt +0 -0
  31. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/_static/.gitkeep +0 -0
  32. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/_static/htpolynet-favicon.ico +0 -0
  33. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/_static/htpolynet-landing.jpg +0 -0
  34. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/_static/htpolynet-logo-dark.png +0 -0
  35. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/_static/htpolynet-logo-light.png +0 -0
  36. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/changelog.rst +0 -0
  37. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/conf.py +0 -0
  38. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/configuration.rst +0 -0
  39. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/index.rst +0 -0
  40. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/introduction.rst +0 -0
  41. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/monomer.rst +0 -0
  42. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/postsim.rst +0 -0
  43. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/results.rst +0 -0
  44. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/0-liquid-styrene/run.rst +0 -0
  45. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/configuration.rst +0 -0
  46. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/index.rst +0 -0
  47. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/introduction.rst +0 -0
  48. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/monomer.rst +0 -0
  49. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/STY.png +0 -0
  50. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/STYCC.png +0 -0
  51. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/buildtraces.png +0 -0
  52. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/cure_info.png +0 -0
  53. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/densification-density.png +0 -0
  54. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/final-box.png +0 -0
  55. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/reaction_network.png +0 -0
  56. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/sty-coloring.tcl +0 -0
  57. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/sty-cured.png +0 -0
  58. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/sty-detail.png +0 -0
  59. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/sty-liq.png +0 -0
  60. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/pics/styrene-polymerization.png +0 -0
  61. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/postsim.rst +0 -0
  62. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/reactions.rst +0 -0
  63. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/results.rst +0 -0
  64. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/1-polystyrene/run.rst +0 -0
  65. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/configuration.rst +0 -0
  66. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/index.rst +0 -0
  67. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/introduction.rst +0 -0
  68. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/BPA.png +0 -0
  69. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/GMA.png +0 -0
  70. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/HIE.png +0 -0
  71. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/buildtraces.png +0 -0
  72. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/cure_info.png +0 -0
  73. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/densification-density.png +0 -0
  74. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.eps +0 -0
  75. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.fig +0 -0
  76. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/four_dimers.png +0 -0
  77. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-coloring.tcl +0 -0
  78. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-cured.png +0 -0
  79. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-detail.png +0 -0
  80. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/gma-sty-liq.png +0 -0
  81. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/p1-traces.png +0 -0
  82. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/reaction_network.png +0 -0
  83. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.eps +0 -0
  84. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.fig +0 -0
  85. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/pics/vesys.png +0 -0
  86. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/postsim.rst +0 -0
  87. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/reactions.rst +0 -0
  88. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/results.rst +0 -0
  89. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/2-bisgma-styrene-thermoset/run.rst +0 -0
  90. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/configuration.rst +0 -0
  91. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/index.rst +0 -0
  92. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/introduction.rst +0 -0
  93. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/monomers.rst +0 -0
  94. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/DGE-epoxy.png +0 -0
  95. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/DGE-labelled.png +0 -0
  96. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/PAC-2d.png +0 -0
  97. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/PAC-labelled.png +0 -0
  98. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/buildtraces.png +0 -0
  99. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/cure_info.png +0 -0
  100. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/densification-density.png +0 -0
  101. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-coloring.tcl +0 -0
  102. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-cured.png +0 -0
  103. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-detail.png +0 -0
  104. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dge-pac-liq.png +0 -0
  105. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.eps +0 -0
  106. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.fig +0 -0
  107. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/dgesys.png +0 -0
  108. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/equil-rho_v_ns.png +0 -0
  109. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/postsim-typical.png +0 -0
  110. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-e.png +0 -0
  111. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-equil-rho_v_ns.png +0 -0
  112. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-rho_v_ns.png +0 -0
  113. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/prod-tg.png +0 -0
  114. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r1.png +0 -0
  115. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r2.png +0 -0
  116. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/r3.png +0 -0
  117. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/reaction_network.png +0 -0
  118. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/rho_v_ns.png +0 -0
  119. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/short-e.png +0 -0
  120. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/pics/short-tg.png +0 -0
  121. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/postsim.rst +0 -0
  122. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/reactions.rst +0 -0
  123. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/results.rst +0 -0
  124. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/3-pacm-dgeba-epoxy-thermoset/run.rst +0 -0
  125. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/configuration.rst +0 -0
  126. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/index.rst +0 -0
  127. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/introduction.rst +0 -0
  128. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/monomers.rst +0 -0
  129. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/buildtraces.png +0 -0
  130. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/cure_info.png +0 -0
  131. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/densification-density.png +0 -0
  132. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-coloring.tcl +0 -0
  133. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-cured.png +0 -0
  134. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-detail.png +0 -0
  135. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/dfa-fde-liq.png +0 -0
  136. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/pics/reaction_network.png +0 -0
  137. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/postsim.rst +0 -0
  138. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/reactions.rst +0 -0
  139. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/results.rst +0 -0
  140. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/4-dfda-fde-epoxy-thermoset/run.rst +0 -0
  141. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/configuration.rst +0 -0
  142. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/index.rst +0 -0
  143. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/introduction.rst +0 -0
  144. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/monomers.rst +0 -0
  145. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/buildtraces.png +0 -0
  146. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/cure_info.png +0 -0
  147. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/densification-density.png +0 -0
  148. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-coloring.tcl +0 -0
  149. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-cured.png +0 -0
  150. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-detail.png +0 -0
  151. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/htpb-ipdi-liq.png +0 -0
  152. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/pics/reaction_network.png +0 -0
  153. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/postsim.rst +0 -0
  154. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/reactions.rst +0 -0
  155. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/results.rst +0 -0
  156. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/5-htpb-ipdi/run.rst +0 -0
  157. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/configuration.rst +0 -0
  158. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/index.rst +0 -0
  159. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/introduction.rst +0 -0
  160. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/monomers.rst +0 -0
  161. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-coloring.tcl +0 -0
  162. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-cured.png +0 -0
  163. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-detail.png +0 -0
  164. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/badcy-liq.png +0 -0
  165. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/buildtraces.png +0 -0
  166. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/cure_info.png +0 -0
  167. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/densification-density.png +0 -0
  168. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/pics/reaction_network.png +0 -0
  169. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/postsim.rst +0 -0
  170. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/reactions.rst +0 -0
  171. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/results.rst +0 -0
  172. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/6-cyanate-ester/run.rst +0 -0
  173. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/example-tutorials/index.rst +0 -0
  174. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/htpolynetpackage.rst +0 -0
  175. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/index.rst +0 -0
  176. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/install.rst +0 -0
  177. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/references/index.rst +0 -0
  178. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/references/mol2-reference.pdf +0 -0
  179. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/references.bib +0 -0
  180. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/CURE.odg +0 -0
  181. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/bond_filter.odg +0 -0
  182. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/building-a-system.rst +0 -0
  183. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/configs/configs-for-analyze.rst +0 -0
  184. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/configs/configs-for-postsim.rst +0 -0
  185. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/configs/configs-for-run.rst +0 -0
  186. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/configuration-files.rst +0 -0
  187. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/container-usage.rst +0 -0
  188. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/flow1.odg +0 -0
  189. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/flow1yaml.odg +0 -0
  190. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/hydrogenated.eps +0 -0
  191. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/hydrogenated.fig +0 -0
  192. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/index.rst +0 -0
  193. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/molecular-structure-inputs.rst +0 -0
  194. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/periodic-networks.rst +0 -0
  195. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/STY.png +0 -0
  196. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/STYCC.png +0 -0
  197. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/TypicalUsageFlow.png +0 -0
  198. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/bond_filter.png +0 -0
  199. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/chemdoodle-2dsketcher-emb.png +0 -0
  200. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/chemdoodle-2dsketcher-styrene.png +0 -0
  201. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/hydrogenated.png +0 -0
  202. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/ring_pierce/ring_pierce_cases.png +0 -0
  203. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/pics/ring_pierce/ring_pierce_linkcell.png +0 -0
  204. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/postcure-repair.rst +0 -0
  205. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/program-flow.rst +0 -0
  206. {htpolynet-2.11.2 → htpolynet-2.11.3}/docs/source/user-guide/usage.rst +0 -0
  207. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/check-conda-sync.py +0 -0
  208. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/release.sh +0 -0
  209. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/render-detail.sh +0 -0
  210. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/render-detail.tcl +0 -0
  211. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/render-snapshot.sh +0 -0
  212. {htpolynet-2.11.2 → htpolynet-2.11.3}/scripts/run_all_examples.sh +0 -0
  213. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/__init__.py +0 -0
  214. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/analysis/__init__.py +0 -0
  215. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/analysis/analyze.py +0 -0
  216. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/analysis/plot.py +0 -0
  217. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/analysis/postsim.py +0 -0
  218. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/analysis/utils.py +0 -0
  219. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cli.py +0 -0
  220. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/__init__.py +0 -0
  221. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/bondtemplate.py +0 -0
  222. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/configuration.py +0 -0
  223. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/coordinates.py +0 -0
  224. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/molecule.py +0 -0
  225. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/paramcache.py +0 -0
  226. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/productsplice.py +0 -0
  227. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/projectfilesystem.py +0 -0
  228. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/topocoord.py +0 -0
  229. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/core/topology.py +0 -0
  230. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/__init__.py +0 -0
  231. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/chain.py +0 -0
  232. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/curecontroller.py +0 -0
  233. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/expandreactions.py +0 -0
  234. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/reaction.py +0 -0
  235. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/cure/triplesearch.py +0 -0
  236. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/__init__.py +0 -0
  237. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/ambertools.py +0 -0
  238. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/command.py +0 -0
  239. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/gromacs.py +0 -0
  240. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/slurm.py +0 -0
  241. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/smiles_input.py +0 -0
  242. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/external/software.py +0 -0
  243. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/__init__.py +0 -0
  244. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/bondlist.py +0 -0
  245. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/lattice.py +0 -0
  246. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/linkcell.py +0 -0
  247. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/matrix4.py +0 -0
  248. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/placement.py +0 -0
  249. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/ring.py +0 -0
  250. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/geometry/templategeom.py +0 -0
  251. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/io/__init__.py +0 -0
  252. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/io/gro.py +0 -0
  253. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/io/mol2.py +0 -0
  254. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/io/pdb.py +0 -0
  255. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/repair/__init__.py +0 -0
  256. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/repair/cyanate_cap.py +0 -0
  257. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/repair/topology_surgery.py +0 -0
  258. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/README.md +0 -0
  259. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/__init__.py +0 -0
  260. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/claude/SKILL.md +0 -0
  261. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/0-liquid-styrene.yaml +0 -0
  262. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/1-polystyrene.yaml +0 -0
  263. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.yaml +0 -0
  264. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.yaml +0 -0
  265. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.yaml +0 -0
  266. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/5-htpb-ipdi.yaml +0 -0
  267. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/example_depot/6-cyanate-ester.yaml +0 -0
  268. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/README.md +0 -0
  269. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/drag-min.mdp +0 -0
  270. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/drag-npt.mdp +0 -0
  271. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/drag-nvt.mdp +0 -0
  272. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/min.mdp +0 -0
  273. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/npt.mdp +0 -0
  274. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/nvt.mdp +0 -0
  275. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/relax-min.mdp +0 -0
  276. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/relax-npt.mdp +0 -0
  277. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/relax-nvt.mdp +0 -0
  278. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/single-molecule-min.mdp +0 -0
  279. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/mdp/single-molecule-nvt.mdp +0 -0
  280. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/DFA.pdb +0 -0
  281. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/DGE.mol2 +0 -0
  282. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/EMB.mol2 +0 -0
  283. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/FDE.pdb +0 -0
  284. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/GMA.mol2 +0 -0
  285. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/PAC.mol2 +0 -0
  286. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/inputs/STY.mol2 +0 -0
  287. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/make-monomers.sh +0 -0
  288. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/DFA.png +0 -0
  289. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/DGE.png +0 -0
  290. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/EMB.png +0 -0
  291. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/FDE.png +0 -0
  292. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/GMA.png +0 -0
  293. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/PAC.png +0 -0
  294. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/pics/STY.png +0 -0
  295. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/DFA.pdb +0 -0
  296. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/DGE.mol2 +0 -0
  297. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/EMB.mol2 +0 -0
  298. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/FDE.pdb +0 -0
  299. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/GMA.mol2 +0 -0
  300. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/PAC.mol2 +0 -0
  301. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/molecules/sample-inputs/STY.mol2 +0 -0
  302. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/tcl/readbonds.tcl +0 -0
  303. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/tcl/readgrx.tcl +0 -0
  304. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/resources/tcl/render.tcl +0 -0
  305. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/__init__.py +0 -0
  306. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/banner.py +0 -0
  307. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/checkpoint.py +0 -0
  308. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/convergence.py +0 -0
  309. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/dataframetools.py +0 -0
  310. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/inputcheck.py +0 -0
  311. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/logsetup.py +0 -0
  312. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/profiling.py +0 -0
  313. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/stringthings.py +0 -0
  314. {htpolynet-2.11.2 → htpolynet-2.11.3}/src/htpolynet/utils/vmd_viz.py +0 -0
  315. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/__init__.py +0 -0
  316. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/conftest.py +0 -0
  317. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/__init__.py +0 -0
  318. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/config1.gro +0 -0
  319. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/config1.top +0 -0
  320. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/config2.gro +0 -0
  321. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/config2.top +0 -0
  322. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/items31.edr +0 -0
  323. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/items43.edr +0 -0
  324. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/items45.edr +0 -0
  325. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/fixtures/short.mdp +0 -0
  326. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_bondtemplate.py +0 -0
  327. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_cap_placement.py +0 -0
  328. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_chain.py +0 -0
  329. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_completion_bias.py +0 -0
  330. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_conda_sync.py +0 -0
  331. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_configuration.py +0 -0
  332. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_convergence.py +0 -0
  333. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_cure_site_functionality.py +0 -0
  334. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_dataframetools.py +0 -0
  335. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_density_gate.py +0 -0
  336. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_gpu_usability.py +0 -0
  337. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_gromacs_get_energy_menu.py +0 -0
  338. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_gromacs_gmx_energy_trace.py +0 -0
  339. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_inputcheck.py +0 -0
  340. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_linkcell_pierce.py +0 -0
  341. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_mdrun_gpu_options.py +0 -0
  342. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_mol2_bond_fallback.py +0 -0
  343. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_molecule_charge_report.py +0 -0
  344. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_moleculetype_name.py +0 -0
  345. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_multibody_reactions.py +0 -0
  346. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_paramcache.py +0 -0
  347. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_paramcache_ambertools.py +0 -0
  348. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_parameterize_react.py +0 -0
  349. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_placement_and_ringclose.py +0 -0
  350. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_plot_smoke.py +0 -0
  351. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_productsplice.py +0 -0
  352. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_projectfilesystem.py +0 -0
  353. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_relax_instrumentation.py +0 -0
  354. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_repair_charge_neutrality.py +0 -0
  355. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_repair_conversion.py +0 -0
  356. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_resources.py +0 -0
  357. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_ring.py +0 -0
  358. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_ring_pierce_figs.py +0 -0
  359. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_setup_claude.py +0 -0
  360. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_sibling_templates.py +0 -0
  361. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_slurm_script.py +0 -0
  362. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_smiles_input.py +0 -0
  363. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_software_provenance.py +0 -0
  364. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_templategeom.py +0 -0
  365. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_topology/test.top +0 -0
  366. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_topology.py +0 -0
  367. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_transrot_turn_scan.py +0 -0
  368. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_triplesearch.py +0 -0
  369. {htpolynet-2.11.2 → htpolynet-2.11.3}/tests/unit/test_user_frcmod.py +0 -0
@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.11.3] - 2026-09-23
11
+
12
+ ### Fixed
13
+
14
+ - **A ring cure handed its last batch of rings to postcure unrelaxed.** Every batch
15
+ but the last is relaxed twice: once by the per-iteration relax as soon as its bonds
16
+ exist, and again by the *next* iteration's closure ladder, which is eight
17
+ minimizations and 16 ps at 600 K against the relax's one minimization and 4 ps at
18
+ 300 K. The final batch only ever gets the first, and then goes straight into a
19
+ 500 K anneal.
20
+
21
+ htpolynet-study measured it on three 2.11.1 builds, all of which had ended on a
22
+ ring-forming iteration and had therefore been relaxed. Bond energy entering the
23
+ anneal tracked how many rings that last iteration formed -- 1, 1 and 4 rings for
24
+ 18849, 26113 and 35959 kJ/mol, against 13619 +/- 226 for a route that enters already
25
+ relaxed. An inventory of one such structure found five bonds beyond 2.0 A: one
26
+ triazine's three ring bonds at 2.24 A, and two monomers whose own backbones the
27
+ ladder had stretched to 2.34 and 3.20 A while pulling their arms toward different
28
+ rings. Eleven of twenty builds died in the anneal.
29
+
30
+ The cure now runs a minimization and a short 300 K NVT once on exit, mirroring what
31
+ the postcure repair stage already did for the route that never saw this. It is
32
+ unconditional -- the cure has four ways to end and which of them leaves strain behind
33
+ is not worth reasoning about per exit -- and configurable as `ring_cure.settle`.
34
+
35
+ Confirmed paired, same eight velocity seeds against the same two structures on the
36
+ same hardware: two anneals exploded without the settle and none with it. The two
37
+ came from different source structures, one of which had never failed in production,
38
+ so the effect is not particular to a pathological build, and nothing exploded during
39
+ the settle itself -- the minimization absorbs the strain rather than the failure
40
+ moving earlier. Eight seeds is a small sample and that comparison alone would be
41
+ weak; it is corroboration of the bond energies above, not the case on its own.
42
+
10
43
  ## [2.11.2] - 2026-09-23
11
44
 
12
45
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: htpolynet
3
- Version: 2.11.2
3
+ Version: 2.11.3
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/
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "htpolynet"
7
- version = "2.11.2"
7
+ version = "2.11.3"
8
8
  authors = [
9
9
  { name="Cameron F Abrams", email="cfa22@drexel.edu" },
10
10
  ]
@@ -718,6 +718,12 @@ class Runtime:
718
718
  rc.state.iter += 1
719
719
  pfs.go_proj()
720
720
  rc.state.to_yaml(statefile)
721
+ # the last batch of rings never sees another closure ladder, so it reaches
722
+ # postcure carrying whatever the ladder left in it
723
+ pfs.go_to(pfs.Dirs.systems_iter(rc.state.iter))
724
+ TC.grab_files()
725
+ rc.settle(TC, gromacs_dict=gromacs_dict)
726
+ pfs.go_proj()
721
727
  self._report_molecule_charges('after ring cure')
722
728
  my_logger(f'Ring cure ends: {rc.state.rings} ring(s), conversion '
723
729
  f'{rc.state.conversion:.3f}', logger.info)
@@ -96,6 +96,8 @@ class RingController:
96
96
  'same_residue': False,
97
97
  'relax': [{'ensemble': 'min'},
98
98
  {'ensemble': 'nvt', 'temperature': 300, 'nsteps': 2000}],
99
+ 'settle': [{'ensemble': 'min'},
100
+ {'ensemble': 'nvt', 'temperature': 300, 'nsteps': 2500}],
99
101
  'closure': {'nstages': 8, 'target': 0.15, 'kb': 300000.0, 'max_accept': 0.30,
100
102
  'equilibration': [{'ensemble': 'min'},
101
103
  {'ensemble': 'nvt', 'temperature': 600, 'nsteps': 1000}]},
@@ -341,6 +343,45 @@ class RingController:
341
343
  gromacs_dict or {})
342
344
  logger.info(f'Iteration {self.state.iter}: new ring bonds relaxed')
343
345
 
346
+ def settle(self, TC, gromacs_dict=None):
347
+ """Relaxes the network one last time before the cure hands it on.
348
+
349
+ Every batch of rings but the last is relaxed twice: once by :meth:`relax` as
350
+ soon as its bonds exist, and again -- much harder -- by the next iteration's
351
+ closure ladder, which is eight minimizations and 16 ps at 600 K against relax's
352
+ one minimization and 4 ps at 300 K. The final batch only ever gets the first,
353
+ and whatever the cure ends on goes straight into postcure.
354
+
355
+ Measured by htpolynet-study on three 2.11.1 builds, all of which ended on a
356
+ ring-forming iteration, so all of which had been relaxed: bond energy entering
357
+ the anneal tracked how many rings that last iteration formed -- 1, 1 and 4 rings
358
+ for 18849, 26113 and 35959 kJ/mol, against 13619 +/- 226 for a route that enters
359
+ already relaxed. An inventory of one such structure found five bonds beyond
360
+ 2.0 A: one triazine's three ring bonds at 2.24 A, and two monomers whose own
361
+ backbones the ladder had stretched to 2.34 and 3.20 A while pulling their two
362
+ arms toward different rings. Nothing after the restraints come off relieves
363
+ either, and the strain then has to be absorbed by a 500 K anneal, which is where
364
+ 11 of 20 builds died.
365
+
366
+ Unconditional on purpose. The cure has four ways to end -- target reached,
367
+ iterations exhausted, radius exhausted, every ring declined -- and which of them
368
+ leaves strain behind is not worth reasoning about per exit when the remedy is
369
+ this cheap.
370
+
371
+ Args:
372
+ TC (TopoCoord): the system
373
+ gromacs_dict (dict): gromacs directives
374
+ """
375
+ stages = self.dicts['settle']
376
+ if not stages:
377
+ return False
378
+ TC.write_top(f'ringsettle-{self.state.iter}.top')
379
+ TC.write_gro(f'ringsettle-{self.state.iter}.gro')
380
+ self._run_stages(TC, f'ringsettle-{self.state.iter}', stages, gromacs_dict or {})
381
+ logger.info(f'Ring cure settled after {self.state.rings} ring(s); the network is '
382
+ f'relaxed before postcure rather than at 500 K')
383
+ return True
384
+
344
385
  def _run_stages(self, TC, deffnm, stages, gromacs_dict):
345
386
  """Runs one equilibration sequence, as the cure's ladders do."""
346
387
  for stage in stages:
@@ -842,6 +842,20 @@ attributes:
842
842
  Allow two groups of one residue in a ring, which for a dicyanate is both
843
843
  arms into one triazine.
844
844
  default: false
845
+ - name: settle
846
+ type: list
847
+ text: >
848
+ Equilibration run once at the end of the cure, before postcure. Every
849
+ batch of rings but the last is relaxed again by the next iteration's
850
+ closure ladder; the last one is not, and reaches postcure still carrying
851
+ the strain the ladder left -- stretched ring bonds, and monomers whose
852
+ backbones were pulled while their arms went to different rings. An empty
853
+ list skips it.
854
+ default:
855
+ - ensemble: min
856
+ - ensemble: nvt
857
+ temperature: 300
858
+ nsteps: 2500
845
859
  - name: closure
846
860
  type: dict
847
861
  text: >
@@ -357,3 +357,22 @@ class TestATripleThatFailedIsNotTriedAgainWhileAnythingElseIsLeft(unittest.TestC
357
357
  _, out_c = c.accept(bdf, work, chosen)
358
358
  self.assertEqual(len(out_c), 1)
359
359
  self.assertEqual(c.declined, set())
360
+
361
+
362
+ class TestSettlingTheNetworkOnExit(unittest.TestCase):
363
+ """Every batch of rings but the last is relaxed twice -- once by `relax`, then much
364
+ harder by the next iteration's closure ladder. The last batch only gets the first,
365
+ and goes to a 500 K anneal carrying whatever the ladder left in it."""
366
+
367
+ def test_it_is_on_by_default(self):
368
+ c = RingController({})
369
+ self.assertEqual([s['ensemble'] for s in c.dicts['settle']], ['min', 'nvt'])
370
+
371
+ def test_an_empty_list_skips_it(self):
372
+ # and does not touch the system, so a caller that disables it pays nothing
373
+ c = RingController({'settle': []})
374
+ self.assertFalse(c.settle(None))
375
+
376
+ def test_a_caller_can_replace_the_stages(self):
377
+ c = RingController({'settle': [{'ensemble': 'npt', 'temperature': 400}]})
378
+ self.assertEqual(c.dicts['settle'], [{'ensemble': 'npt', 'temperature': 400}])
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
File without changes