htpolynet 2.0.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 (251) hide show
  1. htpolynet-2.0.0/.claude/settings.json +23 -0
  2. htpolynet-2.0.0/.github/workflows/docker.yml +35 -0
  3. htpolynet-2.0.0/.github/workflows/release.yaml +102 -0
  4. htpolynet-2.0.0/.gitignore +145 -0
  5. htpolynet-2.0.0/.readthedocs.yaml +15 -0
  6. htpolynet-2.0.0/CHANGELOG.md +41 -0
  7. htpolynet-2.0.0/Dockerfile +35 -0
  8. htpolynet-2.0.0/LICENSE +21 -0
  9. htpolynet-2.0.0/MANIFEST.in +1 -0
  10. htpolynet-2.0.0/PKG-INFO +78 -0
  11. htpolynet-2.0.0/README.md +50 -0
  12. htpolynet-2.0.0/compose.yml +7 -0
  13. htpolynet-2.0.0/docs/Makefile +20 -0
  14. htpolynet-2.0.0/docs/README.rst +6 -0
  15. htpolynet-2.0.0/docs/make.bat +35 -0
  16. htpolynet-2.0.0/docs/requirements.txt +7 -0
  17. htpolynet-2.0.0/docs/source/changelog.rst +7 -0
  18. htpolynet-2.0.0/docs/source/conf.py +68 -0
  19. htpolynet-2.0.0/docs/source/example-tutorials/index.rst +13 -0
  20. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/index.rst +309 -0
  21. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/equil-rho_v_ns.png +0 -0
  22. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/postsim-typical.png +0 -0
  23. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-e.png +0 -0
  24. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-equil-rho_v_ns.png +0 -0
  25. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-rho_v_ns.png +0 -0
  26. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-tg.png +0 -0
  27. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/rho_v_ns.png +0 -0
  28. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/short-e.png +0 -0
  29. htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/short-tg.png +0 -0
  30. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/configuration.rst +164 -0
  31. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/files/STY.mol2 +44 -0
  32. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/index.rst +18 -0
  33. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/introduction.rst +38 -0
  34. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/monomer.rst +90 -0
  35. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/STY.png +0 -0
  36. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/STYCC.png +0 -0
  37. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/styrene-polymerization.png +0 -0
  38. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/reactions.rst +70 -0
  39. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/results.rst +32 -0
  40. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/run.rst +48 -0
  41. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/configuration.rst +51 -0
  42. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/files/DGE.mol2 +115 -0
  43. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/files/PAC.mol2 +91 -0
  44. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/index.rst +16 -0
  45. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/introduction.rst +69 -0
  46. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/monomers.rst +295 -0
  47. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/DGE-epoxy.png +0 -0
  48. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/DGE-labelled.png +0 -0
  49. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/PAC-2d.png +0 -0
  50. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/PAC-labelled.png +0 -0
  51. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/buildtraces.png +0 -0
  52. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/cure_info.png +0 -0
  53. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/densification-density.png +0 -0
  54. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dge-pac-cured.png +0 -0
  55. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dge-pac-liq.png +0 -0
  56. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.eps +748 -0
  57. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.fig +396 -0
  58. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.png +0 -0
  59. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r1.png +0 -0
  60. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r2.png +0 -0
  61. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r3.png +0 -0
  62. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/reactions.rst +104 -0
  63. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/results.rst +46 -0
  64. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/run.rst +267 -0
  65. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/configuration.rst +39 -0
  66. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/index.rst +15 -0
  67. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/introduction.rst +68 -0
  68. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/BPA.png +0 -0
  69. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/GMA.png +0 -0
  70. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/HIE.png +0 -0
  71. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/buildtraces.png +0 -0
  72. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/cure_info.png +0 -0
  73. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/densification-density.png +0 -0
  74. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.eps +417 -0
  75. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.fig +221 -0
  76. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.png +0 -0
  77. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/gma-sty-cured.png +0 -0
  78. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/gma-sty-liq.png +0 -0
  79. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/p1-traces.png +0 -0
  80. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.eps +972 -0
  81. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.fig +582 -0
  82. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.png +0 -0
  83. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/reactions.rst +275 -0
  84. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/results.rst +46 -0
  85. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/run.rst +374 -0
  86. htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/index.rst +18 -0
  87. htpolynet-2.0.0/docs/source/htpolynetpackage.rst +199 -0
  88. htpolynet-2.0.0/docs/source/index.rst +37 -0
  89. htpolynet-2.0.0/docs/source/install.rst +131 -0
  90. htpolynet-2.0.0/docs/source/references/index.rst +16 -0
  91. htpolynet-2.0.0/docs/source/references/mol2-reference.pdf +0 -0
  92. htpolynet-2.0.0/docs/source/references.bib +68 -0
  93. htpolynet-2.0.0/docs/source/release-history.rst +69 -0
  94. htpolynet-2.0.0/docs/source/user-guide/CURE.odg +0 -0
  95. htpolynet-2.0.0/docs/source/user-guide/bond_filter.odg +0 -0
  96. htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-analyze.rst +147 -0
  97. htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-postsim.rst +298 -0
  98. htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-run.rst +462 -0
  99. htpolynet-2.0.0/docs/source/user-guide/configuration-files.rst +14 -0
  100. htpolynet-2.0.0/docs/source/user-guide/container-usage.rst +122 -0
  101. htpolynet-2.0.0/docs/source/user-guide/flow1.odg +0 -0
  102. htpolynet-2.0.0/docs/source/user-guide/flow1yaml.odg +0 -0
  103. htpolynet-2.0.0/docs/source/user-guide/hydrogenated.eps +280 -0
  104. htpolynet-2.0.0/docs/source/user-guide/hydrogenated.fig +135 -0
  105. htpolynet-2.0.0/docs/source/user-guide/index.rst +22 -0
  106. htpolynet-2.0.0/docs/source/user-guide/molecular-structure-inputs.rst +35 -0
  107. htpolynet-2.0.0/docs/source/user-guide/pics/CURE.png +0 -0
  108. htpolynet-2.0.0/docs/source/user-guide/pics/STY.png +0 -0
  109. htpolynet-2.0.0/docs/source/user-guide/pics/STYCC.png +0 -0
  110. htpolynet-2.0.0/docs/source/user-guide/pics/TypicalUsageFlow.png +0 -0
  111. htpolynet-2.0.0/docs/source/user-guide/pics/bond_filter.png +0 -0
  112. htpolynet-2.0.0/docs/source/user-guide/pics/chemdoodle-2dsketcher-emb.png +0 -0
  113. htpolynet-2.0.0/docs/source/user-guide/pics/chemdoodle-2dsketcher-styrene.png +0 -0
  114. htpolynet-2.0.0/docs/source/user-guide/pics/flow1.png +0 -0
  115. htpolynet-2.0.0/docs/source/user-guide/pics/hydrogenated.png +0 -0
  116. htpolynet-2.0.0/docs/source/user-guide/pics/ring_pierce/ring_pierce_cases.png +0 -0
  117. htpolynet-2.0.0/docs/source/user-guide/pics/ring_pierce/ring_pierce_linkcell.png +0 -0
  118. htpolynet-2.0.0/docs/source/user-guide/program-flow.rst +42 -0
  119. htpolynet-2.0.0/docs/source/user-guide/usage.rst +271 -0
  120. htpolynet-2.0.0/pyproject.toml +49 -0
  121. htpolynet-2.0.0/scripts/release.sh +88 -0
  122. htpolynet-2.0.0/src/htpolynet/__init__.py +2 -0
  123. htpolynet-2.0.0/src/htpolynet/analysis/__init__.py +0 -0
  124. htpolynet-2.0.0/src/htpolynet/analysis/analyze.py +256 -0
  125. htpolynet-2.0.0/src/htpolynet/analysis/plot.py +588 -0
  126. htpolynet-2.0.0/src/htpolynet/analysis/postsim.py +444 -0
  127. htpolynet-2.0.0/src/htpolynet/analysis/utils.py +399 -0
  128. htpolynet-2.0.0/src/htpolynet/cli.py +488 -0
  129. htpolynet-2.0.0/src/htpolynet/core/__init__.py +0 -0
  130. htpolynet-2.0.0/src/htpolynet/core/bondtemplate.py +112 -0
  131. htpolynet-2.0.0/src/htpolynet/core/configuration.py +83 -0
  132. htpolynet-2.0.0/src/htpolynet/core/coordinates.py +644 -0
  133. htpolynet-2.0.0/src/htpolynet/core/molecule.py +998 -0
  134. htpolynet-2.0.0/src/htpolynet/core/projectfilesystem.py +616 -0
  135. htpolynet-2.0.0/src/htpolynet/core/runtime.py +774 -0
  136. htpolynet-2.0.0/src/htpolynet/core/topocoord.py +2044 -0
  137. htpolynet-2.0.0/src/htpolynet/core/topology.py +1138 -0
  138. htpolynet-2.0.0/src/htpolynet/cure/__init__.py +0 -0
  139. htpolynet-2.0.0/src/htpolynet/cure/chain.py +135 -0
  140. htpolynet-2.0.0/src/htpolynet/cure/curecontroller.py +746 -0
  141. htpolynet-2.0.0/src/htpolynet/cure/expandreactions.py +294 -0
  142. htpolynet-2.0.0/src/htpolynet/cure/reaction.py +280 -0
  143. htpolynet-2.0.0/src/htpolynet/external/__init__.py +0 -0
  144. htpolynet-2.0.0/src/htpolynet/external/ambertools.py +97 -0
  145. htpolynet-2.0.0/src/htpolynet/external/command.py +73 -0
  146. htpolynet-2.0.0/src/htpolynet/external/gromacs.py +308 -0
  147. htpolynet-2.0.0/src/htpolynet/external/slurm.py +111 -0
  148. htpolynet-2.0.0/src/htpolynet/external/software.py +183 -0
  149. htpolynet-2.0.0/src/htpolynet/geometry/__init__.py +0 -0
  150. htpolynet-2.0.0/src/htpolynet/geometry/bondlist.py +205 -0
  151. htpolynet-2.0.0/src/htpolynet/geometry/lattice.py +32 -0
  152. htpolynet-2.0.0/src/htpolynet/geometry/linkcell.py +210 -0
  153. htpolynet-2.0.0/src/htpolynet/geometry/matrix4.py +110 -0
  154. htpolynet-2.0.0/src/htpolynet/geometry/ring.py +274 -0
  155. htpolynet-2.0.0/src/htpolynet/io/__init__.py +6 -0
  156. htpolynet-2.0.0/src/htpolynet/io/gro.py +195 -0
  157. htpolynet-2.0.0/src/htpolynet/io/mol2.py +210 -0
  158. htpolynet-2.0.0/src/htpolynet/io/pdb.py +157 -0
  159. htpolynet-2.0.0/src/htpolynet/resources/README.md +20 -0
  160. htpolynet-2.0.0/src/htpolynet/resources/__init__.py +0 -0
  161. htpolynet-2.0.0/src/htpolynet/resources/cfg/DGE-PAC-hi.yaml +115 -0
  162. htpolynet-2.0.0/src/htpolynet/resources/cfg/DGE-PAC-lo.yaml +115 -0
  163. htpolynet-2.0.0/src/htpolynet/resources/cfg/FDE-DFDA-hi.yaml +116 -0
  164. htpolynet-2.0.0/src/htpolynet/resources/cfg/FDE-DFDA-lo.yaml +116 -0
  165. htpolynet-2.0.0/src/htpolynet/resources/cfg/GMASTY-hi.yaml +158 -0
  166. htpolynet-2.0.0/src/htpolynet/resources/cfg/GMASTY-lo.yaml +158 -0
  167. htpolynet-2.0.0/src/htpolynet/resources/cfg/README.md +1 -0
  168. htpolynet-2.0.0/src/htpolynet/resources/cfg/STY.yaml +23 -0
  169. htpolynet-2.0.0/src/htpolynet/resources/cfg/pMSTY-hi.yaml +101 -0
  170. htpolynet-2.0.0/src/htpolynet/resources/cfg/pMSTY-lo.yaml +101 -0
  171. htpolynet-2.0.0/src/htpolynet/resources/cfg/pSTY-hi.yaml +101 -0
  172. htpolynet-2.0.0/src/htpolynet/resources/cfg/pSTY-lo.yaml +101 -0
  173. htpolynet-2.0.0/src/htpolynet/resources/example_depot/0-liquid-styrene.sh +134 -0
  174. htpolynet-2.0.0/src/htpolynet/resources/example_depot/0-liquid-styrene.tgz +0 -0
  175. htpolynet-2.0.0/src/htpolynet/resources/example_depot/1-polystyrene.sh +202 -0
  176. htpolynet-2.0.0/src/htpolynet/resources/example_depot/1-polystyrene.tgz +0 -0
  177. htpolynet-2.0.0/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.sh +353 -0
  178. htpolynet-2.0.0/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.tgz +0 -0
  179. htpolynet-2.0.0/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.sh +242 -0
  180. htpolynet-2.0.0/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.tgz +0 -0
  181. htpolynet-2.0.0/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.sh +216 -0
  182. htpolynet-2.0.0/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.tgz +0 -0
  183. htpolynet-2.0.0/src/htpolynet/resources/mdp/README.md +1 -0
  184. htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-min.mdp +13 -0
  185. htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-npt.mdp +36 -0
  186. htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-nvt.mdp +31 -0
  187. htpolynet-2.0.0/src/htpolynet/resources/mdp/min.mdp +14 -0
  188. htpolynet-2.0.0/src/htpolynet/resources/mdp/npt.mdp +37 -0
  189. htpolynet-2.0.0/src/htpolynet/resources/mdp/nvt.mdp +29 -0
  190. htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-min.mdp +13 -0
  191. htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-npt.mdp +37 -0
  192. htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-nvt.mdp +31 -0
  193. htpolynet-2.0.0/src/htpolynet/resources/mdp/single-molecule-min.mdp +12 -0
  194. htpolynet-2.0.0/src/htpolynet/resources/mdp/single-molecule-nvt.mdp +25 -0
  195. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/DFA.pdb +62 -0
  196. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/DGE.mol2 +115 -0
  197. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/EMB.mol2 +50 -0
  198. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/FDE.pdb +72 -0
  199. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/GMA.mol2 +163 -0
  200. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/PAC.mol2 +91 -0
  201. htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/STY.mol2 +44 -0
  202. htpolynet-2.0.0/src/htpolynet/resources/molecules/make-monomers.sh +64 -0
  203. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/DFA.png +0 -0
  204. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/DGE.png +0 -0
  205. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/EMB.png +0 -0
  206. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/FDE.png +0 -0
  207. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/GMA.png +0 -0
  208. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/PAC.png +0 -0
  209. htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/STY.png +0 -0
  210. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/DFA.pdb +62 -0
  211. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/DGE.mol2 +115 -0
  212. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/EMB.mol2 +50 -0
  213. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/FDE.pdb +72 -0
  214. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/GMA.mol2 +163 -0
  215. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/PAC.mol2 +91 -0
  216. htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/STY.mol2 +44 -0
  217. htpolynet-2.0.0/src/htpolynet/resources/tcl/readbonds.tcl +32 -0
  218. htpolynet-2.0.0/src/htpolynet/resources/tcl/readgrx.tcl +46 -0
  219. htpolynet-2.0.0/src/htpolynet/resources/tcl/render.tcl +74 -0
  220. htpolynet-2.0.0/src/htpolynet/utils/__init__.py +0 -0
  221. htpolynet-2.0.0/src/htpolynet/utils/banner.py +34 -0
  222. htpolynet-2.0.0/src/htpolynet/utils/checkpoint.py +85 -0
  223. htpolynet-2.0.0/src/htpolynet/utils/dataframetools.py +92 -0
  224. htpolynet-2.0.0/src/htpolynet/utils/inputcheck.py +49 -0
  225. htpolynet-2.0.0/src/htpolynet/utils/logsetup.py +44 -0
  226. htpolynet-2.0.0/src/htpolynet/utils/stringthings.py +39 -0
  227. htpolynet-2.0.0/tests/__init__.py +0 -0
  228. htpolynet-2.0.0/tests/conftest.py +72 -0
  229. htpolynet-2.0.0/tests/unit/__init__.py +0 -0
  230. htpolynet-2.0.0/tests/unit/fixtures/config1.gro +3603 -0
  231. htpolynet-2.0.0/tests/unit/fixtures/config1.top +29474 -0
  232. htpolynet-2.0.0/tests/unit/fixtures/config2.gro +39160 -0
  233. htpolynet-2.0.0/tests/unit/fixtures/config2.top +401126 -0
  234. htpolynet-2.0.0/tests/unit/fixtures/items31.edr +0 -0
  235. htpolynet-2.0.0/tests/unit/fixtures/items43.edr +0 -0
  236. htpolynet-2.0.0/tests/unit/fixtures/items45.edr +0 -0
  237. htpolynet-2.0.0/tests/unit/fixtures/short.mdp +28 -0
  238. htpolynet-2.0.0/tests/unit/test_bondtemplate.py +408 -0
  239. htpolynet-2.0.0/tests/unit/test_chain.py +170 -0
  240. htpolynet-2.0.0/tests/unit/test_configuration.py +456 -0
  241. htpolynet-2.0.0/tests/unit/test_dataframetools.py +24 -0
  242. htpolynet-2.0.0/tests/unit/test_gromacs_get_energy_menu.py +34 -0
  243. htpolynet-2.0.0/tests/unit/test_gromacs_gmx_energy_trace.py +70 -0
  244. htpolynet-2.0.0/tests/unit/test_linkcell_pierce.py +333 -0
  245. htpolynet-2.0.0/tests/unit/test_parameterize_react.py +345 -0
  246. htpolynet-2.0.0/tests/unit/test_projectfilesystem.py +478 -0
  247. htpolynet-2.0.0/tests/unit/test_resources.py +24 -0
  248. htpolynet-2.0.0/tests/unit/test_ring.py +175 -0
  249. htpolynet-2.0.0/tests/unit/test_ring_pierce_figs.py +450 -0
  250. htpolynet-2.0.0/tests/unit/test_topology/test.top +29474 -0
  251. htpolynet-2.0.0/tests/unit/test_topology.py +45 -0
