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.
- agox-3.9.0/PKG-INFO +89 -0
- agox-3.9.0/README.md +41 -0
- agox-3.9.0/agox/__init__.py +24 -0
- agox-3.9.0/agox/acquisitors/ABC_acquisitor.py +207 -0
- agox-3.9.0/agox/acquisitors/EI.py +51 -0
- agox-3.9.0/agox/acquisitors/LCB.py +101 -0
- agox-3.9.0/agox/acquisitors/LCB_penalty.py +129 -0
- agox-3.9.0/agox/acquisitors/LCB_power.py +16 -0
- agox-3.9.0/agox/acquisitors/__init__.py +36 -0
- agox-3.9.0/agox/acquisitors/meta_acquisitor.py +23 -0
- agox-3.9.0/agox/analysis/__init__.py +26 -0
- agox-3.9.0/agox/analysis/criterion/__init__.py +5 -0
- agox-3.9.0/agox/analysis/criterion/base_criterion/__init__.py +1 -0
- agox-3.9.0/agox/analysis/criterion/base_criterion/base_criterion.py +20 -0
- agox-3.9.0/agox/analysis/criterion/base_criterion/discrete_distribution.py +51 -0
- agox-3.9.0/agox/analysis/criterion/distance.py +58 -0
- agox-3.9.0/agox/analysis/criterion/threshold.py +44 -0
- agox-3.9.0/agox/analysis/plot/__init__.py +8 -0
- agox-3.9.0/agox/analysis/plot/property_plot.py +44 -0
- agox-3.9.0/agox/analysis/plot/success_plot.py +36 -0
- agox-3.9.0/agox/analysis/property/__init__.py +4 -0
- agox-3.9.0/agox/analysis/property/descriptor_property.py +36 -0
- agox-3.9.0/agox/analysis/property/energy.py +38 -0
- agox-3.9.0/agox/analysis/property/free_energy.py +48 -0
- agox-3.9.0/agox/analysis/property/property.py +67 -0
- agox-3.9.0/agox/analysis/search_analysis.py +210 -0
- agox-3.9.0/agox/analysis/search_data.py +234 -0
- agox-3.9.0/agox/candidates/ABC_candidate.py +353 -0
- agox-3.9.0/agox/candidates/__init__.py +16 -0
- agox-3.9.0/agox/candidates/standard.py +27 -0
- agox-3.9.0/agox/cli/cli_analysis.py +178 -0
- agox-3.9.0/agox/cli/cli_convert.py +89 -0
- agox-3.9.0/agox/cli/cli_graph_sorting.py +238 -0
- agox-3.9.0/agox/cli/cli_notebook.py +108 -0
- agox-3.9.0/agox/cli/cli_plot.py +92 -0
- agox-3.9.0/agox/cli/main.py +22 -0
- agox-3.9.0/agox/collectors/ABC_collector.py +153 -0
- agox-3.9.0/agox/collectors/__init__.py +21 -0
- agox-3.9.0/agox/collectors/parallel_tempering.py +174 -0
- agox-3.9.0/agox/collectors/ray_collector.py +93 -0
- agox-3.9.0/agox/collectors/standard.py +74 -0
- agox-3.9.0/agox/databases/ABC_database.py +89 -0
- agox-3.9.0/agox/databases/__init__.py +14 -0
- agox-3.9.0/agox/databases/concurrent_ordered.py +41 -0
- agox-3.9.0/agox/databases/database.py +466 -0
- agox-3.9.0/agox/databases/database_concurrent.py +213 -0
- agox-3.9.0/agox/databases/database_utilities.py +143 -0
- agox-3.9.0/agox/environments/ABC_environment.py +163 -0
- agox-3.9.0/agox/environments/__init__.py +16 -0
- agox-3.9.0/agox/environments/environment.py +145 -0
- agox-3.9.0/agox/evaluators/ABC_evaluator.py +121 -0
- agox-3.9.0/agox/evaluators/__init__.py +24 -0
- agox-3.9.0/agox/evaluators/local_optimization.py +134 -0
- agox-3.9.0/agox/evaluators/rattle.py +24 -0
- agox-3.9.0/agox/evaluators/single_point.py +19 -0
- agox-3.9.0/agox/generators/ABC_generator.py +290 -0
- agox-3.9.0/agox/generators/MD.py +147 -0
- agox-3.9.0/agox/generators/__init__.py +55 -0
- agox-3.9.0/agox/generators/block_generators/ABC_block.py +171 -0
- agox-3.9.0/agox/generators/block_generators/__init__.py +2 -0
- agox-3.9.0/agox/generators/block_generators/random.py +57 -0
- agox-3.9.0/agox/generators/block_generators/rattle.py +82 -0
- agox-3.9.0/agox/generators/ce_generator.py +138 -0
- agox-3.9.0/agox/generators/cog.py +58 -0
- agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +31 -0
- agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +67 -0
- agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +63 -0
- agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +71 -0
- agox-3.9.0/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +83 -0
- agox-3.9.0/agox/generators/complementary_energy/ce_calculators.py +235 -0
- agox-3.9.0/agox/generators/permutation.py +145 -0
- agox-3.9.0/agox/generators/random.py +74 -0
- agox-3.9.0/agox/generators/rattle.py +70 -0
- agox-3.9.0/agox/generators/replace.py +71 -0
- agox-3.9.0/agox/generators/reuse.py +62 -0
- agox-3.9.0/agox/generators/sampling.py +26 -0
- agox-3.9.0/agox/generators/steepest_descent.py +46 -0
- agox-3.9.0/agox/generators/symmetry.py +302 -0
- agox-3.9.0/agox/generators/symmetry_permutation.py +197 -0
- agox-3.9.0/agox/generators/symmetry_rattle.py +386 -0
- agox-3.9.0/agox/generators/symmetry_utils/symmetry_enforcer.py +1611 -0
- agox-3.9.0/agox/generators/symmetry_utils/symmetry_groups.py +933 -0
- agox-3.9.0/agox/helpers/__init__.py +5 -0
- agox-3.9.0/agox/helpers/confinement.py +92 -0
- agox-3.9.0/agox/helpers/gpaw_io.py +179 -0
- agox-3.9.0/agox/helpers/gpaw_subprocess.py +59 -0
- agox-3.9.0/agox/main/__init__.py +5 -0
- agox-3.9.0/agox/main/agox.py +222 -0
- agox-3.9.0/agox/main/state.py +153 -0
- agox-3.9.0/agox/models/ABC_model.py +585 -0
- agox-3.9.0/agox/models/GPR/GPR.py +844 -0
- agox-3.9.0/agox/models/GPR/__init__.py +5 -0
- agox-3.9.0/agox/models/GPR/kernels/__init__.py +1 -0
- agox-3.9.0/agox/models/GPR/kernels/kernels.py +141 -0
- agox-3.9.0/agox/models/GPR/local_mean.py +50 -0
- agox-3.9.0/agox/models/GPR/priors/repulsive.c +11514 -0
- agox-3.9.0/agox/models/GPR/priors/setup.py +6 -0
- agox-3.9.0/agox/models/GPR/sGPR.py +785 -0
- agox-3.9.0/agox/models/GPR/sGPR_ensemble.py +106 -0
- agox-3.9.0/agox/models/__init__.py +15 -0
- agox-3.9.0/agox/models/datasets/loader.py +11 -0
- agox-3.9.0/agox/models/descriptors/ABC_descriptor.py +156 -0
- agox-3.9.0/agox/models/descriptors/__init__.py +8 -0
- agox-3.9.0/agox/models/descriptors/acsf.py +198 -0
- agox-3.9.0/agox/models/descriptors/exponential_density.py +131 -0
- agox-3.9.0/agox/models/descriptors/fingerprint.py +126 -0
- agox-3.9.0/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +18071 -0
- agox-3.9.0/agox/models/descriptors/fingerprint_cython/setup.py +6 -0
- agox-3.9.0/agox/models/descriptors/fingerprint_jax/fingerprint_jax.py +346 -0
- agox-3.9.0/agox/models/descriptors/fingerprint_jax/utils.py +337 -0
- agox-3.9.0/agox/models/descriptors/scale_select_descriptor.py +78 -0
- agox-3.9.0/agox/models/descriptors/simple_fingerprint.py +67 -0
- agox-3.9.0/agox/models/descriptors/soap.py +166 -0
- agox-3.9.0/agox/models/descriptors/spectral_graph_descriptor.py +84 -0
- agox-3.9.0/agox/models/descriptors/type_descriptor.py +49 -0
- agox-3.9.0/agox/models/descriptors/voronoi.py +270 -0
- agox-3.9.0/agox/models/descriptors/voronoi_site.py +118 -0
- agox-3.9.0/agox/models/priors/constant.py +12 -0
- agox-3.9.0/agox/models/schnetpack/schnetpack.py +381 -0
- agox-3.9.0/agox/module.py +91 -0
- agox-3.9.0/agox/observer/__init__.py +6 -0
- agox-3.9.0/agox/observer/finalization_handler.py +52 -0
- agox-3.9.0/agox/observer/observer.py +217 -0
- agox-3.9.0/agox/observer/observer_handler.py +187 -0
- agox-3.9.0/agox/observer/observer_method.py +123 -0
- agox-3.9.0/agox/postprocessors/ABC_postprocess.py +104 -0
- agox-3.9.0/agox/postprocessors/__init__.py +35 -0
- agox-3.9.0/agox/postprocessors/centering.py +37 -0
- agox-3.9.0/agox/postprocessors/disjoint_filtering.py +82 -0
- agox-3.9.0/agox/postprocessors/minimum_dist.py +88 -0
- agox-3.9.0/agox/postprocessors/ray_relax.py +165 -0
- agox-3.9.0/agox/postprocessors/relax.py +100 -0
- agox-3.9.0/agox/postprocessors/surface_centering.py +92 -0
- agox-3.9.0/agox/postprocessors/wrap.py +17 -0
- agox-3.9.0/agox/samplers/ABC_sampler.py +223 -0
- agox-3.9.0/agox/samplers/__init__.py +36 -0
- agox-3.9.0/agox/samplers/concurrent_tempering.py +179 -0
- agox-3.9.0/agox/samplers/fixed_sampler.py +39 -0
- agox-3.9.0/agox/samplers/genetic.py +215 -0
- agox-3.9.0/agox/samplers/kernel_similarity.py +150 -0
- agox-3.9.0/agox/samplers/kmeans.py +203 -0
- agox-3.9.0/agox/samplers/metropolis.py +95 -0
- agox-3.9.0/agox/samplers/parallel_tempering.py +282 -0
- agox-3.9.0/agox/samplers/spectral_graph.py +158 -0
- agox-3.9.0/agox/test/__init__.py +0 -0
- agox-3.9.0/agox/test/acquisitor_test/test_lcb.py +57 -0
- agox-3.9.0/agox/test/analysis_tests/conftest.py +45 -0
- agox-3.9.0/agox/test/analysis_tests/test_criterion.py +41 -0
- agox-3.9.0/agox/test/analysis_tests/test_descriptor_property.py +64 -0
- agox-3.9.0/agox/test/analysis_tests/test_energy_property.py +49 -0
- agox-3.9.0/agox/test/analysis_tests/test_property_plot.py +19 -0
- agox-3.9.0/agox/test/analysis_tests/test_restart_data.py +22 -0
- agox-3.9.0/agox/test/analysis_tests/test_search_collection.py +26 -0
- agox-3.9.0/agox/test/analysis_tests/test_search_data.py +69 -0
- agox-3.9.0/agox/test/analysis_tests/test_succces_plot.py +21 -0
- agox-3.9.0/agox/test/cli_tests/conftest.py +47 -0
- agox-3.9.0/agox/test/cli_tests/test_analysis_cli.py +117 -0
- agox-3.9.0/agox/test/cli_tests/test_convert_cli.py +19 -0
- agox-3.9.0/agox/test/cli_tests/test_graph_sort_cli.py +26 -0
- agox-3.9.0/agox/test/cli_tests/test_main_cli.py +9 -0
- agox-3.9.0/agox/test/cli_tests/test_plot_cli.py +37 -0
- agox-3.9.0/agox/test/conftest.py +69 -0
- agox-3.9.0/agox/test/database_tests/database_test.py +97 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db1.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db2.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db3.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db4.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/db5.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/bh_test_databases/experiment.pckl +0 -0
- agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db1.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db2.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db3.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/rss_test_databases/db4.db +0 -0
- agox-3.9.0/agox/test/datasets/databases/rss_test_databases/experiment.pckl +0 -0
- agox-3.9.0/agox/test/descriptor_tests/soap_test.py +37 -0
- agox-3.9.0/agox/test/descriptor_tests/spectral_graph_test.py +34 -0
- agox-3.9.0/agox/test/empty_cache.py +20 -0
- agox-3.9.0/agox/test/environment_tests/environment_test.py +40 -0
- agox-3.9.0/agox/test/generator_tests/conftest.py +89 -0
- agox-3.9.0/agox/test/generator_tests/for_docs/nonseeded_script.py +21 -0
- agox-3.9.0/agox/test/generator_tests/for_docs/seeded_script.py +28 -0
- agox-3.9.0/agox/test/generator_tests/for_docs/test_doc_scripts.py +19 -0
- agox-3.9.0/agox/test/generator_tests/generator_test.py +47 -0
- agox-3.9.0/agox/test/generator_tests/generator_utils.py +99 -0
- agox-3.9.0/agox/test/generator_tests/test_cog.py +54 -0
- agox-3.9.0/agox/test/generator_tests/test_generators.py +64 -0
- agox-3.9.0/agox/test/generator_tests/test_permutation.py +58 -0
- agox-3.9.0/agox/test/generator_tests/test_random.py +46 -0
- agox-3.9.0/agox/test/generator_tests/test_rattle.py +42 -0
- agox-3.9.0/agox/test/generator_tests/test_replace.py +42 -0
- agox-3.9.0/agox/test/generator_tests/test_sampling.py +44 -0
- agox-3.9.0/agox/test/generator_tests/test_steepest_descent.py +44 -0
- agox-3.9.0/agox/test/generator_tests/test_symmetry.py +49 -0
- agox-3.9.0/agox/test/generator_tests/test_symmetry_2.py +64 -0
- agox-3.9.0/agox/test/generator_tests/test_symmetry_3.py +55 -0
- agox-3.9.0/agox/test/model_tests/__init__.py +0 -0
- agox-3.9.0/agox/test/model_tests/descriptors_api.py +20 -0
- agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataAgO_parameter0.pckl +0 -0
- agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataB12_parameter0.pckl +0 -0
- agox-3.9.0/agox/test/model_tests/expected_outputs/GlobalGPRJax_dataC30_parameter0.pckl +0 -0
- agox-3.9.0/agox/test/model_tests/gpr_api.py +43 -0
- agox-3.9.0/agox/test/model_tests/model_utils.py +56 -0
- agox-3.9.0/agox/test/model_tests/test_api.py +24 -0
- agox-3.9.0/agox/test/model_tests/test_global_gpr.py +80 -0
- agox-3.9.0/agox/test/model_tests/test_global_gpr_jax.py +82 -0
- agox-3.9.0/agox/test/model_tests/test_global_sparse_gpr.py +98 -0
- agox-3.9.0/agox/test/model_tests/test_global_sparse_gpr_force_training.py +99 -0
- agox-3.9.0/agox/test/model_tests/test_load.py +68 -0
- agox-3.9.0/agox/test/model_tests/test_local_gpr.py +100 -0
- agox-3.9.0/agox/test/model_tests/test_local_gpr_force_training.py +101 -0
- agox-3.9.0/agox/test/model_tests/test_ray_gpr.py +85 -0
- agox-3.9.0/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +89 -0
- agox-3.9.0/agox/test/model_tests/test_ray_sgpr_global.py +93 -0
- agox-3.9.0/agox/test/model_tests/test_ray_sgpr_local.py +82 -0
- agox-3.9.0/agox/test/model_tests/test_sgpr_sparse_schedule.py +85 -0
- agox-3.9.0/agox/test/modifying_examples/confinement_examples.py +143 -0
- agox-3.9.0/agox/test/postprocessor_tests/disjoint_filtering_test.py +23 -0
- agox-3.9.0/agox/test/postprocessor_tests/model_results_test.py +39 -0
- agox-3.9.0/agox/test/postprocessor_tests/postprocessor_test.py +37 -0
- agox-3.9.0/agox/test/postprocessor_tests/surface_centering_test.py +39 -0
- agox-3.9.0/agox/test/postprocessor_tests/test_survive_empty.py +34 -0
- agox-3.9.0/agox/test/run_tests/run_utils.py +72 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +77 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +77 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +81 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +100 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +69 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +69 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +72 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +79 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +92 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +81 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +81 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +85 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +104 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +203 -0
- agox-3.9.0/agox/test/run_tests/tests_bh/test_bh.py +8 -0
- agox-3.9.0/agox/test/run_tests/tests_block/script_block_bh.py +88 -0
- agox-3.9.0/agox/test/run_tests/tests_block/script_block_rss.py +85 -0
- agox-3.9.0/agox/test/run_tests/tests_block/test_block_bh.py +6 -0
- agox-3.9.0/agox/test/run_tests/tests_block/test_block_rss.py +6 -0
- agox-3.9.0/agox/test/run_tests/tests_ce/script_ce_default_gofee.py +125 -0
- agox-3.9.0/agox/test/run_tests/tests_ce/script_ce_gofee.py +140 -0
- agox-3.9.0/agox/test/run_tests/tests_ce/test_ce_default_gofee.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_ce/test_ce_gofee.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_ct/script_ct.py +93 -0
- agox-3.9.0/agox/test/run_tests/tests_ct/test_ct.py +6 -0
- agox-3.9.0/agox/test/run_tests/tests_ea/script_ea.py +102 -0
- agox-3.9.0/agox/test/run_tests/tests_ea/test_ea.py +6 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +125 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +125 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +129 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +148 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +118 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +118 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +121 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +128 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +141 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +130 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +130 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +134 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +153 -0
- agox-3.9.0/agox/test/run_tests/tests_gofee/test_gofee.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +138 -0
- agox-3.9.0/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_lgpr_bh/script_lgpr_bh.py +109 -0
- agox-3.9.0/agox/test/run_tests/tests_lgpr_bh/test_lgpr_bh.py +11 -0
- agox-3.9.0/agox/test/run_tests/tests_md/script_md_bh.py +87 -0
- agox-3.9.0/agox/test/run_tests/tests_md/test_md_bh.py +6 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/db0.db +0 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/expected_outputs/pt_test/db0_tracker.npz +0 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/script_pt.py +139 -0
- agox-3.9.0/agox/test/run_tests/tests_pt/test_pt.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_2d.py +83 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +74 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +74 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +78 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +97 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +67 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +67 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +74 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +81 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +93 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +85 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +84 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +88 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +107 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/test.py +0 -0
- agox-3.9.0/agox/test/run_tests/tests_rss/test_rss.py +8 -0
- agox-3.9.0/agox/test/run_tests/tests_schnet/script_schnet_bh.py +93 -0
- agox-3.9.0/agox/test/run_tests/tests_schnet/test_schnet_bh.py +10 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +127 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +147 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +78 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +9 -0
- agox-3.9.0/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +8 -0
- agox-3.9.0/agox/test/sampler_tests/sampler_test.py +118 -0
- agox-3.9.0/agox/test/test_utils.py +128 -0
- agox-3.9.0/agox/test/utils_tests/cache_test.py +21 -0
- agox-3.9.0/agox/test/utils_tests/plot_tests/colors_test.py +171 -0
- agox-3.9.0/agox/test/utils_tests/plot_tests/plot_atoms_test.py +107 -0
- agox-3.9.0/agox/test/utils_tests/plot_tests/plot_cell_test.py +30 -0
- agox-3.9.0/agox/test/utils_tests/plot_tests/utils_test.py +26 -0
- agox-3.9.0/agox/test/utils_tests/test_feature_dist_filter.py +28 -0
- agox-3.9.0/agox/test/utils_tests/test_filters.py +16 -0
- agox-3.9.0/agox/test/utils_tests/test_sparsifiers.py +34 -0
- agox-3.9.0/agox/utils/cache.py +70 -0
- agox-3.9.0/agox/utils/constraints/box_constraint.py +165 -0
- agox-3.9.0/agox/utils/convert_database.py +101 -0
- agox-3.9.0/agox/utils/decorators.py +22 -0
- agox-3.9.0/agox/utils/filters/ABC_filter.py +102 -0
- agox-3.9.0/agox/utils/filters/__init__.py +25 -0
- agox-3.9.0/agox/utils/filters/feature_distance.py +95 -0
- agox-3.9.0/agox/utils/filters/kmeans_energy.py +57 -0
- agox-3.9.0/agox/utils/filters/sparse_filter.py +72 -0
- agox-3.9.0/agox/utils/filters/voronoi.py +118 -0
- agox-3.9.0/agox/utils/graph_sorting.py +145 -0
- agox-3.9.0/agox/utils/jupyter_interactive.py +383 -0
- agox-3.9.0/agox/utils/matplotlib_utils.py +18 -0
- agox-3.9.0/agox/utils/metrics/__init__.py +17 -0
- agox-3.9.0/agox/utils/metrics/calibration.py +270 -0
- agox-3.9.0/agox/utils/metrics/metrics.py +21 -0
- agox-3.9.0/agox/utils/numerical_derivative.py +22 -0
- agox-3.9.0/agox/utils/plot/colors.py +255 -0
- agox-3.9.0/agox/utils/plot/plot_atoms.py +159 -0
- agox-3.9.0/agox/utils/plot/plot_cell.py +82 -0
- agox-3.9.0/agox/utils/plot/plot_parity.py +186 -0
- agox-3.9.0/agox/utils/plot/utils.py +60 -0
- agox-3.9.0/agox/utils/ray/__init__.py +4 -0
- agox-3.9.0/agox/utils/ray/actor.py +71 -0
- agox-3.9.0/agox/utils/ray/pool.py +509 -0
- agox-3.9.0/agox/utils/ray/pool_startup.py +87 -0
- agox-3.9.0/agox/utils/ray/pool_user.py +184 -0
- agox-3.9.0/agox/utils/ray/startup.py +159 -0
- agox-3.9.0/agox/utils/sparsifiers/ABC_sparsifier.py +124 -0
- agox-3.9.0/agox/utils/sparsifiers/CUR.py +24 -0
- agox-3.9.0/agox/utils/sparsifiers/CUR_old.py +26 -0
- agox-3.9.0/agox/utils/sparsifiers/MBkmeans.py +69 -0
- agox-3.9.0/agox/utils/sparsifiers/__init__.py +11 -0
- agox-3.9.0/agox/utils/thermodynamics/__init__.py +4 -0
- agox-3.9.0/agox/utils/thermodynamics/gibbs.py +28 -0
- agox-3.9.0/agox/utils/thermodynamics/thermodynamics_data.py +69 -0
- agox-3.9.0/agox/writer/__init__.py +2 -0
- agox-3.9.0/agox/writer/utils.py +45 -0
- agox-3.9.0/agox/writer/writer.py +38 -0
- agox-3.9.0/agox.egg-info/PKG-INFO +89 -0
- agox-3.9.0/agox.egg-info/SOURCES.txt +522 -0
- agox-3.9.0/agox.egg-info/requires.txt +32 -0
- agox-3.9.0/pyproject.toml +90 -0
- agox-3.9.0/setup.py +21 -0
- agox-3.7.0rc1/PKG-INFO +0 -81
- agox-3.7.0rc1/README.md +0 -38
- agox-3.7.0rc1/agox/__init__.py +0 -25
- agox-3.7.0rc1/agox/acquisitors/ABC_acquisitor.py +0 -204
- agox-3.7.0rc1/agox/acquisitors/EI.py +0 -53
- agox-3.7.0rc1/agox/acquisitors/LCB.py +0 -100
- agox-3.7.0rc1/agox/acquisitors/LCB_power.py +0 -17
- agox-3.7.0rc1/agox/acquisitors/__init__.py +0 -28
- agox-3.7.0rc1/agox/candidates/ABC_candidate.py +0 -376
- agox-3.7.0rc1/agox/candidates/__init__.py +0 -12
- agox-3.7.0rc1/agox/candidates/standard.py +0 -21
- agox-3.7.0rc1/agox/cli/__init__.py +0 -6
- agox-3.7.0rc1/agox/cli/cli_analysis.py +0 -152
- agox-3.7.0rc1/agox/cli/cli_convert.py +0 -82
- agox-3.7.0rc1/agox/cli/cli_example.py +0 -16
- agox-3.7.0rc1/agox/cli/cli_graph_sorting.py +0 -134
- agox-3.7.0rc1/agox/cli/cli_notebook.py +0 -116
- agox-3.7.0rc1/agox/cli/main.py +0 -15
- agox-3.7.0rc1/agox/collectors/ABC_collector.py +0 -152
- agox-3.7.0rc1/agox/collectors/__init__.py +0 -11
- agox-3.7.0rc1/agox/collectors/ray_collector.py +0 -97
- agox-3.7.0rc1/agox/collectors/standard.py +0 -77
- agox-3.7.0rc1/agox/databases/ABC_database.py +0 -103
- agox-3.7.0rc1/agox/databases/__init__.py +0 -14
- agox-3.7.0rc1/agox/databases/concurrent_ordered.py +0 -34
- agox-3.7.0rc1/agox/databases/database.py +0 -458
- agox-3.7.0rc1/agox/databases/database_concurrent.py +0 -216
- agox-3.7.0rc1/agox/databases/database_utilities.py +0 -115
- agox-3.7.0rc1/agox/environments/ABC_environment.py +0 -139
- agox-3.7.0rc1/agox/environments/__init__.py +0 -16
- agox-3.7.0rc1/agox/environments/environment.py +0 -138
- agox-3.7.0rc1/agox/evaluators/ABC_evaluator.py +0 -119
- agox-3.7.0rc1/agox/evaluators/__init__.py +0 -16
- agox-3.7.0rc1/agox/evaluators/local_optimization.py +0 -127
- agox-3.7.0rc1/agox/evaluators/rattle.py +0 -26
- agox-3.7.0rc1/agox/evaluators/single_point.py +0 -19
- agox-3.7.0rc1/agox/generators/ABC_generator.py +0 -219
- agox-3.7.0rc1/agox/generators/MD.py +0 -154
- agox-3.7.0rc1/agox/generators/__init__.py +0 -49
- agox-3.7.0rc1/agox/generators/block_generators/ABC_block.py +0 -185
- agox-3.7.0rc1/agox/generators/block_generators/__init__.py +0 -2
- agox-3.7.0rc1/agox/generators/block_generators/random.py +0 -63
- agox-3.7.0rc1/agox/generators/block_generators/rattle.py +0 -104
- agox-3.7.0rc1/agox/generators/ce_generator.py +0 -132
- agox-3.7.0rc1/agox/generators/cog.py +0 -57
- agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +0 -32
- agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +0 -57
- agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +0 -53
- agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +0 -61
- agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +0 -68
- agox-3.7.0rc1/agox/generators/complementary_energy/ce_calculators.py +0 -234
- agox-3.7.0rc1/agox/generators/permutation.py +0 -151
- agox-3.7.0rc1/agox/generators/random.py +0 -77
- agox-3.7.0rc1/agox/generators/rattle.py +0 -69
- agox-3.7.0rc1/agox/generators/replace.py +0 -74
- agox-3.7.0rc1/agox/generators/reuse.py +0 -60
- agox-3.7.0rc1/agox/generators/sampling.py +0 -27
- agox-3.7.0rc1/agox/generators/steepest_descent.py +0 -55
- agox-3.7.0rc1/agox/generators/symmetry.py +0 -340
- agox-3.7.0rc1/agox/generators/symmetry_permutation.py +0 -233
- agox-3.7.0rc1/agox/generators/symmetry_rattle.py +0 -475
- agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_enforcer.py +0 -1758
- agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_groups.py +0 -933
- agox-3.7.0rc1/agox/helpers/__init__.py +0 -5
- agox-3.7.0rc1/agox/helpers/confinement.py +0 -79
- agox-3.7.0rc1/agox/helpers/gpaw_io.py +0 -169
- agox-3.7.0rc1/agox/helpers/gpaw_subprocess.py +0 -58
- agox-3.7.0rc1/agox/main.py +0 -305
- agox-3.7.0rc1/agox/models/ABC_model.py +0 -618
- agox-3.7.0rc1/agox/models/GPR/GPR.py +0 -893
- agox-3.7.0rc1/agox/models/GPR/__init__.py +0 -5
- agox-3.7.0rc1/agox/models/GPR/kernels/__init__.py +0 -1
- agox-3.7.0rc1/agox/models/GPR/kernels/kernels.py +0 -149
- agox-3.7.0rc1/agox/models/GPR/local_mean.py +0 -44
- agox-3.7.0rc1/agox/models/GPR/priors/repulsive.c +0 -11514
- agox-3.7.0rc1/agox/models/GPR/priors/setup.py +0 -5
- agox-3.7.0rc1/agox/models/GPR/sGPR.py +0 -872
- agox-3.7.0rc1/agox/models/GPR/sGPR_ensemble.py +0 -114
- agox-3.7.0rc1/agox/models/__init__.py +0 -9
- agox-3.7.0rc1/agox/models/datasets/loader.py +0 -10
- agox-3.7.0rc1/agox/models/descriptors/ABC_descriptor.py +0 -155
- agox-3.7.0rc1/agox/models/descriptors/__init__.py +0 -6
- agox-3.7.0rc1/agox/models/descriptors/acsf.py +0 -176
- agox-3.7.0rc1/agox/models/descriptors/exponential_density.py +0 -147
- agox-3.7.0rc1/agox/models/descriptors/fingerprint.py +0 -130
- agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +0 -18071
- agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython/setup.py +0 -5
- agox-3.7.0rc1/agox/models/descriptors/scale_select_descriptor.py +0 -79
- agox-3.7.0rc1/agox/models/descriptors/simple_fingerprint.py +0 -64
- agox-3.7.0rc1/agox/models/descriptors/soap.py +0 -166
- agox-3.7.0rc1/agox/models/descriptors/spectral_graph_descriptor.py +0 -78
- agox-3.7.0rc1/agox/models/descriptors/type_descriptor.py +0 -47
- agox-3.7.0rc1/agox/models/descriptors/voronoi.py +0 -264
- agox-3.7.0rc1/agox/models/priors/constant.py +0 -12
- agox-3.7.0rc1/agox/models/schnetpack/schnetpack.py +0 -432
- agox-3.7.0rc1/agox/module.py +0 -132
- agox-3.7.0rc1/agox/observer.py +0 -603
- agox-3.7.0rc1/agox/postprocessors/ABC_postprocess.py +0 -127
- agox-3.7.0rc1/agox/postprocessors/__init__.py +0 -26
- agox-3.7.0rc1/agox/postprocessors/centering.py +0 -36
- agox-3.7.0rc1/agox/postprocessors/disjoint_filtering.py +0 -87
- agox-3.7.0rc1/agox/postprocessors/immunizer.py +0 -24
- agox-3.7.0rc1/agox/postprocessors/minimum_dist.py +0 -88
- agox-3.7.0rc1/agox/postprocessors/optimizers/__init__.py +0 -1
- agox-3.7.0rc1/agox/postprocessors/optimizers/safe_bfgs.py +0 -31
- agox-3.7.0rc1/agox/postprocessors/ray_relax.py +0 -154
- agox-3.7.0rc1/agox/postprocessors/relax.py +0 -91
- agox-3.7.0rc1/agox/postprocessors/wrap.py +0 -19
- agox-3.7.0rc1/agox/samplers/ABC_sampler.py +0 -214
- agox-3.7.0rc1/agox/samplers/__init__.py +0 -27
- agox-3.7.0rc1/agox/samplers/fixed_sampler.py +0 -39
- agox-3.7.0rc1/agox/samplers/genetic.py +0 -208
- agox-3.7.0rc1/agox/samplers/kernel_similarity.py +0 -144
- agox-3.7.0rc1/agox/samplers/kmeans.py +0 -214
- agox-3.7.0rc1/agox/samplers/metropolis.py +0 -93
- agox-3.7.0rc1/agox/samplers/parallel_tempering_sampler.py +0 -143
- agox-3.7.0rc1/agox/samplers/spectral_graph.py +0 -151
- agox-3.7.0rc1/agox/test/acquisitor_test/test_lcb.py +0 -58
- agox-3.7.0rc1/agox/test/conftest.py +0 -24
- agox-3.7.0rc1/agox/test/database_tests/database_test.py +0 -92
- agox-3.7.0rc1/agox/test/descriptor_tests/soap_test.py +0 -33
- agox-3.7.0rc1/agox/test/descriptor_tests/spectral_graph_test.py +0 -51
- agox-3.7.0rc1/agox/test/empty_cache.py +0 -24
- agox-3.7.0rc1/agox/test/environment_tests/environment_test.py +0 -45
- agox-3.7.0rc1/agox/test/generator_tests/conftest.py +0 -87
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/nonseeded_script.py +0 -22
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/seeded_script.py +0 -31
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/test_doc_scripts.py +0 -14
- agox-3.7.0rc1/agox/test/generator_tests/generator_test.py +0 -41
- agox-3.7.0rc1/agox/test/generator_tests/generator_utils.py +0 -84
- agox-3.7.0rc1/agox/test/generator_tests/test_cog.py +0 -42
- agox-3.7.0rc1/agox/test/generator_tests/test_generators.py +0 -55
- agox-3.7.0rc1/agox/test/generator_tests/test_permutation.py +0 -47
- agox-3.7.0rc1/agox/test/generator_tests/test_random.py +0 -36
- agox-3.7.0rc1/agox/test/generator_tests/test_rattle.py +0 -36
- agox-3.7.0rc1/agox/test/generator_tests/test_replace.py +0 -36
- agox-3.7.0rc1/agox/test/generator_tests/test_sampling.py +0 -34
- agox-3.7.0rc1/agox/test/generator_tests/test_steepest_descent.py +0 -34
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry.py +0 -38
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_2.py +0 -60
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_3.py +0 -48
- agox-3.7.0rc1/agox/test/model_tests/descriptors_api.py +0 -23
- agox-3.7.0rc1/agox/test/model_tests/gpr_api.py +0 -44
- agox-3.7.0rc1/agox/test/model_tests/model_utils.py +0 -51
- agox-3.7.0rc1/agox/test/model_tests/test_api.py +0 -26
- agox-3.7.0rc1/agox/test/model_tests/test_global_gpr.py +0 -73
- agox-3.7.0rc1/agox/test/model_tests/test_global_sparse_gpr.py +0 -92
- agox-3.7.0rc1/agox/test/model_tests/test_global_sparse_gpr_force_training.py +0 -93
- agox-3.7.0rc1/agox/test/model_tests/test_load.py +0 -65
- agox-3.7.0rc1/agox/test/model_tests/test_local_gpr.py +0 -97
- agox-3.7.0rc1/agox/test/model_tests/test_local_gpr_force_training.py +0 -98
- agox-3.7.0rc1/agox/test/model_tests/test_ray_gpr.py +0 -83
- agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +0 -84
- agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_global.py +0 -86
- agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_local.py +0 -82
- agox-3.7.0rc1/agox/test/model_tests/test_sgpr_sparse_schedule.py +0 -82
- agox-3.7.0rc1/agox/test/modifying_examples/confinement_examples.py +0 -134
- agox-3.7.0rc1/agox/test/postprocessor_tests/disjoint_filtering_test.py +0 -24
- agox-3.7.0rc1/agox/test/postprocessor_tests/model_results_test.py +0 -44
- agox-3.7.0rc1/agox/test/postprocessor_tests/postprocessor_test.py +0 -38
- agox-3.7.0rc1/agox/test/postprocessor_tests/test_survive_empty.py +0 -34
- agox-3.7.0rc1/agox/test/run_tests/run_utils.py +0 -71
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +0 -78
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +0 -78
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +0 -82
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +0 -86
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +0 -70
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +0 -70
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +0 -73
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +0 -80
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +0 -78
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +0 -83
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +0 -83
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +0 -87
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +0 -91
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +0 -198
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test_bh.py +0 -6
- agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_bh.py +0 -89
- agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_rss.py +0 -85
- agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_bh.py +0 -5
- agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_rss.py +0 -5
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/script_ce_default_gofee.py +0 -135
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/script_ce_gofee.py +0 -142
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/test_ce_default_gofee.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/test_ce_gofee.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_ea/script_ea.py +0 -104
- agox-3.7.0rc1/agox/test/run_tests/tests_ea/test_ea.py +0 -5
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +0 -126
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +0 -126
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +0 -130
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +0 -134
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +0 -119
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +0 -119
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +0 -122
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +0 -129
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +0 -127
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +0 -132
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +0 -132
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +0 -136
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +0 -140
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/test_gofee.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +0 -133
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh/script_lgpr_bh.py +0 -114
- agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh/test_lgpr_bh.py +0 -10
- agox-3.7.0rc1/agox/test/run_tests/tests_md/script_md_bh.py +0 -89
- agox-3.7.0rc1/agox/test/run_tests/tests_md/test_md_bh.py +0 -5
- agox-3.7.0rc1/agox/test/run_tests/tests_pt/script_pt.py +0 -97
- agox-3.7.0rc1/agox/test/run_tests/tests_pt/test_pt.py +0 -5
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_2d.py +0 -86
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +0 -75
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +0 -75
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +0 -79
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +0 -83
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +0 -68
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +0 -68
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +0 -71
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +0 -78
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +0 -77
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +0 -83
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +0 -82
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +0 -86
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +0 -90
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/test.py +0 -1
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/test_rss.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_schnet/script_schnet_bh.py +0 -99
- agox-3.7.0rc1/agox/test/run_tests/tests_schnet/test_schnet_bh.py +0 -9
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +0 -130
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +0 -151
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +0 -77
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +0 -7
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +0 -7
- agox-3.7.0rc1/agox/test/sampler_tests/sampler_test.py +0 -119
- agox-3.7.0rc1/agox/test/test_utils.py +0 -144
- agox-3.7.0rc1/agox/test/utils_tests/analysis_test.py +0 -39
- agox-3.7.0rc1/agox/test/utils_tests/cache_test.py +0 -25
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/colors_test.py +0 -161
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_atoms_test.py +0 -115
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_cell_test.py +0 -31
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/utils_test.py +0 -23
- agox-3.7.0rc1/agox/test/utils_tests/test_feature_dist_filter.py +0 -26
- agox-3.7.0rc1/agox/test/utils_tests/test_filters.py +0 -17
- agox-3.7.0rc1/agox/test/utils_tests/test_sparsifiers.py +0 -38
- agox-3.7.0rc1/agox/test/utils_tests/tracker_test.py +0 -94
- agox-3.7.0rc1/agox/tracker.py +0 -377
- agox-3.7.0rc1/agox/utils/batch_analysis.py +0 -843
- agox-3.7.0rc1/agox/utils/cache.py +0 -74
- agox-3.7.0rc1/agox/utils/constraints/box_constraint.py +0 -173
- agox-3.7.0rc1/agox/utils/convert_database.py +0 -100
- agox-3.7.0rc1/agox/utils/data_selection.py +0 -110
- agox-3.7.0rc1/agox/utils/decorators.py +0 -20
- agox-3.7.0rc1/agox/utils/filters/ABC_filter.py +0 -102
- agox-3.7.0rc1/agox/utils/filters/__init__.py +0 -26
- agox-3.7.0rc1/agox/utils/filters/feature_distance.py +0 -93
- agox-3.7.0rc1/agox/utils/filters/kmeans_energy.py +0 -57
- agox-3.7.0rc1/agox/utils/filters/sparse_filter.py +0 -73
- agox-3.7.0rc1/agox/utils/filters/voronoi.py +0 -119
- agox-3.7.0rc1/agox/utils/graph_sorting.py +0 -136
- agox-3.7.0rc1/agox/utils/jupyter_interactive.py +0 -310
- agox-3.7.0rc1/agox/utils/matplotlib_utils.py +0 -14
- agox-3.7.0rc1/agox/utils/metrics/__init__.py +0 -17
- agox-3.7.0rc1/agox/utils/metrics/calibration.py +0 -285
- agox-3.7.0rc1/agox/utils/metrics/metrics.py +0 -22
- agox-3.7.0rc1/agox/utils/numerical_derivative.py +0 -25
- agox-3.7.0rc1/agox/utils/plot/colors.py +0 -267
- agox-3.7.0rc1/agox/utils/plot/plot_atoms.py +0 -150
- agox-3.7.0rc1/agox/utils/plot/plot_cell.py +0 -82
- agox-3.7.0rc1/agox/utils/plot/plot_parity.py +0 -167
- agox-3.7.0rc1/agox/utils/plot/utils.py +0 -60
- agox-3.7.0rc1/agox/utils/ray/__init__.py +0 -4
- agox-3.7.0rc1/agox/utils/ray/actor.py +0 -68
- agox-3.7.0rc1/agox/utils/ray/pool.py +0 -567
- agox-3.7.0rc1/agox/utils/ray/pool_startup.py +0 -83
- agox-3.7.0rc1/agox/utils/ray/pool_user.py +0 -191
- agox-3.7.0rc1/agox/utils/ray/startup.py +0 -160
- agox-3.7.0rc1/agox/utils/ray/testing/__init__.py +0 -2
- agox-3.7.0rc1/agox/utils/ray/testing/log_reader.py +0 -103
- agox-3.7.0rc1/agox/utils/ray/testing/slurm_test_functions.py +0 -81
- agox-3.7.0rc1/agox/utils/sparsifiers/ABC_sparsifier.py +0 -125
- agox-3.7.0rc1/agox/utils/sparsifiers/CUR.py +0 -23
- agox-3.7.0rc1/agox/utils/sparsifiers/CUR_old.py +0 -24
- agox-3.7.0rc1/agox/utils/sparsifiers/MBkmeans.py +0 -69
- agox-3.7.0rc1/agox/utils/sparsifiers/__init__.py +0 -10
- agox-3.7.0rc1/agox/writer.py +0 -153
- agox-3.7.0rc1/agox.egg-info/PKG-INFO +0 -81
- agox-3.7.0rc1/agox.egg-info/SOURCES.txt +0 -459
- agox-3.7.0rc1/agox.egg-info/requires.txt +0 -27
- agox-3.7.0rc1/pyproject.toml +0 -67
- agox-3.7.0rc1/setup.py +0 -19
- {agox-3.7.0rc1 → agox-3.9.0}/LICENSE.txt +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/MANIFEST.in +0 -0
- {agox-3.7.0rc1/agox/generators/complementary_energy → agox-3.9.0/agox/cli}/__init__.py +0 -0
- {agox-3.7.0rc1/agox/generators/complementary_energy/attractor_methods → agox-3.9.0/agox/generators/complementary_energy}/__init__.py +0 -0
- {agox-3.7.0rc1/agox/generators/symmetry_utils → agox-3.9.0/agox/generators/complementary_energy/attractor_methods}/__init__.py +0 -0
- {agox-3.7.0rc1/agox/models/descriptors/fingerprint_cython → agox-3.9.0/agox/generators/symmetry_utils}/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/models/GPR/priors/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/models/GPR/priors/repulsive.pyx +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/models/datasets/Ag5O3-dataset.traj +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/models/datasets/__init__.py +0 -0
- {agox-3.7.0rc1/agox/models/schnetpack → agox-3.9.0/agox/models/descriptors/fingerprint_cython}/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.pyx +0 -0
- {agox-3.7.0rc1/agox/test → agox-3.9.0/agox/models/descriptors/fingerprint_jax}/__init__.py +0 -0
- {agox-3.7.0rc1/agox/test/model_tests → agox-3.9.0/agox/models/schnetpack}/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/.coveragerc +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/AgO-dataset.traj +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/B12-dataset.traj +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/C30-dataset.traj +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/databases/mos2_databases/db1.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/datasets/databases/mos2_databases/db2.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_AgO.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_B12.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/descriptor_tests/expected_outputs/SOAP_C30.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/GlobalGPR_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataAgO_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataC30_parameter0.pckl +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/load_api.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/sgpr_api.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/model_tests/sgpr_api_forces.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/cluster_confinement.png +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_cluster_confinement.png +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_film_confinement.png +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/surface_toplayer_unc.png +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/modifying_examples/plots/two_d_environment.png +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_cluster_emt_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/confinement_plot_RattleGenerator.png +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/db0_tracker.npz +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/dbs/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_bh/test/dbs/db0_tracker.npz +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0_tracker.npz +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0_tracker.npz +0 -0
- {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
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ce/expected_outputs/ce_gofee_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ea/expected_outputs/ea_test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_ea/expected_outputs/ea_test/population_5.traj +0 -0
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0.db +0 -0
- {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
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/db0.db +0 -0
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0.db +0 -0
- {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
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_lgpr_bh/expected_outputs/lgpr_bh_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0.db +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0_tracker.npz +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_2d_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0.db +0 -0
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0.db +0 -0
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0.db +0 -0
- {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
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0.db +0 -0
- {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
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0.db +0 -0
- {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
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0.db +0 -0
- {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
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/constraints/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/all.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/energy.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/filter.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/none.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/filters/random.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/plot/__init__.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox/utils/sparsifiers/random.py +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/dependency_links.txt +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/entry_points.txt +0 -0
- {agox-3.7.0rc1 → agox-3.9.0}/agox.egg-info/top_level.txt +0 -0
- {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
|
+

|
|
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
|
+

|
|
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
|