agox 2.2.2__tar.gz → 3.7.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 (623) hide show
  1. agox-3.7.0/MANIFEST.in +4 -0
  2. agox-3.7.0/PKG-INFO +81 -0
  3. agox-3.7.0/README.md +38 -0
  4. agox-3.7.0/agox/__init__.py +25 -0
  5. {agox-2.2.2 → agox-3.7.0}/agox/acquisitors/ABC_acquisitor.py +92 -61
  6. agox-3.7.0/agox/acquisitors/EI.py +53 -0
  7. {agox-2.2.2 → agox-3.7.0}/agox/acquisitors/LCB.py +43 -18
  8. {agox-2.2.2 → agox-3.7.0}/agox/acquisitors/LCB_power.py +1 -1
  9. agox-3.7.0/agox/acquisitors/__init__.py +28 -0
  10. {agox-2.2.2 → agox-3.7.0}/agox/candidates/ABC_candidate.py +147 -38
  11. agox-3.7.0/agox/candidates/__init__.py +12 -0
  12. {agox-2.2.2 → agox-3.7.0}/agox/candidates/standard.py +3 -1
  13. agox-3.7.0/agox/cli/__init__.py +6 -0
  14. agox-3.7.0/agox/cli/cli_analysis.py +152 -0
  15. agox-3.7.0/agox/cli/cli_convert.py +82 -0
  16. agox-3.7.0/agox/cli/cli_example.py +16 -0
  17. agox-3.7.0/agox/cli/cli_graph_sorting.py +134 -0
  18. agox-3.7.0/agox/cli/cli_notebook.py +116 -0
  19. agox-3.7.0/agox/cli/main.py +15 -0
  20. {agox-2.2.2 → agox-3.7.0}/agox/collectors/ABC_collector.py +49 -1
  21. agox-3.7.0/agox/collectors/__init__.py +11 -0
  22. agox-2.2.2/agox/collectors/ray_pool_collector.py → agox-3.7.0/agox/collectors/ray_collector.py +35 -16
  23. agox-3.7.0/agox/collectors/standard.py +77 -0
  24. {agox-2.2.2 → agox-3.7.0}/agox/databases/ABC_database.py +24 -1
  25. agox-3.7.0/agox/databases/__init__.py +14 -0
  26. {agox-2.2.2 → agox-3.7.0}/agox/databases/database.py +13 -8
  27. {agox-2.2.2 → agox-3.7.0}/agox/databases/database_concurrent.py +5 -2
  28. {agox-2.2.2 → agox-3.7.0}/agox/databases/database_utilities.py +3 -1
  29. {agox-2.2.2 → agox-3.7.0}/agox/environments/ABC_environment.py +55 -6
  30. agox-3.7.0/agox/environments/__init__.py +16 -0
  31. {agox-2.2.2 → agox-3.7.0}/agox/environments/environment.py +39 -4
  32. {agox-2.2.2 → agox-3.7.0}/agox/evaluators/ABC_evaluator.py +11 -0
  33. agox-3.7.0/agox/evaluators/__init__.py +16 -0
  34. {agox-2.2.2 → agox-3.7.0}/agox/evaluators/local_optimization.py +30 -2
  35. {agox-2.2.2 → agox-3.7.0}/agox/evaluators/single_point.py +11 -0
  36. {agox-2.2.2 → agox-3.7.0}/agox/generators/ABC_generator.py +84 -17
  37. agox-3.7.0/agox/generators/MD.py +154 -0
  38. agox-3.7.0/agox/generators/__init__.py +49 -0
  39. agox-3.7.0/agox/generators/block_generators/ABC_block.py +185 -0
  40. agox-3.7.0/agox/generators/block_generators/__init__.py +2 -0
  41. agox-3.7.0/agox/generators/block_generators/random.py +63 -0
  42. agox-3.7.0/agox/generators/block_generators/rattle.py +104 -0
  43. agox-3.7.0/agox/generators/ce_generator.py +132 -0
  44. {agox-2.2.2 → agox-3.7.0}/agox/generators/cog.py +19 -2
  45. agox-3.7.0/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +32 -0
  46. agox-3.7.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +57 -0
  47. agox-3.7.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +53 -0
  48. agox-3.7.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +61 -0
  49. agox-3.7.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +68 -0
  50. agox-3.7.0/agox/generators/complementary_energy/ce_calculators.py +234 -0
  51. {agox-2.2.2 → agox-3.7.0}/agox/generators/permutation.py +26 -20
  52. {agox-2.2.2 → agox-3.7.0}/agox/generators/random.py +33 -15
  53. {agox-2.2.2 → agox-3.7.0}/agox/generators/rattle.py +36 -25
  54. {agox-2.2.2 → agox-3.7.0}/agox/generators/replace.py +22 -10
  55. {agox-2.2.2 → agox-3.7.0}/agox/generators/reuse.py +15 -12
  56. agox-3.7.0/agox/generators/sampling.py +27 -0
  57. {agox-2.2.2 → agox-3.7.0}/agox/generators/steepest_descent.py +25 -10
  58. agox-3.7.0/agox/generators/symmetry.py +340 -0
  59. agox-3.7.0/agox/generators/symmetry_permutation.py +233 -0
  60. agox-3.7.0/agox/generators/symmetry_rattle.py +475 -0
  61. agox-3.7.0/agox/generators/symmetry_utils/symmetry_enforcer.py +1758 -0
  62. agox-3.7.0/agox/generators/symmetry_utils/symmetry_groups.py +933 -0
  63. agox-3.7.0/agox/helpers/__init__.py +5 -0
  64. {agox-2.2.2 → agox-3.7.0}/agox/helpers/gpaw_io.py +5 -4
  65. agox-3.7.0/agox/helpers/gpaw_subprocess.py +58 -0
  66. agox-3.7.0/agox/main.py +305 -0
  67. agox-3.7.0/agox/models/ABC_model.py +618 -0
  68. agox-3.7.0/agox/models/GPR/GPR.py +893 -0
  69. agox-3.7.0/agox/models/GPR/__init__.py +5 -0
  70. agox-3.7.0/agox/models/GPR/kernels/__init__.py +1 -0
  71. agox-3.7.0/agox/models/GPR/kernels/kernels.py +149 -0
  72. agox-3.7.0/agox/models/GPR/local_mean.py +44 -0
  73. agox-3.7.0/agox/models/GPR/priors/__init__.py +1 -0
  74. {agox-2.2.2/agox/models → agox-3.7.0/agox/models/GPR}/priors/repulsive.c +964 -720
  75. {agox-2.2.2/agox/models → agox-3.7.0/agox/models/GPR}/priors/repulsive.pyx +1 -1
  76. agox-3.7.0/agox/models/GPR/sGPR.py +872 -0
  77. agox-3.7.0/agox/models/GPR/sGPR_ensemble.py +114 -0
  78. agox-3.7.0/agox/models/__init__.py +9 -0
  79. agox-3.7.0/agox/models/descriptors/ABC_descriptor.py +155 -0
  80. {agox-2.2.2 → agox-3.7.0}/agox/models/descriptors/__init__.py +1 -0
  81. agox-3.7.0/agox/models/descriptors/acsf.py +176 -0
  82. agox-3.7.0/agox/models/descriptors/exponential_density.py +147 -0
  83. agox-3.7.0/agox/models/descriptors/fingerprint.py +130 -0
  84. {agox-2.2.2 → agox-3.7.0}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +492 -295
  85. agox-3.7.0/agox/models/descriptors/fingerprint_cython/setup.py +5 -0
  86. agox-3.7.0/agox/models/descriptors/scale_select_descriptor.py +79 -0
  87. {agox-2.2.2 → agox-3.7.0}/agox/models/descriptors/simple_fingerprint.py +22 -6
  88. agox-3.7.0/agox/models/descriptors/soap.py +166 -0
  89. {agox-2.2.2 → agox-3.7.0}/agox/models/descriptors/spectral_graph_descriptor.py +19 -5
  90. agox-3.7.0/agox/models/descriptors/type_descriptor.py +47 -0
  91. agox-3.7.0/agox/models/descriptors/voronoi.py +264 -0
  92. agox-3.7.0/agox/models/priors/constant.py +12 -0
  93. agox-3.7.0/agox/models/schnetpack/schnetpack.py +432 -0
  94. agox-3.7.0/agox/module.py +132 -0
  95. {agox-2.2.2 → agox-3.7.0}/agox/observer.py +21 -4
  96. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/ABC_postprocess.py +15 -0
  97. agox-3.7.0/agox/postprocessors/__init__.py +26 -0
  98. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/centering.py +17 -0
  99. agox-3.7.0/agox/postprocessors/disjoint_filtering.py +87 -0
  100. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/minimum_dist.py +18 -3
  101. agox-3.7.0/agox/postprocessors/optimizers/__init__.py +1 -0
  102. agox-3.7.0/agox/postprocessors/optimizers/safe_bfgs.py +31 -0
  103. agox-2.2.2/agox/postprocessors/ray_pool_relax.py → agox-3.7.0/agox/postprocessors/ray_relax.py +59 -12
  104. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/relax.py +27 -5
  105. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/wrap.py +8 -0
  106. {agox-2.2.2 → agox-3.7.0}/agox/samplers/ABC_sampler.py +72 -34
  107. agox-3.7.0/agox/samplers/__init__.py +27 -0
  108. agox-3.7.0/agox/samplers/fixed_sampler.py +39 -0
  109. {agox-2.2.2 → agox-3.7.0}/agox/samplers/genetic.py +22 -15
  110. {agox-2.2.2 → agox-3.7.0}/agox/samplers/kernel_similarity.py +54 -40
  111. agox-3.7.0/agox/samplers/kmeans.py +214 -0
  112. {agox-2.2.2 → agox-3.7.0}/agox/samplers/metropolis.py +18 -2
  113. {agox-2.2.2 → agox-3.7.0}/agox/samplers/parallel_tempering_sampler.py +17 -2
  114. {agox-2.2.2 → agox-3.7.0}/agox/samplers/spectral_graph.py +18 -1
  115. agox-3.7.0/agox/test/acquisitor_test/test_lcb.py +58 -0
  116. {agox-2.2.2 → agox-3.7.0}/agox/test/conftest.py +13 -0
  117. agox-3.7.0/agox/test/datasets/AgO-dataset.traj +0 -0
  118. agox-3.7.0/agox/test/datasets/databases/mos2_databases/db1.db +0 -0
  119. agox-3.7.0/agox/test/datasets/databases/mos2_databases/db2.db +0 -0
  120. {agox-2.2.2 → agox-3.7.0}/agox/test/descriptor_tests/soap_test.py +2 -2
  121. {agox-2.2.2 → agox-3.7.0}/agox/test/descriptor_tests/spectral_graph_test.py +2 -2
  122. agox-3.7.0/agox/test/empty_cache.py +24 -0
  123. agox-3.7.0/agox/test/generator_tests/conftest.py +87 -0
  124. agox-3.7.0/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter0.pckl +0 -0
  125. agox-3.7.0/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter1.pckl +0 -0
  126. agox-3.7.0/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter0.pckl +0 -0
  127. agox-3.7.0/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter1.pckl +0 -0
  128. agox-3.7.0/agox/test/generator_tests/for_docs/nonseeded_script.py +22 -0
  129. agox-3.7.0/agox/test/generator_tests/for_docs/seeded_script.py +31 -0
  130. agox-3.7.0/agox/test/generator_tests/for_docs/test_doc_scripts.py +14 -0
  131. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/generator_test.py +16 -13
  132. agox-3.7.0/agox/test/generator_tests/test_generators.py +55 -0
  133. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_random.py +2 -2
  134. agox-3.7.0/agox/test/generator_tests/test_symmetry.py +38 -0
  135. agox-3.7.0/agox/test/generator_tests/test_symmetry_2.py +60 -0
  136. agox-3.7.0/agox/test/generator_tests/test_symmetry_3.py +48 -0
  137. agox-3.7.0/agox/test/model_tests/descriptors_api.py +23 -0
  138. agox-3.7.0/agox/test/model_tests/expected_outputs/GlobalGPR_dataAgO_parameter0.pckl +0 -0
  139. agox-3.7.0/agox/test/model_tests/expected_outputs/GlobalGPR_dataB12_parameter0.pckl +0 -0
  140. agox-3.7.0/agox/test/model_tests/expected_outputs/GlobalGPR_dataC30_parameter0.pckl +0 -0
  141. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
  142. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataB12_parameter0.pckl +0 -0
  143. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataC30_parameter0.pckl +0 -0
  144. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataAgO_parameter0.pckl +0 -0
  145. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataB12_parameter0.pckl +0 -0
  146. agox-3.7.0/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataC30_parameter0.pckl +0 -0
  147. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
  148. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataB12_parameter0.pckl +0 -0
  149. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataC30_parameter0.pckl +0 -0
  150. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPR_dataAgO_parameter0.pckl +0 -0
  151. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPR_dataB12_parameter0.pckl +0 -0
  152. agox-3.7.0/agox/test/model_tests/expected_outputs/globalSparseGPR_dataC30_parameter0.pckl +0 -0
  153. agox-3.7.0/agox/test/model_tests/gpr_api.py +44 -0
  154. agox-3.7.0/agox/test/model_tests/load_api.py +25 -0
  155. {agox-2.2.2 → agox-3.7.0}/agox/test/model_tests/model_utils.py +16 -9
  156. agox-3.7.0/agox/test/model_tests/sgpr_api.py +41 -0
  157. agox-3.7.0/agox/test/model_tests/sgpr_api_forces.py +43 -0
  158. agox-3.7.0/agox/test/model_tests/test_api.py +26 -0
  159. {agox-2.2.2 → agox-3.7.0}/agox/test/model_tests/test_global_gpr.py +16 -10
  160. agox-3.7.0/agox/test/model_tests/test_global_sparse_gpr.py +92 -0
  161. agox-3.7.0/agox/test/model_tests/test_global_sparse_gpr_force_training.py +93 -0
  162. agox-3.7.0/agox/test/model_tests/test_load.py +65 -0
  163. agox-3.7.0/agox/test/model_tests/test_local_gpr.py +97 -0
  164. agox-3.7.0/agox/test/model_tests/test_local_gpr_force_training.py +98 -0
  165. agox-3.7.0/agox/test/model_tests/test_ray_gpr.py +83 -0
  166. agox-3.7.0/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +84 -0
  167. agox-3.7.0/agox/test/model_tests/test_ray_sgpr_global.py +86 -0
  168. agox-3.7.0/agox/test/model_tests/test_ray_sgpr_local.py +82 -0
  169. agox-3.7.0/agox/test/model_tests/test_sgpr_sparse_schedule.py +82 -0
  170. agox-3.7.0/agox/test/modifying_examples/confinement_examples.py +134 -0
  171. agox-3.7.0/agox/test/modifying_examples/plots/cluster_confinement.png +0 -0
  172. agox-3.7.0/agox/test/modifying_examples/plots/surface_cluster_confinement.png +0 -0
  173. agox-3.7.0/agox/test/modifying_examples/plots/surface_film_confinement.png +0 -0
  174. agox-3.7.0/agox/test/modifying_examples/plots/surface_toplayer_unc.png +0 -0
  175. agox-3.7.0/agox/test/modifying_examples/plots/two_d_environment.png +0 -0
  176. agox-3.7.0/agox/test/postprocessor_tests/disjoint_filtering_test.py +24 -0
  177. {agox-2.2.2 → agox-3.7.0}/agox/test/postprocessor_tests/model_results_test.py +19 -9
  178. {agox-2.2.2 → agox-3.7.0}/agox/test/postprocessor_tests/postprocessor_test.py +12 -10
  179. agox-3.7.0/agox/test/postprocessor_tests/test_survive_empty.py +34 -0
  180. agox-3.7.0/agox/test/run_tests/run_utils.py +71 -0
  181. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
  182. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0.db +0 -0
  183. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0_tracker.npz +0 -0
  184. {agox-2.2.2/agox/test/run_tests/expected_outputs/bh_test → agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_cluster_emt_test}/db0.db +0 -0
  185. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
  186. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0.db +0 -0
  187. agox-3.7.0/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0_tracker.npz +0 -0
  188. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +78 -0
  189. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +78 -0
  190. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +82 -0
  191. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +86 -0
  192. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +70 -0
  193. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +70 -0
  194. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +73 -0
  195. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +80 -0
  196. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +78 -0
  197. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +83 -0
  198. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +83 -0
  199. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +87 -0
  200. agox-3.7.0/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +91 -0
  201. agox-3.7.0/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +198 -0
  202. agox-3.7.0/agox/test/run_tests/tests_bh/test/confinement_plot_RattleGenerator.png +0 -0
  203. agox-3.7.0/agox/test/run_tests/tests_bh/test/db0.db +0 -0
  204. agox-3.7.0/agox/test/run_tests/tests_bh/test/db0_tracker.npz +0 -0
  205. agox-3.7.0/agox/test/run_tests/tests_bh/test/dbs/db0.db +0 -0
  206. agox-3.7.0/agox/test/run_tests/tests_bh/test/dbs/db0_tracker.npz +0 -0
  207. agox-3.7.0/agox/test/run_tests/tests_bh/test_bh.py +6 -0
  208. agox-3.7.0/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0.db +0 -0
  209. agox-3.7.0/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0_tracker.npz +0 -0
  210. agox-3.7.0/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0.db +0 -0
  211. agox-3.7.0/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0_tracker.npz +0 -0
  212. agox-2.2.2/agox/test/run_tests/script_bh.py → agox-3.7.0/agox/test/run_tests/tests_block/script_block_bh.py +41 -20
  213. agox-3.7.0/agox/test/run_tests/tests_block/script_block_rss.py +85 -0
  214. agox-3.7.0/agox/test/run_tests/tests_block/test_block_bh.py +5 -0
  215. agox-3.7.0/agox/test/run_tests/tests_block/test_block_rss.py +5 -0
  216. agox-3.7.0/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_ComplementaryEnergyGenerator.png +0 -0
  217. agox-3.7.0/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RandomGenerator.png +0 -0
  218. agox-3.7.0/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RattleGenerator.png +0 -0
  219. agox-3.7.0/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/db0.db +0 -0
  220. agox-3.7.0/agox/test/run_tests/tests_ce/expected_outputs/ce_gofee_test/db0.db +0 -0
  221. agox-3.7.0/agox/test/run_tests/tests_ce/script_ce_default_gofee.py +135 -0
  222. agox-3.7.0/agox/test/run_tests/tests_ce/script_ce_gofee.py +142 -0
  223. agox-3.7.0/agox/test/run_tests/tests_ce/test_ce_default_gofee.py +7 -0
  224. agox-3.7.0/agox/test/run_tests/tests_ce/test_ce_gofee.py +7 -0
  225. agox-3.7.0/agox/test/run_tests/tests_ea/expected_outputs/ea_test/db0.db +0 -0
  226. agox-3.7.0/agox/test/run_tests/tests_ea/expected_outputs/ea_test/population_5.traj +0 -0
  227. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_ea}/script_ea.py +48 -30
  228. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
  229. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
  230. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0.db +0 -0
  231. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0_tracker.npz +0 -0
  232. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
  233. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RattleGenerator.png +0 -0
  234. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/db0.db +0 -0
  235. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
  236. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
  237. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0.db +0 -0
  238. agox-3.7.0/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0_tracker.npz +0 -0
  239. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +126 -0
  240. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +126 -0
  241. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +130 -0
  242. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +134 -0
  243. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +119 -0
  244. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +119 -0
  245. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +122 -0
  246. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +129 -0
  247. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +127 -0
  248. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +132 -0
  249. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +132 -0
  250. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +136 -0
  251. agox-3.7.0/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +140 -0
  252. agox-3.7.0/agox/test/run_tests/tests_gofee/test_gofee.py +7 -0
  253. agox-3.7.0/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0.db +0 -0
  254. agox-3.7.0/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0_tracker.npz +0 -0
  255. agox-3.7.0/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +133 -0
  256. agox-3.7.0/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +7 -0
  257. agox-3.7.0/agox/test/run_tests/tests_lgpr_bh/expected_outputs/lgpr_bh_test/db0.db +0 -0
  258. agox-3.7.0/agox/test/run_tests/tests_lgpr_bh/script_lgpr_bh.py +114 -0
  259. agox-3.7.0/agox/test/run_tests/tests_lgpr_bh/test_lgpr_bh.py +10 -0
  260. agox-3.7.0/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/confinement_plot_MDgenerator.png +0 -0
  261. agox-3.7.0/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0.db +0 -0
  262. agox-3.7.0/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0_tracker.npz +0 -0
  263. agox-3.7.0/agox/test/run_tests/tests_md/script_md_bh.py +89 -0
  264. agox-3.7.0/agox/test/run_tests/tests_md/test_md_bh.py +5 -0
  265. agox-3.7.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/db0.db +0 -0
  266. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_pt}/script_pt.py +46 -27
  267. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_2d_test/confinement_plot_RandomGenerator.png +0 -0
  268. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_rss}/expected_outputs/rss_2d_test/db0.db +0 -0
  269. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
  270. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0.db +0 -0
  271. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0_tracker.npz +0 -0
  272. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
  273. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0.db +0 -0
  274. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0_tracker.npz +0 -0
  275. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
  276. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0.db +0 -0
  277. agox-3.7.0/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0_tracker.npz +0 -0
  278. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_rss}/script_rss_2d.py +38 -29
  279. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +75 -0
  280. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +75 -0
  281. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +79 -0
  282. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +83 -0
  283. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +68 -0
  284. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +68 -0
  285. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +71 -0
  286. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +78 -0
  287. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +77 -0
  288. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +83 -0
  289. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +82 -0
  290. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +86 -0
  291. agox-3.7.0/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +90 -0
  292. agox-3.7.0/agox/test/run_tests/tests_rss/test.py +1 -0
  293. agox-3.7.0/agox/test/run_tests/tests_rss/test_rss.py +7 -0
  294. agox-2.2.2/agox/test/run_tests/script_lgpr_bh.py → agox-3.7.0/agox/test/run_tests/tests_schnet/script_schnet_bh.py +44 -29
  295. agox-3.7.0/agox/test/run_tests/tests_schnet/test_schnet_bh.py +9 -0
  296. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
  297. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  298. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0.db +0 -0
  299. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0_tracker.npz +0 -0
  300. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
  301. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  302. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0.db +0 -0
  303. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0_tracker.npz +0 -0
  304. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
  305. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0.db +0 -0
  306. agox-3.7.0/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0_tracker.npz +0 -0
  307. agox-3.7.0/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +130 -0
  308. agox-3.7.0/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +151 -0
  309. agox-2.2.2/agox/test/run_tests/script_rss.py → agox-3.7.0/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +30 -19
  310. agox-3.7.0/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +7 -0
  311. agox-3.7.0/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +7 -0
  312. agox-3.7.0/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +7 -0
  313. agox-3.7.0/agox/test/sampler_tests/sampler_test.py +119 -0
  314. {agox-2.2.2 → agox-3.7.0}/agox/test/test_utils.py +16 -4
  315. agox-3.7.0/agox/test/utils_tests/cache_test.py +25 -0
  316. agox-3.7.0/agox/test/utils_tests/plot_tests/colors_test.py +161 -0
  317. agox-3.7.0/agox/test/utils_tests/plot_tests/plot_atoms_test.py +115 -0
  318. agox-3.7.0/agox/test/utils_tests/plot_tests/plot_cell_test.py +31 -0
  319. agox-3.7.0/agox/test/utils_tests/plot_tests/utils_test.py +23 -0
  320. agox-3.7.0/agox/test/utils_tests/test_feature_dist_filter.py +26 -0
  321. agox-3.7.0/agox/test/utils_tests/test_filters.py +17 -0
  322. agox-3.7.0/agox/test/utils_tests/test_sparsifiers.py +38 -0
  323. agox-3.7.0/agox/test/utils_tests/tracker_test.py +94 -0
  324. agox-2.2.2/agox/logger.py → agox-3.7.0/agox/tracker.py +171 -181
  325. agox-3.7.0/agox/utils/__init__.py +1 -0
  326. agox-3.7.0/agox/utils/batch_analysis.py +843 -0
  327. agox-3.7.0/agox/utils/cache.py +74 -0
  328. agox-3.7.0/agox/utils/constraints/box_constraint.py +173 -0
  329. {agox-2.2.2 → agox-3.7.0}/agox/utils/convert_database.py +8 -2
  330. agox-3.7.0/agox/utils/decorators.py +20 -0
  331. agox-3.7.0/agox/utils/filters/ABC_filter.py +102 -0
  332. agox-3.7.0/agox/utils/filters/__init__.py +26 -0
  333. agox-3.7.0/agox/utils/filters/all.py +25 -0
  334. agox-3.7.0/agox/utils/filters/energy.py +34 -0
  335. agox-3.7.0/agox/utils/filters/feature_distance.py +93 -0
  336. agox-3.7.0/agox/utils/filters/filter.py +57 -0
  337. agox-3.7.0/agox/utils/filters/kmeans_energy.py +57 -0
  338. agox-3.7.0/agox/utils/filters/none.py +25 -0
  339. agox-3.7.0/agox/utils/filters/random.py +29 -0
  340. agox-3.7.0/agox/utils/filters/sparse_filter.py +73 -0
  341. agox-3.7.0/agox/utils/filters/voronoi.py +119 -0
  342. agox-3.7.0/agox/utils/graph_sorting.py +136 -0
  343. {agox-2.2.2 → agox-3.7.0}/agox/utils/jupyter_interactive.py +9 -19
  344. agox-3.7.0/agox/utils/metrics/__init__.py +17 -0
  345. agox-3.7.0/agox/utils/metrics/calibration.py +285 -0
  346. agox-3.7.0/agox/utils/metrics/metrics.py +22 -0
  347. agox-3.7.0/agox/utils/numerical_derivative.py +25 -0
  348. agox-3.7.0/agox/utils/plot/__init__.py +4 -0
  349. agox-3.7.0/agox/utils/plot/colors.py +267 -0
  350. agox-3.7.0/agox/utils/plot/plot_atoms.py +150 -0
  351. agox-3.7.0/agox/utils/plot/plot_cell.py +82 -0
  352. agox-3.7.0/agox/utils/plot/plot_parity.py +167 -0
  353. agox-3.7.0/agox/utils/plot/utils.py +60 -0
  354. agox-3.7.0/agox/utils/ray/__init__.py +4 -0
  355. agox-3.7.0/agox/utils/ray/actor.py +68 -0
  356. agox-3.7.0/agox/utils/ray/pool.py +567 -0
  357. agox-3.7.0/agox/utils/ray/pool_startup.py +83 -0
  358. agox-3.7.0/agox/utils/ray/pool_user.py +191 -0
  359. agox-3.7.0/agox/utils/ray/startup.py +160 -0
  360. agox-3.7.0/agox/utils/ray/testing/__init__.py +2 -0
  361. agox-3.7.0/agox/utils/ray/testing/log_reader.py +103 -0
  362. agox-3.7.0/agox/utils/ray/testing/slurm_test_functions.py +81 -0
  363. agox-3.7.0/agox/utils/sparsifiers/ABC_sparsifier.py +125 -0
  364. agox-3.7.0/agox/utils/sparsifiers/CUR.py +23 -0
  365. agox-3.7.0/agox/utils/sparsifiers/CUR_old.py +24 -0
  366. agox-3.7.0/agox/utils/sparsifiers/MBkmeans.py +69 -0
  367. agox-3.7.0/agox/utils/sparsifiers/__init__.py +10 -0
  368. agox-3.7.0/agox/utils/sparsifiers/random.py +18 -0
  369. {agox-2.2.2 → agox-3.7.0}/agox/writer.py +33 -7
  370. agox-3.7.0/agox.egg-info/PKG-INFO +81 -0
  371. agox-3.7.0/agox.egg-info/SOURCES.txt +459 -0
  372. agox-3.7.0/agox.egg-info/entry_points.txt +3 -0
  373. agox-3.7.0/agox.egg-info/requires.txt +27 -0
  374. agox-3.7.0/pyproject.toml +67 -0
  375. agox-3.7.0/setup.cfg +4 -0
  376. agox-3.7.0/setup.py +19 -0
  377. agox-2.2.2/MANIFEST.in +0 -5
  378. agox-2.2.2/PKG-INFO +0 -39
  379. agox-2.2.2/README.md +0 -24
  380. agox-2.2.2/agox/__init__.py +0 -6
  381. agox-2.2.2/agox/__version__.py +0 -2
  382. agox-2.2.2/agox/acquisitors/__init__.py +0 -4
  383. agox-2.2.2/agox/candidates/__init__.py +0 -2
  384. agox-2.2.2/agox/collectors/__init__.py +0 -3
  385. agox-2.2.2/agox/collectors/ray_collector.py +0 -114
  386. agox-2.2.2/agox/collectors/standard.py +0 -66
  387. agox-2.2.2/agox/databases/__init__.py +0 -3
  388. agox-2.2.2/agox/environments/__init__.py +0 -3
  389. agox-2.2.2/agox/evaluators/__init__.py +0 -3
  390. agox-2.2.2/agox/generators/__init__.py +0 -8
  391. agox-2.2.2/agox/generators/sampling.py +0 -18
  392. agox-2.2.2/agox/helpers/helper_observers/parameter_updater.py +0 -57
  393. agox-2.2.2/agox/helpers/plot_confinement.py +0 -108
  394. agox-2.2.2/agox/helpers/post_analysis_methods.py +0 -197
  395. agox-2.2.2/agox/main.py +0 -241
  396. agox-2.2.2/agox/models/ABC_model.py +0 -388
  397. agox-2.2.2/agox/models/GPR.py +0 -396
  398. agox-2.2.2/agox/models/__init__.py +0 -4
  399. agox-2.2.2/agox/models/descriptors/ABC_descriptor.py +0 -183
  400. agox-2.2.2/agox/models/descriptors/average_soap.py +0 -86
  401. agox-2.2.2/agox/models/descriptors/fingerprint.py +0 -23
  402. agox-2.2.2/agox/models/descriptors/soap.py +0 -64
  403. agox-2.2.2/agox/models/gaussian_process/GPR.py +0 -406
  404. agox-2.2.2/agox/models/gaussian_process/delta_functions_multi/delta.c +0 -10953
  405. agox-2.2.2/agox/models/gaussian_process/delta_functions_multi/delta.pyx +0 -221
  406. agox-2.2.2/agox/models/gaussian_process/featureCalculators_multi/angular_fingerprintFeature_cy.c +0 -17874
  407. agox-2.2.2/agox/models/gaussian_process/featureCalculators_multi/angular_fingerprintFeature_cy.pyx +0 -738
  408. agox-2.2.2/agox/models/gaussian_process/funcsigs.py +0 -815
  409. agox-2.2.2/agox/models/gaussian_process/kernels.py +0 -1437
  410. agox-2.2.2/agox/models/local_GPR/LSGPR.py +0 -571
  411. agox-2.2.2/agox/models/local_GPR/LSGPR_CUR.py +0 -27
  412. agox-2.2.2/agox/models/local_GPR/LSGPR_MBKMeans.py +0 -114
  413. agox-2.2.2/agox/models/local_GPR/LSGPR_MBKMeans_Noise.py +0 -22
  414. agox-2.2.2/agox/models/local_GPR/sparsifiers/ABC_sparsifier.py +0 -19
  415. agox-2.2.2/agox/models/local_GPR/sparsifiers/__init__.py +0 -1
  416. agox-2.2.2/agox/models/local_GPR/sparsifiers/latest.py +0 -16
  417. agox-2.2.2/agox/module.py +0 -69
  418. agox-2.2.2/agox/postprocessors/__init__.py +0 -7
  419. agox-2.2.2/agox/postprocessors/mpi_relax.py +0 -410
  420. agox-2.2.2/agox/postprocessors/ray_relax.py +0 -145
  421. agox-2.2.2/agox/samplers/__init__.py +0 -7
  422. agox-2.2.2/agox/samplers/kmeans.py +0 -145
  423. agox-2.2.2/agox/test/.coverage +0 -0
  424. agox-2.2.2/agox/test/__pycache__/__init__.cpython-38.pyc +0 -0
  425. agox-2.2.2/agox/test/__pycache__/conftest.cpython-38-pytest-7.2.1.pyc +0 -0
  426. agox-2.2.2/agox/test/__pycache__/test_featureCalculators_multi.cpython-38-pytest-7.2.1.pyc +0 -0
  427. agox-2.2.2/agox/test/__pycache__/test_utils.cpython-38-pytest-7.2.1.pyc +0 -0
  428. agox-2.2.2/agox/test/__pycache__/test_utils.cpython-38.pyc +0 -0
  429. agox-2.2.2/agox/test/database_tests/__pycache__/database_test.cpython-38-pytest-7.2.1.pyc +0 -0
  430. agox-2.2.2/agox/test/datasets/databases/mos2_databases/BA_data/best_energies.pckl +0 -0
  431. agox-2.2.2/agox/test/datasets/databases/mos2_databases/BA_data/best_structure.pckl +0 -0
  432. agox-2.2.2/agox/test/datasets/databases/mos2_databases/BA_data/energies.pckl +0 -0
  433. agox-2.2.2/agox/test/datasets/databases/mos2_databases/BA_data/names.pckl +0 -0
  434. agox-2.2.2/agox/test/datasets/databases/mos2_databases/BA_data/order.pckl +0 -0
  435. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/BA_data/best_energies.pckl +0 -0
  436. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/BA_data/best_structure.pckl +0 -0
  437. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/BA_data/energies.pckl +0 -0
  438. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/BA_data/names.pckl +0 -0
  439. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/BA_data/order.pckl +0 -0
  440. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db1.db +0 -0
  441. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db10.db +0 -0
  442. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db2.db +0 -0
  443. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db3.db +0 -0
  444. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db4.db +0 -0
  445. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db5.db +0 -0
  446. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db6.db +0 -0
  447. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db7.db +0 -0
  448. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db8.db +0 -0
  449. agox-2.2.2/agox/test/datasets/databases/mos2_databases/dataset/db9.db +0 -0
  450. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db1.db +0 -0
  451. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db10.db +0 -0
  452. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db2.db +0 -0
  453. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db3.db +0 -0
  454. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db4.db +0 -0
  455. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db5.db +0 -0
  456. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db6.db +0 -0
  457. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db7.db +0 -0
  458. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db8.db +0 -0
  459. agox-2.2.2/agox/test/datasets/databases/mos2_databases/db9.db +0 -0
  460. agox-2.2.2/agox/test/descriptor_tests/__pycache__/soap_test.cpython-38-pytest-7.2.1.pyc +0 -0
  461. agox-2.2.2/agox/test/descriptor_tests/__pycache__/spectral_graph_test.cpython-38-pytest-7.2.1.pyc +0 -0
  462. agox-2.2.2/agox/test/environment_tests/__pycache__/environment_test.cpython-38-pytest-7.2.1.pyc +0 -0
  463. agox-2.2.2/agox/test/generator_tests/__pycache__/generator_test.cpython-38-pytest-7.2.1.pyc +0 -0
  464. agox-2.2.2/agox/test/generator_tests/__pycache__/generator_utils.cpython-38.pyc +0 -0
  465. agox-2.2.2/agox/test/generator_tests/__pycache__/test_cog.cpython-38-pytest-7.2.1.pyc +0 -0
  466. agox-2.2.2/agox/test/generator_tests/__pycache__/test_permutation.cpython-38-pytest-7.2.1.pyc +0 -0
  467. agox-2.2.2/agox/test/generator_tests/__pycache__/test_random.cpython-38-pytest-7.2.1.pyc +0 -0
  468. agox-2.2.2/agox/test/generator_tests/__pycache__/test_rattle.cpython-38-pytest-7.2.1.pyc +0 -0
  469. agox-2.2.2/agox/test/generator_tests/__pycache__/test_replace.cpython-38-pytest-7.2.1.pyc +0 -0
  470. agox-2.2.2/agox/test/generator_tests/__pycache__/test_sampling.cpython-38-pytest-7.2.1.pyc +0 -0
  471. agox-2.2.2/agox/test/generator_tests/__pycache__/test_steepest_descent.cpython-38-pytest-7.2.1.pyc +0 -0
  472. agox-2.2.2/agox/test/model_tests/__pycache__/__init__.cpython-38.pyc +0 -0
  473. agox-2.2.2/agox/test/model_tests/__pycache__/model_utils.cpython-38.pyc +0 -0
  474. agox-2.2.2/agox/test/model_tests/__pycache__/test_global_gpr.cpython-38-pytest-7.2.1.pyc +0 -0
  475. agox-2.2.2/agox/test/model_tests/__pycache__/test_local_gpr.cpython-38-pytest-7.2.1.pyc +0 -0
  476. agox-2.2.2/agox/test/model_tests/__pycache__/test_local_gpr_kmeans.cpython-38-pytest-7.2.1.pyc +0 -0
  477. agox-2.2.2/agox/test/model_tests/__pycache__/test_new_global_gpr.cpython-38-pytest-7.2.1.pyc +0 -0
  478. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelCUR_dataAgO_parameter0.pckl +0 -0
  479. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelCUR_dataB12_parameter0.pckl +0 -0
  480. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelCUR_dataC30_parameter0.pckl +0 -0
  481. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelMBKMeans_dataAgO_parameter0.pckl +0 -0
  482. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelMBKMeans_dataB12_parameter0.pckl +0 -0
  483. agox-2.2.2/agox/test/model_tests/expected_outputs/LSGPRModelMBKMeans_dataC30_parameter0.pckl +0 -0
  484. agox-2.2.2/agox/test/model_tests/expected_outputs/ModelGPR_dataAgO_parameter0.pckl +0 -0
  485. agox-2.2.2/agox/test/model_tests/expected_outputs/ModelGPR_dataB12_parameter0.pckl +0 -0
  486. agox-2.2.2/agox/test/model_tests/expected_outputs/ModelGPR_dataC30_parameter0.pckl +0 -0
  487. agox-2.2.2/agox/test/model_tests/test_local_gpr.py +0 -79
  488. agox-2.2.2/agox/test/model_tests/test_local_gpr_kmeans.py +0 -68
  489. agox-2.2.2/agox/test/postprocessor_tests/__pycache__/model_results_test.cpython-38-pytest-7.2.1.pyc +0 -0
  490. agox-2.2.2/agox/test/postprocessor_tests/__pycache__/postprocessor_test.cpython-38-pytest-7.2.1.pyc +0 -0
  491. agox-2.2.2/agox/test/run_tests/__pycache__/run_utils.cpython-38.pyc +0 -0
  492. agox-2.2.2/agox/test/run_tests/__pycache__/script_bh.cpython-38.pyc +0 -0
  493. agox-2.2.2/agox/test/run_tests/__pycache__/script_ea.cpython-38.pyc +0 -0
  494. agox-2.2.2/agox/test/run_tests/__pycache__/script_gofee.cpython-38.pyc +0 -0
  495. agox-2.2.2/agox/test/run_tests/__pycache__/script_lgpr_bh.cpython-38.pyc +0 -0
  496. agox-2.2.2/agox/test/run_tests/__pycache__/script_pt.cpython-38.pyc +0 -0
  497. agox-2.2.2/agox/test/run_tests/__pycache__/script_rss.cpython-38.pyc +0 -0
  498. agox-2.2.2/agox/test/run_tests/__pycache__/test_bh.cpython-38-pytest-7.2.1.pyc +0 -0
  499. agox-2.2.2/agox/test/run_tests/__pycache__/test_ea.cpython-38-pytest-7.2.1.pyc +0 -0
  500. agox-2.2.2/agox/test/run_tests/__pycache__/test_gofee.cpython-38-pytest-7.2.1.pyc +0 -0
  501. agox-2.2.2/agox/test/run_tests/__pycache__/test_lgpr_bh.cpython-38-pytest-7.2.1.pyc +0 -0
  502. agox-2.2.2/agox/test/run_tests/__pycache__/test_pt.cpython-38-pytest-7.2.1.pyc +0 -0
  503. agox-2.2.2/agox/test/run_tests/__pycache__/test_rss.cpython-38-pytest-7.2.1.pyc +0 -0
  504. agox-2.2.2/agox/test/run_tests/expected_outputs/bh_test/log.pckl +0 -0
  505. agox-2.2.2/agox/test/run_tests/expected_outputs/ea_test/db0.db +0 -0
  506. agox-2.2.2/agox/test/run_tests/expected_outputs/ea_test/log.pckl +0 -0
  507. agox-2.2.2/agox/test/run_tests/expected_outputs/ea_test/population_5.traj +0 -0
  508. agox-2.2.2/agox/test/run_tests/expected_outputs/gofee_test/db0.db +0 -0
  509. agox-2.2.2/agox/test/run_tests/expected_outputs/gofee_test/log.pckl +0 -0
  510. agox-2.2.2/agox/test/run_tests/expected_outputs/lgpr_bh_test/db0.db +0 -0
  511. agox-2.2.2/agox/test/run_tests/expected_outputs/lgpr_bh_test/log.pckl +0 -0
  512. agox-2.2.2/agox/test/run_tests/expected_outputs/pt_test/db0.db +0 -0
  513. agox-2.2.2/agox/test/run_tests/expected_outputs/pt_test/log.pckl +0 -0
  514. agox-2.2.2/agox/test/run_tests/expected_outputs/rss_test/db0.db +0 -0
  515. agox-2.2.2/agox/test/run_tests/expected_outputs/rss_test/log.pckl +0 -0
  516. agox-2.2.2/agox/test/run_tests/run_utils.py +0 -46
  517. agox-2.2.2/agox/test/run_tests/script_gofee.py +0 -92
  518. agox-2.2.2/agox/test/run_tests/test_bh.py +0 -5
  519. agox-2.2.2/agox/test/run_tests/test_gofee.py +0 -5
  520. agox-2.2.2/agox/test/run_tests/test_lgpr_bh.py +0 -5
  521. agox-2.2.2/agox/test/run_tests/test_rss.py +0 -5
  522. agox-2.2.2/agox/test/run_tests/test_rss_2d.py +0 -5
  523. agox-2.2.2/agox/test/sampler_tests/__pycache__/sampler_test.cpython-38-pytest-7.2.1.pyc +0 -0
  524. agox-2.2.2/agox/test/sampler_tests/sampler_test.py +0 -74
  525. agox-2.2.2/agox/test/test_featureCalculators_multi.py +0 -51
  526. agox-2.2.2/agox/test/utils_tests/__pycache__/analysis_test.cpython-38-pytest-7.2.1.pyc +0 -0
  527. agox-2.2.2/agox/utils/batch_analysis.py +0 -910
  528. agox-2.2.2/agox/utils/constraints/__init__.py +0 -1
  529. agox-2.2.2/agox/utils/constraints/box_constraint.py +0 -92
  530. agox-2.2.2/agox/utils/notebook_batch_analysis.py +0 -164
  531. agox-2.2.2/agox/utils/ray_utils.py +0 -654
  532. agox-2.2.2/agox.egg-info/PKG-INFO +0 -39
  533. agox-2.2.2/agox.egg-info/SOURCES.txt +0 -312
  534. agox-2.2.2/agox.egg-info/entry_points.txt +0 -3
  535. agox-2.2.2/agox.egg-info/requires.txt +0 -11
  536. agox-2.2.2/pyproject.toml +0 -3
  537. agox-2.2.2/setup.cfg +0 -16
  538. agox-2.2.2/setup.py +0 -67
  539. {agox-2.2.2 → agox-3.7.0}/LICENSE.txt +0 -0
  540. {agox-2.2.2 → agox-3.7.0}/agox/databases/concurrent_ordered.py +0 -0
  541. {agox-2.2.2 → agox-3.7.0}/agox/evaluators/rattle.py +0 -0
  542. {agox-2.2.2/agox/helpers/helper_observers → agox-3.7.0/agox/generators/complementary_energy}/__init__.py +0 -0
  543. {agox-2.2.2/agox/models/gaussian_process → agox-3.7.0/agox/generators/complementary_energy/attractor_methods}/__init__.py +0 -0
  544. {agox-2.2.2/agox/models/local_GPR → agox-3.7.0/agox/generators/symmetry_utils}/__init__.py +0 -0
  545. {agox-2.2.2 → agox-3.7.0}/agox/helpers/confinement.py +0 -0
  546. {agox-2.2.2/agox/models → agox-3.7.0/agox/models/GPR}/priors/setup.py +0 -0
  547. /agox-2.2.2/agox/test/datasets/AgO-dataset.traj → /agox-3.7.0/agox/models/datasets/Ag5O3-dataset.traj +0 -0
  548. {agox-2.2.2 → agox-3.7.0}/agox/models/datasets/__init__.py +0 -0
  549. {agox-2.2.2 → agox-3.7.0}/agox/models/datasets/loader.py +0 -0
  550. {agox-2.2.2/agox/models/priors → agox-3.7.0/agox/models/descriptors/fingerprint_cython}/__init__.py +0 -0
  551. {agox-2.2.2 → agox-3.7.0}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.pyx +0 -0
  552. {agox-2.2.2/agox/test → agox-3.7.0/agox/models/schnetpack}/__init__.py +0 -0
  553. {agox-2.2.2 → agox-3.7.0}/agox/postprocessors/immunizer.py +0 -0
  554. {agox-2.2.2 → agox-3.7.0}/agox/test/.coveragerc +0 -0
  555. {agox-2.2.2/agox/test/model_tests → agox-3.7.0/agox/test}/__init__.py +0 -0
  556. {agox-2.2.2 → agox-3.7.0}/agox/test/database_tests/database_test.py +0 -0
  557. {agox-2.2.2 → agox-3.7.0}/agox/test/datasets/B12-dataset.traj +0 -0
  558. {agox-2.2.2 → agox-3.7.0}/agox/test/datasets/C30-dataset.traj +0 -0
  559. {agox-2.2.2 → agox-3.7.0}/agox/test/descriptor_tests/expected_outputs/SOAP_AgO.pckl +0 -0
  560. {agox-2.2.2 → agox-3.7.0}/agox/test/descriptor_tests/expected_outputs/SOAP_B12.pckl +0 -0
  561. {agox-2.2.2 → agox-3.7.0}/agox/test/descriptor_tests/expected_outputs/SOAP_C30.pckl +0 -0
  562. {agox-2.2.2 → agox-3.7.0}/agox/test/environment_tests/environment_test.py +0 -0
  563. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter0.pckl +0 -0
  564. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter1.pckl +0 -0
  565. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter2.pckl +0 -0
  566. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter0.pckl +0 -0
  567. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter1.pckl +0 -0
  568. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter2.pckl +0 -0
  569. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter0.pckl +0 -0
  570. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter1.pckl +0 -0
  571. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter2.pckl +0 -0
  572. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter0.pckl +0 -0
  573. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter1.pckl +0 -0
  574. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter2.pckl +0 -0
  575. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter0.pckl +0 -0
  576. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter1.pckl +0 -0
  577. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter2.pckl +0 -0
  578. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter0.pckl +0 -0
  579. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter1.pckl +0 -0
  580. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter2.pckl +0 -0
  581. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter0.pckl +0 -0
  582. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter1.pckl +0 -0
  583. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter2.pckl +0 -0
  584. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter0.pckl +0 -0
  585. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter1.pckl +0 -0
  586. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter2.pckl +0 -0
  587. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter0.pckl +0 -0
  588. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter1.pckl +0 -0
  589. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter2.pckl +0 -0
  590. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter0.pckl +0 -0
  591. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter1.pckl +0 -0
  592. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter2.pckl +0 -0
  593. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter0.pckl +0 -0
  594. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter1.pckl +0 -0
  595. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter2.pckl +0 -0
  596. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter0.pckl +0 -0
  597. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter1.pckl +0 -0
  598. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter2.pckl +0 -0
  599. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter0.pckl +0 -0
  600. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter1.pckl +0 -0
  601. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter2.pckl +0 -0
  602. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataAgO_parameter0.pckl +0 -0
  603. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataB12_parameter0.pckl +0 -0
  604. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataC30_parameter0.pckl +0 -0
  605. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataAgO_parameter0.pckl +0 -0
  606. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataB12_parameter0.pckl +0 -0
  607. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataC30_parameter0.pckl +0 -0
  608. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/generator_utils.py +0 -0
  609. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_cog.py +0 -0
  610. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_permutation.py +0 -0
  611. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_rattle.py +0 -0
  612. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_replace.py +0 -0
  613. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_sampling.py +0 -0
  614. {agox-2.2.2 → agox-3.7.0}/agox/test/generator_tests/test_steepest_descent.py +0 -0
  615. {agox-2.2.2/agox/utils → agox-3.7.0/agox/test/model_tests}/__init__.py +0 -0
  616. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_ea}/test_ea.py +0 -0
  617. {agox-2.2.2/agox/test/run_tests → agox-3.7.0/agox/test/run_tests/tests_pt}/test_pt.py +0 -0
  618. {agox-2.2.2 → agox-3.7.0}/agox/test/utils_tests/analysis_test.py +0 -0
  619. {agox-2.2.2/agox/helpers → agox-3.7.0/agox/utils/constraints}/__init__.py +0 -0
  620. {agox-2.2.2 → agox-3.7.0}/agox/utils/data_selection.py +0 -0
  621. {agox-2.2.2 → agox-3.7.0}/agox/utils/matplotlib_utils.py +0 -0
  622. {agox-2.2.2 → agox-3.7.0}/agox.egg-info/dependency_links.txt +0 -0
  623. {agox-2.2.2 → agox-3.7.0}/agox.egg-info/top_level.txt +0 -0
