automesh 0.2.9__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 (256) hide show
  1. automesh-0.2.9/.github/CODE_OF_CONDUCT.md +3 -0
  2. automesh-0.2.9/.github/CONTRIBUTING.md +28 -0
  3. automesh-0.2.9/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  4. automesh-0.2.9/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. automesh-0.2.9/.github/SECURITY.md +5 -0
  6. automesh-0.2.9/.github/dependabot.yml +14 -0
  7. automesh-0.2.9/.github/pull_request_template.md +15 -0
  8. automesh-0.2.9/.github/workflows/book.yml +54 -0
  9. automesh-0.2.9/.github/workflows/bump.yml +36 -0
  10. automesh-0.2.9/.github/workflows/python.yml +107 -0
  11. automesh-0.2.9/.github/workflows/rust.yml +74 -0
  12. automesh-0.2.9/.gitignore +61 -0
  13. automesh-0.2.9/.pre-commit-config.yaml +32 -0
  14. automesh-0.2.9/.readthedocs.yaml +13 -0
  15. automesh-0.2.9/.zenodo.json +17 -0
  16. automesh-0.2.9/CITATION.cff +22 -0
  17. automesh-0.2.9/Cargo.lock +1352 -0
  18. automesh-0.2.9/Cargo.toml +37 -0
  19. automesh-0.2.9/LICENSE +674 -0
  20. automesh-0.2.9/PKG-INFO +41 -0
  21. automesh-0.2.9/README.md +10 -0
  22. automesh-0.2.9/benches/block.py +14 -0
  23. automesh-0.2.9/benches/block.rs +348 -0
  24. automesh-0.2.9/benches/block.sh +9 -0
  25. automesh-0.2.9/book/SUMMARY.md +40 -0
  26. automesh-0.2.9/book/analysis/README.md +4 -0
  27. automesh-0.2.9/book/analysis/sphere_with_shells/README.md +57 -0
  28. automesh-0.2.9/book/analysis/sphere_with_shells/boundary_condition.py +58 -0
  29. automesh-0.2.9/book/analysis/sphere_with_shells/conforming.md +97 -0
  30. automesh-0.2.9/book/analysis/sphere_with_shells/conforming_spheres.jou +190 -0
  31. automesh-0.2.9/book/analysis/sphere_with_shells/histogram.py +54 -0
  32. automesh-0.2.9/book/analysis/sphere_with_shells/img/AngAccel.png +0 -0
  33. automesh-0.2.9/book/analysis/sphere_with_shells/img/AngVel.png +0 -0
  34. automesh-0.2.9/book/analysis/sphere_with_shells/img/displacement_sr2.svg +3088 -0
  35. automesh-0.2.9/book/analysis/sphere_with_shells/img/displacement_sr2c.svg +3089 -0
  36. automesh-0.2.9/book/analysis/sphere_with_shells/img/displacement_sr3.svg +3088 -0
  37. automesh-0.2.9/book/analysis/sphere_with_shells/img/log_strain_sr2.svg +3183 -0
  38. automesh-0.2.9/book/analysis/sphere_with_shells/img/log_strain_sr2c.svg +3164 -0
  39. automesh-0.2.9/book/analysis/sphere_with_shells/img/log_strain_sr3.svg +3183 -0
  40. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0000.png +0 -0
  41. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0002.png +0 -0
  42. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0004.png +0 -0
  43. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0006.png +0 -0
  44. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0008.png +0 -0
  45. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0010.png +0 -0
  46. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0012.png +0 -0
  47. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0014.png +0 -0
  48. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0016.png +0 -0
  49. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0018.png +0 -0
  50. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr2_0020.png +0 -0
  51. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0000.png +0 -0
  52. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0002.png +0 -0
  53. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0004.png +0 -0
  54. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0006.png +0 -0
  55. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0008.png +0 -0
  56. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0010.png +0 -0
  57. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0012.png +0 -0
  58. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0014.png +0 -0
  59. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0016.png +0 -0
  60. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0018.png +0 -0
  61. automesh-0.2.9/book/analysis/sphere_with_shells/img/max_prin_log_strain_sr3_0020.png +0 -0
  62. automesh-0.2.9/book/analysis/sphere_with_shells/img/rate_of_deformation_sr2.svg +3179 -0
  63. automesh-0.2.9/book/analysis/sphere_with_shells/img/rate_of_deformation_sr2c.svg +3144 -0
  64. automesh-0.2.9/book/analysis/sphere_with_shells/img/rate_of_deformation_sr3.svg +3179 -0
  65. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_1.png +0 -0
  66. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_1_iso.png +0 -0
  67. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_2.png +0 -0
  68. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_2_iso.png +0 -0
  69. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_2c.png +0 -0
  70. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_2c_iso.png +0 -0
  71. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_3.png +0 -0
  72. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_3_iso.png +0 -0
  73. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_3c.png +0 -0
  74. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_3c_iso.png +0 -0
  75. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_4.png +0 -0
  76. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_4_iso.png +0 -0
  77. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_4c.png +0 -0
  78. automesh-0.2.9/book/analysis/sphere_with_shells/img/resolution_4c_iso.png +0 -0
  79. automesh-0.2.9/book/analysis/sphere_with_shells/img/spheres_cont.png +0 -0
  80. automesh-0.2.9/book/analysis/sphere_with_shells/img/spheres_cont_dim.idraw +0 -0
  81. automesh-0.2.9/book/analysis/sphere_with_shells/img/spheres_cont_dim.png +0 -0
  82. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2_angular_acceleration_z.svg +1327 -0
  83. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2_angular_position_z.svg +1597 -0
  84. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2_angular_velocity_z.svg +1228 -0
  85. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2c_angular_acceleration_z.svg +1328 -0
  86. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2c_angular_position_z.svg +1619 -0
  87. automesh-0.2.9/book/analysis/sphere_with_shells/img/sr2c_angular_velocity_z.svg +1229 -0
  88. automesh-0.2.9/book/analysis/sphere_with_shells/img/tracers_sr_2_3_4.idraw +0 -0
  89. automesh-0.2.9/book/analysis/sphere_with_shells/img/tracers_sr_2_3_4.png +0 -0
  90. automesh-0.2.9/book/analysis/sphere_with_shells/img/tracers_sr_2_3_4_conf.idraw +0 -0
  91. automesh-0.2.9/book/analysis/sphere_with_shells/img/tracers_sr_2_3_4_conf.png +0 -0
  92. automesh-0.2.9/book/analysis/sphere_with_shells/simulation.md +287 -0
  93. automesh-0.2.9/book/analysis/sphere_with_shells/spheres_cont.py +166 -0
  94. automesh-0.2.9/book/analysis/sphere_with_shells/timing_automesh.md +131 -0
  95. automesh-0.2.9/book/analysis/sphere_with_shells/timing_sculpt.md +108 -0
  96. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/displacement_sr2.yml +118 -0
  97. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/displacement_sr2c.yml +118 -0
  98. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/displacement_sr3.yml +118 -0
  99. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/log_strain_sr2.yml +118 -0
  100. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/log_strain_sr2c.yml +118 -0
  101. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/log_strain_sr3.yml +118 -0
  102. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rate_of_deformation_sr2.yml +118 -0
  103. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rate_of_deformation_sr2c.yml +118 -0
  104. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rate_of_deformation_sr3.yml +118 -0
  105. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rigid_body_ang_acel.yml +33 -0
  106. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rigid_body_ang_pos.yml +37 -0
  107. automesh-0.2.9/book/analysis/sphere_with_shells/xyfigure_recipes/rigid_body_ang_vel.yml +33 -0
  108. automesh-0.2.9/book/cli/README.md +6 -0
  109. automesh-0.2.9/book/cli/convert.md +15 -0
  110. automesh-0.2.9/book/cli/mesh.md +19 -0
  111. automesh-0.2.9/book/cli/metrics.md +12 -0
  112. automesh-0.2.9/book/cli/smooth.md +12 -0
  113. automesh-0.2.9/book/contributors.md +5 -0
  114. automesh-0.2.9/book/development/README.md +46 -0
  115. automesh-0.2.9/book/development/python.md +60 -0
  116. automesh-0.2.9/book/development/rust.md +49 -0
  117. automesh-0.2.9/book/dualization/README.md +20 -0
  118. automesh-0.2.9/book/dualization/code/circle.py +41 -0
  119. automesh-0.2.9/book/dualization/code/quadtree.py +142 -0
  120. automesh-0.2.9/book/examples/README.md +3 -0
  121. automesh-0.2.9/book/examples/spheres/README.md +82 -0
  122. automesh-0.2.9/book/examples/spheres/sphere.png +0 -0
  123. automesh-0.2.9/book/examples/spheres/spheres.png +0 -0
  124. automesh-0.2.9/book/examples/spheres/spheres.py +141 -0
  125. automesh-0.2.9/book/examples/spheres/spheres_radius_1.npy +0 -0
  126. automesh-0.2.9/book/examples/spheres/spheres_radius_3.npy +0 -0
  127. automesh-0.2.9/book/examples/spheres/spheres_radius_5.npy +0 -0
  128. automesh-0.2.9/book/examples/spheres/test_spheres.py +151 -0
  129. automesh-0.2.9/book/examples/unit_tests/README.md +583 -0
  130. automesh-0.2.9/book/examples/unit_tests/bracket.png +0 -0
  131. automesh-0.2.9/book/examples/unit_tests/cube.png +0 -0
  132. automesh-0.2.9/book/examples/unit_tests/cube_multi.png +0 -0
  133. automesh-0.2.9/book/examples/unit_tests/cube_with_inclusion.png +0 -0
  134. automesh-0.2.9/book/examples/unit_tests/double_x.png +0 -0
  135. automesh-0.2.9/book/examples/unit_tests/double_y.png +0 -0
  136. automesh-0.2.9/book/examples/unit_tests/examples_data.py +1355 -0
  137. automesh-0.2.9/book/examples/unit_tests/examples_figures.py +508 -0
  138. automesh-0.2.9/book/examples/unit_tests/examples_test.py +100 -0
  139. automesh-0.2.9/book/examples/unit_tests/examples_types.py +29 -0
  140. automesh-0.2.9/book/examples/unit_tests/letter_f.png +0 -0
  141. automesh-0.2.9/book/examples/unit_tests/letter_f_3d.png +0 -0
  142. automesh-0.2.9/book/examples/unit_tests/letter_f_3d_alt.png +0 -0
  143. automesh-0.2.9/book/examples/unit_tests/quadruple_2_blocks.png +0 -0
  144. automesh-0.2.9/book/examples/unit_tests/quadruple_2_blocks_void.png +0 -0
  145. automesh-0.2.9/book/examples/unit_tests/quadruple_2_voids_x.png +0 -0
  146. automesh-0.2.9/book/examples/unit_tests/quadruple_x.png +0 -0
  147. automesh-0.2.9/book/examples/unit_tests/single.png +0 -0
  148. automesh-0.2.9/book/examples/unit_tests/sparse.png +0 -0
  149. automesh-0.2.9/book/examples/unit_tests/sparse_alt.png +0 -0
  150. automesh-0.2.9/book/examples/unit_tests/spheres_cont.idraw +0 -0
  151. automesh-0.2.9/book/examples/unit_tests/triple_x.png +0 -0
  152. automesh-0.2.9/book/fig/Terpsma_2020_Figure_C-4.png +0 -0
  153. automesh-0.2.9/book/fig/cs231n_semantic_segmentation.png +0 -0
  154. automesh-0.2.9/book/fig/exodus_hex_numbering_scheme.png +0 -0
  155. automesh-0.2.9/book/fig/patient_coordinate_system.png +0 -0
  156. automesh-0.2.9/book/fig/semantic_vs_instance.png +0 -0
  157. automesh-0.2.9/book/fig/sibl_bob_mid-sagittal.png +0 -0
  158. automesh-0.2.9/book/fig/stack_reconstruction.png +0 -0
  159. automesh-0.2.9/book/installation.md +28 -0
  160. automesh-0.2.9/book/introduction.md +124 -0
  161. automesh-0.2.9/book/smoothing/README.md +225 -0
  162. automesh-0.2.9/book/smoothing/boundary_and_interior_nodes.png +0 -0
  163. automesh-0.2.9/book/smoothing/bracket_laplace_hc_iter_100.gif +0 -0
  164. automesh-0.2.9/book/smoothing/bracket_laplace_iter_100.gif +0 -0
  165. automesh-0.2.9/book/smoothing/bracket_morph.idraw +0 -0
  166. automesh-0.2.9/book/smoothing/exterior_interface_nodes.png +0 -0
  167. automesh-0.2.9/book/smoothing/free_laplace_iter_1.png +0 -0
  168. automesh-0.2.9/book/smoothing/free_laplace_iter_100.gif +0 -0
  169. automesh-0.2.9/book/smoothing/free_laplace_iter_2.png +0 -0
  170. automesh-0.2.9/book/smoothing/free_nodes.png +0 -0
  171. automesh-0.2.9/book/smoothing/hierarchy_sets.png +0 -0
  172. automesh-0.2.9/book/smoothing/hierarchy_sets_refactored.png +0 -0
  173. automesh-0.2.9/book/smoothing/hierarchy_sidesets.pptx +0 -0
  174. automesh-0.2.9/book/smoothing/laplace.md +103 -0
  175. automesh-0.2.9/book/smoothing/laplace_hierarchical.md +179 -0
  176. automesh-0.2.9/book/smoothing/laplace_smoothing.png +0 -0
  177. automesh-0.2.9/book/smoothing/laplace_smoothing.xlsx +0 -0
  178. automesh-0.2.9/book/smoothing/node_p_q.png +0 -0
  179. automesh-0.2.9/book/smoothing/noise_augmentation.py +81 -0
  180. automesh-0.2.9/book/smoothing/prescribed_nodes.png +0 -0
  181. automesh-0.2.9/book/smoothing/python_visualization.md +33 -0
  182. automesh-0.2.9/book/smoothing/s10.png +0 -0
  183. automesh-0.2.9/book/smoothing/s10_iso.png +0 -0
  184. automesh-0.2.9/book/smoothing/s10_iso_half.png +0 -0
  185. automesh-0.2.9/book/smoothing/s200.png +0 -0
  186. automesh-0.2.9/book/smoothing/s200_iso.png +0 -0
  187. automesh-0.2.9/book/smoothing/s200_iso_half.png +0 -0
  188. automesh-0.2.9/book/smoothing/s50.png +0 -0
  189. automesh-0.2.9/book/smoothing/s50_iso.png +0 -0
  190. automesh-0.2.9/book/smoothing/s50_iso_half.png +0 -0
  191. automesh-0.2.9/book/smoothing/smoothing.py +461 -0
  192. automesh-0.2.9/book/smoothing/smoothing_examples.py +293 -0
  193. automesh-0.2.9/book/smoothing/smoothing_figures.py +232 -0
  194. automesh-0.2.9/book/smoothing/smoothing_laplace.tex +258 -0
  195. automesh-0.2.9/book/smoothing/smoothing_test.py +648 -0
  196. automesh-0.2.9/book/smoothing/smoothing_types.py +58 -0
  197. automesh-0.2.9/book/smoothing/sphere.jou +159 -0
  198. automesh-0.2.9/book/smoothing/sphere_10k.png +0 -0
  199. automesh-0.2.9/book/smoothing/sphere_10k_iso_midplane.png +0 -0
  200. automesh-0.2.9/book/smoothing/sphere_10k_iso_midplane_noised.png +0 -0
  201. automesh-0.2.9/book/smoothing/sphere_10k_noised.png +0 -0
  202. automesh-0.2.9/book/smoothing/sphere_10k_xz_midplane.png +0 -0
  203. automesh-0.2.9/book/smoothing/sphere_10k_xz_midplane_noised.png +0 -0
  204. automesh-0.2.9/book/smoothing/sphere_surface_w_noise.png +0 -0
  205. automesh-0.2.9/book/smoothing/taubin.md +75 -0
  206. automesh-0.2.9/book/smoothing/tripoints.idraw +0 -0
  207. automesh-0.2.9/book.toml +22 -0
  208. automesh-0.2.9/docs/katex.html +33 -0
  209. automesh-0.2.9/docs/logo.png +0 -0
  210. automesh-0.2.9/docs/module.html.jinja2 +17 -0
  211. automesh-0.2.9/docs/syntax-highlighting.css +80 -0
  212. automesh-0.2.9/docs/theme.css +20 -0
  213. automesh-0.2.9/pyproject.toml +56 -0
  214. automesh-0.2.9/sandbox/README.md +167 -0
  215. automesh-0.2.9/sandbox/logs.md +621 -0
  216. automesh-0.2.9/src/fem/mod.rs +1258 -0
  217. automesh-0.2.9/src/fem/py.rs +128 -0
  218. automesh-0.2.9/src/fem/test.rs +2913 -0
  219. automesh-0.2.9/src/lib.rs +38 -0
  220. automesh-0.2.9/src/main.rs +898 -0
  221. automesh-0.2.9/src/py.rs +112 -0
  222. automesh-0.2.9/src/tree/mod.rs +1163 -0
  223. automesh-0.2.9/src/voxel/mod.rs +482 -0
  224. automesh-0.2.9/src/voxel/py.rs +68 -0
  225. automesh-0.2.9/src/voxel/test.rs +63 -0
  226. automesh-0.2.9/tests/fem.py +73 -0
  227. automesh-0.2.9/tests/fem.rs +153 -0
  228. automesh-0.2.9/tests/input/bracket.spn +16 -0
  229. automesh-0.2.9/tests/input/cube.spn +8 -0
  230. automesh-0.2.9/tests/input/cube_multi.spn +8 -0
  231. automesh-0.2.9/tests/input/cube_with_inclusion.spn +27 -0
  232. automesh-0.2.9/tests/input/double.spn +2 -0
  233. automesh-0.2.9/tests/input/encrypted.npy +1 -0
  234. automesh-0.2.9/tests/input/letter_f.spn +15 -0
  235. automesh-0.2.9/tests/input/letter_f_3d.inp +153 -0
  236. automesh-0.2.9/tests/input/letter_f_3d.npy +0 -0
  237. automesh-0.2.9/tests/input/letter_f_3d.spn +60 -0
  238. automesh-0.2.9/tests/input/letter_f_3d.txt +1 -0
  239. automesh-0.2.9/tests/input/letter_f_3d_0.tif +0 -0
  240. automesh-0.2.9/tests/input/letter_f_3d_1.tif +0 -0
  241. automesh-0.2.9/tests/input/letter_f_3d_2.tif +0 -0
  242. automesh-0.2.9/tests/input/quadruple.spn +4 -0
  243. automesh-0.2.9/tests/input/quadruple_2_blocks.spn +4 -0
  244. automesh-0.2.9/tests/input/quadruple_2_blocks_void.spn +4 -0
  245. automesh-0.2.9/tests/input/quadruple_2_voids.spn +4 -0
  246. automesh-0.2.9/tests/input/single.npy +0 -0
  247. automesh-0.2.9/tests/input/single.png +0 -0
  248. automesh-0.2.9/tests/input/single.spn +1 -0
  249. automesh-0.2.9/tests/input/sparse.inp +264 -0
  250. automesh-0.2.9/tests/input/sparse.npy +0 -0
  251. automesh-0.2.9/tests/input/sparse.spn +125 -0
  252. automesh-0.2.9/tests/input/stripes.npy +0 -0
  253. automesh-0.2.9/tests/input/stripes_odd.npy +0 -0
  254. automesh-0.2.9/tests/input/triple.spn +3 -0
  255. automesh-0.2.9/tests/voxel.py +21 -0
  256. automesh-0.2.9/tests/voxel.rs +1531 -0
