agox 3.1.1__tar.gz → 3.7.0rc1__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.7.0rc1/PKG-INFO +81 -0
- agox-3.7.0rc1/agox/__init__.py +25 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/acquisitors/ABC_acquisitor.py +83 -53
- agox-3.7.0rc1/agox/acquisitors/EI.py +53 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/acquisitors/LCB.py +32 -6
- {agox-3.1.1 → agox-3.7.0rc1}/agox/acquisitors/LCB_power.py +1 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/acquisitors/__init__.py +7 -4
- {agox-3.1.1 → agox-3.7.0rc1}/agox/candidates/ABC_candidate.py +67 -39
- {agox-3.1.1 → agox-3.7.0rc1}/agox/candidates/__init__.py +6 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/candidates/standard.py +3 -1
- agox-3.7.0rc1/agox/cli/__init__.py +6 -0
- agox-3.7.0rc1/agox/cli/cli_analysis.py +152 -0
- agox-3.7.0rc1/agox/cli/cli_convert.py +82 -0
- agox-3.7.0rc1/agox/cli/cli_example.py +16 -0
- agox-3.7.0rc1/agox/cli/cli_graph_sorting.py +134 -0
- agox-3.7.0rc1/agox/cli/cli_notebook.py +116 -0
- agox-3.7.0rc1/agox/cli/main.py +15 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/collectors/ABC_collector.py +45 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/collectors/__init__.py +5 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/collectors/ray_collector.py +35 -16
- agox-3.7.0rc1/agox/collectors/standard.py +77 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/ABC_database.py +24 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/__init__.py +2 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/database.py +2 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/database_concurrent.py +5 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/database_utilities.py +3 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/environments/ABC_environment.py +53 -7
- {agox-3.1.1 → agox-3.7.0rc1}/agox/environments/__init__.py +5 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/environments/environment.py +23 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/evaluators/ABC_evaluator.py +11 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/evaluators/__init__.py +6 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/evaluators/local_optimization.py +30 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/evaluators/single_point.py +11 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/ABC_generator.py +65 -13
- agox-3.7.0rc1/agox/generators/MD.py +154 -0
- agox-3.7.0rc1/agox/generators/__init__.py +49 -0
- agox-3.7.0rc1/agox/generators/block_generators/ABC_block.py +185 -0
- agox-3.7.0rc1/agox/generators/block_generators/__init__.py +2 -0
- agox-3.7.0rc1/agox/generators/block_generators/random.py +63 -0
- agox-3.7.0rc1/agox/generators/block_generators/rattle.py +104 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/ce_generator.py +36 -19
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/cog.py +19 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/ABC_attractors.py +11 -3
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/ce_attractors_another_structure.py +17 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/ce_attractors_current_structure.py +18 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/ce_attractors_interpolation.py +17 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/ce_attractors_kmeans.py +19 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/ce_calculators.py +53 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/permutation.py +26 -20
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/random.py +32 -15
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/rattle.py +36 -25
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/replace.py +22 -10
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/reuse.py +15 -12
- agox-3.7.0rc1/agox/generators/sampling.py +27 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/steepest_descent.py +25 -10
- agox-3.7.0rc1/agox/generators/symmetry.py +340 -0
- agox-3.7.0rc1/agox/generators/symmetry_permutation.py +233 -0
- agox-3.7.0rc1/agox/generators/symmetry_rattle.py +475 -0
- agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_enforcer.py +1758 -0
- agox-3.7.0rc1/agox/generators/symmetry_utils/symmetry_groups.py +933 -0
- agox-3.7.0rc1/agox/helpers/__init__.py +5 -0
- agox-3.7.0rc1/agox/helpers/gpaw_subprocess.py +58 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/main.py +159 -94
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/ABC_model.py +21 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/GPR.py +71 -70
- agox-3.7.0rc1/agox/models/GPR/__init__.py +5 -0
- agox-3.7.0rc1/agox/models/GPR/kernels/__init__.py +1 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/kernels/kernels.py +16 -1
- agox-3.7.0rc1/agox/models/GPR/local_mean.py +44 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/priors/repulsive.c +6092 -9689
- agox-3.7.0rc1/agox/models/GPR/sGPR.py +872 -0
- agox-3.7.0rc1/agox/models/GPR/sGPR_ensemble.py +114 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/__init__.py +1 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/ABC_descriptor.py +7 -6
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/__init__.py +1 -0
- agox-3.7.0rc1/agox/models/descriptors/fingerprint.py +130 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.c +11562 -15742
- agox-3.7.0rc1/agox/models/descriptors/scale_select_descriptor.py +79 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/simple_fingerprint.py +1 -1
- agox-3.7.0rc1/agox/models/descriptors/soap.py +166 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/spectral_graph_descriptor.py +1 -1
- agox-3.7.0rc1/agox/models/descriptors/type_descriptor.py +47 -0
- agox-3.7.0rc1/agox/models/descriptors/voronoi.py +264 -0
- agox-3.7.0rc1/agox/models/priors/constant.py +12 -0
- agox-3.7.0rc1/agox/models/schnetpack/schnetpack.py +432 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/module.py +15 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/ABC_postprocess.py +15 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/__init__.py +12 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/centering.py +17 -0
- agox-3.7.0rc1/agox/postprocessors/disjoint_filtering.py +87 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/minimum_dist.py +18 -3
- agox-3.7.0rc1/agox/postprocessors/optimizers/__init__.py +1 -0
- agox-3.7.0rc1/agox/postprocessors/optimizers/safe_bfgs.py +31 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/ray_relax.py +57 -12
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/relax.py +24 -3
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/wrap.py +8 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/ABC_sampler.py +72 -34
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/__init__.py +13 -1
- agox-3.7.0rc1/agox/samplers/fixed_sampler.py +39 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/genetic.py +21 -14
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/kernel_similarity.py +6 -4
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/kmeans.py +28 -48
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/metropolis.py +18 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/parallel_tempering_sampler.py +17 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/samplers/spectral_graph.py +18 -1
- agox-3.7.0rc1/agox/test/acquisitor_test/test_lcb.py +58 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/conftest.py +3 -3
- agox-3.7.0rc1/agox/test/empty_cache.py +24 -0
- agox-3.7.0rc1/agox/test/generator_tests/conftest.py +87 -0
- agox-3.7.0rc1/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataAgO_parameter1.pckl +0 -0
- agox-3.7.0rc1/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/generator_tests/expected_outputs/SymmetryGenerator_dataB12_parameter1.pckl +0 -0
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/nonseeded_script.py +22 -0
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/seeded_script.py +31 -0
- agox-3.7.0rc1/agox/test/generator_tests/for_docs/test_doc_scripts.py +14 -0
- agox-3.7.0rc1/agox/test/generator_tests/test_generators.py +55 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_random.py +2 -2
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry.py +38 -0
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_2.py +60 -0
- agox-3.7.0rc1/agox/test/generator_tests/test_symmetry_3.py +48 -0
- agox-3.7.0rc1/agox/test/model_tests/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/descriptors_api.py +2 -2
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataB12_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/LocalSparseGPRForces_dataC30_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataAgO_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataC30_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataAgO_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataB12_parameter0.pckl +0 -0
- agox-3.7.0rc1/agox/test/model_tests/expected_outputs/globalSparseGPRForces_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/gpr_api.py +5 -5
- agox-3.7.0rc1/agox/test/model_tests/sgpr_api_forces.py +43 -0
- agox-3.7.0rc1/agox/test/model_tests/test_api.py +26 -0
- agox-3.7.0rc1/agox/test/model_tests/test_global_sparse_gpr_force_training.py +93 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_load.py +4 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_local_gpr.py +2 -0
- agox-3.7.0rc1/agox/test/model_tests/test_local_gpr_force_training.py +98 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_ray_gpr.py +9 -11
- agox-3.1.1/agox/test/model_tests/test_ray_sgpr_global.py → agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_ensemble_local.py +10 -9
- agox-3.7.0rc1/agox/test/model_tests/test_ray_sgpr_global.py +86 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_ray_sgpr_local.py +2 -1
- agox-3.7.0rc1/agox/test/model_tests/test_sgpr_sparse_schedule.py +82 -0
- agox-3.7.0rc1/agox/test/modifying_examples/confinement_examples.py +134 -0
- agox-3.7.0rc1/agox/test/modifying_examples/plots/cluster_confinement.png +0 -0
- agox-3.7.0rc1/agox/test/modifying_examples/plots/surface_cluster_confinement.png +0 -0
- agox-3.7.0rc1/agox/test/modifying_examples/plots/surface_film_confinement.png +0 -0
- agox-3.7.0rc1/agox/test/modifying_examples/plots/surface_toplayer_unc.png +0 -0
- agox-3.7.0rc1/agox/test/modifying_examples/plots/two_d_environment.png +0 -0
- agox-3.7.0rc1/agox/test/postprocessor_tests/disjoint_filtering_test.py +24 -0
- agox-3.7.0rc1/agox/test/postprocessor_tests/test_survive_empty.py +34 -0
- agox-3.7.0rc1/agox/test/run_tests/run_utils.py +71 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_bulk_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_surface_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_chgnet.py +78 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_emt.py +78 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_gpaw.py +82 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_bulk_vasp.py +86 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_chgnet.py +70 -0
- agox-3.1.1/agox/test/run_tests/script_bh.py → agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_emt.py +0 -9
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_gpaw.py +73 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_orca.py +80 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_cluster_vasp.py +78 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_chgnet.py +83 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_emt.py +83 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_gpaw.py +87 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/script_bh_surface_vasp.py +91 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/automagic_analysis.ipynb +198 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/dbs/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test/dbs/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_bh/test_bh.py +6 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/expected_outputs/block_bh_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/expected_outputs/block_rss_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_bh.py +89 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/script_block_rss.py +85 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_bh.py +5 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_block/test_block_rss.py +5 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_ComplementaryEnergyGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_ce/expected_outputs/ce_default_gofee_test/confinement_plot_RattleGenerator.png +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/script_ce_default_gofee.py +7 -6
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/script_ce_gofee.py +7 -6
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ea}/script_ea.py +1 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_bulk_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/confinement_plot_RattleGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_surface_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_chgnet.py +126 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_emt.py +126 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_gpaw.py +130 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_bulk_vasp.py +134 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_chgnet.py +119 -0
- agox-3.1.1/agox/test/run_tests/script_gofee.py → agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_emt.py +16 -23
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_gpaw.py +122 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_orca.py +129 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_cluster_vasp.py +127 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_chgnet.py +132 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_emt.py +132 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_gpaw.py +136 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/script_gofee_surface_vasp.py +140 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_gofee/test_gofee.py +7 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/expected_outputs/graph_filtering_gofee_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/script_graph_filtering_gofee.py +133 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_graph_filt/test_graph_filtering_gofee.py +7 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh}/script_lgpr_bh.py +4 -3
- agox-3.7.0rc1/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/confinement_plot_MDgenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_md/expected_outputs/md_bh_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_md/script_md_bh.py +89 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_md/test_md_bh.py +5 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_pt}/script_pt.py +1 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_2d_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_bulk_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_cluster_emt_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/confinement_plot_RandomGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/expected_outputs/rss_surface_emt_test/db0_tracker.npz +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_rss}/script_rss_2d.py +0 -8
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_chgnet.py +75 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_emt.py +75 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_gpaw.py +79 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_bulk_vasp.py +83 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_chgnet.py +68 -0
- agox-3.1.1/agox/test/run_tests/script_rss.py → agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_emt.py +0 -8
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_gpaw.py +71 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_orca.py +78 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_cluster_vasp.py +77 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_chgnet.py +83 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_emt.py +82 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_gpaw.py +86 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/script_rss_surface_vasp.py +90 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/test.py +1 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_rss/test_rss.py +7 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_cluster_symmetry_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_RattleGeneratorSym.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/gofee_slab_symmetry_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/confinement_plot_SymmetryGenerator.png +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0.db +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/expected_outputs/rss_cluster_symmetry_test/db0_tracker.npz +0 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_cluster_symmetry.py +130 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_gofee_slab_symmetry.py +151 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/script_rss_cluster_symmetry.py +77 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_cluster_symmetry.py +7 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_gofee_slab_symmetry.py +7 -0
- agox-3.7.0rc1/agox/test/run_tests/tests_symmetry/test_rss_cluster_symmetry.py +7 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/sampler_tests/sampler_test.py +16 -7
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/test_utils.py +16 -4
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/colors_test.py +161 -0
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_atoms_test.py +115 -0
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/plot_cell_test.py +31 -0
- agox-3.7.0rc1/agox/test/utils_tests/plot_tests/utils_test.py +23 -0
- agox-3.7.0rc1/agox/test/utils_tests/test_filters.py +17 -0
- agox-3.7.0rc1/agox/test/utils_tests/test_sparsifiers.py +38 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/tracker.py +2 -2
- agox-3.7.0rc1/agox/utils/batch_analysis.py +843 -0
- agox-3.7.0rc1/agox/utils/constraints/box_constraint.py +173 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/convert_database.py +8 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/filters/ABC_filter.py +2 -2
- agox-3.7.0rc1/agox/utils/filters/__init__.py +26 -0
- agox-3.7.0rc1/agox/utils/filters/all.py +25 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/filters/feature_distance.py +2 -2
- agox-3.7.0rc1/agox/utils/filters/kmeans_energy.py +57 -0
- agox-3.7.0rc1/agox/utils/filters/none.py +25 -0
- agox-3.7.0rc1/agox/utils/filters/random.py +29 -0
- agox-3.7.0rc1/agox/utils/filters/sparse_filter.py +73 -0
- agox-3.7.0rc1/agox/utils/filters/voronoi.py +119 -0
- agox-3.7.0rc1/agox/utils/graph_sorting.py +136 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/jupyter_interactive.py +5 -9
- agox-3.7.0rc1/agox/utils/metrics/__init__.py +17 -0
- agox-3.7.0rc1/agox/utils/metrics/calibration.py +285 -0
- agox-3.7.0rc1/agox/utils/metrics/metrics.py +22 -0
- agox-3.7.0rc1/agox/utils/numerical_derivative.py +25 -0
- agox-3.7.0rc1/agox/utils/plot/__init__.py +4 -0
- agox-3.7.0rc1/agox/utils/plot/colors.py +267 -0
- agox-3.7.0rc1/agox/utils/plot/plot_atoms.py +150 -0
- agox-3.7.0rc1/agox/utils/plot/plot_cell.py +82 -0
- agox-3.7.0rc1/agox/utils/plot/plot_parity.py +167 -0
- agox-3.7.0rc1/agox/utils/plot/utils.py +60 -0
- agox-3.7.0rc1/agox/utils/ray/__init__.py +4 -0
- agox-3.7.0rc1/agox/utils/ray/actor.py +68 -0
- agox-3.7.0rc1/agox/utils/ray/pool.py +567 -0
- agox-3.7.0rc1/agox/utils/ray/pool_startup.py +83 -0
- agox-3.7.0rc1/agox/utils/ray/pool_user.py +191 -0
- agox-3.7.0rc1/agox/utils/ray/startup.py +160 -0
- agox-3.7.0rc1/agox/utils/ray/testing/__init__.py +2 -0
- agox-3.7.0rc1/agox/utils/ray/testing/log_reader.py +103 -0
- agox-3.7.0rc1/agox/utils/ray/testing/slurm_test_functions.py +81 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/sparsifiers/ABC_sparsifier.py +2 -2
- agox-3.7.0rc1/agox/utils/sparsifiers/CUR.py +23 -0
- agox-3.1.1/agox/utils/sparsifiers/CUR.py → agox-3.7.0rc1/agox/utils/sparsifiers/CUR_old.py +6 -2
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/sparsifiers/MBkmeans.py +4 -1
- agox-3.7.0rc1/agox/utils/sparsifiers/__init__.py +10 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/sparsifiers/random.py +2 -1
- {agox-3.1.1 → agox-3.7.0rc1}/agox/writer.py +33 -7
- agox-3.7.0rc1/agox.egg-info/PKG-INFO +81 -0
- agox-3.7.0rc1/agox.egg-info/SOURCES.txt +459 -0
- agox-3.7.0rc1/agox.egg-info/entry_points.txt +3 -0
- agox-3.7.0rc1/agox.egg-info/requires.txt +27 -0
- agox-3.7.0rc1/pyproject.toml +67 -0
- agox-3.7.0rc1/setup.cfg +4 -0
- agox-3.7.0rc1/setup.py +19 -0
- agox-3.1.1/PKG-INFO +0 -54
- agox-3.1.1/agox/__init__.py +0 -6
- agox-3.1.1/agox/__version__.py +0 -2
- agox-3.1.1/agox/collectors/standard.py +0 -66
- agox-3.1.1/agox/generators/__init__.py +0 -24
- agox-3.1.1/agox/generators/sampling.py +0 -18
- agox-3.1.1/agox/helpers/helper_observers/parameter_updater.py +0 -57
- agox-3.1.1/agox/models/GPR/__init__.py +0 -3
- agox-3.1.1/agox/models/GPR/kernels/__init__.py +0 -1
- agox-3.1.1/agox/models/GPR/sGPR.py +0 -599
- agox-3.1.1/agox/models/descriptors/fingerprint.py +0 -58
- agox-3.1.1/agox/models/descriptors/soap.py +0 -73
- agox-3.1.1/agox/postprocessors/mpi_relax.py +0 -410
- agox-3.1.1/agox/test/.coverage +0 -0
- agox-3.1.1/agox/test/__pycache__/__init__.cpython-38.pyc +0 -0
- agox-3.1.1/agox/test/__pycache__/conftest.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/__pycache__/test_utils.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/database_tests/__pycache__/database_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/descriptor_tests/__pycache__/soap_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/descriptor_tests/__pycache__/spectral_graph_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/environment_tests/__pycache__/environment_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/generator_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/generator_utils.cpython-38.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_cog.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_permutation.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_random.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_rattle.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_replace.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_sampling.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/generator_tests/__pycache__/test_steepest_descent.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/__init__.cpython-38.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_api.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_global_gpr.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_global_sparse_gpr.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_load.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_local_gpr.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_ray_gpr.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_ray_sgpr_global.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/__pycache__/test_ray_sgpr_local.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataAgO_parameter0.pckl +0 -0
- agox-3.1.1/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataC30_parameter0.pckl +0 -0
- agox-3.1.1/agox/test/model_tests/test_api.py +0 -13
- agox-3.1.1/agox/test/postprocessor_tests/__pycache__/model_results_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/postprocessor_tests/__pycache__/postprocessor_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/run_utils.cpython-38.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_bh.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_ce_default_gofee.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_ce_gofee.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_ea.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_gofee.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_lgpr_bh.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_pt.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_rss.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_rss_2d.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/__pycache__/test_schnet_bh.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/run_tests/expected_outputs/rss_test/db0.db +0 -0
- agox-3.1.1/agox/test/run_tests/run_utils.py +0 -52
- agox-3.1.1/agox/test/run_tests/test_bh.py +0 -5
- agox-3.1.1/agox/test/run_tests/test_gofee.py +0 -7
- agox-3.1.1/agox/test/run_tests/test_rss.py +0 -5
- agox-3.1.1/agox/test/run_tests/test_rss_2d.py +0 -5
- agox-3.1.1/agox/test/sampler_tests/__pycache__/sampler_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/__pycache__/analysis_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/__pycache__/cache_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/__pycache__/plot_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/__pycache__/test_feature_dist_filter.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/__pycache__/tracker_test.cpython-38-pytest-7.4.0.pyc +0 -0
- agox-3.1.1/agox/test/utils_tests/plot_test.py +0 -124
- agox-3.1.1/agox/utils/batch_analysis.py +0 -861
- agox-3.1.1/agox/utils/constraints/__init__.py +0 -1
- agox-3.1.1/agox/utils/constraints/box_constraint.py +0 -92
- agox-3.1.1/agox/utils/filters/__init__.py +0 -3
- agox-3.1.1/agox/utils/notebook_batch_analysis.py +0 -164
- agox-3.1.1/agox/utils/plot.py +0 -250
- agox-3.1.1/agox/utils/ray_utils.py +0 -671
- agox-3.1.1/agox/utils/sparsifiers/__init__.py +0 -4
- agox-3.1.1/agox.egg-info/PKG-INFO +0 -54
- agox-3.1.1/agox.egg-info/SOURCES.txt +0 -311
- agox-3.1.1/agox.egg-info/entry_points.txt +0 -3
- agox-3.1.1/agox.egg-info/requires.txt +0 -16
- agox-3.1.1/pyproject.toml +0 -9
- agox-3.1.1/setup.cfg +0 -16
- agox-3.1.1/setup.py +0 -68
- {agox-3.1.1 → agox-3.7.0rc1}/LICENSE.txt +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/MANIFEST.in +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/README.md +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/databases/concurrent_ordered.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/evaluators/rattle.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/generators/complementary_energy/attractor_methods/__init__.py +0 -0
- {agox-3.1.1/agox/helpers/helper_observers → agox-3.7.0rc1/agox/generators/symmetry_utils}/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/helpers/confinement.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/helpers/gpaw_io.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/priors/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/priors/repulsive.pyx +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/GPR/priors/setup.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/datasets/Ag5O3-dataset.traj +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/datasets/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/datasets/loader.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/acsf.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/exponential_density.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/fingerprint_cython/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/fingerprint_cython/angular_fingerprintFeature_cy.pyx +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/models/descriptors/fingerprint_cython/setup.py +0 -0
- {agox-3.1.1/agox/test → agox-3.7.0rc1/agox/models/schnetpack}/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/observer.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/postprocessors/immunizer.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/.coveragerc +0 -0
- {agox-3.1.1/agox/test/model_tests → agox-3.7.0rc1/agox/test}/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/database_tests/database_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/datasets/AgO-dataset.traj +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/datasets/B12-dataset.traj +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/datasets/C30-dataset.traj +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/datasets/databases/mos2_databases/db1.db +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/datasets/databases/mos2_databases/db2.db +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/descriptor_tests/expected_outputs/SOAP_AgO.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/descriptor_tests/expected_outputs/SOAP_B12.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/descriptor_tests/expected_outputs/SOAP_C30.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/descriptor_tests/soap_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/descriptor_tests/spectral_graph_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/environment_tests/environment_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/CenterOfGeometryGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/PermutationGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RandomGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/RattleGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataAgO_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataB12_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter1.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/ReplaceGenerator_dataC30_parameter2.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SamplingGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/expected_outputs/SteepestDescentGenerator_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/generator_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/generator_utils.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_cog.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_permutation.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_rattle.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_replace.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_sampling.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/generator_tests/test_steepest_descent.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/GlobalGPR_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/GlobalGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/GlobalGPR_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/LocalSparseGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataAgO_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataB12_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/expected_outputs/globalSparseGPR_dataC30_parameter0.pckl +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/load_api.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/model_utils.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/sgpr_api.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_global_gpr.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/model_tests/test_global_sparse_gpr.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/postprocessor_tests/model_results_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/postprocessor_tests/postprocessor_test.py +0 -0
- {agox-3.1.1/agox/test/run_tests/expected_outputs/bh_test → agox-3.7.0rc1/agox/test/run_tests/tests_bh/expected_outputs/bh_cluster_emt_test}/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/expected_outputs/ce_default_gofee_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/expected_outputs/ce_gofee_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/test_ce_default_gofee.py +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ce}/test_ce_gofee.py +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ea}/expected_outputs/ea_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ea}/expected_outputs/ea_test/population_5.traj +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_ea}/test_ea.py +0 -0
- {agox-3.1.1/agox/test/run_tests/expected_outputs/gofee_test → agox-3.7.0rc1/agox/test/run_tests/tests_gofee/expected_outputs/gofee_cluster_emt_test}/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh}/expected_outputs/lgpr_bh_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_lgpr_bh}/test_lgpr_bh.py +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_pt}/expected_outputs/pt_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_pt}/test_pt.py +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_rss}/expected_outputs/rss_2d_test/db0.db +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_schnet}/script_schnet_bh.py +0 -0
- {agox-3.1.1/agox/test/run_tests → agox-3.7.0rc1/agox/test/run_tests/tests_schnet}/test_schnet_bh.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/utils_tests/analysis_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/utils_tests/cache_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/utils_tests/test_feature_dist_filter.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/test/utils_tests/tracker_test.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/cache.py +0 -0
- {agox-3.1.1/agox/helpers → agox-3.7.0rc1/agox/utils/constraints}/__init__.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/data_selection.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/decorators.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/filters/energy.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/filters/filter.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox/utils/matplotlib_utils.py +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox.egg-info/dependency_links.txt +0 -0
- {agox-3.1.1 → agox-3.7.0rc1}/agox.egg-info/top_level.txt +0 -0
agox-3.7.0rc1/PKG-INFO
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: agox
|
|
3
|
+
Version: 3.7.0rc1
|
|
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
|
+
|
|
@@ -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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
verbose: bool
|
|
14
|
-
Controls how much printing the module does.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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__(
|
|
23
|
-
|
|
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(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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,81 +89,96 @@ 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=
|
|
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
|
-
[
|
|
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(
|
|
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 =
|
|
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
|
+
"""
|
|
146
176
|
|
|
147
177
|
def __init__(self, model, **kwargs):
|
|
148
178
|
Calculator.__init__(self, **kwargs)
|
|
149
179
|
Module.__init__(self)
|
|
150
180
|
self.model = model
|
|
151
|
-
|
|
181
|
+
|
|
152
182
|
@property
|
|
153
183
|
def verbose(self):
|
|
154
184
|
return self.model.verbose
|
|
@@ -164,7 +194,7 @@ class AcquisitonCalculatorBaseClass(Calculator, Module):
|
|
|
164
194
|
self.model.set_verbosity(verbose)
|
|
165
195
|
|
|
166
196
|
def get_iteration_number(self):
|
|
167
|
-
if hasattr(self,
|
|
197
|
+
if hasattr(self, "get_iteration_counter"):
|
|
168
198
|
return self.get_iteration_counter()
|
|
169
199
|
else:
|
|
170
200
|
return self.iteration
|
|
@@ -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,6 +4,27 @@ 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
30
|
def __init__(self, model, kappa=1, **kwargs):
|
|
@@ -31,7 +52,8 @@ class LowerConfidenceBoundAcquisitor(AcquisitorBaseClass):
|
|
|
31
52
|
fitness = acquisition_values[i]
|
|
32
53
|
Emodel = candidate.get_meta_information('model_energy')
|
|
33
54
|
sigma = candidate.get_meta_information('uncertainty')
|
|
34
|
-
|
|
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))
|
|
35
57
|
|
|
36
58
|
def get_acquisition_calculator(self):
|
|
37
59
|
return LowerConfidenceBoundCalculator(self.model, self.acquisition_function, self.acquisition_force)
|
|
@@ -59,16 +81,20 @@ class LowerConfidenceBoundCalculator(AcquisitonCalculatorBaseClass):
|
|
|
59
81
|
system_changes=all_changes):
|
|
60
82
|
super().calculate(atoms, properties, system_changes)
|
|
61
83
|
|
|
62
|
-
|
|
84
|
+
derivatives = 'forces' in properties
|
|
85
|
+
model_data = self.model.converter(atoms, derivatives=derivatives)
|
|
63
86
|
|
|
64
87
|
E = self.model.predict_energy(atoms, **model_data)
|
|
65
88
|
sigma = self.model.predict_uncertainty(atoms, **model_data)
|
|
66
|
-
F = self.model.predict_forces(atoms, **model_data)
|
|
67
|
-
sigma_force = self.model.predict_uncertainty_forces(atoms, **model_data)
|
|
68
|
-
|
|
69
|
-
self.results['forces'] = self.acquisition_force(E, F, sigma, sigma_force)
|
|
70
89
|
self.results['energy'] = self.acquisition_function(E, sigma)
|
|
71
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
|
+
|
|
72
98
|
|
|
73
99
|
|
|
74
100
|
|
|
@@ -16,10 +16,13 @@ This lets an algorithm choose which candidates to evaluate, but
|
|
|
16
16
|
does require the generation of multiple candidates to choose from.
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
19
|
from .ABC_acquisitor import AcquisitorBaseClass, AcquisitonCalculatorBaseClass
|
|
23
|
-
from .LCB import LowerConfidenceBoundAcquisitor
|
|
20
|
+
from .LCB import LowerConfidenceBoundAcquisitor
|
|
24
21
|
from .LCB_power import PowerLowerConfidenceBoundAcquisitor
|
|
25
22
|
|
|
23
|
+
__all__ = ['AcquisitorBaseClass',
|
|
24
|
+
'LowerConfidenceBoundAcquisitor',
|
|
25
|
+
'PowerLowerConfidenceBoundAcquisitor'
|
|
26
|
+
'AcquisitonCalculatorBaseClass',
|
|
27
|
+
]
|
|
28
|
+
|
|
@@ -11,25 +11,25 @@ from agox.utils.cache import Cache
|
|
|
11
11
|
|
|
12
12
|
class CandidateBaseClass(ABC, Atoms, Module):
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
"""
|
|
15
|
+
Base-class for Candidate objects.
|
|
16
|
+
|
|
17
|
+
Parameters
|
|
18
|
+
------------
|
|
19
|
+
template: ase.Atoms
|
|
20
|
+
Atoms object of the template structure. Does not need to be supplied
|
|
21
|
+
if 'template_indices' are given.
|
|
22
|
+
template_indices: np.array
|
|
23
|
+
Indices of template atoms.
|
|
24
|
+
kwargs:
|
|
25
|
+
Everything that can be supplied to an ASE atoms object, specifically
|
|
26
|
+
cell, positions and numbers of ALL atoms - including template atoms.
|
|
27
|
+
"""
|
|
18
28
|
|
|
19
|
-
|
|
20
|
-
------------
|
|
21
|
-
template: ASE atoms object.
|
|
22
|
-
atoms object of the template structure. Does not need to be supplied
|
|
23
|
-
if 'template_indices' are given.
|
|
24
|
-
template_indices: np.array
|
|
25
|
-
Indices of template atoms.
|
|
26
|
-
kwargs:
|
|
27
|
-
Everything that can be supplied to an ASE atoms object, specifically
|
|
28
|
-
cell, positions and numbers of ALL atoms - including template atoms.
|
|
29
|
-
"""
|
|
29
|
+
def __init__(self, template=None, template_indices=None, use_cache=True, **kwargs):
|
|
30
30
|
Atoms.__init__(self, **kwargs) # This means all Atoms-related stuff gets set.
|
|
31
31
|
Module.__init__(self, use_cache=use_cache)
|
|
32
|
-
self.meta_information =
|
|
32
|
+
self.meta_information = self.info
|
|
33
33
|
|
|
34
34
|
self.use_cache = use_cache
|
|
35
35
|
self._cache = Cache()
|
|
@@ -116,6 +116,48 @@ class CandidateBaseClass(ABC, Atoms, Module):
|
|
|
116
116
|
"""
|
|
117
117
|
self.meta_information[name] = value
|
|
118
118
|
|
|
119
|
+
def add_write_key(self,value):
|
|
120
|
+
"""
|
|
121
|
+
Adds a write key to the candidates meta information.
|
|
122
|
+
|
|
123
|
+
Parameters
|
|
124
|
+
-----------
|
|
125
|
+
value: str
|
|
126
|
+
key to add to the write information
|
|
127
|
+
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
try:
|
|
131
|
+
keys=self.get_meta_information("write_keys")
|
|
132
|
+
if isinstance(keys, str):
|
|
133
|
+
keys=list(keys.split(" "))
|
|
134
|
+
if value not in keys:
|
|
135
|
+
keys.append(value)
|
|
136
|
+
except:
|
|
137
|
+
keys=[value]
|
|
138
|
+
self.add_meta_information("write_keys",keys)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def print_properties(self,writer,iteration):
|
|
142
|
+
keys=self.get_meta_information("write_keys")
|
|
143
|
+
strings_list=[]
|
|
144
|
+
write_string="Energy: "+str(iteration)+" "+str(self.get_potential_energy())+" "
|
|
145
|
+
|
|
146
|
+
if keys is not None:
|
|
147
|
+
for key in keys:
|
|
148
|
+
addendum="["+key+":"+" "+self.get_meta_information(key)+"] "
|
|
149
|
+
if len(write_string)+len(addendum) > 120:
|
|
150
|
+
strings_list.append(write_string)
|
|
151
|
+
write_string = ""
|
|
152
|
+
|
|
153
|
+
write_string+=addendum
|
|
154
|
+
#self.writer('Energy {:06d}: {}'.format(self.get_iteration_counter(), candidate.get_potential_energy()), flush=True)
|
|
155
|
+
strings_list.append(write_string)
|
|
156
|
+
if strings_list is not None:
|
|
157
|
+
for string in strings_list:
|
|
158
|
+
writer(string,flush=True)
|
|
159
|
+
|
|
160
|
+
|
|
119
161
|
def get_meta_information(self, name):
|
|
120
162
|
"""
|
|
121
163
|
Get from the meta_information dict.
|
|
@@ -185,7 +227,13 @@ class CandidateBaseClass(ABC, Atoms, Module):
|
|
|
185
227
|
"""
|
|
186
228
|
return self.meta_information.pop(name, None)
|
|
187
229
|
|
|
188
|
-
def
|
|
230
|
+
def reset_meta_information(self):
|
|
231
|
+
"""
|
|
232
|
+
Resets meta_information
|
|
233
|
+
"""
|
|
234
|
+
self.meta_information = dict()
|
|
235
|
+
|
|
236
|
+
def get_template(self) -> Atoms:
|
|
189
237
|
"""
|
|
190
238
|
Get the template atoms object.
|
|
191
239
|
|
|
@@ -231,22 +279,6 @@ class CandidateBaseClass(ABC, Atoms, Module):
|
|
|
231
279
|
calc = SinglePointCalculator(atoms, energy=self.calc.results['energy'])
|
|
232
280
|
atoms.set_calculator(calc)
|
|
233
281
|
|
|
234
|
-
def get_uncertainty(self):
|
|
235
|
-
"""
|
|
236
|
-
Equivalent of 'atoms.get_potential_energy' but for uncertainty.
|
|
237
|
-
|
|
238
|
-
Returns:
|
|
239
|
-
---------
|
|
240
|
-
float
|
|
241
|
-
The uncertainty, returns 0 if 'uncertainty' is not in
|
|
242
|
-
'implemeneted_properties' of the model calculator.
|
|
243
|
-
"""
|
|
244
|
-
if 'uncertainty' in self.calc.implemented_properties:
|
|
245
|
-
return self.calc.get_property('uncertainty')
|
|
246
|
-
else:
|
|
247
|
-
#print('Calculator {} does not implement uncertainty - Default return: 0')
|
|
248
|
-
return 0.
|
|
249
|
-
|
|
250
282
|
def set_postprocess_immunity(self, state):
|
|
251
283
|
"""
|
|
252
284
|
Set postprocess immunity.
|
|
@@ -295,7 +327,7 @@ class CandidateBaseClass(ABC, Atoms, Module):
|
|
|
295
327
|
"""
|
|
296
328
|
return self.template_indices
|
|
297
329
|
|
|
298
|
-
def get_optimize_indices(self):
|
|
330
|
+
def get_optimize_indices(self) -> np.array:
|
|
299
331
|
"""
|
|
300
332
|
Returns
|
|
301
333
|
--------
|
|
@@ -304,7 +336,7 @@ class CandidateBaseClass(ABC, Atoms, Module):
|
|
|
304
336
|
"""
|
|
305
337
|
return np.arange(len(self.template), len(self))
|
|
306
338
|
|
|
307
|
-
def get_center_of_geometry(self, all_atoms=False):
|
|
339
|
+
def get_center_of_geometry(self, all_atoms=False) -> np.array:
|
|
308
340
|
"""
|
|
309
341
|
Returns the center of geometry.
|
|
310
342
|
|
|
@@ -342,7 +374,3 @@ def switch_cache(candidate, state):
|
|
|
342
374
|
prev_state = candidate.use_cache
|
|
343
375
|
candidate.use_cache = state
|
|
344
376
|
return prev_state
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
A candidate is the basic piece of data being moved around in the algorithm.
|
|
3
3
|
Generators create candidates, and evaluators evaluate the objective function
|
|
4
4
|
at the coordinates described by the candidate.
|
|
5
|
+
|
|
6
|
+
AA
|
|
5
7
|
"""
|
|
6
8
|
|
|
7
|
-
from .ABC_candidate import CandidateBaseClass
|
|
8
|
-
from .standard import StandardCandidate
|
|
9
|
+
from agox.candidates.ABC_candidate import CandidateBaseClass
|
|
10
|
+
from agox.candidates.standard import StandardCandidate
|
|
11
|
+
|
|
12
|
+
__all__ = ['CandidateBaseClass', 'StandardCandidate']
|
|
@@ -2,9 +2,11 @@ from agox.candidates.ABC_candidate import CandidateBaseClass
|
|
|
2
2
|
from ase.calculators.singlepoint import SinglePointCalculator as SPC
|
|
3
3
|
|
|
4
4
|
class StandardCandidate(CandidateBaseClass):
|
|
5
|
+
|
|
5
6
|
"""
|
|
6
|
-
|
|
7
|
+
Standard candidate class.
|
|
7
8
|
"""
|
|
9
|
+
|
|
8
10
|
@classmethod
|
|
9
11
|
def from_atoms(cls, template, atoms):
|
|
10
12
|
candidate = cls(template=template, positions=atoms.positions, numbers=atoms.numbers, cell=atoms.cell, pbc=atoms.pbc)
|