agox-3.7.0/MANIFEST.in ADDED
@@ -0,0 +1,4 @@
1
+ recursive-include agox/test *
2
+ include agox/models/datasets/*.traj
3
+ global-include *.pyx
4
+
agox-3.7.0/PKG-INFO ADDED
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.1
2
+ Name: agox
3
+ Version: 3.7.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.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Requires-Python: >=3.8
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: numpy<=1.26.4
22
+ Requires-Dist: ase
23
+ Requires-Dist: matplotlib
24
+ Requires-Dist: cymem
25
+ Requires-Dist: scikit-learn
26
+ Requires-Dist: h5py
27
+ Requires-Dist: matscipy
28
+ Requires-Dist: importlib-resources>1.3; python_version < "3.9"
29
+ Requires-Dist: dscribe>=2.0.0
30
+ Requires-Dist: nbformat
31
+ Requires-Dist: typing_extensions
32
+ Requires-Dist: ray
33
+ Provides-Extra: test
34
+ Requires-Dist: pytest; extra == "test"
35
+ Provides-Extra: docs
36
+ Requires-Dist: sphinx; extra == "docs"
37
+ Requires-Dist: furo; extra == "docs"
38
+ Requires-Dist: sphinx-autoapi; extra == "docs"
39
+ Requires-Dist: sphinx-copybutton; extra == "docs"
40
+ Requires-Dist: sphinx-tabs; extra == "docs"
41
+ Provides-Extra: all
42
+ Requires-Dist: agox[docs,test]; extra == "all"
43
+
44
+ # Atomistic Global Optimization X (AGOX)
45
+
46
+ AGOX is a package for global optimization of atomic system using e.g. the energy
47
+ calculated from density functional theory as the objective function. AGOX interfaces
48
+ with the Atomistic Simulation Environment (ASE) and as such supports any of
49
+ calculators in ASE as objectives for optimization.
50
+
51
+ AGOX is built to be flexible, consisting of modules that can be put together to
52
+ create an optimization algorithm, from simple random searches to Bayesian searches
53
+ guided by a surrogate model and many more.
54
+
55
+ Check out the documentation at
56
+
57
+ https://agox.gitlab.io/agox/
58
+
59
+ # Contributions & Issues
60
+
61
+ Feel free to make a fork and submit a merge request!
62
+
63
+ If you have an issue or a question please post it on the issue board!
64
+
65
+ # Authors
66
+
67
+ The main AGOX framework has been written by
68
+ * Mads-Peter Verner Christiansen
69
+ * Nikolaj Rønne
70
+ * Bjørk Hammer
71
+
72
+ with inspiration and help from current and previous members of the Hammer group at Aarhus University, Denmark.
73
+ Parts of the code have been contributed by
74
+
75
+ * Andreas Slavensky (Complementary Energy Generator)
76
+
77
+ # License
78
+
79
+ AGOX is released under the GPLv3 license.
80
+
81
+
agox-3.7.0/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Atomistic Global Optimization X (AGOX)
2
+
3
+ AGOX is a package for global optimization of atomic system using e.g. the energy
4
+ calculated from density functional theory as the objective function. AGOX interfaces
5
+ with the Atomistic Simulation Environment (ASE) and as such supports any of
6
+ calculators in ASE as objectives for optimization.
7
+
8
+ AGOX is built to be flexible, consisting of modules that can be put together to
9
+ create an optimization algorithm, from simple random searches to Bayesian searches
10
+ guided by a surrogate model and many more.
11
+
12
+ Check out the documentation at
13
+
14
+ https://agox.gitlab.io/agox/
15
+
16
+ # Contributions & Issues
17
+
18
+ Feel free to make a fork and submit a merge request!
19
+
20
+ If you have an issue or a question please post it on the issue board!
21
+
22
+ # Authors
23
+
24
+ The main AGOX framework has been written by
25
+ * Mads-Peter Verner Christiansen
26
+ * Nikolaj Rønne
27
+ * Bjørk Hammer
28
+
29
+ with inspiration and help from current and previous members of the Hammer group at Aarhus University, Denmark.
30
+ Parts of the code have been contributed by
31
+
32
+ * Andreas Slavensky (Complementary Energy Generator)
33
+
34
+ # License
35
+
36
+ AGOX is released under the GPLv3 license.
37
+
38
+
@@ -0,0 +1,25 @@
1
+ import os
2
+
3
+ # Versioning
4
+ __version_info__ = (3, 7, 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
14
+ from agox.observer import Observer
15
+ from agox.writer import Writer
16
+ from agox.tracker import Tracker
17
+ from agox.main import AGOX
18
+
19
+ __all__ = ['Module', 'Observer', 'Writer', 'Tracker', 'AGOX', '__version__']
20
+
21
+ except ImportError:
22
+ pass
23
+
24
+
25
+
@@ -3,49 +3,59 @@ import numpy as np
3
3
  from agox.observer import Observer
4
4
  from agox.writer import Writer, agox_writer
5
5
 
6
+
6
7
  class AcquisitorBaseClass(ABC, Observer, Writer):
7
8
 
8
9
  """
9
- Acquisition Base Class.
10
-
11
- See: Observer-class for information on gets, sets, order.
12
-
13
- verbose: bool
14
- Controls how much printing the module does.
15
-
16
- Abstract methods:
17
-
18
- calculate_acquisition_function:
19
- Calculates acquisition function for given candidates.
10
+ Base-class for acquisitors.
11
+
12
+ Parameters
13
+ -----------
14
+ verbose : bool
15
+ Controls how much printing the module does.
16
+ order : int
17
+ Order of the observer.
18
+ gets : dict
19
+ Dictionary of gets, passed to the agox.observer.Observer.
20
+ sets : dict
21
+ Dictionary of sets, passed to the agox.observer.Observer.
20
22
  """
21
23
 
22
- def __init__(self, order=4, gets={'get_key':'candidates'}, sets={'set_key':'prioritized_candidates'}, verbose=True,
23
- use_counter=True, prefix='', surname=''):
24
+ def __init__(
25
+ self,
26
+ order=4,
27
+ gets={"get_key": "candidates"},
28
+ sets={"set_key": "prioritized_candidates"},
29
+ verbose=True,
30
+ use_counter=True,
31
+ prefix="",
32
+ surname="",
33
+ ):
24
34
  Observer.__init__(self, gets=gets, sets=sets, order=order, surname=surname)
25
35
  Writer.__init__(self, verbose=verbose, use_counter=use_counter, prefix=prefix)
26
36
 
27
- self.add_observer_method(self.prioritize_candidates,
28
- sets=self.sets[0], gets=self.gets[0], order=self.order[0],
29
- handler_identifier='AGOX')
30
-
31
- ########################################################################################
32
- # Required methods
33
- ########################################################################################
37
+ self.add_observer_method(
38
+ self.prioritize_candidates,
39
+ sets=self.sets[0],
40
+ gets=self.gets[0],
41
+ order=self.order[0],
42
+ handler_identifier="AGOX",
43
+ )
34
44
 
35
45
  @abstractmethod
36
46
  def calculate_acquisition_function(self, candidates):
37
47
  """
38
- Implements the acquisition function.
48
+ Implements the acquisition function.
39
49
 
40
50
  Parameters
41
51
  -----------
42
- candidates: list
43
- List of candidates that the acquisition function will be evaluated for.
44
-
52
+ candidates : list
53
+ List of candidates that the acquisition function will be evaluated for.
54
+
45
55
  Returns
46
56
  --------
47
57
  np.array
48
- Numpy array of acquisition function values.
58
+ Numpy array of acquisition function values.
49
59
 
50
60
  """
51
61
  return acquisition_values
@@ -54,17 +64,22 @@ class AcquisitorBaseClass(ABC, Observer, Writer):
54
64
  @Observer.observer_method
55
65
  def prioritize_candidates(self, state):
56
66
  """
57
- Method that is attached to the AGOX iteration loop as an observer - not intended for use outside of that loop.
67
+ Method that is attached to the AGOX iteration loop as an observer - not intended for use outside of that loop.
58
68
 
59
- The method does the following:
69
+ The method does the following:
60
70
  1. Gets candidates from the cache using 'get_key'.
61
- 2. Removes 'None' from the candidate list.
62
- 3. Calculates and sorts according to acquisition function.
71
+ 2. Removes 'None' from the candidate list.
72
+ 3. Calculates and sorts according to acquisition function.
63
73
  4. Adds the sorted candidates to cache with 'set_key'
64
- 5. Prints information.
74
+ 5. Prints information.
75
+
76
+ Parameters
77
+ -----------
78
+ state: agox.main.State
79
+ State object that contains the iteration data.
65
80
  """
66
81
 
67
- # Get data from the iteration data dict.
82
+ # Get data from the iteration data dict.
68
83
  candidate_list = state.get_from_cache(self, self.get_key)
69
84
  candidate_list = list(filter(None, candidate_list))
70
85
 
@@ -74,100 +89,116 @@ class AcquisitorBaseClass(ABC, Observer, Writer):
74
89
  else:
75
90
  acquisition_values = np.zeros(len(candidate_list))
76
91
  # Add the prioritized candidates to the iteration data in append mode!
77
- state.add_to_cache(self, self.set_key, candidate_list, mode='a')
92
+ state.add_to_cache(self, self.set_key, candidate_list, mode="a")
78
93
 
79
94
  self.print_information(candidate_list, acquisition_values)
80
-
95
+
81
96
  ########################################################################################
82
97
  # Default methods
83
98
  ########################################################################################
84
-
85
- def sort_according_to_acquisition_function(self, candidates):
99
+
100
+ def sort_according_to_acquisition_function(self, candidates):
86
101
  """
87
- Calculates acquisiton-function based on the implemeneted version calculate_acquisition_function.
102
+ Calculates acquisiton-function based on the implemeneted version calculate_acquisition_function.
88
103
 
89
- Note: Sorted so that the candidate with the LOWEST acquisition function value is first.
104
+ Note: Sorted so that the candidate with the LOWEST acquisition function value is first.
90
105
 
91
106
  Parameters
92
107
  ------------
93
108
  candidates: list
94
- List of candidate objects.
95
-
96
- Returns:
109
+ List of candidate objects.
110
+
111
+ Returns:
97
112
  -----------
98
113
  list
99
114
  List of candidates sorted according to increasing acquisition value (lowest first).
100
115
  np.array
101
- Array of acquisition function values in the same order as the sorted list, i.e. increasing.
116
+ Array of acquisition function values in the same order as the sorted list, i.e. increasing.
102
117
 
103
118
  """
104
119
  acquisition_values = self.calculate_acquisition_function(candidates)
105
120
  sort_idx = np.argsort(acquisition_values)
106
121
  sorted_candidates = [candidates[i] for i in sort_idx]
107
122
  acquisition_values = acquisition_values[sort_idx]
108
- [candidate.add_meta_information('acquisition_value', acquisition_value) for candidate, acquisition_value in zip(sorted_candidates, acquisition_values)]
123
+ [
124
+ candidate.add_meta_information("acquisition_value", acquisition_value)
125
+ for candidate, acquisition_value in zip(sorted_candidates, acquisition_values)
126
+ ]
109
127
  return sorted_candidates, acquisition_values
110
128
 
111
129
  def get_random_candidate(self):
112
- DeprecationWarning('Will be removed in the future. Please use collector.get_random_candidate')
130
+ DeprecationWarning("Will be removed in the future. Please use collector.get_random_candidate")
113
131
  return self.collector.get_random_candidate()
114
132
 
115
133
  def print_information(self, candidates, acquisition_values):
116
134
  """
117
- Printing function for analysis/debugging/sanity checking.
135
+ Printing function for analysis/debugging/sanity checking.
118
136
 
119
137
  Parameters
120
138
  -----------
121
139
  candidates: list
122
- List of candidate objects.
140
+ List of candidate objects.
123
141
  acquisition_values: np.array
124
- Acquisition function value for each candidate in 'candidates'.
125
-
142
+ Acquisition function value for each candidate in 'candidates'.
126
143
  """
127
144
 
128
145
  def get_acquisition_calculator(self):
129
146
  """
130
- Creates a calculator for the acquisiton function that can be used for e.g. relaxation.
147
+ Creates a calculator for the acquisiton function that can be used for e.g. relaxation.
131
148
 
132
149
  Returns
133
150
  --------
134
151
  ASE Calculator
135
- ASE calculator where the energy is the acquisition function and forces are the forces of the acquisition forces.
152
+ ASE calculator where the energy is the acquisition function and forces are the forces of the acquisition forces.
136
153
  """
137
-
138
154
  raise NotImplementedError("'get_acqusition_calculator' is not implemented for this acquisitor")
139
155
 
156
+
140
157
  from ase.calculators.calculator import Calculator, all_changes
141
158
  from agox.module import Module
142
159
 
160
+
143
161
  class AcquisitonCalculatorBaseClass(Calculator, Module):
144
162
 
145
- name = 'AcqusitionCalculator'
163
+ name = "AcqusitionCalculator"
164
+
165
+ """
166
+ Base-class for calculators that are used for acquisition functions.
167
+
168
+ Parameters
169
+ -----------
170
+ model: agox.models.ABC_model.ModelBaseClass
171
+ A model that is used for the acquisition function.
172
+ kwargs: dict
173
+ Dictionary of keyword arguments passed to the Calculator-class.
174
+
175
+ """
176
+
177
+ def __init__(self, model, **kwargs):
178
+ Calculator.__init__(self, **kwargs)
179
+ Module.__init__(self)
180
+ self.model = model
146
181
 
147
- def __init__(self, model_calculator, **kwargs):
148
- super().__init__(**kwargs)
149
- self.model_calculator = model_calculator
150
-
151
182
  @property
152
183
  def verbose(self):
153
- return self.model_calculator.verbose
184
+ return self.model.verbose
154
185
 
155
186
  def get_model_parameters(self):
156
- parameters = self.model_calculator.get_model_parameters()
187
+ parameters = self.model.get_model_parameters()
157
188
  return parameters
158
189
 
159
190
  def set_model_parameters(self, parameters):
160
- self.model_calculator.set_model_parameters(parameters)
191
+ self.model.set_model_parameters(parameters)
161
192
 
162
193
  def set_verbosity(self, verbose):
163
- self.model_calculator.set_verbosity(verbose)
194
+ self.model.set_verbosity(verbose)
164
195
 
165
196
  def get_iteration_number(self):
166
- if hasattr(self, 'get_iteration_counter'):
197
+ if hasattr(self, "get_iteration_counter"):
167
198
  return self.get_iteration_counter()
168
199
  else:
169
200
  return self.iteration
170
201
 
171
202
  @property
172
203
  def ready_state(self):
173
- return self.model_calculator.ready_state
204
+ return self.model.ready_state
@@ -0,0 +1,53 @@
1
+ import numpy as np
2
+ from scipy.stats import norm
3
+ from agox.acquisitors import AcquisitorBaseClass
4
+ from agox.observer import Observer
5
+ from agox.writer import agox_writer
6
+
7
+ class ExpectedImprovementAcquisitor(AcquisitorBaseClass):
8
+
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
+ @agox_writer
46
+ @Observer.observer_method
47
+ def update(self, database, state):
48
+ self.lowest_energy = database.get_best_energy()
49
+ self.writer('Lowest energy: {}'.format(self.lowest_energy))
50
+
51
+ def do_check(self, **kwargs):
52
+ return self.model.ready_state
53
+
@@ -4,21 +4,40 @@ from ase.calculators.calculator import all_changes
4
4
 
5
5
  class LowerConfidenceBoundAcquisitor(AcquisitorBaseClass):
6
6
 
7
+ """
8
+ Lower Confidence Bound Acquisitor, using predictions and uncertainties from a model.
9
+
10
+ The acquisition function is given by
11
+
12
+ .. math::
13
+
14
+ F(x) = E(x) - \kappa \sigma(x)
15
+
16
+
17
+ Parameters
18
+ -----------
19
+
20
+ model: agox.models.ABC_model.ModelBaseClass
21
+ Model that is used for the acquisition function.
22
+ kappa: float
23
+ Constant that is multiplied with the uncertainty.
24
+ kwargs: dict
25
+ Dictionary of keyword arguments passed to the AcquisitorBaseClass.
26
+ """
27
+
7
28
  name = 'LCBAcquisitor'
8
29
 
9
- def __init__(self, model_calculator, kappa=1, **kwargs):
30
+ def __init__(self, model, kappa=1, **kwargs):
10
31
  super().__init__(**kwargs)
11
32
  self.kappa = kappa
12
- self.model_calculator = model_calculator
33
+ self.model = model
13
34
 
14
35
  def calculate_acquisition_function(self, candidates):
15
36
  fitness = np.zeros(len(candidates))
16
37
 
17
38
  # Attach calculator and get model_energy
18
39
  for i, candidate in enumerate(candidates):
19
- candidate.set_calculator(self.model_calculator)
20
- E = candidate.get_potential_energy()
21
- sigma = candidate.get_uncertainty()
40
+ E, sigma = self.model.predict_energy_and_uncertainty(candidate)
22
41
  fitness[i] = self.acquisition_function(E, sigma)
23
42
 
24
43
  # For printing:
@@ -28,15 +47,16 @@ class LowerConfidenceBoundAcquisitor(AcquisitorBaseClass):
28
47
  return fitness
29
48
 
30
49
  def print_information(self, candidates, acquisition_values):
31
- if self.model_calculator.ready_state:
50
+ if self.model.ready_state:
32
51
  for i, candidate in enumerate(candidates):
33
52
  fitness = acquisition_values[i]
34
53
  Emodel = candidate.get_meta_information('model_energy')
35
54
  sigma = candidate.get_meta_information('uncertainty')
36
- self.writer('Candidate: E={:8.3f}, s={:8.3f}, F={:8.3f}'.format(Emodel, sigma, fitness))
55
+ generator = candidate.get_meta_information('generator')
56
+ self.writer('Candidate: E={:8.3f}, s={:8.3f}, F={:8.3f}, {}'.format(Emodel, sigma, fitness, generator))
37
57
 
38
58
  def get_acquisition_calculator(self):
39
- return LowerConfidenceBoundCalculator(self.model_calculator, self.acquisition_function, self.acquisition_force)
59
+ return LowerConfidenceBoundCalculator(self.model, self.acquisition_function, self.acquisition_force)
40
60
 
41
61
  def acquisition_function(self, E, sigma):
42
62
  return E - self.kappa * sigma
@@ -45,14 +65,14 @@ class LowerConfidenceBoundAcquisitor(AcquisitorBaseClass):
45
65
  return F - self.kappa*sigma_force
46
66
 
47
67
  def do_check(self, **kwargs):
48
- return self.model_calculator.ready_state
68
+ return self.model.ready_state
49
69
 
50
70
  class LowerConfidenceBoundCalculator(AcquisitonCalculatorBaseClass):
51
71
 
52
72
  implemented_properties = ['energy', 'forces']
53
73
 
54
- def __init__(self, model_calculator, acquisition_function, acquisition_force, **kwargs):
55
- super().__init__(model_calculator, **kwargs)
74
+ def __init__(self, model, acquisition_function, acquisition_force, **kwargs):
75
+ super().__init__(model, **kwargs)
56
76
  self.acquisition_function = acquisition_function
57
77
  self.acquisition_force = acquisition_force
58
78
 
@@ -61,15 +81,20 @@ class LowerConfidenceBoundCalculator(AcquisitonCalculatorBaseClass):
61
81
  system_changes=all_changes):
62
82
  super().calculate(atoms, properties, system_changes)
63
83
 
64
- if 'forces' in properties:
65
- E, sigma = self.model_calculator.predict_energy(atoms, return_uncertainty=True)
66
- F, sigma_force = self.model_calculator.predict_forces(atoms, return_uncertainty=True, acquisition_function=self.acquisition_function)
67
- self.results['forces'] = self.acquisition_force(E, F, sigma, sigma_force)
68
- else:
69
- E, sigma = self.model_calculator.predict_energy(atoms, return_uncertainty=True)
70
-
84
+ derivatives = 'forces' in properties
85
+ model_data = self.model.converter(atoms, derivatives=derivatives)
86
+
87
+ E = self.model.predict_energy(atoms, **model_data)
88
+ sigma = self.model.predict_uncertainty(atoms, **model_data)
71
89
  self.results['energy'] = self.acquisition_function(E, sigma)
72
90
 
91
+ if derivatives:
92
+
93
+ F = self.model.predict_forces(atoms, **model_data)
94
+ sigma_force = self.model.predict_uncertainty_forces(atoms, **model_data)
95
+
96
+ self.results['forces'] = self.acquisition_force(E, F, sigma, sigma_force)
97
+
73
98
 
74
99
 
75
100
 
@@ -1,5 +1,5 @@
1
1
  import numpy as np
2
- from agox.acquisitors import LowerConfidenceBoundAcquisitor, LowerConfidenceBoundCalculator
2
+ from agox.acquisitors.LCB import LowerConfidenceBoundAcquisitor
3
3
 
4
4
  class PowerLowerConfidenceBoundAcquisitor(LowerConfidenceBoundAcquisitor):
5
5
 
@@ -0,0 +1,28 @@
1
+ """
2
+ Acquisitors are used to select the next candidate to evaluate among a number of
3
+ candidates, usually by sorting according to some metric.
4
+ The concept of acquisitors comes from Bayesian search algorithms.
5
+
6
+ A common acquisitor is the Lower Confidence Bound (LCB) acquisitor, which
7
+ selects according to the expression
8
+
9
+ .. math::
10
+ LCB(x) = E(x) - \kappa \sigma(x).
11
+
12
+ Where E(x) is a prediction of the objective function at x, and :math:`\sigma(x)`
13
+ is the uncertainty of the prediction. :math:`\kappa` is a parameter that
14
+ controls the trade-off between exploration and exploitation.
15
+ This lets an algorithm choose which candidates to evaluate, but
16
+ does require the generation of multiple candidates to choose from.
17
+ """
18
+
19
+ from .ABC_acquisitor import AcquisitorBaseClass, AcquisitonCalculatorBaseClass
20
+ from .LCB import LowerConfidenceBoundAcquisitor
21
+ from .LCB_power import PowerLowerConfidenceBoundAcquisitor
22
+
23
+ __all__ = ['AcquisitorBaseClass',
24
+ 'LowerConfidenceBoundAcquisitor',
25
+ 'PowerLowerConfidenceBoundAcquisitor'
26
+ 'AcquisitonCalculatorBaseClass',
27
+ ]
28
+