@@ -0,0 +1,3 @@
1
+ # Code of Conduct
2
+
3
+ Don't be a jerk!
@@ -0,0 +1,28 @@
1
+ # Contributing
2
+
3
+ Contributors can open issues or create pull requests.
4
+
5
+ ## Issues
6
+
7
+ Contributors can open new issues on the GitHub repository [here](https://github.com/autotwin/automesh/issues). An issue can either report an existing bug, or request a new feature. Contributors should ensure that their candidate issue does not match an existing open issue before opening it. If a closely-related but incomplete open issue exists, contributors should comment on the existing open issue.
8
+
9
+ ### Bug Reports
10
+
11
+ A new bug report can be opened [here](https://github.com/autotwin/automesh/issues/new?template=bug_report.md).
12
+
13
+ ### Feature Requests
14
+
15
+ A new feature request can be opened [here](https://github.com/autotwin/automesh/issues/new?template=feature_request.md). Feature requests that are deemed feasible will be considered by the developers, and could even be addressed by a contributor through a pull request. Feature requests that are deemed infeasible will likely be denied.
16
+
17
+ ## Pull Requests
18
+
19
+ Contributors can propose changes to the code in the repository by creating a pull request as follows:
20
+
21
+ - Fork the base repository [here](https://github.com/autotwin/automesh/fork).
22
+ - Clone the forked repository, make changes, and push them back to the fork.
23
+ - Create a pull request between the base and forked repositories [here](https://github.com/autotwin/automesh/pulls).
24
+ - Wait for the pull request to be either approved or dismissed. Approval and subsequent merging of pull requests is contingent upon:
25
+
26
+ - The tests are all passing, resulting in a high (desirably, complete) code coverage, and any changes are properly tested.
27
+ - The documentation is successfully built, and any changes are properly documented.
28
+ - The changes provide an appropriate and substantial improvement to the repository.
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Desktop (please complete the following information):**
27
+ - OS: [e.g. iOS]
28
+ - Browser [e.g. chrome, safari]
29
+ - Version [e.g. 22]
30
+
31
+ **Smartphone (please complete the following information):**
32
+ - Device: [e.g. iPhone6]
33
+ - OS: [e.g. iOS8.1]
34
+ - Browser [e.g. stock browser, safari]
35
+ - Version [e.g. 22]
36
+
37
+ **Additional context**
38
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,5 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ If there are any vulnerabilities, do not hesitate to report them, but please report them privately.
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "cargo"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "daily"
11
+ - package-ecosystem: "pip"
12
+ directory: "/"
13
+ schedule:
14
+ interval: "weekly"
@@ -0,0 +1,15 @@
1
+ # Pull Request Template
2
+
3
+ This template should be used for making any pull requests.
4
+
5
+ ## Goal
6
+
7
+ Here, describe the goal of the pull request, i.e. what does it seek to address? Does this pull request fix an existing bug, or create a new feature? Why are the changes proposed by this pull request necessary?
8
+
9
+ ## Specifics
10
+
11
+ Here, describe the specific changes to the repository suggested by this pull request. Which modules/methods/etc. were added or edited, and why? Have any new dependencies been introduced, and why?
12
+
13
+ ## Verification
14
+
15
+ Here, describe steps taken to verify that the pull request is up to the standards of the repository. Were the suggested changes fully documented and tested, and do they match the existing code style? How exactly was this verification completed?
@@ -0,0 +1,54 @@
1
+ name: Book
2
+ on:
3
+ pull_request:
4
+ branches: main
5
+ push:
6
+ branches: main
7
+ env:
8
+ CARGO_TERM_COLOR: always
9
+ jobs:
10
+ mdbook:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: checkout
14
+ uses: actions/checkout@v4
15
+ - uses: actions-rs/toolchain@v1
16
+ with:
17
+ default: true
18
+ toolchain: stable
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: 3.12
22
+ - name: automesh
23
+ run: cargo install --path .
24
+ - name: mdbook
25
+ run: cargo install mdbook mdbook-cmdrun mdbook-katex
26
+ - name: rust
27
+ run: cargo build --release
28
+ - name: maturin
29
+ run: pip install maturin
30
+ - name: install
31
+ run: maturin build --release --features python
32
+ - name: python
33
+ run: pip install --find-links=target/wheels/ automesh
34
+ - name: test
35
+ run: mdbook test --library-path target/release/deps/
36
+ - name: build
37
+ run: mdbook build
38
+ - name: move
39
+ run: mkdir -p _site/ && cp -r book/build/* _site/
40
+ - name: upload
41
+ uses: actions/upload-pages-artifact@v3
42
+ deploy:
43
+ if: github.event_name != 'pull_request'
44
+ environment:
45
+ name: github-pages
46
+ url: ${{ steps.deployment.outputs.page_url }}
47
+ needs: mdbook
48
+ permissions:
49
+ id-token: write
50
+ pages: write
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - id: deployment
54
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,36 @@
1
+ name: Bump
2
+ on:
3
+ release:
4
+ types: published
5
+ jobs:
6
+ bump:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - name: checkout
10
+ uses: actions/checkout@v4
11
+ - name: bump
12
+ id: bump
13
+ run: |
14
+ VERSION=$(cargo tree | grep automesh | cut -d " " -f 2 | cut -d "v" -f 2)
15
+ MAJOR_MINOR=$(echo $VERSION | rev | cut -d "." -f 2- | rev)
16
+ PATCH=$(echo $VERSION | rev | cut -d "." -f 1)
17
+ BUMP=$(( $PATCH + 1))
18
+ BUMPED_VERSION=$(echo $MAJOR_MINOR"."$BUMP)
19
+ BUMP_BRANCH=$(echo "bump-$VERSION-to-$BUMPED_VERSION")
20
+ echo "bump_branch=$BUMP_BRANCH" >> $GITHUB_OUTPUT
21
+ sed -i "s/version = \"$VERSION\"/version = \"$BUMPED_VERSION\"/" Cargo.toml
22
+ git config --global user.email "bump"
23
+ git config --global user.name "bump"
24
+ git add Cargo.toml
25
+ git commit -m "Bumping version from $VERSION to $BUMPED_VERSION."
26
+ git branch $BUMP_BRANCH
27
+ git checkout $BUMP_BRANCH
28
+ git push --set-upstream origin $BUMP_BRANCH
29
+ - name: pr
30
+ uses: rematocorp/open-pull-request-action@v1
31
+ with:
32
+ github-token: ${{ secrets.GITHUB_TOKEN }}
33
+ from-branch: ${{ steps.bump.outputs.bump_branch }}
34
+ to-branch: ${{ github.event.repository.default_branch }}
35
+ repository-owner: autotwin
36
+ repository: ${{ github.event.repository.name }}
@@ -0,0 +1,107 @@
1
+ name: Python
2
+ on:
3
+ pull_request:
4
+ branches: main
5
+ release:
6
+ types: published
7
+ jobs:
8
+ test:
9
+ if: github.event_name != 'release'
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ os: [macos-latest, ubuntu-latest, windows-latest]
14
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
15
+ runs-on: ${{ matrix.os }}
16
+ steps:
17
+ - name: checkout
18
+ uses: actions/checkout@v4
19
+ - uses: actions-rs/toolchain@v1
20
+ with:
21
+ components: clippy
22
+ default: true
23
+ toolchain: stable
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+ - name: clippy
28
+ run: cargo clippy --features python -- -D warnings
29
+ - name: maturin
30
+ run: pip install maturin
31
+ - name: build
32
+ run: maturin build --release --features python
33
+ - name: install
34
+ run: pip install --find-links=target/wheels/ automesh[dev]
35
+ - name: pycodestyle
36
+ run: pycodestyle --verbose .
37
+ - name: pytest
38
+ run: pytest --verbose
39
+ source:
40
+ runs-on: ubuntu-latest
41
+ steps:
42
+ - name: checkout
43
+ uses: actions/checkout@v4
44
+ - name: Rust
45
+ uses: actions-rs/toolchain@v1
46
+ with:
47
+ default: true
48
+ toolchain: stable
49
+ - name: python
50
+ uses: actions/setup-python@v5
51
+ with:
52
+ python-version: 3.13
53
+ - name: requirements
54
+ run: pip install build maturin twine
55
+ - name: source
56
+ run: python -m build . --sdist
57
+ - name: check
58
+ run: twine check dist/*
59
+ - uses: actions/upload-artifact@v4
60
+ with:
61
+ name: dist
62
+ path: dist
63
+ wheel:
64
+ strategy:
65
+ fail-fast: false
66
+ matrix:
67
+ os: [macos-latest, ubuntu-latest, windows-latest]
68
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
69
+ runs-on: ${{ matrix.os }}
70
+ steps:
71
+ - uses: actions/checkout@v4
72
+ - uses: actions-rs/toolchain@v1
73
+ with:
74
+ default: true
75
+ toolchain: stable
76
+ - uses: actions/setup-python@v5
77
+ with:
78
+ python-version: ${{ matrix.python-version }}
79
+ - name: requirements
80
+ run: pip install build maturin twine
81
+ - name: foo
82
+ if: matrix.os == 'macos-latest'
83
+ run: brew uninstall --ignore-dependencies xz
84
+ - name: wheel
85
+ run: maturin build --release --features python
86
+ - name: check
87
+ run: twine check target/wheels/*
88
+ - uses: actions/upload-artifact@v4
89
+ with:
90
+ name: ${{ matrix.os }}-${{ matrix.python-version }}-dist
91
+ path: target/wheels
92
+ twine:
93
+ needs: [source, wheel]
94
+ runs-on: ubuntu-latest
95
+ steps:
96
+ - uses: actions/download-artifact@v4
97
+ - uses: actions/setup-python@v5
98
+ with:
99
+ check-latest: true
100
+ python-version: 3.13
101
+ - name: requirements
102
+ run: pip install twine
103
+ - name: wheels
104
+ run: mv ./*-dist*/*.whl dist/
105
+ - name: ppload
106
+ if: github.event_name == 'release'
107
+ run: twine upload -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
@@ -0,0 +1,74 @@
1
+ name: Rust
2
+ on:
3
+ pull_request:
4
+ branches: main
5
+ release:
6
+ types: published
7
+ env:
8
+ CARGO_TERM_COLOR: always
9
+ jobs:
10
+ bench:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: checkout
14
+ uses: actions/checkout@v4
15
+ - uses: actions-rs/toolchain@v1
16
+ with:
17
+ toolchain: nightly
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ check-latest: true
21
+ python-version: 3.13
22
+ - name: numpy
23
+ run: pip install numpy
24
+ - name: pillow
25
+ run: pip install pillow
26
+ - name: block
27
+ run: ./benches/block.sh
28
+ - name: bench
29
+ run: rustup run nightly cargo bench
30
+ package:
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - name: checkout
34
+ uses: actions/checkout@v4
35
+ - name: cleanup
36
+ run: rm -fr book/ sandbox/ tests/
37
+ - name: package
38
+ run: cargo package
39
+ - name: login
40
+ if: github.event_name == 'release'
41
+ run: cargo login ${{ secrets.CRATES_IO_TOKEN }}
42
+ - name: publish
43
+ if: github.event_name == 'release'
44
+ run: cargo publish
45
+ test:
46
+ if: github.event_name != 'release'
47
+ strategy:
48
+ fail-fast: false
49
+ matrix:
50
+ os: [macos-latest, ubuntu-latest, windows-latest]
51
+ toolchain:
52
+ - beta
53
+ - stable
54
+ runs-on: ${{ matrix.os }}
55
+ steps:
56
+ - name: checkout
57
+ uses: actions/checkout@v4
58
+ - uses: actions-rs/toolchain@v1
59
+ with:
60
+ components: clippy, rustfmt
61
+ default: true
62
+ toolchain: ${{ matrix.toolchain }}
63
+ - name: build
64
+ run: cargo build --release
65
+ - name: clippy
66
+ run: cargo clippy -- -D warnings
67
+ - name: clippy
68
+ run: cargo clippy --tests
69
+ - name: doc
70
+ run: cargo rustdoc --release -- --html-in-header docs/katex.html
71
+ - name: fmt
72
+ run: cargo fmt --all -- --check
73
+ - name: test
74
+ run: cargo test --release
@@ -0,0 +1,61 @@
1
+ # Distribution / packaging
2
+ .Python
3
+ build/
4
+ develop-eggs/
5
+ dist/
6
+ downloads/
7
+ eggs/
8
+ .eggs/
9
+ lib/
10
+ lib64/
11
+ parts/
12
+ sdist/
13
+ var/
14
+ wheels/
15
+ pip-wheel-metadata/
16
+ share/python-wheels/
17
+ *.egg-info/
18
+ .installed.cfg
19
+ *.egg
20
+ MANIFEST
21
+
22
+ # ignore input/output files by default
23
+ *.csv
24
+ *.e
25
+ *.exo
26
+ *.g
27
+ *.inp
28
+ *.mesh
29
+ *.npy
30
+ *.vtk
31
+
32
+ # ignore build binaries
33
+ *.so
34
+
35
+ # ignore macOS database files
36
+ .DS_Store
37
+
38
+ # ignore virtual environment
39
+ .venv/
40
+
41
+ # Generated by Cargo
42
+ # will have compiled files and executables
43
+ debug/
44
+ target/
45
+
46
+ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
47
+ # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
48
+ Cargo.lock
49
+
50
+ # These are backup files generated by rustfmt
51
+ **/*.rs.bk
52
+
53
+ # MSVC Windows builds of rustc generate these, which store debugging information
54
+ *.pdb
55
+
56
+ **.whl
57
+ *.vscode
58
+ **__pycache__
59
+ **.pytest_cache
60
+ book/build/
61
+ benches/block/
@@ -0,0 +1,32 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v3.2.0
4
+ hooks:
5
+ - id: check-yaml
6
+ - id: check-added-large-files
7
+ - id: end-of-file-fixer
8
+ - id: trailing-whitespace
9
+ - repo: https://github.com/backplane/pre-commit-rust-hooks
10
+ rev: v1.1.0
11
+ hooks:
12
+ - id: clippy
13
+ args: ['--', '-D', 'warnings']
14
+ # - id: clippy
15
+ # name: cargo clippy --tests
16
+ # args: ['--tests', '--', '-D', 'warnings']
17
+ - id: clippy
18
+ name: cargo clippy --features python
19
+ args: ['--features', 'python', '--', '-D', 'warnings']
20
+ - id: fmt
21
+ # - repo: https://github.com/psf/black
22
+ # rev: 24.8.0 # Use the latest version
23
+ # hooks:
24
+ # - id: black
25
+ # args: [--line-length=79]
26
+ - repo: local
27
+ hooks:
28
+ - id: pycodestyle
29
+ name: pycodestyle
30
+ entry: pycodestyle tests
31
+ language: system
32
+ pass_filenames: false
@@ -0,0 +1,13 @@
1
+ version: 2
2
+ build:
3
+ os: ubuntu-lts-latest
4
+ tools:
5
+ python: "latest"
6
+ rust: "latest"
7
+ commands:
8
+ - pip install cmake maturin[patchelf] pdoc
9
+ - maturin build --features python --release
10
+ - pip install --find-links=target/wheels/ automesh
11
+ - mkdir -p $READTHEDOCS_OUTPUT/html/
12
+ - pdoc automesh --logo "https://github.com/autotwin/automesh/blob/main/docs/logo.png?raw=true" --math --no-show-source --output-dir $READTHEDOCS_OUTPUT/html/ --template-directory docs/
13
+ - VERSION=$(cargo tree | grep automesh | cut -d " " -f 2 | cut -d "v" -f 2) && sed -i "s/automesh latest/automesh $VERSION/" $READTHEDOCS_OUTPUT/html/automesh.html
@@ -0,0 +1,17 @@
1
+ {
2
+ "title": "automesh",
3
+ "creators": [
4
+ {
5
+ "name": "Chad B. Hovey",
6
+ "affiliation": "Sandia National Laboratories",
7
+ "orcid": "0000-0003-0915-5765"
8
+ },
9
+ {
10
+ "name": "Michael R. Buche",
11
+ "affiliation": "Sandia National Laboratories",
12
+ "orcid": "0000-0003-1892-0502"
13
+ }
14
+ ],
15
+ "license": "GPL-3.0",
16
+ "upload_type": "software"
17
+ }
@@ -0,0 +1,22 @@
1
+ cff-version: 1.2.0
2
+ title: automesh
3
+ message: 'If you use this software, please cite it as below.'
4
+ type: software
5
+ authors:
6
+ - family-names: Hovey
7
+ given-names: Chad B.
8
+ orcid: 'https://orcid.org/0000-0003-1892-0502'
9
+ email: chovey@sandia.gov
10
+ affiliation: Sandia National Laboratories
11
+ - family-names: Buche
12
+ given-names: Michael R.
13
+ orcid: 'https://orcid.org/0000-0003-0915-5765'
14
+ email: mrbuche@sandia.gov
15
+ affiliation: Sandia National Laboratories
16
+ identifiers:
17
+ - type: doi
18
+ value: 10.5281/zenodo.13845433
19
+ repository-code: 'https://github.com/autotwin/automesh'
20
+ url: 'https://autotwin.github.io/automesh'
21
+ abstract: Automatic mesh generation.
22
+ license: MIT