@@ -0,0 +1,23 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(wc -l /home/cfa/Git/HTPolyNet/src/htpolynet/*.py)",
5
+ "Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/core/*.py)",
6
+ "Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/cure/*.py)",
7
+ "Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/geometry/*.py)",
8
+ "Bash(sort grep:*)",
9
+ "Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/analysis/*.py)",
10
+ "Bash(BASE=/home/cfa/Git/HTPolyNet __NEW_LINE_9d067e0cee514a78__ SED_CMD=':*)",
11
+ "Bash(xargs sed:*)",
12
+ "Bash(wc -l /home/cfa/Git/htpolynet/src/htpolynet/cure/*.py /home/cfa/Git/htpolynet/src/htpolynet/external/*.py /home/cfa/Git/htpolynet/src/htpolynet/geometry/*.py /home/cfa/Git/htpolynet/src/htpolynet/utils/*.py /home/cfa/Git/htpolynet/src/htpolynet/driver.py /home/cfa/Git/htpolynet/src/htpolynet/resources/__init__.py)",
13
+ "Bash(grep -rل \"Args:\" /home/cfa/Git/htpolynet/src/htpolynet --include=\"*.py\" -l)",
14
+ "Bash(/home/cfa/anaconda3/envs/panacea/bin/pip index:*)",
15
+ "Read(//home/cfa/Git/**)",
16
+ "Bash(gh run:*)",
17
+ "Bash(git ls-tree:*)"
18
+ ],
19
+ "additionalDirectories": [
20
+ "/home/cfa/Git/HTPolyNet/.github/workflows"
21
+ ]
22
+ }
23
+ }
@@ -0,0 +1,35 @@
1
+ name: Build and push Docker image
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ - "d*"
8
+ schedule:
9
+ # Rebuild weekly (Monday 03:00 UTC) to pick up latest Gromacs/AmberTools
10
+ - cron: '0 3 * * 1'
11
+
12
+ jobs:
13
+ docker:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: read
17
+ packages: write
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Log in to GitHub Container Registry
22
+ uses: docker/login-action@v3
23
+ with:
24
+ registry: ghcr.io
25
+ username: ${{ github.actor }}
26
+ password: ${{ secrets.GITHUB_TOKEN }}
27
+
28
+ - name: Build and push
29
+ uses: docker/build-push-action@v6
30
+ with:
31
+ context: .
32
+ push: true
33
+ tags: |
34
+ ghcr.io/abramsgroup/htpolynet:latest
35
+ ghcr.io/abramsgroup/htpolynet:${{ github.sha }}
@@ -0,0 +1,102 @@
1
+ name: Release & Upload to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ release:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: write
14
+
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.12"
25
+
26
+ - name: Install package
27
+ run: pip install -e .
28
+
29
+ - name: Install Hatch
30
+ run: python -m pip install --upgrade hatch
31
+
32
+ - name: Verify tag matches pyproject version and CHANGELOG
33
+ if: startsWith(github.ref, 'refs/tags/v')
34
+ run: |
35
+ TAG="${GITHUB_REF_NAME#v}"
36
+ VER="$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')"
37
+ echo "Tag version: $TAG"
38
+ echo "Project version: $VER"
39
+ test "$TAG" = "$VER" || { echo "ERROR: tag $TAG != pyproject version $VER"; exit 1; }
40
+ grep -q "^## \[$VER\]" CHANGELOG.md || { echo "ERROR: no CHANGELOG entry for $VER"; exit 1; }
41
+
42
+ - name: Clean previous builds
43
+ run: rm -rf dist/
44
+
45
+ - name: Build the package with Hatch
46
+ run: hatch build
47
+
48
+ - name: Extract release notes from CHANGELOG.md
49
+ run: |
50
+ echo 'RELEASE_BODY<<EOF' >> $GITHUB_ENV
51
+ awk '
52
+ BEGIN {found=0; capture=0}
53
+ /^## \[Unreleased\]/ {next}
54
+ /^## \[/ {
55
+ if (found) exit;
56
+ found = 1;
57
+ capture = 1;
58
+ next
59
+ }
60
+ /^## / {capture=0}
61
+ capture {print}
62
+ ' CHANGELOG.md >> $GITHUB_ENV
63
+ echo 'EOF' >> $GITHUB_ENV
64
+
65
+ - name: Create GitHub Release
66
+ uses: softprops/action-gh-release@v2
67
+ with:
68
+ tag_name: ${{ github.ref_name }}
69
+ name: Release ${{ github.ref_name }}
70
+ body: ${{ env.RELEASE_BODY }}
71
+ files: |
72
+ dist/*.tar.gz
73
+ dist/*.whl
74
+
75
+ - name: Upload dist artifacts
76
+ uses: actions/upload-artifact@v4
77
+ with:
78
+ name: dist
79
+ path: dist/
80
+
81
+ - name: Trigger ReadTheDocs build
82
+ run: |
83
+ curl -X POST \
84
+ -H "Authorization: Token ${{ secrets.RTD_SECRET }}" \
85
+ https://readthedocs.org/api/v3/projects/htpolynet/versions/latest/builds/
86
+ curl -X POST \
87
+ -H "Authorization: Token ${{ secrets.RTD_SECRET }}" \
88
+ https://readthedocs.org/api/v3/projects/htpolynet/versions/${{ github.ref_name }}/builds/
89
+
90
+ publish:
91
+ needs: release
92
+ runs-on: ubuntu-latest
93
+ permissions:
94
+ id-token: write
95
+ steps:
96
+ - name: Download dist artifacts
97
+ uses: actions/download-artifact@v4
98
+ with:
99
+ name: dist
100
+ path: dist/
101
+ - name: Publish to PyPI
102
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,145 @@
1
+ # Singularity/Apptainer images and Docker artifacts
2
+ *.sif
3
+ *.simg
4
+ *.img
5
+ docker-*.tar
6
+
7
+ *.bak
8
+ __defunct__/
9
+ # Byte-compiled / optimized / DLL files
10
+ __pycache__/
11
+ *.py[cod]
12
+ *$py.class
13
+ .idea/
14
+ *tmp*
15
+ */results
16
+ .vscode/
17
+ # C extensions
18
+ *.so
19
+
20
+ CLAUDE.md
21
+
22
+ # Distribution / packaging
23
+ .Python
24
+ build/
25
+ develop-eggs/
26
+ dist/
27
+ downloads/
28
+ eggs/
29
+ .eggs/
30
+ lib/
31
+ lib64/
32
+ parts/
33
+ sdist/
34
+ var/
35
+ wheels/
36
+ pip-wheel-metadata/
37
+ share/python-wheels/
38
+ *.egg-info/
39
+ .installed.cfg
40
+ *.egg
41
+ MANIFEST
42
+
43
+ # PyInstaller
44
+ # Usually these files are written by a python script from a template
45
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
46
+ *.manifest
47
+ *.spec
48
+
49
+ # Installer logs
50
+ pip-log.txt
51
+ pip-delete-this-directory.txt
52
+
53
+ # Unit test / coverage reports
54
+ htmlcov/
55
+ .tox/
56
+ .nox/
57
+ .coverage
58
+ .coverage.*
59
+ .cache
60
+ nosetests.xml
61
+ coverage.xml
62
+ *.cover
63
+ *.py,cover
64
+ .hypothesis/
65
+ .pytest_cache/
66
+
67
+ # Translations
68
+ *.mo
69
+ *.pot
70
+
71
+ # Django stuff:
72
+ *.log
73
+ local_settings.py
74
+ db.sqlite3
75
+ db.sqlite3-journal
76
+
77
+ # Flask stuff:
78
+ instance/
79
+ .webassets-cache
80
+
81
+ # Scrapy stuff:
82
+ .scrapy
83
+
84
+ # Sphinx documentation
85
+ docs/_build/
86
+ docs/source/_build/
87
+
88
+ # PyBuilder
89
+ target/
90
+
91
+ # Jupyter Notebook
92
+ .ipynb_checkpoints
93
+
94
+ # IPython
95
+ profile_default/
96
+ ipython_config.py
97
+
98
+ # pyenv
99
+ .python-version
100
+
101
+ # pipenv
102
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
103
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
104
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
105
+ # install all needed dependencies.
106
+ #Pipfile.lock
107
+
108
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
109
+ __pypackages__/
110
+
111
+ # Celery stuff
112
+ celerybeat-schedule
113
+ celerybeat.pid
114
+
115
+ # SageMath parsed files
116
+ *.sage.py
117
+
118
+ # Environments
119
+ .env
120
+ .venv
121
+ env/
122
+ venv/
123
+ ENV/
124
+ env.bak/
125
+ venv.bak/
126
+
127
+ # Spyder project settings
128
+ .spyderproject
129
+ .spyproject
130
+
131
+ # Rope project settings
132
+ .ropeproject
133
+
134
+ # mkdocs documentation
135
+ /site
136
+
137
+ # mypy
138
+ .mypy_cache/
139
+ .dmypy.json
140
+ dmypy.json
141
+
142
+ # Pyre type checker
143
+ .pyre/
144
+ .vscode/settings.json
145
+
@@ -0,0 +1,15 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.12"
7
+
8
+ sphinx:
9
+ configuration: docs/source/conf.py
10
+
11
+ python:
12
+ install:
13
+ - requirements: docs/requirements.txt
14
+ - method: pip
15
+ path: .
@@ -0,0 +1,41 @@
1
+ # Changelog
2
+
3
+ All notable changes to htpolynet will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [2.0.0] - 2026-05-07
11
+
12
+ ### Changed
13
+
14
+ - Package renamed from `HTPolyNet` to `htpolynet` (fully lowercase) for PEP 8 compliance and PyPI consistency.
15
+ - Runtime now logs the HTPolyNet git commit hash at startup, with a warning when uncommitted changes are present.
16
+
17
+ ### Added
18
+
19
+ - Apptainer/Singularity container support: distributed as a `.sif` image for reproducible execution on HPC clusters.
20
+ - New `gen-slurm-script` subcommand generates a ready-to-submit SLURM batch script from an htpolynet YAML config file.
21
+
22
+ ### Fixed
23
+
24
+ - Chain-expansion bug: bond-chain `ChainManager` was not rebuilt for monomers on the fetch path, causing `bondchain_expand_reactions` to produce no chain-extended oligomers in runs that reused cached parameterizations.
25
+
26
+ ## [1.0.9] - 2025-01-01
27
+
28
+ ### Added
29
+
30
+ - `minimum_bondcycle_length` parameter to allow for cyclic polymerization above a certain threshold length.
31
+
32
+ ### Fixed
33
+
34
+ - Rings not transferred from monomer templates if they are pre-parameterized.
35
+ - Atom indexes in bondchain structure not remapped after atom deletion.
36
+
37
+ ## [1.0.8] - 2024-01-04
38
+
39
+ ### Changed
40
+
41
+ - Uses `chordless_cycles` to find rings; `ringidx` is no longer a unique atom attribute; improved ring-pierce detection.
@@ -0,0 +1,35 @@
1
+ # HTPolyNet container image
2
+ # Includes Gromacs, AmberTools (antechamber, tleap, parmchk2), and OpenBabel via conda-forge.
3
+ #
4
+ # Usage:
5
+ # docker run --rm -v $(pwd):/work ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
6
+ #
7
+ # To avoid files being written as root, pass your host uid/gid:
8
+ # docker run --rm -v $(pwd):/work --user $(id -u):$(id -g) ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
9
+ #
10
+ # GPU support (requires nvidia-container-toolkit):
11
+ # docker run --rm --gpus all -v $(pwd):/work ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
12
+
13
+ FROM continuumio/miniconda3:latest
14
+
15
+ # Install Gromacs and AmberTools (latest available on conda-forge)
16
+ RUN apt-get update && apt-get install -y --no-install-recommends \
17
+ openbabel \
18
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
19
+
20
+ RUN conda install -y -c conda-forge \
21
+ ambertools \
22
+ gromacs \
23
+ parmed \
24
+ && conda clean -afy
25
+
26
+ # Install HTPolyNet
27
+ COPY . /htpolynet
28
+ WORKDIR /htpolynet
29
+ RUN pip install --no-cache-dir .
30
+
31
+ # User data is mounted here at runtime
32
+ WORKDIR /work
33
+
34
+ ENTRYPOINT ["htpolynet"]
35
+ CMD ["--help"]
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Cameron Abrams
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ recursive-include htpolynet resources
@@ -0,0 +1,78 @@
1
+ Metadata-Version: 2.4
2
+ Name: htpolynet
3
+ Version: 2.0.0
4
+ Summary: Automated MD System Builder for Amorphous Network Polymers
5
+ Project-URL: Source, https://github.com/AbramsGroup/htpolynet
6
+ Project-URL: Documentation, https://htpolynet.readthedocs.io/
7
+ Project-URL: Bug Tracker, https://github.com/AbramsGroup/htpolynet/issues
8
+ Author-email: Cameron F Abrams <cfa22@drexel.edu>
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: POSIX :: Linux
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
16
+ Requires-Python: >=3.9
17
+ Requires-Dist: gputil>=1.4
18
+ Requires-Dist: networkx>=3.2
19
+ Requires-Dist: numpy>=1.24
20
+ Requires-Dist: pandas>=2
21
+ Requires-Dist: parmed>=4
22
+ Requires-Dist: pyyaml>=6
23
+ Requires-Dist: requests>=2.28
24
+ Requires-Dist: scipy>=1.10
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ # htpolynet
30
+ > High-Throughput Polymer Network Atomistic Simulations
31
+
32
+ htpolynet is a Python utility for generating atomistic models of cross-linked polymer networks together with appropriate topology and parameter files required for molecular dynamics simulations using Gromacs. It is intended as a fully automated system builder requiring as inputs only the molecular structures of any monomer species, a description of the polymerization chemistry, and a handful of options describing desired system size and composition. htpolynet uses the Generalized Amber Force Field for atom-typing and parameter generation.
33
+
34
+ ## Installation
35
+
36
+ From PyPI:
37
+ ```bash
38
+ pip install htpolynet
39
+ ```
40
+
41
+ From conda-forge:
42
+ ```bash
43
+ conda install -c conda-forge htpolynet
44
+ ```
45
+
46
+ From source:
47
+ ```bash
48
+ git clone git@github.com:AbramsGroup/htpolynet.git
49
+ cd htpolynet
50
+ pip install -e .
51
+ ```
52
+
53
+ Once installed, the user has access to the main ``htpolynet`` command.
54
+
55
+ IMPORTANT NOTES: The programs ``antechamber``, ``parmchk2`` and ``tleap`` from AmberTools must be in your path. These can be installed using the ``ambertools`` package from ``conda-forge`` or compiled from source. You also need Gromacs installed so ``gmx`` is in your path. The examples show how to build input monomer structures using OpenBabel, so to use them you need ``obabel`` in your path as well.
56
+
57
+ ## Documentation
58
+
59
+ Please consult documentation at [abramsgroup.github.io/htpolynet](https://abramsgroup.github.io/htpolynet/).
60
+
61
+ ## Meta
62
+
63
+ Cameron F. Abrams – cfa22@drexel.edu
64
+
65
+ Distributed under the MIT license. See ``LICENSE`` for more information.
66
+
67
+ [https://github.com/cameronabrams](https://github.com/cameronabrams/)
68
+
69
+ [https://github.com/AbramsGroup](https://github.com/AbramsGroup/)
70
+
71
+ ## Contributing
72
+
73
+ 1. Fork it (<https://github.com/AbramsGroup/htolynet/fork>)
74
+ 2. Create your feature branch (`git checkout -b feature/fooBar`)
75
+ 3. Commit your changes (`git commit -am 'Add some fooBar'`)
76
+ 4. Push to the branch (`git push origin feature/fooBar`)
77
+ 5. Create a new Pull Request
78
+
@@ -0,0 +1,50 @@
1
+ # htpolynet
2
+ > High-Throughput Polymer Network Atomistic Simulations
3
+
4
+ htpolynet is a Python utility for generating atomistic models of cross-linked polymer networks together with appropriate topology and parameter files required for molecular dynamics simulations using Gromacs. It is intended as a fully automated system builder requiring as inputs only the molecular structures of any monomer species, a description of the polymerization chemistry, and a handful of options describing desired system size and composition. htpolynet uses the Generalized Amber Force Field for atom-typing and parameter generation.
5
+
6
+ ## Installation
7
+
8
+ From PyPI:
9
+ ```bash
10
+ pip install htpolynet
11
+ ```
12
+
13
+ From conda-forge:
14
+ ```bash
15
+ conda install -c conda-forge htpolynet
16
+ ```
17
+
18
+ From source:
19
+ ```bash
20
+ git clone git@github.com:AbramsGroup/htpolynet.git
21
+ cd htpolynet
22
+ pip install -e .
23
+ ```
24
+
25
+ Once installed, the user has access to the main ``htpolynet`` command.
26
+
27
+ IMPORTANT NOTES: The programs ``antechamber``, ``parmchk2`` and ``tleap`` from AmberTools must be in your path. These can be installed using the ``ambertools`` package from ``conda-forge`` or compiled from source. You also need Gromacs installed so ``gmx`` is in your path. The examples show how to build input monomer structures using OpenBabel, so to use them you need ``obabel`` in your path as well.
28
+
29
+ ## Documentation
30
+
31
+ Please consult documentation at [abramsgroup.github.io/htpolynet](https://abramsgroup.github.io/htpolynet/).
32
+
33
+ ## Meta
34
+
35
+ Cameron F. Abrams – cfa22@drexel.edu
36
+
37
+ Distributed under the MIT license. See ``LICENSE`` for more information.
38
+
39
+ [https://github.com/cameronabrams](https://github.com/cameronabrams/)
40
+
41
+ [https://github.com/AbramsGroup](https://github.com/AbramsGroup/)
42
+
43
+ ## Contributing
44
+
45
+ 1. Fork it (<https://github.com/AbramsGroup/htolynet/fork>)
46
+ 2. Create your feature branch (`git checkout -b feature/fooBar`)
47
+ 3. Commit your changes (`git commit -am 'Add some fooBar'`)
48
+ 4. Push to the branch (`git push origin feature/fooBar`)
49
+ 5. Create a new Pull Request
50
+
@@ -0,0 +1,7 @@
1
+ services:
2
+ htpolynet:
3
+ image: ghcr.io/abramsgroup/htpolynet:latest
4
+ volumes:
5
+ - .:/work
6
+ working_dir: /work
7
+ user: "${UID:-0}:${GID:-0}"
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ # i've changed this?
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,6 @@
1
+ htpolynet
2
+ =========
3
+
4
+ htpolynet is a tool for building atomically resolved models of amorphous network polymers.
5
+ It uses the Generalized Amber Force Field and produces output that can be simulated
6
+ using Gromacs.
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,7 @@
1
+ sphinx
2
+ myst-parser
3
+ furo
4
+ sphinxcontrib-bibtex
5
+ sphinx-copybutton
6
+ matplotlib
7
+ pytrr
@@ -0,0 +1,7 @@
1
+ .. _changelog:
2
+
3
+ Changelog
4
+ =========
5
+
6
+ .. include:: ../../CHANGELOG.md
7
+ :parser: myst_parser.sphinx_