agox 3.7.0rc1__tar.gz → 3.9.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 (814) hide show
  1. agox-3.9.0/PKG-INFO +89 -0
  2. agox-3.9.0/README.md +41 -0
  3. agox-3.9.0/agox/__init__.py +24 -0
  4. agox-3.9.0/agox/acquisitors/ABC_acquisitor.py +207 -0
  5. agox-3.9.0/agox/acquisitors/EI.py +51 -0
  6. agox-3.9.0/agox/acquisitors/LCB.py +101 -0
  7. agox-3.9.0/agox/acquisitors/LCB_penalty.py +129 -0
  8. agox-3.9.0/agox/acquisitors/LCB_power.py +16 -0
  9. agox-3.9.0/agox/acquisitors/__init__.py +36 -0
  10. agox-3.9.0/agox/acquisitors/meta_acquisitor.py +23 -0
  11. agox-3.9.0/agox/analysis/__init__.py +26 -0
  12. agox-3.9.0/agox/analysis/criterion/__init__.py +5 -0
  13. agox-3.9.0/agox/analysis/criterion/base_criterion/__init__.py +1 -0
  14. agox-3.9.0/agox/analysis/criterion/base_criterion/base_criterion.py +20 -0
  15. agox-3.9.0/agox/analysis/criterion/base_criterion/discrete_distribution.py +51 -0
  16. agox-3.9.0/agox/analysis/criterion/distance.py +58 -0
  17. agox-3.9.0/agox/analysis/criterion/threshold.py +44 -0
  18. agox-3.9.0/agox/analysis/plot/__init__.py +8 -0
  19. agox-3.9.0/agox/analysis/plot/property_plot.py +44 -0
  20. agox-3.9.0/agox/analysis/plot/success_plot.py +36 -0
  21. agox-3.9.0/agox/analysis/property/__init__.py +4 -0
  22. agox-3.9.0/agox/analysis/property/descriptor_property.py +36 -0
  23. agox-3.9.0/agox/analysis/property/energy.py +38 -0
  24. agox-3.9.0/agox/analysis/property/free_energy.py +48 -0
  25. agox-3.9.0/agox/analysis/property/property.py +67 -0
  26. agox-3.9.0/agox/analysis/search_analysis.py +210 -0
  27. agox-3.9.0/agox/analysis/search_data.py +234 -0
  28. agox-3.9.0/agox/candidates/ABC_candidate.py +353 -0
  29. agox-3.9.0/agox/candidates/__init__.py +16 -0
  30. agox-3.9.0/agox/candidates/standard.py +27 -0
  31. agox-3.9.0/agox/cli/cli_analysis.py +178 -0
  32. agox-3.9.0/agox/cli/cli_convert.py +89 -0
  33. agox-3.9.0/agox/cli/cli_graph_sorting.py +238 -0
  34. agox-3.9.0/agox/cli/cli_notebook.py +108 -0
  35. agox-3.9.0/agox/cli/cli_plot.py +92 -0
  36. agox-3.9.0/agox/cli/main.py +22 -0
  37. agox-3.9.0/agox/collectors/ABC_collector.py +153 -0
  38. agox-3.9.0/agox/collectors/__init__.py +21 -0
  39. agox-3.9.0/agox/collectors/parallel_tempering.py +174 -0
  40. agox-3.9.0/agox/collectors/ray_collector.py +93 -0
  41. agox-3.9.0/agox/collectors/standard.py +74 -0
  42. agox-3.9.0/agox/databases/ABC_database.py +89 -0
  43. agox-3.9.0/agox/databases/__init__.py +14 -0
  44. agox-3.9.0/agox/databases/concurrent_ordered.py +41 -0
  45. agox-3.9.0/agox/databases/database.py +466 -0
  46. agox-3.9.0/agox/databases/database_concurrent.py +213 -0
  47. agox-3.9.0/agox/databases/database_utilities.py +143 -0
  48. agox-3.9.0/agox/environments/ABC_environment.py +163 -0
  49. agox-3.9.0/agox/environments/__init__.py +16 -0
  50. agox-3.9.0/agox/environments/environment.py +145 -0
  51. agox-3.9.0/agox/evaluators/ABC_evaluator.py +121 -0
  52. agox-3.9.0/agox/evaluators/__init__.py +24 -0
  53. agox-3.9.0/agox/evaluators/local_optimization.py +134 -0
  54. agox-3.9.0/agox/evaluators/rattle.py +24 -0
  55. agox-3.9.0/agox/evaluators/single_point.py +19 -0
  56. agox-3.9.0/agox/generators/ABC_generator.py +290 -0
  57. agox-3.9.0/agox/generators/MD.py +147 -0
  58. agox-3.9.0/agox/generators/__init__.py +55 -0
  59. agox-3.9.0/agox/generators/block_generators/ABC_block.py +171 -0
  60. agox-3.9.0/agox/generators/block_generators/__init__.py +2 -0
  61. agox-3.9.0/agox/generators/block_generators/random.py +57 -0
  62. agox-3.9.0/agox/generators/block_generators/rattle.py +82 -0
  63. agox-3.9.0/agox/generators/ce_generator.py +138 -0
  64. agox-3.9.0/agox/generators/cog.py +58 -0
  65. agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +31 -0
  66. agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +67 -0
  67. agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +63 -0
  68. agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +71 -0
  69. agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +83 -0
  70. agox-3.9.0/agox/generators/complementary_energy/ce_calculators.py +235 -0
  71. agox-3.9.0/agox/generators/permutation.py +145 -0
  72. agox-3.9.0/agox/generators/random.py +74 -0
  73. agox-3.9.0/agox/generators/rattle.py +70 -0
  74. agox-3.9.0/agox/generators/replace.py +71 -0
  75. agox-3.9.0/agox/generators/reuse.py +62 -0
  76. agox-3.9.0/agox/generators/sampling.py +26 -0
  77. agox-3.9.0/agox/generators/steepest_descent.py +46 -0
  78. agox-3.9.0/agox/generators/symmetry.py +302 -0
  79. agox-3.9.0/agox/generators/symmetry_permutation.py +197 -0
  80. agox-3.9.0/agox/generators/symmetry_rattle.py +386 -0
  81. agox-3.9.0/agox/generators/symmetry_utils/symmetry_enforcer.py +1611 -0
  82. agox-3.9.0/agox/generators/symmetry_utils/symmetry_groups.py +933 -0
  83. agox-3.9.0/agox/helpers/__init__.py +5 -0
  84. agox-3.9.0/agox/helpers/confinement.py +92 -0
  85. agox-3.9.0/agox/helpers/gpaw_io.py +179 -0
  86. agox-3.9.0/agox/helpers/gpaw_subprocess.py +59 -0
  87. agox-3.9.0/agox/main/__init__.py +5 -0
  88. agox-3.9.0/agox/main/agox.py +222 -0
  89. agox-3.9.0/agox/main/state.py +153 -0
  90. agox-3.9.0/agox/models/ABC_model.py +585 -0
  91. agox-3.9.0/agox/models/GPR/GPR.py +844 -0
  92. agox-3.9.0/agox/models/GPR/__init__.py +5 -0
  93. agox-3.9.0/agox/models/GPR/kernels/__init__.py +1 -0
  94. agox-3.9.0/agox/models/GPR/kernels/kernels.py +141 -0
  95. agox-3.9.0/agox/models/GPR/local_mean.py +50 -0
  96. agox-3.9.0/agox/models/GPR/priors/repulsive.c +11514 -0
  97. agox-3.9.0/agox/models/GPR/priors/setup.py +6 -0
  98. agox-3.9.0/agox/models/GPR/sGPR.py +785 -0
  99. agox-3.9.0/agox/models/GPR/sGPR_ensemble.py +106 -0
  100. agox-3.9.0/agox/models/__init__.py +15 -0
  101. agox-3.9.0/agox/models/datasets/loader.py +11 -0
  102. agox-3.9.0/agox/models/descriptors/ABC_descriptor.py +156 -0
  103. agox-3.9.0/agox/models/descriptors/__init__.py +8 -0
  104. agox-3.9.0/agox/models/descriptors/acsf.py +198 -0
  105. agox-3.9.0/agox/models/descriptors/exponential_density.py +131 -0
  106. agox-3.9.0/agox/models/descriptors/fingerprint.py +126 -0
  107. agox-3.9.0/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +18071 -0
  108. agox-3.9.0/agox/models/descriptors/fingerprint_cython/setup.py +6 -0
  109. agox-3.9.0/agox/models/descriptors/fingerprint_jax/fingerprint_jax.py +346 -0
  110. agox-3.9.0/agox/models/descriptors/fingerprint_jax/utils.py +337 -0
  111. agox-3.9.0/agox/models/descriptors/scale_select_descriptor.py +78 -0
  112. agox-3.9.0/agox/models/descriptors/simple_fingerprint.py +67 -0
  113. agox-3.9.0/agox/models/descriptors/soap.py +166 -0
  114. agox-3.9.0/agox/models/descriptors/spectral_graph_descriptor.py +84 -0
  115. agox-3.9.0/agox/models/descriptors/type_descriptor.py +49 -0
  116. agox-3.9.0/agox/models/descriptors/voronoi.py +270 -0
  117. agox-3.9.0/agox/models/descriptors/voronoi_site.py +118 -0
  118. agox-3.9.0/agox/models/priors/constant.py +12 -0
  119. agox-3.9.0/agox/models/schnetpack/schnetpack.py +381 -0
  120. agox-3.9.0/agox/module.py +91 -0
  121. agox-3.9.0/agox/observer/__init__.py +6 -0
  122. agox-3.9.0/agox/observer/finalization_handler.py +52 -0
  123. agox-3.9.0/agox/observer/observer.py +217 -0
  124. agox-3.9.0/agox/observer/observer_handler.py +187 -0
  125. agox-3.9.0/agox/observer/observer_method.py +123 -0
  126. agox-3.9.0/agox/postprocessors/ABC_postprocess.py +104 -0
  127. agox-3.9.0/agox/postprocessors/__init__.py +35 -0
  128. agox-3.9.0/agox/postprocessors/centering.py +37 -0
  129. agox-3.9.0/agox/postprocessors/disjoint_filtering.py +82 -0
  130. agox-3.9.0/agox/postprocessors/minimum_dist.py +88 -0
  131. agox-3.9.0/agox/postprocessors/ray_relax.py +165 -0
  132. agox-3.9.0/agox/postprocessors/relax.py +100 -0
  133. agox-3.9.0/agox/postprocessors/surface_centering.py +92 -0
  134. agox-3.9.0/agox/postprocessors/wrap.py +17 -0
  135. agox-3.9.0/agox/samplers/ABC_sampler.py +223 -0
  136. agox-3.9.0/agox/samplers/__init__.py +36 -0
  137. agox-3.9.0/agox/samplers/concurrent_tempering.py +179 -0
  138. agox-3.9.0/agox/samplers/fixed_sampler.py +39 -0
  139. agox-3.9.0/agox/samplers/genetic.py +215 -0
  140. agox-3.9.0/agox/samplers/kernel_similarity.py +150 -0
  141. agox-3.9.0/agox/samplers/kmeans.py +203 -0
  142. agox-3.9.0/agox/samplers/metropolis.py +95 -0
  143. agox-3.9.0/agox/samplers/parallel_tempering.py +282 -0
  144. agox-3.9.0/agox/samplers/spectral_graph.py +158 -0
  145. agox-3.9.0/agox/test/__init__.py +0 -0
  146. agox-3.9.0/agox/test/acquisitor_test/test_lcb.py +57 -0
  147. agox-3.9.0/agox/test/analysis_tests/conftest.py +45 -0
  148. agox-3.9.0/agox/test/analysis_tests/test_criterion.py +41 -0
  149. agox-3.9.0/agox/test/analysis_tests/test_descriptor_property.py +64 -0
  150. agox-3.9.0/agox/test/analysis_tests/test_energy_property.py +49 -0
  151. agox-3.9.0/agox/test/analysis_tests/test_property_plot.py +19 -0
  152. agox-3.9.0/agox/test/analysis_tests/test_restart_data.py +22 -0
  153. agox-3.9.0/agox/test/analysis_tests/test_search_collection.py +26 -0
  154. agox-3.9.0/agox/test/analysis_tests/test_search_data.py +69 -0
  155. agox-3.9.0/agox/test/analysis_tests/test_succces_plot.py +21 -0
  156. agox-3.9.0/agox/test/cli_tests/conftest.py +47 -0
  157. agox-3.9.0/agox/test/cli_tests/test_analysis_cli.py +117 -0
  158. agox-3.9.0/agox/test/cli_tests/test_convert_cli.py +19 -0
  159. agox-3.9.0/agox/test/cli_tests/test_graph_sort_cli.py +26 -0
  160. agox-3.9.0/agox/test/cli_tests/test_main_cli.py +9 -0
  161. agox-3.9.0/agox/test/cli_tests/test_plot_cli.py +37 -0
  162. agox-3.9.0/agox/test/conftest.py +69 -0
  163. agox-3.9.0/agox/test/database_tests/database_test.py +97 -0
  164. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db1.db +0 -0
  165. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db2.db +0 -0
  166. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db3.db +0 -0
  167. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db4.db +0 -0
  168. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db5.db +0 -0
  169. agox-3.9.0/agox/test/datasets/databases/bh_test_databases/experiment.pckl +0 -0
  170. agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db1.db +0 -0
  171. agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db2.db +0 -0
  172. agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db3.db +0 -0
  173. agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db4.db +0 -0
  174. agox-3.9.0/agox/test/datasets/databases/rss_test_databases/experiment.pckl +0 -0
  175. agox-3.9.0/agox/test/descriptor_tests/soap_test.py +37 -0
  176. agox-3.9.0/agox/test/descriptor_tests/spectral_graph_test.py +34 -0
  177. agox-3.9.0/agox/test/empty_cache.py +20 -0
  178. agox-3.9.0/agox/test/environment_tests/environment_test.py +40 -0
  179. agox-3.9.0/agox/test/generator_tests/conftest.py +89 -0
  180. agox-3.9.0/agox/test/generator_tests/for_docs/nonseeded_script.py +21 -0
  181. agox-3.9.0/agox/test/generator_tests/for_docs/seeded_script.py +28 -0
  182. agox-3.9.0/agox/test/generator_tests/for_docs/test_doc_scripts.py +19 -0
  183. agox-3.9.0/agox/test/generator_tests/generator_test.py +47 -0
  184. agox-3.9.0/agox/test/generator_tests/generator_utils.py +99 -0
  185. agox-3.9.0/agox/test/generator_tests/test_cog.py +54 -0
  186. agox-3.9.0/agox/test/generator_tests/test_generators.py +64 -0
  187. agox-3.9.0/agox/test/generator_tests/test_permutation.py +58 -0
  188. agox-3.9.0/agox/test/generator_tests/test_random.py +46 -0
  189. agox-3.9.0/agox/test/generator_tests/test_rattle.py +42 -0
  190. agox-3.9.0/agox/test/generator_tests/test_replace.py +42 -0
  191. agox-3.9.0/agox/test/generator_tests/test_sampling.py +44 -0
  192. agox-3.9.0/agox/test/generator_tests/test_steepest_descent.py +44 -0
  193. agox-3.9.0/agox/test/generator_tests/test_symmetry.py +49 -0
  194. agox-3.9.0/agox/test/generator_tests/test_symmetry_2.py +64 -0
  195. agox-3.9.0/agox/test/generator_tests/test_symmetry_3.py +55 -0
  196. agox-3.9.0/agox/test/model_tests/__init__.py +0 -0
  197. agox-3.9.0/agox/test/model_tests/descriptors_api.py +20 -0
  198. agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataAgO_parameter0.pckl +0 -0
  199. agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataB12_parameter0.pckl +0 -0
  200. agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataC30_parameter0.pckl +0 -0
  201. agox-3.9.0/agox/test/model_tests/gpr_api.py +43 -0
  202. agox-3.9.0/agox/test/model_tests/model_utils.py +56 -0
  203. agox-3.9.0/agox/test/model_tests/test_api.py +24 -0
  204. agox-3.9.0/agox/test/model_tests/test_global_gpr.py +80 -0
  205. agox-3.9.0/agox/test/model_tests/test_global_gpr_jax.py +82 -0
  206. agox-3.9.0/agox/test/model_tests/test_global_sparse_gpr.py +98 -0
  207. agox-3.9.0/agox/test/model_tests/test_global_sparse_gpr_force_training.py +99 -0
  208. agox-3.9.0/agox/test/model_tests/test_load.py +68 -0
  209. agox-3.9.0/agox/test/model_tests/test_local_gpr.py +100 -0
  210. agox-3.9.0/agox/test/model_tests/test_local_gpr_force_training.py +101 -0
  211. agox-3.9.0/agox/test/model_tests/test_ray_gpr.py +85 -0
  212. agox-3.9.0/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +89 -0
  213. agox-3.9.0/agox/test/model_tests/test_ray_sgpr_global.py +93 -0
  214. agox-3.9.0/agox/test/model_tests/test_ray_sgpr_local.py +82 -0
  215. agox-3.9.0/agox/test/model_tests/test_sgpr_sparse_schedule.py +85 -0
  216. agox-3.9.0/agox/test/modifying_examples/confinement_examples.py +143 -0
  217. agox-3.9.0/agox/test/postprocessor_tests/disjoint_filtering_test.py +23 -0
  218. agox-3.9.0/agox/test/postprocessor_tests/model_results_test.py +39 -0
  219. agox-3.9.0/agox/test/postprocessor_tests/postprocessor_test.py +37 -0
  220. agox-3.9.0/agox/test/postprocessor_tests/surface_centering_test.py +39 -0
  221. agox-3.9.0/agox/test/postprocessor_tests/test_survive_empty.py +34 -0
  222. agox-3.9.0/agox/test/run_tests/run_utils.py +72 -0
  223. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +77 -0
  224. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +77 -0
  225. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +81 -0
  226. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +100 -0
  227. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +69 -0
  228. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +69 -0
  229. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +72 -0
  230. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +79 -0
  231. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +92 -0
  232. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +81 -0
  233. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +81 -0
  234. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +85 -0
  235. agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +104 -0
  236. agox-3.9.0/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +203 -0
  237. agox-3.9.0/agox/test/run_tests/tests_bh/test_bh.py +8 -0
  238. agox-3.9.0/agox/test/run_tests/tests_block/script_block_bh.py +88 -0
  239. agox-3.9.0/agox/test/run_tests/tests_block/script_block_rss.py +85 -0
  240. agox-3.9.0/agox/test/run_tests/tests_block/test_block_bh.py +6 -0
  241. agox-3.9.0/agox/test/run_tests/tests_block/test_block_rss.py +6 -0
  242. agox-3.9.0/agox/test/run_tests/tests_ce/script_ce_default_gofee.py +125 -0
  243. agox-3.9.0/agox/test/run_tests/tests_ce/script_ce_gofee.py +140 -0
  244. agox-3.9.0/agox/test/run_tests/tests_ce/test_ce_default_gofee.py +9 -0
  245. agox-3.9.0/agox/test/run_tests/tests_ce/test_ce_gofee.py +9 -0
  246. agox-3.9.0/agox/test/run_tests/tests_ct/script_ct.py +93 -0
  247. agox-3.9.0/agox/test/run_tests/tests_ct/test_ct.py +6 -0
  248. agox-3.9.0/agox/test/run_tests/tests_ea/script_ea.py +102 -0
  249. agox-3.9.0/agox/test/run_tests/tests_ea/test_ea.py +6 -0
  250. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +125 -0
  251. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +125 -0
  252. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +129 -0
  253. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +148 -0
  254. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +118 -0
  255. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +118 -0
  256. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +121 -0
  257. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +128 -0
  258. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +141 -0
  259. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +130 -0
  260. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +130 -0
  261. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +134 -0
  262. agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +153 -0
  263. agox-3.9.0/agox/test/run_tests/tests_gofee/test_gofee.py +9 -0
  264. agox-3.9.0/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +138 -0
  265. agox-3.9.0/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +9 -0
  266. agox-3.9.0/agox/test/run_tests/tests_lgpr_bh/script_lgpr_bh.py +109 -0
  267. agox-3.9.0/agox/test/run_tests/tests_lgpr_bh/test_lgpr_bh.py +11 -0
  268. agox-3.9.0/agox/test/run_tests/tests_md/script_md_bh.py +87 -0
  269. agox-3.9.0/agox/test/run_tests/tests_md/test_md_bh.py +6 -0
  270. agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/confinement_plot_RandomGenerator.png +0 -0
  271. agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/confinement_plot_RattleGenerator.png +0 -0
  272. agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/db0.db +0 -0
  273. agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/db0_tracker.npz +0 -0
  274. agox-3.9.0/agox/test/run_tests/tests_pt/script_pt.py +139 -0
  275. agox-3.9.0/agox/test/run_tests/tests_pt/test_pt.py +9 -0
  276. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_2d.py +83 -0
  277. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +74 -0
  278. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +74 -0
  279. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +78 -0
  280. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +97 -0
  281. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +67 -0
  282. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +67 -0
  283. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +74 -0
  284. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +81 -0
  285. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +93 -0
  286. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +85 -0
  287. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +84 -0
  288. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +88 -0
  289. agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +107 -0
  290. agox-3.9.0/agox/test/run_tests/tests_rss/test.py +0 -0
  291. agox-3.9.0/agox/test/run_tests/tests_rss/test_rss.py +8 -0
  292. agox-3.9.0/agox/test/run_tests/tests_schnet/script_schnet_bh.py +93 -0
  293. agox-3.9.0/agox/test/run_tests/tests_schnet/test_schnet_bh.py +10 -0
  294. agox-3.9.0/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +127 -0
  295. agox-3.9.0/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +147 -0
  296. agox-3.9.0/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +78 -0
  297. agox-3.9.0/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +9 -0
  298. agox-3.9.0/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +9 -0
  299. agox-3.9.0/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +8 -0
  300. agox-3.9.0/agox/test/sampler_tests/sampler_test.py +118 -0
  301. agox-3.9.0/agox/test/test_utils.py +128 -0
  302. agox-3.9.0/agox/test/utils_tests/cache_test.py +21 -0
  303. agox-3.9.0/agox/test/utils_tests/plot_tests/colors_test.py +171 -0
  304. agox-3.9.0/agox/test/utils_tests/plot_tests/plot_atoms_test.py +107 -0
  305. agox-3.9.0/agox/test/utils_tests/plot_tests/plot_cell_test.py +30 -0
  306. agox-3.9.0/agox/test/utils_tests/plot_tests/utils_test.py +26 -0
  307. agox-3.9.0/agox/test/utils_tests/test_feature_dist_filter.py +28 -0
  308. agox-3.9.0/agox/test/utils_tests/test_filters.py +16 -0
  309. agox-3.9.0/agox/test/utils_tests/test_sparsifiers.py +34 -0
  310. agox-3.9.0/agox/utils/cache.py +70 -0
  311. agox-3.9.0/agox/utils/constraints/box_constraint.py +165 -0
  312. agox-3.9.0/agox/utils/convert_database.py +101 -0
  313. agox-3.9.0/agox/utils/decorators.py +22 -0
  314. agox-3.9.0/agox/utils/filters/ABC_filter.py +102 -0
  315. agox-3.9.0/agox/utils/filters/__init__.py +25 -0
  316. agox-3.9.0/agox/utils/filters/feature_distance.py +95 -0
  317. agox-3.9.0/agox/utils/filters/kmeans_energy.py +57 -0
  318. agox-3.9.0/agox/utils/filters/sparse_filter.py +72 -0
  319. agox-3.9.0/agox/utils/filters/voronoi.py +118 -0
  320. agox-3.9.0/agox/utils/graph_sorting.py +145 -0
  321. agox-3.9.0/agox/utils/jupyter_interactive.py +383 -0
  322. agox-3.9.0/agox/utils/matplotlib_utils.py +18 -0
  323. agox-3.9.0/agox/utils/metrics/__init__.py +17 -0
  324. agox-3.9.0/agox/utils/metrics/calibration.py +270 -0
  325. agox-3.9.0/agox/utils/metrics/metrics.py +21 -0
  326. agox-3.9.0/agox/utils/numerical_derivative.py +22 -0
  327. agox-3.9.0/agox/utils/plot/colors.py +255 -0
  328. agox-3.9.0/agox/utils/plot/plot_atoms.py +159 -0
  329. agox-3.9.0/agox/utils/plot/plot_cell.py +82 -0
  330. agox-3.9.0/agox/utils/plot/plot_parity.py +186 -0
  331. agox-3.9.0/agox/utils/plot/utils.py +60 -0
  332. agox-3.9.0/agox/utils/ray/__init__.py +4 -0
  333. agox-3.9.0/agox/utils/ray/actor.py +71 -0
  334. agox-3.9.0/agox/utils/ray/pool.py +509 -0
  335. agox-3.9.0/agox/utils/ray/pool_startup.py +87 -0
  336. agox-3.9.0/agox/utils/ray/pool_user.py +184 -0
  337. agox-3.9.0/agox/utils/ray/startup.py +159 -0
  338. agox-3.9.0/agox/utils/sparsifiers/ABC_sparsifier.py +124 -0
  339. agox-3.9.0/agox/utils/sparsifiers/CUR.py +24 -0
  340. agox-3.9.0/agox/utils/sparsifiers/CUR_old.py +26 -0
  341. agox-3.9.0/agox/utils/sparsifiers/MBkmeans.py +69 -0
  342. agox-3.9.0/agox/utils/sparsifiers/__init__.py +11 -0
  343. agox-3.9.0/agox/utils/thermodynamics/__init__.py +4 -0
  344. agox-3.9.0/agox/utils/thermodynamics/gibbs.py +28 -0
  345. agox-3.9.0/agox/utils/thermodynamics/thermodynamics_data.py +69 -0
  346. agox-3.9.0/agox/writer/__init__.py +2 -0
  347. agox-3.9.0/agox/writer/utils.py +45 -0
  348. agox-3.9.0/agox/writer/writer.py +38 -0
  349. agox-3.9.0/agox.egg-info/PKG-INFO +89 -0
  350. agox-3.9.0/agox.egg-info/SOURCES.txt +522 -0
  351. agox-3.9.0/agox.egg-info/requires.txt +32 -0
  352. agox-3.9.0/pyproject.toml +90 -0
  353. agox-3.9.0/setup.py +21 -0
  354. agox-3.7.0rc1/PKG-INFO +0 -81
  355. agox-3.7.0rc1/README.md +0 -38
  356. agox-3.7.0rc1/agox/__init__.py +0 -25
  357. agox-3.7.0rc1/agox/acquisitors/ABC_acquisitor.py +0 -204
  358. agox-3.7.0rc1/agox/acquisitors/EI.py +0 -53
  359. agox-3.7.0rc1/agox/acquisitors/LCB.py +0 -100
  360. agox-3.7.0rc1/agox/acquisitors/LCB_power.py +0 -17
  361. agox-3.7.0rc1/agox/acquisitors/__init__.py +0 -28
  362. agox-3.7.0rc1/agox/candidates/ABC_candidate.py +0 -376
  363. agox-3.7.0rc1/agox/candidates/__init__.py +0 -12
  364. agox-3.7.0rc1/agox/candidates/standard.py +0 -21
  365. agox-3.7.0rc1/agox/cli/__init__.py +0 -6
  366. agox-3.7.0rc1/agox/cli/cli_analysis.py +0 -152
  367. agox-3.7.0rc1/agox/cli/cli_convert.py +0 -82
  368. agox-3.7.0rc1/agox/cli/cli_example.py +0 -16
  369. agox-3.7.0rc1/agox/cli/cli_graph_sorting.py +0 -134
  370. agox-3.7.0rc1/agox/cli/cli_notebook.py +0 -116
  371. agox-3.7.0rc1/agox/cli/main.py +0 -15
  372. agox-3.7.0rc1/agox/collectors/ABC_collector.py +0 -152
  373. agox-3.7.0rc1/agox/collectors/__init__.py +0 -11
  374. agox-3.7.0rc1/agox/collectors/ray_collector.py +0 -97
  375. agox-3.7.0rc1/agox/collectors/standard.py +0 -77
  376. agox-3.7.0rc1/agox/databases/ABC_database.py +0 -103
  377. agox-3.7.0rc1/agox/databases/__init__.py +0 -14
  378. agox-3.7.0rc1/agox/databases/concurrent_ordered.py +0 -34
  379. agox-3.7.0rc1/agox/databases/database.py +0 -458
  380. agox-3.7.0rc1/agox/databases/database_concurrent.py +0 -216
  381. agox-3.7.0rc1/agox/databases/database_utilities.py +0 -115
  382. agox-3.7.0rc1/agox/environments/ABC_environment.py +0 -139
  383. agox-3.7.0rc1/agox/environments/__init__.py +0 -16
  384. agox-3.7.0rc1/agox/environments/environment.py +0 -138
  385. agox-3.7.0rc1/agox/evaluators/ABC_evaluator.py +0 -119
  386. agox-3.7.0rc1/agox/evaluators/__init__.py +0 -16
  387. agox-3.7.0rc1/agox/evaluators/local_optimization.py +0 -127
  388. agox-3.7.0rc1/agox/evaluators/rattle.py +0 -26
  389. agox-3.7.0rc1/agox/evaluators/single_point.py +0 -19
  390. agox-3.7.0rc1/agox/generators/ABC_generator.py +0 -219
  391. agox-3.7.0rc1/agox/generators/MD.py +0 -154
  392. agox-3.7.0rc1/agox/generators/__init__.py +0 -49
  393. agox-3.7.0rc1/agox/generators/block_generators/ABC_block.py +0 -185
  394. agox-3.7.0rc1/agox/generators/block_generators/__init__.py +0 -2
  395. agox-3.7.0rc1/agox/generators/block_generators/random.py +0 -63
  396. agox-3.7.0rc1/agox/generators/block_generators/rattle.py +0 -104
  397. agox-3.7.0rc1/agox/generators/ce_generator.py +0 -132
  398. agox-3.7.0rc1/agox/generators/cog.py +0 -57
  399. agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +0 -32
  400. agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +0 -57
  401. agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +0 -53
  402. agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +0 -61
  403. agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +0 -68
  404. agox-3.7.0rc1/agox/generators/complementary_energy/ce_calculators.py +0 -234
  405. agox-3.7.0rc1/agox/generators/permutation.py +0 -151
  406. agox-3.7.0rc1/agox/generators/random.py +0 -77
  407. agox-3.7.0rc1/agox/generators/rattle.py +0 -69
  408. agox-3.7.0rc1/agox/generators/replace.py +0 -74
  409. agox-3.7.0rc1/agox/generators/reuse.py +0 -60
  410. agox-3.7.0rc1/agox/generators/sampling.py +0 -27
  411. agox-3.7.0rc1/agox/generators/steepest_descent.py +0 -55
  412. agox-3.7.0rc1/agox/generators/symmetry.py +0 -340
  413. agox-3.7.0rc1/agox/generators/symmetry_permutation.py +0 -233
  414. agox-3.7.0rc1/agox/generators/symmetry_rattle.py +0 -475
  415. agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_enforcer.py +0 -1758
  416. agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_groups.py +0 -933
  417. agox-3.7.0rc1/agox/helpers/__init__.py +0 -5
  418. agox-3.7.0rc1/agox/helpers/confinement.py +0 -79
  419. agox-3.7.0rc1/agox/helpers/gpaw_io.py +0 -169
  420. agox-3.7.0rc1/agox/helpers/gpaw_subprocess.py +0 -58
  421. agox-3.7.0rc1/agox/main.py +0 -305
  422. agox-3.7.0rc1/agox/models/ABC_model.py +0 -618
  423. agox-3.7.0rc1/agox/models/GPR/GPR.py +0 -893
  424. agox-3.7.0rc1/agox/models/GPR/__init__.py +0 -5
  425. agox-3.7.0rc1/agox/models/GPR/kernels/__init__.py +0 -1
  426. agox-3.7.0rc1/agox/models/GPR/kernels/kernels.py +0 -149
  427. agox-3.7.0rc1/agox/models/GPR/local_mean.py +0 -44
  428. agox-3.7.0rc1/agox/models/GPR/priors/repulsive.c +0 -11514
  429. agox-3.7.0rc1/agox/models/GPR/priors/setup.py +0 -5
  430. agox-3.7.0rc1/agox/models/GPR/sGPR.py +0 -872
  431. agox-3.7.0rc1/agox/models/GPR/sGPR_ensemble.py +0 -114
  432. agox-3.7.0rc1/agox/models/__init__.py +0 -9
  433. agox-3.7.0rc1/agox/models/datasets/loader.py +0 -10
  434. agox-3.7.0rc1/agox/models/descriptors/ABC_descriptor.py +0 -155
  435. agox-3.7.0rc1/agox/models/descriptors/__init__.py +0 -6
  436. agox-3.7.0rc1/agox/models/descriptors/acsf.py +0 -176
  437. agox-3.7.0rc1/agox/models/descriptors/exponential_density.py +0 -147
  438. agox-3.7.0rc1/agox/models/descriptors/fingerprint.py +0 -130
  439. agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +0 -18071
  440. agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython/setup.py +0 -5
  441. agox-3.7.0rc1/agox/models/descriptors/scale_select_descriptor.py +0 -79
  442. agox-3.7.0rc1/agox/models/descriptors/simple_fingerprint.py +0 -64
  443. agox-3.7.0rc1/agox/models/descriptors/soap.py +0 -166
  444. agox-3.7.0rc1/agox/models/descriptors/spectral_graph_descriptor.py +0 -78
  445. agox-3.7.0rc1/agox/models/descriptors/type_descriptor.py +0 -47
  446. agox-3.7.0rc1/agox/models/descriptors/voronoi.py +0 -264
  447. agox-3.7.0rc1/agox/models/priors/constant.py +0 -12
  448. agox-3.7.0rc1/agox/models/schnetpack/schnetpack.py +0 -432
  449. agox-3.7.0rc1/agox/module.py +0 -132
  450. agox-3.7.0rc1/agox/observer.py +0 -603
  451. agox-3.7.0rc1/agox/postprocessors/ABC_postprocess.py +0 -127
  452. agox-3.7.0rc1/agox/postprocessors/__init__.py +0 -26
  453. agox-3.7.0rc1/agox/postprocessors/centering.py +0 -36
  454. agox-3.7.0rc1/agox/postprocessors/disjoint_filtering.py +0 -87
  455. agox-3.7.0rc1/agox/postprocessors/immunizer.py +0 -24
  456. agox-3.7.0rc1/agox/postprocessors/minimum_dist.py +0 -88
  457. agox-3.7.0rc1/agox/postprocessors/optimizers/__init__.py +0 -1
  458. agox-3.7.0rc1/agox/postprocessors/optimizers/safe_bfgs.py +0 -31
  459. agox-3.7.0rc1/agox/postprocessors/ray_relax.py +0 -154
  460. agox-3.7.0rc1/agox/postprocessors/relax.py +0 -91
  461. agox-3.7.0rc1/agox/postprocessors/wrap.py +0 -19
  462. agox-3.7.0rc1/agox/samplers/ABC_sampler.py +0 -214
  463. agox-3.7.0rc1/agox/samplers/__init__.py +0 -27
  464. agox-3.7.0rc1/agox/samplers/fixed_sampler.py +0 -39
  465. agox-3.7.0rc1/agox/samplers/genetic.py +0 -208
  466. agox-3.7.0rc1/agox/samplers/kernel_similarity.py +0 -144
  467. agox-3.7.0rc1/agox/samplers/kmeans.py +0 -214
  468. agox-3.7.0rc1/agox/samplers/metropolis.py +0 -93
  469. agox-3.7.0rc1/agox/samplers/parallel_tempering_sampler.py +0 -143
  470. agox-3.7.0rc1/agox/samplers/spectral_graph.py +0 -151
  471. agox-3.7.0rc1/agox/test/acquisitor_test/test_lcb.py +0 -58
  472. agox-3.7.0rc1/agox/test/conftest.py +0 -24
  473. agox-3.7.0rc1/agox/test/database_tests/database_test.py +0 -92
  474. agox-3.7.0rc1/agox/test/descriptor_tests/soap_test.py +0 -33
  475. agox-3.7.0rc1/agox/test/descriptor_tests/spectral_graph_test.py +0 -51
  476. agox-3.7.0rc1/agox/test/empty_cache.py +0 -24
  477. agox-3.7.0rc1/agox/test/environment_tests/environment_test.py +0 -45
  478. agox-3.7.0rc1/agox/test/generator_tests/conftest.py +0 -87
  479. agox-3.7.0rc1/agox/test/generator_tests/for_docs/nonseeded_script.py +0 -22
  480. agox-3.7.0rc1/agox/test/generator_tests/for_docs/seeded_script.py +0 -31
  481. agox-3.7.0rc1/agox/test/generator_tests/for_docs/test_doc_scripts.py +0 -14
  482. agox-3.7.0rc1/agox/test/generator_tests/generator_test.py +0 -41
  483. agox-3.7.0rc1/agox/test/generator_tests/generator_utils.py +0 -84
  484. agox-3.7.0rc1/agox/test/generator_tests/test_cog.py +0 -42
  485. agox-3.7.0rc1/agox/test/generator_tests/test_generators.py +0 -55
  486. agox-3.7.0rc1/agox/test/generator_tests/test_permutation.py +0 -47
  487. agox-3.7.0rc1/agox/test/generator_tests/test_random.py +0 -36
  488. agox-3.7.0rc1/agox/test/generator_tests/test_rattle.py +0 -36
  489. agox-3.7.0rc1/agox/test/generator_tests/test_replace.py +0 -36
  490. agox-3.7.0rc1/agox/test/generator_tests/test_sampling.py +0 -34
  491. agox-3.7.0rc1/agox/test/generator_tests/test_steepest_descent.py +0 -34
  492. agox-3.7.0rc1/agox/test/generator_tests/test_symmetry.py +0 -38
  493. agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_2.py +0 -60
  494. agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_3.py +0 -48
  495. agox-3.7.0rc1/agox/test/model_tests/descriptors_api.py +0 -23
  496. agox-3.7.0rc1/agox/test/model_tests/gpr_api.py +0 -44
  497. agox-3.7.0rc1/agox/test/model_tests/model_utils.py +0 -51
  498. agox-3.7.0rc1/agox/test/model_tests/test_api.py +0 -26
  499. agox-3.7.0rc1/agox/test/model_tests/test_global_gpr.py +0 -73
  500. agox-3.7.0rc1/agox/test/model_tests/test_global_sparse_gpr.py +0 -92
  501. agox-3.7.0rc1/agox/test/model_tests/test_global_sparse_gpr_force_training.py +0 -93
  502. agox-3.7.0rc1/agox/test/model_tests/test_load.py +0 -65
  503. agox-3.7.0rc1/agox/test/model_tests/test_local_gpr.py +0 -97
  504. agox-3.7.0rc1/agox/test/model_tests/test_local_gpr_force_training.py +0 -98
  505. agox-3.7.0rc1/agox/test/model_tests/test_ray_gpr.py +0 -83
  506. agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +0 -84
  507. agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_global.py +0 -86
  508. agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_local.py +0 -82
  509. agox-3.7.0rc1/agox/test/model_tests/test_sgpr_sparse_schedule.py +0 -82
  510. agox-3.7.0rc1/agox/test/modifying_examples/confinement_examples.py +0 -134
  511. agox-3.7.0rc1/agox/test/postprocessor_tests/disjoint_filtering_test.py +0 -24
  512. agox-3.7.0rc1/agox/test/postprocessor_tests/model_results_test.py +0 -44
  513. agox-3.7.0rc1/agox/test/postprocessor_tests/postprocessor_test.py +0 -38
  514. agox-3.7.0rc1/agox/test/postprocessor_tests/test_survive_empty.py +0 -34
  515. agox-3.7.0rc1/agox/test/run_tests/run_utils.py +0 -71
  516. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +0 -78
  517. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +0 -78
  518. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +0 -82
  519. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +0 -86
  520. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +0 -70
  521. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +0 -70
  522. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +0 -73
  523. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +0 -80
  524. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +0 -78
  525. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +0 -83
  526. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +0 -83
  527. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +0 -87
  528. agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +0 -91
  529. agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +0 -198
  530. agox-3.7.0rc1/agox/test/run_tests/tests_bh/test_bh.py +0 -6
  531. agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_bh.py +0 -89
  532. agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_rss.py +0 -85
  533. agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_bh.py +0 -5
  534. agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_rss.py +0 -5
  535. agox-3.7.0rc1/agox/test/run_tests/tests_ce/script_ce_default_gofee.py +0 -135
  536. agox-3.7.0rc1/agox/test/run_tests/tests_ce/script_ce_gofee.py +0 -142
  537. agox-3.7.0rc1/agox/test/run_tests/tests_ce/test_ce_default_gofee.py +0 -7
  538. agox-3.7.0rc1/agox/test/run_tests/tests_ce/test_ce_gofee.py +0 -7
  539. agox-3.7.0rc1/agox/test/run_tests/tests_ea/script_ea.py +0 -104
  540. agox-3.7.0rc1/agox/test/run_tests/tests_ea/test_ea.py +0 -5
  541. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +0 -126
  542. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +0 -126
  543. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +0 -130
  544. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +0 -134
  545. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +0 -119
  546. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +0 -119
  547. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +0 -122
  548. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +0 -129
  549. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +0 -127
  550. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +0 -132
  551. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +0 -132
  552. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +0 -136
  553. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +0 -140
  554. agox-3.7.0rc1/agox/test/run_tests/tests_gofee/test_gofee.py +0 -7
  555. agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +0 -133
  556. agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +0 -7
  557. agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh/script_lgpr_bh.py +0 -114
  558. agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh/test_lgpr_bh.py +0 -10
  559. agox-3.7.0rc1/agox/test/run_tests/tests_md/script_md_bh.py +0 -89
  560. agox-3.7.0rc1/agox/test/run_tests/tests_md/test_md_bh.py +0 -5
  561. agox-3.7.0rc1/agox/test/run_tests/tests_pt/script_pt.py +0 -97
  562. agox-3.7.0rc1/agox/test/run_tests/tests_pt/test_pt.py +0 -5
  563. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_2d.py +0 -86
  564. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +0 -75
  565. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +0 -75
  566. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +0 -79
  567. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +0 -83
  568. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +0 -68
  569. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +0 -68
  570. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +0 -71
  571. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +0 -78
  572. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +0 -77
  573. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +0 -83
  574. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +0 -82
  575. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +0 -86
  576. agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +0 -90
  577. agox-3.7.0rc1/agox/test/run_tests/tests_rss/test.py +0 -1
  578. agox-3.7.0rc1/agox/test/run_tests/tests_rss/test_rss.py +0 -7
  579. agox-3.7.0rc1/agox/test/run_tests/tests_schnet/script_schnet_bh.py +0 -99
  580. agox-3.7.0rc1/agox/test/run_tests/tests_schnet/test_schnet_bh.py +0 -9
  581. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +0 -130
  582. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +0 -151
  583. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +0 -77
  584. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +0 -7
  585. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +0 -7
  586. agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +0 -7
  587. agox-3.7.0rc1/agox/test/sampler_tests/sampler_test.py +0 -119
  588. agox-3.7.0rc1/agox/test/test_utils.py +0 -144
  589. agox-3.7.0rc1/agox/test/utils_tests/analysis_test.py +0 -39
  590. agox-3.7.0rc1/agox/test/utils_tests/cache_test.py +0 -25
  591. agox-3.7.0rc1/agox/test/utils_tests/plot_tests/colors_test.py +0 -161
  592. agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_atoms_test.py +0 -115
  593. agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_cell_test.py +0 -31
  594. agox-3.7.0rc1/agox/test/utils_tests/plot_tests/utils_test.py +0 -23
  595. agox-3.7.0rc1/agox/test/utils_tests/test_feature_dist_filter.py +0 -26
  596. agox-3.7.0rc1/agox/test/utils_tests/test_filters.py +0 -17
  597. agox-3.7.0rc1/agox/test/utils_tests/test_sparsifiers.py +0 -38
  598. agox-3.7.0rc1/agox/test/utils_tests/tracker_test.py +0 -94
  599. agox-3.7.0rc1/agox/tracker.py +0 -377
  600. agox-3.7.0rc1/agox/utils/batch_analysis.py +0 -843
  601. agox-3.7.0rc1/agox/utils/cache.py +0 -74
  602. agox-3.7.0rc1/agox/utils/constraints/box_constraint.py +0 -173
  603. agox-3.7.0rc1/agox/utils/convert_database.py +0 -100
  604. agox-3.7.0rc1/agox/utils/data_selection.py +0 -110
  605. agox-3.7.0rc1/agox/utils/decorators.py +0 -20
  606. agox-3.7.0rc1/agox/utils/filters/ABC_filter.py +0 -102
  607. agox-3.7.0rc1/agox/utils/filters/__init__.py +0 -26
  608. agox-3.7.0rc1/agox/utils/filters/feature_distance.py +0 -93
  609. agox-3.7.0rc1/agox/utils/filters/kmeans_energy.py +0 -57
  610. agox-3.7.0rc1/agox/utils/filters/sparse_filter.py +0 -73
  611. agox-3.7.0rc1/agox/utils/filters/voronoi.py +0 -119
  612. agox-3.7.0rc1/agox/utils/graph_sorting.py +0 -136
  613. agox-3.7.0rc1/agox/utils/jupyter_interactive.py +0 -310
  614. agox-3.7.0rc1/agox/utils/matplotlib_utils.py +0 -14
  615. agox-3.7.0rc1/agox/utils/metrics/__init__.py +0 -17
  616. agox-3.7.0rc1/agox/utils/metrics/calibration.py +0 -285
  617. agox-3.7.0rc1/agox/utils/metrics/metrics.py +0 -22
  618. agox-3.7.0rc1/agox/utils/numerical_derivative.py +0 -25
  619. agox-3.7.0rc1/agox/utils/plot/colors.py +0 -267
  620. agox-3.7.0rc1/agox/utils/plot/plot_atoms.py +0 -150
  621. agox-3.7.0rc1/agox/utils/plot/plot_cell.py +0 -82
  622. agox-3.7.0rc1/agox/utils/plot/plot_parity.py +0 -167
  623. agox-3.7.0rc1/agox/utils/plot/utils.py +0 -60
  624. agox-3.7.0rc1/agox/utils/ray/__init__.py +0 -4
  625. agox-3.7.0rc1/agox/utils/ray/actor.py +0 -68
  626. agox-3.7.0rc1/agox/utils/ray/pool.py +0 -567
  627. agox-3.7.0rc1/agox/utils/ray/pool_startup.py +0 -83
  628. agox-3.7.0rc1/agox/utils/ray/pool_user.py +0 -191
  629. agox-3.7.0rc1/agox/utils/ray/startup.py +0 -160
  630. agox-3.7.0rc1/agox/utils/ray/testing/__init__.py +0 -2
  631. agox-3.7.0rc1/agox/utils/ray/testing/log_reader.py +0 -103
  632. agox-3.7.0rc1/agox/utils/ray/testing/slurm_test_functions.py +0 -81
  633. agox-3.7.0rc1/agox/utils/sparsifiers/ABC_sparsifier.py +0 -125
  634. agox-3.7.0rc1/agox/utils/sparsifiers/CUR.py +0 -23
  635. agox-3.7.0rc1/agox/utils/sparsifiers/CUR_old.py +0 -24
  636. agox-3.7.0rc1/agox/utils/sparsifiers/MBkmeans.py +0 -69
  637. agox-3.7.0rc1/agox/utils/sparsifiers/__init__.py +0 -10
  638. agox-3.7.0rc1/agox/writer.py +0 -153
  639. agox-3.7.0rc1/agox.egg-info/PKG-INFO +0 -81
  640. agox-3.7.0rc1/agox.egg-info/SOURCES.txt +0 -459
  641. agox-3.7.0rc1/agox.egg-info/requires.txt +0 -27
  642. agox-3.7.0rc1/pyproject.toml +0 -67
  643. agox-3.7.0rc1/setup.py +0 -19
  644. {agox-3.7.0rc1 → agox-3.9.0}/LICENSE.txt +0 -0
  645. {agox-3.7.0rc1 → agox-3.9.0}/MANIFEST.in +0 -0
  646. {agox-3.7.0rc1/agox/generators/complementary_energy → agox-3.9.0/agox/cli}/__init__.py +0 -0
  647. {agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods → agox-3.9.0/agox/generators/complementary_energy}/__init__.py +0 -0
  648. {agox-3.7.0rc1/agox/generators/symmetry_utils → agox-3.9.0/agox/generators/complementary_energy/attractor_methods}/__init__.py +0 -0
  649. {agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython → agox-3.9.0/agox/generators/symmetry_utils}/__init__.py +0 -0
  650. {agox-3.7.0rc1 → agox-3.9.0}/agox/models/GPR/priors/__init__.py +0 -0
  651. {agox-3.7.0rc1 → agox-3.9.0}/agox/models/GPR/priors/repulsive.pyx +0 -0
  652. {agox-3.7.0rc1 → agox-3.9.0}/agox/models/datasets/Ag5O3-dataset.traj +0 -0
  653. {agox-3.7.0rc1 → agox-3.9.0}/agox/models/datasets/__init__.py +0 -0
  654. {agox-3.7.0rc1/agox/models/schnetpack → agox-3.9.0/agox/models/descriptors/fingerprint_cython}/__init__.py +0 -0
  655. {agox-3.7.0rc1 → agox-3.9.0}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.pyx +0 -0
  656. {agox-3.7.0rc1/agox/test → agox-3.9.0/agox/models/descriptors/fingerprint_jax}/__init__.py +0 -0
  657. {agox-3.7.0rc1/agox/test/model_tests → agox-3.9.0/agox/models/schnetpack}/__init__.py +0 -0
  658. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/.coveragerc +0 -0
  659. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/AgO-dataset.traj +0 -0
  660. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/B12-dataset.traj +0 -0
  661. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/C30-dataset.traj +0 -0
  662. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/databases/mos2_databases/db1.db +0 -0
  663. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/databases/mos2_databases/db2.db +0 -0
  664. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_AgO.pckl +0 -0
  665. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_B12.pckl +0 -0
  666. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_C30.pckl +0 -0
  667. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter0.pckl +0 -0
  668. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter1.pckl +0 -0
  669. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter2.pckl +0 -0
  670. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter0.pckl +0 -0
  671. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter1.pckl +0 -0
  672. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter2.pckl +0 -0
  673. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter0.pckl +0 -0
  674. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter1.pckl +0 -0
  675. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter2.pckl +0 -0
  676. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter0.pckl +0 -0
  677. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter1.pckl +0 -0
  678. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter2.pckl +0 -0
  679. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter0.pckl +0 -0
  680. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter1.pckl +0 -0
  681. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter2.pckl +0 -0
  682. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter0.pckl +0 -0
  683. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter1.pckl +0 -0
  684. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter2.pckl +0 -0
  685. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter0.pckl +0 -0
  686. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter1.pckl +0 -0
  687. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter2.pckl +0 -0
  688. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter0.pckl +0 -0
  689. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter1.pckl +0 -0
  690. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter2.pckl +0 -0
  691. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter0.pckl +0 -0
  692. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter1.pckl +0 -0
  693. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter2.pckl +0 -0
  694. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter0.pckl +0 -0
  695. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter1.pckl +0 -0
  696. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter2.pckl +0 -0
  697. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter0.pckl +0 -0
  698. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter1.pckl +0 -0
  699. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter2.pckl +0 -0
  700. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter0.pckl +0 -0
  701. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter1.pckl +0 -0
  702. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter2.pckl +0 -0
  703. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter0.pckl +0 -0
  704. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter1.pckl +0 -0
  705. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter2.pckl +0 -0
  706. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataAgO_parameter0.pckl +0 -0
  707. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataB12_parameter0.pckl +0 -0
  708. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataC30_parameter0.pckl +0 -0
  709. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataAgO_parameter0.pckl +0 -0
  710. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataB12_parameter0.pckl +0 -0
  711. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataC30_parameter0.pckl +0 -0
  712. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter0.pckl +0 -0
  713. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter1.pckl +0 -0
  714. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter0.pckl +0 -0
  715. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter1.pckl +0 -0
  716. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataAgO_parameter0.pckl +0 -0
  717. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataB12_parameter0.pckl +0 -0
  718. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataC30_parameter0.pckl +0 -0
  719. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
  720. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataB12_parameter0.pckl +0 -0
  721. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataC30_parameter0.pckl +0 -0
  722. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataAgO_parameter0.pckl +0 -0
  723. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataB12_parameter0.pckl +0 -0
  724. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataC30_parameter0.pckl +0 -0
  725. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
  726. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataB12_parameter0.pckl +0 -0
  727. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataC30_parameter0.pckl +0 -0
  728. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataAgO_parameter0.pckl +0 -0
  729. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataB12_parameter0.pckl +0 -0
  730. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataC30_parameter0.pckl +0 -0
  731. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/load_api.py +0 -0
  732. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/sgpr_api.py +0 -0
  733. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/sgpr_api_forces.py +0 -0
  734. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/cluster_confinement.png +0 -0
  735. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_cluster_confinement.png +0 -0
  736. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_film_confinement.png +0 -0
  737. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_toplayer_unc.png +0 -0
  738. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/two_d_environment.png +0 -0
  739. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
  740. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0.db +0 -0
  741. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0_tracker.npz +0 -0
  742. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_cluster_emt_test/db0.db +0 -0
  743. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
  744. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0.db +0 -0
  745. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0_tracker.npz +0 -0
  746. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/confinement_plot_RattleGenerator.png +0 -0
  747. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/db0.db +0 -0
  748. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/db0_tracker.npz +0 -0
  749. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/dbs/db0.db +0 -0
  750. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/dbs/db0_tracker.npz +0 -0
  751. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0.db +0 -0
  752. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0_tracker.npz +0 -0
  753. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0.db +0 -0
  754. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0_tracker.npz +0 -0
  755. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_ComplementaryEnergyGenerator.png +0 -0
  756. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RandomGenerator.png +0 -0
  757. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RattleGenerator.png +0 -0
  758. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/db0.db +0 -0
  759. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_gofee_test/db0.db +0 -0
  760. {agox-3.7.0rc1/agox/test/run_tests/tests_pt/expected_outputs/pt_test → agox-3.9.0/agox/test/run_tests/tests_ct/expected_outputs/ct_test}/db0.db +0 -0
  761. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ea/expected_outputs/ea_test/db0.db +0 -0
  762. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ea/expected_outputs/ea_test/population_5.traj +0 -0
  763. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
  764. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
  765. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0.db +0 -0
  766. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0_tracker.npz +0 -0
  767. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
  768. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RattleGenerator.png +0 -0
  769. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/db0.db +0 -0
  770. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
  771. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
  772. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0.db +0 -0
  773. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0_tracker.npz +0 -0
  774. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0.db +0 -0
  775. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0_tracker.npz +0 -0
  776. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_lgpr_bh/expected_outputs/lgpr_bh_test/db0.db +0 -0
  777. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/confinement_plot_MDgenerator.png +0 -0
  778. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0.db +0 -0
  779. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0_tracker.npz +0 -0
  780. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_2d_test/confinement_plot_RandomGenerator.png +0 -0
  781. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_2d_test/db0.db +0 -0
  782. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
  783. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0.db +0 -0
  784. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0_tracker.npz +0 -0
  785. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
  786. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0.db +0 -0
  787. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0_tracker.npz +0 -0
  788. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
  789. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0.db +0 -0
  790. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0_tracker.npz +0 -0
  791. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
  792. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  793. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0.db +0 -0
  794. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0_tracker.npz +0 -0
  795. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
  796. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  797. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0.db +0 -0
  798. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0_tracker.npz +0 -0
  799. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  800. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0.db +0 -0
  801. {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0_tracker.npz +0 -0
  802. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/__init__.py +0 -0
  803. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/constraints/__init__.py +0 -0
  804. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/all.py +0 -0
  805. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/energy.py +0 -0
  806. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/filter.py +0 -0
  807. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/none.py +0 -0
  808. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/random.py +0 -0
  809. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/plot/__init__.py +0 -0
  810. {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/sparsifiers/random.py +0 -0
  811. {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/dependency_links.txt +0 -0
  812. {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/entry_points.txt +0 -0
  813. {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/top_level.txt +0 -0
  814. {agox-3.7.0rc1 → agox-3.9.0}/setup.cfg +0 -0
agox-3.9.0/PKG-INFO ADDED
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.1
2
+ Name: agox
3
+ Version: 3.9.0
4
+ Summary: Atomistic Global Optimziation X is a framework for structure optimization in materials science.
5
+ Author: AGOX Developers
6
+ Author-email: "Mads-Peter V. Christiansen" <machri@phys.au.dk>, Nikolaj Rønne <nronne@phys.au.dk>, Bjørk Hammer <hammer@phys.au.dk>
7
+ License: GNU General Public License v3.0 or later
8
+ Project-URL: homepage, https://agox.gitlab.io/agox/
9
+ Project-URL: Repository, https://gitlab.com/agox/agox
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: numpy<2
22
+ Requires-Dist: scipy
23
+ Requires-Dist: ase
24
+ Requires-Dist: matplotlib
25
+ Requires-Dist: cymem
26
+ Requires-Dist: scikit-learn
27
+ Requires-Dist: h5py
28
+ Requires-Dist: matscipy
29
+ Requires-Dist: importlib-resources>1.3; python_version < "3.9"
30
+ Requires-Dist: dscribe>=2.0.0
31
+ Requires-Dist: nbformat
32
+ Requires-Dist: typing_extensions
33
+ Requires-Dist: jax
34
+ Requires-Dist: jaxlib
35
+ Requires-Dist: ray
36
+ Requires-Dist: rich-click>=1.8.3
37
+ Provides-Extra: test
38
+ Requires-Dist: pytest; extra == "test"
39
+ Requires-Dist: pytest-mock; extra == "test"
40
+ Provides-Extra: docs
41
+ Requires-Dist: sphinx; extra == "docs"
42
+ Requires-Dist: furo; extra == "docs"
43
+ Requires-Dist: sphinx-autoapi; extra == "docs"
44
+ Requires-Dist: sphinx-copybutton; extra == "docs"
45
+ Requires-Dist: sphinx-tabs; extra == "docs"
46
+ Provides-Extra: all
47
+ Requires-Dist: agox[docs,test]; extra == "all"
48
+
49
+ # Atomistic Global Optimization X (AGOX)
50
+
51
+ ![logo](docs/source/logos/logo-carbon.gif)
52
+
53
+
54
+ AGOX is a package for global optimization of atomic system using e.g. the energy
55
+ calculated from density functional theory as the objective function. AGOX interfaces
56
+ with the Atomistic Simulation Environment (ASE) and as such supports any of
57
+ calculators in ASE as objectives for optimization.
58
+
59
+ AGOX is built to be flexible, consisting of modules that can be put together to
60
+ create an optimization algorithm, from simple random searches to Bayesian searches
61
+ guided by a surrogate model and many more.
62
+
63
+ Check out the documentation at
64
+
65
+ https://agox.gitlab.io/agox/
66
+
67
+ # Contributions & Issues
68
+
69
+ Feel free to make a fork and submit a merge request!
70
+
71
+ If you have an issue or a question please post it on the issue board!
72
+
73
+ # Authors
74
+
75
+ The main AGOX framework has been written by
76
+ * Mads-Peter Verner Christiansen
77
+ * Nikolaj Rønne
78
+ * Bjørk Hammer
79
+
80
+ with inspiration and help from current and previous members of the Hammer group at Aarhus University, Denmark.
81
+ Parts of the code have been contributed by
82
+
83
+ * Andreas Slavensky (Complementary Energy Generator)
84
+
85
+ # License
86
+
87
+ AGOX is released under the GPLv3 license.
88
+
89
+
agox-3.9.0/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # Atomistic Global Optimization X (AGOX)
2
+
3
+ ![logo](docs/source/logos/logo-carbon.gif)
4
+
5
+
6
+ AGOX is a package for global optimization of atomic system using e.g. the energy
7
+ calculated from density functional theory as the objective function. AGOX interfaces
8
+ with the Atomistic Simulation Environment (ASE) and as such supports any of
9
+ calculators in ASE as objectives for optimization.
10
+
11
+ AGOX is built to be flexible, consisting of modules that can be put together to
12
+ create an optimization algorithm, from simple random searches to Bayesian searches
13
+ guided by a surrogate model and many more.
14
+
15
+ Check out the documentation at
16
+
17
+ https://agox.gitlab.io/agox/
18
+
19
+ # Contributions & Issues
20
+
21
+ Feel free to make a fork and submit a merge request!
22
+
23
+ If you have an issue or a question please post it on the issue board!
24
+
25
+ # Authors
26
+
27
+ The main AGOX framework has been written by
28
+ * Mads-Peter Verner Christiansen
29
+ * Nikolaj Rønne
30
+ * Bjørk Hammer
31
+
32
+ with inspiration and help from current and previous members of the Hammer group at Aarhus University, Denmark.
33
+ Parts of the code have been contributed by
34
+
35
+ * Andreas Slavensky (Complementary Energy Generator)
36
+
37
+ # License
38
+
39
+ AGOX is released under the GPLv3 license.
40
+
41
+
@@ -0,0 +1,24 @@
1
+ import os
2
+
3
+ # Versioning
4
+ __version_info__ = (3, 9, 0)
5
+ __version__ = "{}.{}.{}".format(*__version_info__)
6
+
7
+ # Extra versioning - Mainly for managing Pypi releases.
8
+ version_extra = os.environ.get("AGOX_VERSION_EXTRA", None)
9
+ if version_extra:
10
+ __version__ = "{}{}".format(__version__, version_extra)
11
+
12
+ try: # When installing the package we don't need to actually import.
13
+ from agox.module import Module # noqa
14
+ from agox.observer import Observer
15
+ from agox.writer import Writer
16
+ from agox.cli.main import main
17
+ from agox.main.state import State
18
+ from agox.main.agox import AGOX
19
+
20
+ __all__ = ["Module", "Observer", "Writer", "State", "AGOX", "__version__", "main"]
21
+
22
+ except ImportError as e:
23
+ print(e)
24
+ pass
@@ -0,0 +1,207 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ import numpy as np
4
+
5
+ from agox.observer import Observer
6
+
7
+
8
+ class AcquisitorBaseClass(ABC, Observer):
9
+ """
10
+ Base-class for acquisitors.
11
+
12
+ Parameters
13
+ -----------
14
+ order : int
15
+ Order of the observer.
16
+ gets : dict
17
+ Dictionary of gets, passed to the agox.observer.Observer.
18
+ sets : dict
19
+ Dictionary of sets, passed to the agox.observer.Observer.
20
+ """
21
+
22
+ def __init__(
23
+ self,
24
+ order=4,
25
+ gets={"get_key": "candidates"},
26
+ sets={"set_key": "prioritized_candidates"},
27
+ surname="",
28
+ skip_function=None,
29
+ ):
30
+ Observer.__init__(self, gets=gets, sets=sets, order=order, surname=surname)
31
+ self.skip_function = skip_function
32
+
33
+ self.add_observer_method(
34
+ self.prioritize_candidates,
35
+ sets=self.sets[0],
36
+ gets=self.gets[0],
37
+ order=self.order[0],
38
+ handler_identifier="AGOX",
39
+ )
40
+
41
+ def _skip_function(self, candidate_list):
42
+ """
43
+ Default function defining probablility acquisitor returns nothing.
44
+
45
+ """
46
+ if self.skip_function is not None:
47
+ return self.skip_function(self, candidate_list)
48
+ else:
49
+ return False
50
+
51
+ @abstractmethod
52
+ def calculate_acquisition_function(self, candidates): # pragma: no cover
53
+ """
54
+ Implements the acquisition function.
55
+
56
+ Parameters
57
+ -----------
58
+ candidates : list
59
+ List of candidates that the acquisition function will be evaluated for.
60
+
61
+ Returns
62
+ --------
63
+ np.array
64
+ Numpy array of acquisition function values.
65
+
66
+ """
67
+ return acquisition_values
68
+
69
+ @Observer.observer_method
70
+ def prioritize_candidates(self, state):
71
+ """
72
+ Method that is attached to the AGOX iteration loop as an observer - not intended for use outside of that loop.
73
+
74
+ The method does the following:
75
+ 1. Gets candidates from the cache using 'get_key'.
76
+ 2. Removes 'None' from the candidate list.
77
+ 3. Calculates and sorts according to acquisition function.
78
+ 4. Adds the sorted candidates to cache with 'set_key'
79
+ 5. Prints information.
80
+
81
+ Parameters
82
+ -----------
83
+ state: agox.main.State
84
+ State object that contains the iteration data.
85
+ """
86
+
87
+ # Get data from the iteration data dict.
88
+ candidate_list = state.get_from_cache(self, self.get_key)
89
+ candidate_list = list(filter(None, candidate_list))
90
+
91
+ if len(candidate_list) > 0:
92
+ if self._skip_function(candidate_list):
93
+ state.add_to_cache(self, self.set_key, [], mode="a")
94
+ return
95
+
96
+ # Calculate acquisition function values and sort:
97
+ if self.do_check():
98
+ candidate_list, acquisition_values = self.sort_according_to_acquisition_function(candidate_list)
99
+ else:
100
+ acquisition_values = np.zeros(len(candidate_list))
101
+ # Add the prioritized candidates to the iteration data in append mode!
102
+ state.add_to_cache(self, self.set_key, candidate_list, mode="a")
103
+
104
+ self.print_information(candidate_list, acquisition_values)
105
+
106
+ ########################################################################################
107
+ # Default methods
108
+ ########################################################################################
109
+
110
+ def sort_according_to_acquisition_function(self, candidates):
111
+ """
112
+ Calculates acquisiton-function based on the implemeneted version calculate_acquisition_function.
113
+
114
+ Note: Sorted so that the candidate with the LOWEST acquisition function value is first.
115
+
116
+ Parameters
117
+ ------------
118
+ candidates: list
119
+ List of candidate objects.
120
+
121
+ Returns:
122
+ -----------
123
+ list
124
+ List of candidates sorted according to increasing acquisition value (lowest first).
125
+ np.array
126
+ Array of acquisition function values in the same order as the sorted list, i.e. increasing.
127
+
128
+ """
129
+ acquisition_values = self.calculate_acquisition_function(candidates)
130
+ sort_idx = np.argsort(acquisition_values)
131
+ sorted_candidates = [candidates[i] for i in sort_idx]
132
+ acquisition_values = acquisition_values[sort_idx]
133
+ [
134
+ candidate.add_meta_information("acquisition_value", acquisition_value)
135
+ for candidate, acquisition_value in zip(sorted_candidates, acquisition_values)
136
+ ]
137
+ return sorted_candidates, acquisition_values
138
+
139
+ def get_random_candidate(self):
140
+ DeprecationWarning("Will be removed in the future. Please use collector.get_random_candidate")
141
+ return self.collector.get_random_candidate()
142
+
143
+ def print_information(self, candidates, acquisition_values):
144
+ """
145
+ Printing function for analysis/debugging/sanity checking.
146
+
147
+ Parameters
148
+ -----------
149
+ candidates: list
150
+ List of candidate objects.
151
+ acquisition_values: np.array
152
+ Acquisition function value for each candidate in 'candidates'.
153
+ """
154
+
155
+ def get_acquisition_calculator(self):
156
+ """
157
+ Creates a calculator for the acquisiton function that can be used for e.g. relaxation.
158
+
159
+ Returns
160
+ --------
161
+ ASE Calculator
162
+ ASE calculator where the energy is the acquisition function and forces are the forces of the acquisition forces.
163
+ """
164
+ raise NotImplementedError("'get_acqusition_calculator' is not implemented for this acquisitor")
165
+
166
+
167
+ from ase.calculators.calculator import Calculator
168
+
169
+ from agox.module import Module
170
+
171
+
172
+ class AcquisitonCalculatorBaseClass(Calculator, Module):
173
+ name = "AcqusitionCalculator"
174
+
175
+ """
176
+ Base-class for calculators that are used for acquisition functions.
177
+
178
+ Parameters
179
+ -----------
180
+ model: agox.models.ABC_model.ModelBaseClass
181
+ A model that is used for the acquisition function.
182
+ kwargs: dict
183
+ Dictionary of keyword arguments passed to the Calculator-class.
184
+
185
+ """
186
+
187
+ def __init__(self, model, **kwargs):
188
+ Calculator.__init__(self, **kwargs)
189
+ Module.__init__(self)
190
+ self.model = model
191
+
192
+ def get_model_parameters(self):
193
+ parameters = self.model.get_model_parameters()
194
+ return parameters
195
+
196
+ def set_model_parameters(self, parameters):
197
+ self.model.set_model_parameters(parameters)
198
+
199
+ def get_iteration_number(self):
200
+ if hasattr(self, "get_iteration_counter"):
201
+ return self.get_iteration_counter()
202
+ else:
203
+ return self.iteration
204
+
205
+ @property
206
+ def ready_state(self):
207
+ return self.model.ready_state
@@ -0,0 +1,51 @@
1
+ import numpy as np
2
+ from scipy.stats import norm
3
+
4
+ from agox.acquisitors import AcquisitorBaseClass
5
+ from agox.observer import Observer
6
+
7
+
8
+ class ExpectedImprovementAcquisitor(AcquisitorBaseClass):
9
+ name = "EIAcquisitor"
10
+
11
+ def __init__(self, model, database, xi=0.01, **kwargs):
12
+ super().__init__(maximize=True, **kwargs)
13
+ self.model = model
14
+ self.xi = xi
15
+ self.lowest_energy = 10e10
16
+ self.add_observer_method(self.update, sets={}, gets={}, order=0, handler_identifier="database")
17
+ self.attach(database)
18
+
19
+ def calculate_acquisition_function(self, candidates):
20
+ fitness = np.zeros(len(candidates))
21
+ for i, candidate in enumerate(candidates):
22
+ E, sigma = self.model.predict_energy_and_uncertainty(candidate)
23
+ fitness[i] = self.acquisition_function(E, sigma)
24
+ candidate.add_meta_information("model_energy", E)
25
+ candidate.add_meta_information("uncertainty", sigma)
26
+ return fitness
27
+
28
+ def acquisition_function(self, E, sigma):
29
+ mu = E
30
+ mu_opt = self.lowest_energy
31
+ with np.errstate(divide="warn"):
32
+ imp = mu_opt - mu - self.xi
33
+ Z = imp / sigma
34
+ ei = imp * norm.cdf(Z) + sigma * norm.pdf(Z)
35
+ return ei
36
+
37
+ def print_information(self, candidates, acquisition_values):
38
+ if self.do_check():
39
+ for i, candidate in enumerate(candidates):
40
+ fitness = acquisition_values[i]
41
+ E = candidate.get_meta_information("model_energy")
42
+ sigma = candidate.get_meta_information("uncertainty")
43
+ self.writer(f"Candidate {i}: E = {E:8.3f}, s = {sigma:8.3f}, EI = {fitness:8.6f}")
44
+
45
+ @Observer.observer_method
46
+ def update(self, database, state):
47
+ self.lowest_energy = database.get_best_energy()
48
+ self.writer("Lowest energy: {}".format(self.lowest_energy))
49
+
50
+ def do_check(self, **kwargs):
51
+ return self.model.ready_state
@@ -0,0 +1,101 @@
1
+ import numpy as np
2
+ from ase.calculators.calculator import all_changes
3
+
4
+ from agox.acquisitors.ABC_acquisitor import AcquisitonCalculatorBaseClass, AcquisitorBaseClass
5
+
6
+
7
+ class LowerConfidenceBoundAcquisitor(AcquisitorBaseClass):
8
+ """
9
+ Lower Confidence Bound Acquisitor, using predictions and uncertainties from a model.
10
+
11
+ The acquisition function is given by
12
+
13
+ .. math::
14
+
15
+ F(x) = E(x) - \kappa \sigma(x)
16
+
17
+
18
+ Parameters
19
+ -----------
20
+
21
+ model: agox.models.ABC_model.ModelBaseClass
22
+ Model that is used for the acquisition function.
23
+ kappa: float
24
+ Constant that is multiplied with the uncertainty.
25
+ kwargs: dict
26
+ Dictionary of keyword arguments passed to the AcquisitorBaseClass.
27
+ """
28
+
29
+ name = "LCBAcquisitor"
30
+
31
+ def __init__(self, model, kappa=1, **kwargs):
32
+ super().__init__(**kwargs)
33
+ self.kappa = kappa
34
+ self.model = model
35
+
36
+ def calculate_acquisition_function(self, candidates):
37
+ fitness = np.zeros(len(candidates))
38
+
39
+ # Attach calculator and get model_energy
40
+ for i, candidate in enumerate(candidates):
41
+ E, sigma = self.model.predict_energy_and_uncertainty(candidate)
42
+ fitness[i] = self.acquisition_function(E, sigma)
43
+
44
+ # For printing:
45
+ candidate.add_meta_information("model_energy", E)
46
+ candidate.add_meta_information("uncertainty", sigma)
47
+
48
+ return fitness
49
+
50
+ def print_information(self, candidates, acquisition_values):
51
+
52
+ format_float = lambda f: f"{f:.3f}"
53
+
54
+ columns = ['Candidate', 'Energy', 'Uncertainty', 'Fitness', 'Generator']
55
+ rows = []
56
+ if self.model.ready_state:
57
+ for i, candidate in enumerate(candidates):
58
+ fitness = format_float(acquisition_values[i])
59
+ Emodel = format_float(candidate.get_meta_information("model_energy"))
60
+ sigma = format_float(candidate.get_meta_information("uncertainty"))
61
+ generator = candidate.get_meta_information("generator")
62
+ rows.append([str(i), Emodel, sigma, fitness, generator])
63
+
64
+ self.writer.write_table(columns, rows, show_lines=False, show_edge=False)
65
+
66
+ def get_acquisition_calculator(self):
67
+ return LowerConfidenceBoundCalculator(self.model, self.acquisition_function, self.acquisition_force)
68
+
69
+ def acquisition_function(self, E, sigma):
70
+ return E - self.kappa * sigma
71
+
72
+ def acquisition_force(self, E, F, sigma, sigma_force):
73
+ return F - self.kappa * sigma_force
74
+
75
+ def do_check(self, **kwargs):
76
+ return self.model.ready_state
77
+
78
+
79
+ class LowerConfidenceBoundCalculator(AcquisitonCalculatorBaseClass):
80
+ implemented_properties = ["energy", "forces"]
81
+
82
+ def __init__(self, model, acquisition_function, acquisition_force, **kwargs):
83
+ super().__init__(model, **kwargs)
84
+ self.acquisition_function = acquisition_function
85
+ self.acquisition_force = acquisition_force
86
+
87
+ def calculate(self, atoms=None, properties=["energy"], system_changes=all_changes):
88
+ super().calculate(atoms, properties, system_changes)
89
+
90
+ derivatives = "forces" in properties
91
+ model_data = self.model.converter(atoms, derivatives=derivatives)
92
+
93
+ E = self.model.predict_energy(atoms, **model_data)
94
+ sigma = self.model.predict_uncertainty(atoms, **model_data)
95
+ self.results["energy"] = self.acquisition_function(E, sigma)
96
+
97
+ if derivatives:
98
+ F = self.model.predict_forces(atoms, **model_data)
99
+ sigma_force = self.model.predict_uncertainty_forces(atoms, **model_data)
100
+
101
+ self.results["forces"] = self.acquisition_force(E, F, sigma, sigma_force)
@@ -0,0 +1,129 @@
1
+ from collections import Counter
2
+ from collections.abc import Hashable
3
+ from typing import List
4
+
5
+ import numpy as np
6
+ from numpy.typing import NDArray
7
+
8
+ from agox.acquisitors.LCB import LowerConfidenceBoundAcquisitor
9
+ from agox.candidates.standard import StandardCandidate
10
+ from agox.databases.ABC_database import DatabaseBaseClass
11
+ from agox.models.ABC_model import ModelBaseClass
12
+ from agox.models.descriptors import SpectralGraphDescriptor, Voronoi
13
+ from agox.models.descriptors.ABC_descriptor import DescriptorBaseClass
14
+ from agox.observer import Observer
15
+
16
+
17
+ class LCBPenaltyAcquisitor(LowerConfidenceBoundAcquisitor):
18
+ """Lower confidence bound acquisitor with a penalty term for repeated
19
+ descriptor values.
20
+
21
+ The acquisition function for selecting candidates is given by
22
+
23
+ .. math::
24
+
25
+ F(x) = E(x) - \kappa \sigma(x) + \alpha n_D(x),
26
+
27
+ where :math:`n_D` is the number of times the descriptor value already
28
+ exists for the candidates in the database, and :math:`\alpha` is the
29
+ penalty scale value.
30
+
31
+ The acquisition function for relaxing candidates is equivalent to that of
32
+ regular LCB, as the :math:`\alpha n_D(x)` term is discontinuous.
33
+
34
+ Parameters
35
+ ----------
36
+ model : ModelBaseClass
37
+ Model to obtain energy and uncertainty predictions from.
38
+ descriptor : DescriptorBaseClass
39
+ Descriptor to evaluate descriptor values from.
40
+ penalty_scale : float, optional
41
+ Scale value for penalty (in eV), by default 1.0
42
+ """
43
+
44
+ def __init__(self, model: ModelBaseClass, descriptor: DescriptorBaseClass, penalty_scale: float = 1.0, **kwargs):
45
+ super().__init__(model, **kwargs)
46
+
47
+ if not isinstance(descriptor, (SpectralGraphDescriptor, Voronoi)):
48
+ raise ValueError("Descriptor can currently only be graph-type descriptor")
49
+
50
+ self.descriptor = descriptor
51
+ self.penalty_scale = penalty_scale
52
+
53
+ self.descriptor_value_counts = Counter()
54
+
55
+ self.add_observer_method(
56
+ self.update_descriptor_values, gets={}, sets={}, order=self.order[0], handler_identifier="database"
57
+ )
58
+
59
+ def calculate_acquisition_function(self, candidates: List[StandardCandidate]) -> NDArray:
60
+ fitness = np.zeros(len(candidates))
61
+
62
+ for i, candidate in enumerate(candidates):
63
+ E, sigma = self.model.predict_energy_and_uncertainty(candidate)
64
+
65
+ descriptor_value = self._get_descriptor_value(candidate)
66
+ count = self.descriptor_value_counts[descriptor_value]
67
+ penalty = count * self.penalty_scale
68
+
69
+ fitness[i] = self.acquisition_function(E, sigma) + penalty
70
+
71
+ candidate.add_meta_information("model_energy", E)
72
+ candidate.add_meta_information("uncertainty", sigma)
73
+ candidate.add_meta_information("penalty", penalty)
74
+
75
+ return fitness
76
+
77
+ def print_information(self, candidates: List[StandardCandidate], acquisition_values: List[float]) -> None:
78
+ if self.model.ready_state:
79
+ for i, candidate in enumerate(candidates):
80
+ fitness = acquisition_values[i]
81
+ Emodel = candidate.get_meta_information("model_energy")
82
+ sigma = candidate.get_meta_information("uncertainty")
83
+ penalty = candidate.get_meta_information("penalty")
84
+ self.writer(
85
+ "Candidate: E={:8.3f}, s={:8.3f}, p={:7.2f}, F={:8.3f}".format(Emodel, sigma, penalty, fitness)
86
+ )
87
+
88
+ def attach_to_database(self, database: DatabaseBaseClass) -> None:
89
+ if not isinstance(database, DatabaseBaseClass):
90
+ raise TypeError(f"{database} is not a DatabaseBaseClass object")
91
+
92
+ print(f"{self.name}: Attaching to database: {database}")
93
+ self.attach(database)
94
+
95
+ @Observer.observer_method
96
+ def update_descriptor_values(self, database: DatabaseBaseClass, _) -> None:
97
+ """Update the internal counter of descriptor values present in the
98
+ database.
99
+ """
100
+ candidates = database.get_all_candidates()
101
+ new_candidates = candidates[sum(self.descriptor_value_counts) :]
102
+
103
+ for candidate in new_candidates:
104
+ descriptor_value = self._get_descriptor_value(candidate)
105
+ self.descriptor_value_counts[descriptor_value] += 1
106
+
107
+ s = "s" if len(new_candidates) != 1 else ""
108
+ self.writer(f"Added {len(new_candidates)} structure{s} to the descriptor list")
109
+
110
+ def _get_descriptor_value(self, candidate: StandardCandidate) -> Hashable:
111
+ """Obtain a hashable descriptor value to store in the internal counter.
112
+
113
+ Parameters
114
+ ----------
115
+ candidate : StandardCandidate
116
+ Candidate to evaluate the descriptor for.
117
+
118
+ Returns
119
+ -------
120
+ Hashable
121
+ Hashable descriptor value.
122
+ """
123
+ descriptor_value = self.descriptor.get_features(candidate)
124
+
125
+ # convert to hashable object
126
+ if isinstance(descriptor_value, np.ndarray):
127
+ descriptor_value = descriptor_value.data.tobytes()
128
+
129
+ return descriptor_value
@@ -0,0 +1,16 @@
1
+
2
+ from agox.acquisitors.LCB import LowerConfidenceBoundAcquisitor
3
+
4
+
5
+ class PowerLowerConfidenceBoundAcquisitor(LowerConfidenceBoundAcquisitor):
6
+ name = "PowerLowerConfindenceBoundAcquisitor"
7
+
8
+ def __init__(self, power=0, *args, **kwargs):
9
+ super().__init__(*args, **kwargs)
10
+ self.power = power
11
+
12
+ def acquisition_function(self, E, sigma):
13
+ return E - self.kappa * sigma**self.power
14
+
15
+ def acquisition_force(self, E, F, sigma, sigma_force):
16
+ return F - self.kappa * self.power * sigma ** (self.power - 1) * sigma_force