Skip to content

mod_feature_calculator

Lines: 1274 | Visibility: private

This module provides a type that wraps the descriptors of a list of structures. author: Alexander Knoll

Dependencies

Uses

module~~mod_feature_calculator~~UsesGraph module~mod_feature_calculator mod_feature_calculator module~mod_angular_symmetry_function_3 mod_angular_symmetry_function_3 module~mod_feature_calculator->module~mod_angular_symmetry_function_3 module~mod_angular_symmetry_function_8 mod_angular_symmetry_function_8 module~mod_feature_calculator->module~mod_angular_symmetry_function_8 module~mod_angular_symmetry_function_9 mod_angular_symmetry_function_9 module~mod_feature_calculator->module~mod_angular_symmetry_function_9 module~mod_array_helpers mod_array_helpers module~mod_feature_calculator->module~mod_array_helpers module~mod_atomic_descriptor mod_atomic_descriptor module~mod_feature_calculator->module~mod_atomic_descriptor module~mod_cutoff_function mod_cutoff_function module~mod_feature_calculator->module~mod_cutoff_function module~mod_data_container mod_data_container module~mod_feature_calculator->module~mod_data_container module~mod_element mod_element module~mod_feature_calculator->module~mod_element module~mod_extrapolation_warning mod_extrapolation_warning module~mod_feature_calculator->module~mod_extrapolation_warning module~mod_feature_map mod_feature_map module~mod_feature_calculator->module~mod_feature_map module~mod_feature_map_neighborlist mod_feature_map_neighborlist module~mod_feature_calculator->module~mod_feature_map_neighborlist module~mod_io mod_io module~mod_feature_calculator->module~mod_io module~mod_mpi mod_mpi module~mod_feature_calculator->module~mod_mpi module~mod_optional_args mod_optional_args module~mod_feature_calculator->module~mod_optional_args module~mod_overlap_matrix mod_overlap_matrix module~mod_feature_calculator->module~mod_overlap_matrix module~mod_path mod_path module~mod_feature_calculator->module~mod_path module~mod_periodic_table mod_periodic_table module~mod_feature_calculator->module~mod_periodic_table module~mod_precision mod_precision module~mod_feature_calculator->module~mod_precision module~mod_radial_symmetry_function_1 mod_radial_symmetry_function_1 module~mod_feature_calculator->module~mod_radial_symmetry_function_1 module~mod_radial_symmetry_function_2 mod_radial_symmetry_function_2 module~mod_feature_calculator->module~mod_radial_symmetry_function_2 module~mod_set_integer mod_set_integer module~mod_feature_calculator->module~mod_set_integer module~mod_settings mod_settings module~mod_feature_calculator->module~mod_settings module~mod_structures mod_structures module~mod_feature_calculator->module~mod_structures module~mod_throw mod_throw module~mod_feature_calculator->module~mod_throw module~mod_timer mod_timer module~mod_feature_calculator->module~mod_timer module~mod_angular_symmetry_function_3->module~mod_cutoff_function module~mod_angular_symmetry_function_3->module~mod_feature_map module~mod_angular_symmetry_function_3->module~mod_feature_map_neighborlist module~mod_angular_symmetry_function_3->module~mod_periodic_table module~mod_angular_symmetry_function_3->module~mod_precision module~mod_angular_symmetry_function_3->module~mod_structures module~mod_angular_symmetry_function_3->module~mod_throw module~mod_abstract_angular_symmetry_function mod_abstract_angular_symmetry_function module~mod_angular_symmetry_function_3->module~mod_abstract_angular_symmetry_function module~mod_abstract_symmetry_function mod_abstract_symmetry_function module~mod_angular_symmetry_function_3->module~mod_abstract_symmetry_function module~mod_constants mod_constants module~mod_angular_symmetry_function_3->module~mod_constants module~mod_fastmath mod_fastmath module~mod_angular_symmetry_function_3->module~mod_fastmath module~mod_hash mod_hash module~mod_angular_symmetry_function_3->module~mod_hash module~mod_angular_symmetry_function_8->module~mod_cutoff_function module~mod_angular_symmetry_function_8->module~mod_feature_map module~mod_angular_symmetry_function_8->module~mod_feature_map_neighborlist module~mod_angular_symmetry_function_8->module~mod_periodic_table module~mod_angular_symmetry_function_8->module~mod_precision module~mod_angular_symmetry_function_8->module~mod_structures module~mod_angular_symmetry_function_8->module~mod_throw module~mod_angular_symmetry_function_8->module~mod_abstract_angular_symmetry_function module~mod_angular_symmetry_function_8->module~mod_abstract_symmetry_function module~mod_angular_symmetry_function_8->module~mod_constants module~mod_angular_symmetry_function_8->module~mod_hash module~mod_angular_symmetry_function_9->module~mod_cutoff_function module~mod_angular_symmetry_function_9->module~mod_feature_map module~mod_angular_symmetry_function_9->module~mod_feature_map_neighborlist module~mod_angular_symmetry_function_9->module~mod_periodic_table module~mod_angular_symmetry_function_9->module~mod_precision module~mod_angular_symmetry_function_9->module~mod_structures module~mod_angular_symmetry_function_9->module~mod_throw module~mod_angular_symmetry_function_9->module~mod_abstract_angular_symmetry_function module~mod_angular_symmetry_function_9->module~mod_abstract_symmetry_function module~mod_angular_symmetry_function_9->module~mod_constants module~mod_angular_symmetry_function_9->module~mod_fastmath module~mod_angular_symmetry_function_9->module~mod_hash module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_atomic_descriptor->module~mod_element module~mod_atomic_descriptor->module~mod_precision module~mod_atomic_descriptor->module~mod_structures module~mod_cutoff_function->module~mod_io module~mod_cutoff_function->module~mod_precision module~mod_cutoff_function->module~mod_throw module~mod_abstract_cutoff_function mod_abstract_cutoff_function module~mod_cutoff_function->module~mod_abstract_cutoff_function module~mod_cutoff_function_cosine mod_cutoff_function_cosine module~mod_cutoff_function->module~mod_cutoff_function_cosine module~mod_cutoff_function_hard mod_cutoff_function_hard module~mod_cutoff_function->module~mod_cutoff_function_hard module~mod_cutoff_function_hypertangent mod_cutoff_function_hypertangent module~mod_cutoff_function->module~mod_cutoff_function_hypertangent module~mod_cutoff_function_hypertangent_approx mod_cutoff_function_hypertangent_approx module~mod_cutoff_function->module~mod_cutoff_function_hypertangent_approx module~mod_cutoff_function_null mod_cutoff_function_null module~mod_cutoff_function->module~mod_cutoff_function_null module~mod_cutoff_function_polynomial mod_cutoff_function_polynomial module~mod_cutoff_function->module~mod_cutoff_function_polynomial module~mod_cutoff_function_vdw mod_cutoff_function_vdw module~mod_cutoff_function->module~mod_cutoff_function_vdw module~mod_data_container->module~mod_io module~mod_data_container->module~mod_precision module~mod_data_container->module~mod_throw module~mod_element->module~mod_angular_symmetry_function_3 module~mod_element->module~mod_angular_symmetry_function_9 module~mod_element->module~mod_cutoff_function module~mod_element->module~mod_feature_map module~mod_element->module~mod_io module~mod_element->module~mod_mpi module~mod_element->module~mod_optional_args module~mod_element->module~mod_periodic_table module~mod_element->module~mod_precision module~mod_element->module~mod_radial_symmetry_function_2 module~mod_element->module~mod_set_integer module~mod_element->module~mod_throw module~mod_arrays_init mod_arrays_init module~mod_element->module~mod_arrays_init module~mod_element->module~mod_constants module~mod_decorations mod_decorations module~mod_element->module~mod_decorations module~mod_dubious_feature_map_handler mod_dubious_feature_map_handler module~mod_element->module~mod_dubious_feature_map_handler module~mod_element->module~mod_hash module~mod_set_character mod_set_character module~mod_element->module~mod_set_character module~mod_extrapolation_warning->module~mod_periodic_table module~mod_extrapolation_warning->module~mod_precision module~mod_extrapolation_warning->module~mod_throw iso_c_binding iso_c_binding module~mod_extrapolation_warning->iso_c_binding module~mod_abstract_warning mod_abstract_warning module~mod_extrapolation_warning->module~mod_abstract_warning module~mod_feature_map->module~mod_cutoff_function module~mod_feature_map->module~mod_feature_map_neighborlist module~mod_feature_map->module~mod_io module~mod_feature_map->module~mod_precision module~mod_feature_map->module~mod_structures module~mod_feature_map->module~mod_throw module~mod_feature_map->module~mod_hash module~mod_sanitize mod_sanitize module~mod_feature_map->module~mod_sanitize module~mod_feature_map_neighborlist->module~mod_io module~mod_feature_map_neighborlist->module~mod_mpi module~mod_feature_map_neighborlist->module~mod_precision module~mod_feature_map_neighborlist->module~mod_structures module~mod_feature_map_neighborlist->module~mod_throw module~mod_feature_map_neighborlist->module~mod_timer module~mod_feature_map_neighborlist->module~mod_abstract_cutoff_function module~mod_feature_map_neighborlist->module~mod_constants module~mod_neighborlist mod_neighborlist module~mod_feature_map_neighborlist->module~mod_neighborlist module~mod_io->module~mod_optional_args module~mod_io->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_overlap_matrix->module~mod_cutoff_function module~mod_overlap_matrix->module~mod_feature_map module~mod_overlap_matrix->module~mod_feature_map_neighborlist module~mod_overlap_matrix->module~mod_precision module~mod_overlap_matrix->module~mod_structures module~mod_path->module~mod_io module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_constants module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_radial_symmetry_function_1->module~mod_cutoff_function module~mod_radial_symmetry_function_1->module~mod_feature_map module~mod_radial_symmetry_function_1->module~mod_feature_map_neighborlist module~mod_radial_symmetry_function_1->module~mod_io module~mod_radial_symmetry_function_1->module~mod_periodic_table module~mod_radial_symmetry_function_1->module~mod_precision module~mod_radial_symmetry_function_1->module~mod_structures module~mod_radial_symmetry_function_1->module~mod_throw module~mod_abstract_radial_symmetry_function mod_abstract_radial_symmetry_function module~mod_radial_symmetry_function_1->module~mod_abstract_radial_symmetry_function module~mod_radial_symmetry_function_1->module~mod_hash module~mod_radial_symmetry_function_2->module~mod_cutoff_function module~mod_radial_symmetry_function_2->module~mod_feature_map module~mod_radial_symmetry_function_2->module~mod_feature_map_neighborlist module~mod_radial_symmetry_function_2->module~mod_periodic_table module~mod_radial_symmetry_function_2->module~mod_precision module~mod_radial_symmetry_function_2->module~mod_structures module~mod_radial_symmetry_function_2->module~mod_throw module~mod_radial_symmetry_function_2->module~mod_abstract_radial_symmetry_function module~mod_radial_symmetry_function_2->module~mod_abstract_symmetry_function module~mod_radial_symmetry_function_2->module~mod_hash module~mod_set_integer->module~mod_throw module~mod_settings->module~mod_io module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_precision module~mod_settings->module~mod_throw module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_structures->module~mod_array_helpers module~mod_structures->module~mod_mpi module~mod_structures->module~mod_periodic_table module~mod_structures->module~mod_precision module~mod_structures->module~mod_throw module~mod_structures->module~mod_constants module~mod_linalg mod_linalg module~mod_structures->module~mod_linalg module~mod_structures_helper mod_structures_helper module~mod_structures->module~mod_structures_helper module~mod_throw->module~mod_io module~mod_throw->module~mod_mpi module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_timer->module~mod_io module~mod_timer->module~mod_optional_args module~mod_timer->module~mod_precision module~mod_timer->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_timer->ieee_arithmetic module~mod_abstract_angular_symmetry_function->module~mod_feature_map_neighborlist module~mod_abstract_angular_symmetry_function->module~mod_periodic_table module~mod_abstract_angular_symmetry_function->module~mod_precision module~mod_abstract_angular_symmetry_function->module~mod_structures module~mod_abstract_angular_symmetry_function->module~mod_abstract_symmetry_function module~mod_abstract_cutoff_function->module~mod_precision module~mod_abstract_radial_symmetry_function->module~mod_feature_map_neighborlist module~mod_abstract_radial_symmetry_function->module~mod_precision module~mod_abstract_radial_symmetry_function->module~mod_structures module~mod_abstract_radial_symmetry_function->module~mod_abstract_symmetry_function module~mod_abstract_symmetry_function->module~mod_feature_map module~mod_abstract_symmetry_function->module~mod_feature_map_neighborlist module~mod_abstract_symmetry_function->module~mod_io module~mod_abstract_symmetry_function->module~mod_precision module~mod_abstract_symmetry_function->module~mod_structures module~mod_abstract_symmetry_function->module~mod_throw module~mod_electric_field_prefactor mod_electric_field_prefactor module~mod_abstract_symmetry_function->module~mod_electric_field_prefactor module~mod_spin_prefactor mod_spin_prefactor module~mod_abstract_symmetry_function->module~mod_spin_prefactor module~mod_arrays_init->module~mod_precision module~mod_constants->module~mod_precision module~mod_constants->iso_c_binding module~mod_cpu_vendor->iso_c_binding module~mod_cutoff_function_cosine->module~mod_precision module~mod_cutoff_function_cosine->module~mod_abstract_cutoff_function module~mod_cutoff_function_cosine->module~mod_constants module~mod_cutoff_function_hard->module~mod_precision module~mod_cutoff_function_hard->module~mod_abstract_cutoff_function module~mod_cutoff_function_hypertangent->module~mod_precision module~mod_cutoff_function_hypertangent->module~mod_abstract_cutoff_function module~mod_cutoff_function_hypertangent_approx->module~mod_precision module~mod_cutoff_function_hypertangent_approx->module~mod_abstract_cutoff_function module~mod_cutoff_function_null->module~mod_precision module~mod_cutoff_function_null->module~mod_throw module~mod_cutoff_function_null->module~mod_abstract_cutoff_function module~mod_cutoff_function_polynomial->module~mod_precision module~mod_cutoff_function_polynomial->module~mod_abstract_cutoff_function module~mod_cutoff_function_polynomial->module~mod_fastmath module~mod_cutoff_function_vdw->module~mod_precision module~mod_cutoff_function_vdw->module~mod_abstract_cutoff_function module~mod_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_decorations->module~mod_throw module~mod_dubious_feature_map_handler->module~mod_io module~mod_dubious_feature_map_handler->module~mod_precision module~mod_dubious_feature_map_handler->module~mod_throw module~mod_dubious_feature_map_handler->module~mod_decorations module~mod_dynamic_double_array mod_dynamic_double_array module~mod_dubious_feature_map_handler->module~mod_dynamic_double_array module~mod_dynamic_int_array mod_dynamic_int_array module~mod_dubious_feature_map_handler->module~mod_dynamic_int_array module~mod_dynamic_line_array mod_dynamic_line_array module~mod_dubious_feature_map_handler->module~mod_dynamic_line_array module~mod_fastmath->module~mod_precision module~mod_hash->module~mod_io module~mod_hash->module~mod_periodic_table module~mod_hash->module~mod_precision module~mod_linalg->module~mod_precision module~mod_linalg->module~mod_settings module~mod_linalg->module~mod_throw module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_neighborlist->module~mod_io module~mod_neighborlist->module~mod_mpi module~mod_neighborlist->module~mod_precision module~mod_neighborlist->module~mod_settings module~mod_neighborlist->module~mod_structures module~mod_neighborlist->module~mod_throw module~mod_neighborlist->module~mod_dynamic_double_array module~mod_neighborlist->module~mod_dynamic_int_array module~mod_neighbor_grid mod_neighbor_grid module~mod_neighborlist->module~mod_neighbor_grid module~mod_neighborlist_helper mod_neighborlist_helper module~mod_neighborlist->module~mod_neighborlist_helper module~mod_sanitize->module~mod_throw module~mod_set_character->module~mod_throw module~mod_sort->module~mod_precision module~mod_structures_helper->module~mod_precision module~mod_structures_helper->module~mod_linalg module~cublas_wrapper->module~mod_settings module~cublas_wrapper->iso_c_binding module~mod_dynamic_double_array->module~mod_precision module~mod_dynamic_double_array->module~mod_throw module~mod_electric_field_prefactor->module~mod_feature_map_neighborlist module~mod_electric_field_prefactor->module~mod_precision module~mod_electric_field_prefactor->module~mod_settings module~mod_neighbor_grid->module~mod_mpi module~mod_neighbor_grid->module~mod_precision module~mod_neighbor_grid->module~mod_structures_helper module~mod_neighbor_grid->module~mod_dynamic_int_array module~mod_neighbor_grid->module~mod_neighborlist_helper module~mod_neighborlist_helper->module~mod_mpi module~mod_neighborlist_helper->module~mod_precision module~mod_neighborlist_helper->module~mod_linalg module~mod_spin_prefactor->module~mod_feature_map_neighborlist module~mod_spin_prefactor->module~mod_precision

Used By

module~~mod_feature_calculator~~UsedByGraph module~mod_feature_calculator mod_feature_calculator module~mod_calc_atomic_properties mod_calc_atomic_properties module~mod_calc_atomic_properties->module~mod_feature_calculator module~mod_chain_features mod_chain_features module~mod_chain_features->module~mod_feature_calculator module~mod_dataloader_file mod_dataloader_file module~mod_dataloader_file->module~mod_feature_calculator module~mod_memory_estimation mod_memory_estimation module~mod_dataloader_file->module~mod_memory_estimation module~mod_dataset_statistics mod_dataset_statistics module~mod_dataset_statistics->module~mod_feature_calculator module~mod_dataset_statistics->module~mod_dataloader_file module~mod_dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks module~mod_dataset_statistics_chi_all_chunks->module~mod_feature_calculator module~mod_dataset_statistics_chi_all_chunks->module~mod_dataloader_file module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics module~mod_enforce_reading mod_enforce_reading module~mod_enforce_reading->module~mod_feature_calculator module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_feature_calculator module~mod_evaluate_4g_single_structure->module~mod_chain_features module~mod_evaluate_electrostatics_3g_single_structure mod_evaluate_electrostatics_3g_single_structure module~mod_evaluate_electrostatics_3g_single_structure->module~mod_feature_calculator module~mod_evaluate_electrostatics_3g_single_structure->module~mod_chain_features module~mod_feature_calculator_statistics mod_feature_calculator_statistics module~mod_feature_calculator_statistics->module~mod_feature_calculator module~mod_scalingdata mod_scalingdata module~mod_feature_calculator_statistics->module~mod_scalingdata module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_dataloader_file module~mod_feature_map_scaling_all_chunks->module~mod_feature_calculator_statistics module~mod_precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk module~mod_feature_map_scaling_all_chunks->module~mod_precalc_nl_deriv_features_single_chunk module~mod_prediction_statistics mod_prediction_statistics module~mod_feature_map_scaling_all_chunks->module~mod_prediction_statistics module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator module~mod_featuredata mod_featuredata module~mod_featuredata->module~mod_feature_calculator module~mod_global_features_helper mod_global_features_helper module~mod_global_features_helper->module~mod_feature_calculator module~mod_initialize mod_initialize module~mod_initialize->module~mod_feature_calculator module~mod_two_body mod_two_body module~mod_initialize->module~mod_two_body module~mod_memory_estimation->module~mod_feature_calculator module~mod_output_files_and_cost mod_output_files_and_cost module~mod_output_files_and_cost->module~mod_feature_calculator module~mod_output_files_and_cost->module~mod_dataloader_file module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_cost_calculator mod_cost_calculator module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_output_files_and_cost_4g_charges->module~mod_feature_calculator module~mod_output_files_and_cost_4g_charges->module~mod_dataloader_file module~mod_predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_output_files_and_cost_4g_short_range->module~mod_feature_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_dataloader_file module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator module~mod_post_processing_2g_single_structure mod_post_processing_2g_single_structure module~mod_post_processing_2g_single_structure->module~mod_feature_calculator module~mod_post_processing_2g_single_structure->module~mod_chain_features module~mod_post_processing_3g_single_structure mod_post_processing_3g_single_structure module~mod_post_processing_3g_single_structure->module~mod_feature_calculator module~mod_post_processing_3g_single_structure->module~mod_evaluate_electrostatics_3g_single_structure module~mod_post_processing_4g_single_structure mod_post_processing_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_feature_calculator module~mod_post_processing_4g_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_vdw_hirshfeld_single_structure mod_post_processing_vdw_hirshfeld_single_structure module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_feature_calculator module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_chain_features module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_feature_calculator module~mod_post_processing_wrapper_single_structure->module~mod_calc_atomic_properties module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_global_features_helper module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_2g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_3g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_vdw_hirshfeld_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_two_body module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_precalc_coulomb_matrix_all_chunks->module~mod_feature_calculator module~mod_precalc_coulomb_matrix_all_chunks->module~mod_dataloader_file module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_precalc_nl_deriv_features_single_chunk->module~mod_feature_calculator module~mod_precalc_nl_deriv_features_single_chunk->module~mod_dataloader_file module~mod_precalc_nl_deriv_features_single_chunk->module~mod_memory_estimation module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks module~mod_precompute_features_all_chunks->module~mod_feature_calculator module~mod_precompute_features_all_chunks->module~mod_dataloader_file module~mod_precompute_features_all_chunks->module~mod_feature_calculator_statistics module~mod_precompute_features_all_chunks->module~mod_featuredata module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_dataloader_file module~mod_precompute_global_features_all_chunks->module~mod_feature_calculator_statistics module~mod_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_feature_calculator module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_feature_calculator module~mod_predict_4g_no_force_trick_single_structure->module~mod_calc_atomic_properties module~mod_predict_4g_no_force_trick_single_structure->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_feature_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_feature_calculator module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_post_processing_2g_single_structure module~mod_predict_all_chunks mod_predict_all_chunks module~mod_predict_all_chunks->module~mod_feature_calculator module~mod_predict_all_chunks->module~mod_dataloader_file module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_all_chunks->module~mod_two_body module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_feature_calculator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_feature_calculator module~mod_predict_mode->module~mod_dataloader_file module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_mode->module~mod_feature_calculator_statistics module~mod_predict_mode->module~mod_initialize module~mod_predict_mode->module~mod_predict_multiple_structures module~mod_predict_mode->module~mod_two_body module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_predict_multiple_structures->module~mod_feature_calculator module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_multiple_structures->module~mod_two_body module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_qeq_feature_calculator_single_structure->module~mod_feature_calculator module~mod_predict_qeq_feature_calculator_single_structure->module~mod_chain_features module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_feature_calculator module~mod_predict_single_structure->module~mod_calc_atomic_properties module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_predict_single_structure->module~mod_two_body module~mod_prediction_statistics->module~mod_feature_calculator module~mod_prediction_statistics->module~mod_calc_atomic_properties module~mod_runner_interface mod_runner_interface module~mod_runner_interface->module~mod_feature_calculator module~mod_runner_interface->module~mod_two_body module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_feature_calculator module~mod_runner_interface_bindings->module~mod_calc_atomic_properties module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure module~mod_runner_interface_bindings->module~mod_evaluate_electrostatics_3g_single_structure module~mod_runner_interface_bindings->module~mod_feature_calculator_statistics module~mod_runner_interface_bindings->module~mod_global_features_helper module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_post_processing_2g_single_structure module~mod_runner_interface_bindings->module~mod_post_processing_vdw_hirshfeld_single_structure module~mod_runner_interface_bindings->module~mod_runner_interface module~mod_runner_interface_bindings->module~mod_two_body module~mod_scalingdata->module~mod_feature_calculator module~mod_structure_batch_iterator->module~mod_feature_calculator module~mod_structure_batch_iterator->module~mod_calc_atomic_properties module~mod_structure_batch_iterator->module~mod_global_features_helper module~mod_train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch module~mod_train_4g_atomic_charges_structure_batch->module~mod_feature_calculator module~mod_train_4g_atomic_charges_structure_batch->module~mod_dataloader_file module~mod_train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms module~mod_train_atomic_property_multiple_atoms->module~mod_feature_calculator module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_feature_calculator module~mod_train_loop_4g_charges->module~mod_dataloader_file module~mod_train_loop_4g_charges->module~mod_initialize module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_train_4g_atomic_charges_structure_batch module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_feature_calculator module~mod_train_loop_atomic_property->module~mod_dataloader_file module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_train_atomic_property_multiple_atoms module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_feature_calculator module~mod_train_loop_short_range->module~mod_dataloader_file module~mod_train_loop_short_range->module~mod_global_features_helper module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_feature_calculator module~mod_train_mode->module~mod_dataloader_file module~mod_train_mode->module~mod_dataset_statistics module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks module~mod_train_mode->module~mod_feature_calculator_statistics module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_precalc_nl_deriv_features_single_chunk module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_two_body module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training program~runner RuNNer program~runner->module~mod_feature_calculator program~runner->module~mod_dataloader_file program~runner->module~mod_initialize program~runner->module~mod_precompute_features_all_chunks program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode program~runner->module~mod_train_mode module~mod_calculate_coulomb_matrix mod_calculate_coulomb_matrix program~runner->module~mod_calculate_coulomb_matrix program~runner->module~mod_two_body module~mod_calculate_coulomb_matrix->module~mod_dataloader_file module~mod_cost_calculator->module~mod_dataloader_file module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_feature_calc_interface mod_feature_calc_interface module~mod_feature_calc_interface->module~mod_runner_interface module~mod_generic_interface mod_generic_interface module~mod_feature_calc_interface->module~mod_generic_interface module~mod_generic_interface->module~mod_predict_single_structure module~mod_generic_interface->module~mod_runner_interface module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_two_body->module~mod_dataloader_file module~mod_write_outfiles->module~mod_initialize module~mod_write_outfiles_training->module~mod_write_outfiles

Derived Types Summary

Name Description
FeatureCalculator Calculator for atomic descriptors. FeatureCalculators are one of the most integral parts of...

Procedures Summary

Name Type Description
get_scaling_filename Function Get the name of the scaling.data file associated with this descriptor set. The scaling.data...
get_feature_filename Function Get the name of the function.data file associated with this descriptor set. Adds the suffix
get_upper_bound_num_feature_maps_per_element Function Count how many feature maps there are in total for all elements in this feature calculator. ...
constructor_from_file_feature_calculator Function Read all featuremaps which match specific keywords from a file. This routine initialize a full...
constructor_from_elements_feature_calculator Function Construct a FeatureCalculator object from a given list of elements.
neighbor_row_positions Function Map a subset row to positions in a reference row. Neighbor order is not part of the...
get_active_elements Function Return the Element type of all elements for which this FeatureCalculator has feature maps. ...
get_atomic_numbers Function Return the atomic numbers of all elements for which this FeatureCalculator has feature maps. ...
get_max_num_features_of_central_atoms Function
mod_keywords_fail Subroutine Issues an error if feature map-modifying keywords with the same effect appear twice.
reset_feature_calculator Subroutine Turn the feature calculator back into its uninitialized state. This forces the deallocation of...
initialize_from_structure_list Subroutine Initialize AtomicDescriptor objects in self%atomic_list based on a given list of...
initialize_single_structure Subroutine Initialize AtomicDescriptor objects in self%atomic_list based on a given structure.
initialize_from_structure_with_local_atom_indices Subroutine Initialize AtomicDescriptor objects in self%atomic_list based on a given list of...
reallocate Subroutine Resize the internal storage of self to num_atoms.
evaluate_feature_calculator Subroutine Calculate the values of all feature maps that are requested. The values are calculated for all...
calculate_features Subroutine Calculate the values of all feature maps that are requested. The values are calculated for all...
read_features Subroutine Set `self%atomic_list(...)%features from the contents of a binary function.data file for a given...
pack_features_allocatable Subroutine Collect all features of the requested atoms into a continuous, unallocated array. This copies...
pack_features_allocated Subroutine Collect all features of the requested atoms into a continuous, allocated, array. This copies...
unpack_features Subroutine Get continuous array of feature values and store them in self%atomic_list. This assumes that...
pack_feature_derivatives_from_atom Subroutine Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous...
get_max_nfeat_of_atoms_and_nat_in_struct Subroutine Get the maximum number of features and number of atoms in the structure for any atom in...
get_max_num_features_of_central_atoms_and_num_neighbors Subroutine Get the maximum number of features and number of neighbors for any atom in central_atom_ids_on_process.
pack_feature_derivatives_from_atom_to_neighbors_sum_images Subroutine Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous...
pack_feature_derivatives_from_atom_to_neighbors Subroutine Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous...
pack_feature_derivatives_from_atom_to_neighbors_allocated Subroutine Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous...
unpack_feature_derivatives_from_atom_to_neighbors Subroutine Unpack all features derivatives dGi/dxj originating at the requested atoms i into the atomic...
pack_complete_feature_vector Subroutine Pack a complete scaled feature vector, irrespective of which feature's derivative connects this...
pack_feature_derivatives_to_atom Subroutine Collect all features derivatives towards the given atoms. This collects the derivatives of all...
pack_feature_derivatives_to_atom_sum Subroutine Collect all features derivatives towards the given atoms. This collects the derivatives of all...
free_atomic_list Subroutine Deallocate features and feature derivatives arrays for all given atoms. In contrast to reset...
calculate_features_first_derivative_towards_atom Subroutine Calculate the derivatives \(dG_i/dxyz_j\) for all i that have the given target atoms \(j\) as...
calculate_features_first_derivative_from_atom Subroutine Calculate the derivative \(dG_i/dxyz_j\) for all given central atoms \(i\) with respect to all their...
calculate_features_and_derivatives_from_atom_allocated Subroutine A streamlined and optimized version of <a...
reallocate_features_and_derivatives Subroutine
set_features_and_derivatives_to_zero Subroutine Set self%atomic_list(...)%features and derivatives to zero. Optimized OpenMP-parallel loop....
read_feature_derivatives Subroutine
update_statistics Subroutine Calculate the minimum, maximum, mean and standard deviation of all feature maps that are part of...
check_for_extrapolations Subroutine Check whether any feature map value in self%atomic_list lies outside of the statistical values...
allocate_cache Subroutine Allocate the cache of all feature maps. Wrapper around the allocate_cache method of each...

Derived Types Details

type FeatureCalculator

Calculator for atomic descriptors.

FeatureCalculators are one of the most integral parts of RuNNer. They orchestrate the calculation of feature vectors and their derivatives for atomic environments, which serve as the input to machine-learning models. We usually initialize a single FeatureCalculator object for all atoms in the entire dataset. This allows us to efficiently parallelize over atoms using OpenMP, which is crucial to obtain linear scaling with the number of threads (feature (derivative) evaluation is THE single most costly operation in RuNNer for typical model sizes). The nomenclature employed throughout the code is: - feature map: a single function mapping an atomic environment to one or multiple values (e.g. one symmetry function) - features : the vector all values calculated by the feature maps assigned to an atom. - descriptor : an object holding the feature vector of a single atom (or structure in the case of a global descriptor), its derivative, and associated properties. Often, many or all models share the same feature calculator (input.nn setting feature_map_default). Therefore, one model is always assigned to a single unique feature calculator, while feature_calculators can be assigned to multiple models. This mapping is expressed on the featcalc_idx variable carried by all AbstractPropertyModels, and the corresponding model_indices array carried by all feature calculators. The size of this array does not correspond to the number of requested cutoff functions (which is the number of requested neighbor lists).

Several different types of calculations are provided, some of which are useful required for predictions, others for training. The general principle is the same in all cases: 1) The FeatureCalculator is created from a file or from a list of feature maps. 2) The FeatureCalculator is initialized with a list of structures. This creates a list of AtomicDescriptor objects, one for each atom in the structure. We usually initialize one feature calculator for all atoms in the dataset. 3) In a workflow, a calculation routine is called. For this, the the id_on_process of the atoms which will be calculated is given as input. The FeatureCalculator contains an internal map to translate between its atomic_list and the id_on_process. 4.1) One often needs a matrix containing the feature values (or gradients) for a list of atoms. The FeatureCalculator provides pack_* routines for that purpose. This is a copy operation. 4.2) When speed is of the essence, one may directly access the values that are stored within the AtomicDescriptor objects in atomic_list. 5) In the workflow, free is called to deallocate the features and. derivative values that are not needed anymore. This can happen at the end of a single structure calculation or at the end of a whole chunk of structures.

Components

  • elements : type(Element) (dim: (MAX_ELEM_NUM))– Per-element information, most importantly about feature maps.
  • atomic_list : type(AtomicDescriptor) (dim: (:))– A flat list containing the atomic descriptors for each atom in a list of structures.
  • id_map : integer (dim: (:))– Maps id_on_process of each atom to its index in `atomic_list`. This is required as not all atoms in a structure have to be actual atoms. In MD runs, we often carry additional ghost atoms, which contribute to the forces of the actual atoms as neighbors, but are evaluated themselves.
  • scaling_file_prefix : character– Prefix of the scaling.data file for this feature calculator. For example, when fitting a 3G-HDNNP, there will be two feature calculators with the prefixes 'scaling' and 'scalinge'.
  • use_old_scaling : logical– Whether to read scaling information from a file.
  • idx_neighbor_list_max_cutoff : integer– The index of the neighborlist with the largest cutoff radius.
  • lprecalculated_all_features : logical– Whether all features were precalculated. If this is `True`, the calculator will immediately return from the `evaluate` call. The flag is reset upon reinitialization.
  • lprecalculated_all_feature_derivatives : logical– Whether all feature gradients were precalculated. If this is `True`, the calculator will immediately return from the `evaluate` call. The flag is reset upon reinitialization.
  • lread_features : logical– Whether features should be loaded from binary file
  • lread_feature_derivs : logical– Whether feature derivatives should be loaded from binary file
  • scale_feature_maps : logical– Whether we apply the scaling factor to the feature maps of all elements.
  • center_feature_maps : logical– Whether we center the feature maps of all elements.
  • extrapolation_threshold : real(DP)– Threshold at which extrapolation warnings are issued.
  • model_indices : integer (dim: (:))
  • linitialized : logical
  • neighbor_list_indices : integer (dim: (:))– Indices of the neighbor lists (in the neighbor_lists array), that are used by this feature calculator.

Type-Bound Procedures

Name Attributes Binding
initialize_from_structure_list private ⇒ initialize_from_structure_list
initialize_from_structure_with_local_atom_indices private ⇒ initialize_from_structure_with_local_atom_indices
initialize_single_structure private ⇒ initialize_single_structure
initialize public ⇒ initialize_from_structure_list⇒ initialize_from_structure_with_local_atom_indices⇒ initialize_single_structure
reallocate public ⇒ reallocate
evaluate public ⇒ evaluate_feature_calculator
calculate_features public ⇒ calculate_features
calculate_features_first_derivative_from_atom public ⇒ calculate_features_first_derivative_from_atom
calculate_features_first_derivative_towards_atom public ⇒ calculate_features_first_derivative_towards_atom
read_features public ⇒ read_features
read_feature_derivatives public ⇒ read_feature_derivatives
reallocate_features_and_derivatives public ⇒ reallocate_features_and_derivatives
set_features_and_derivatives_to_zero public ⇒ set_features_and_derivatives_to_zero
calculate_features_and_derivatives_from_atom_allocated public ⇒ calculate_features_and_derivatives_from_atom_allocated
pack_features public ⇒ pack_features_allocatable
pack_features_allocated public ⇒ pack_features_allocated
pack_feature_derivatives_from_atom_to_neighbors private ⇒ pack_feature_derivatives_from_atom_to_neighbors
pack_feature_derivatives_from_atom_to_neighbors_allocated public ⇒ pack_feature_derivatives_from_atom_to_neighbors_allocated
pack_feature_derivatives_from_atom_to_neighbors_sum_images private ⇒ pack_feature_derivatives_from_atom_to_neighbors_sum_images
pack_feature_derivatives_from_atom public ⇒ pack_feature_derivatives_from_atom
unpack_features public ⇒ unpack_features
pack_feature_derivatives_to_atom public ⇒ pack_feature_derivatives_to_atom
pack_feature_derivatives_to_atom_sum public ⇒ pack_feature_derivatives_to_atom_sum
unpack_feature_derivatives_from_atom_to_neighbors public ⇒ unpack_feature_derivatives_from_atom_to_neighbors
free_atomic_list public ⇒ free_atomic_list
reset public ⇒ reset_feature_calculator
get_active_elements public ⇒ get_active_elements
get_atomic_numbers public ⇒ get_atomic_numbers
update_statistics public ⇒ update_statistics
check_for_extrapolations public ⇒ check_for_extrapolations
get_scaling_filename public ⇒ get_scaling_filename
get_feature_filename public ⇒ get_feature_filename
get_max_nfeat_of_atoms_and_nat_in_struct public ⇒ get_max_nfeat_of_atoms_and_nat_in_struct
get_max_num_features_of_central_atoms_and_num_neighbors public ⇒ get_max_num_features_of_central_atoms_and_num_neighbors
allocate_cache public ⇒ allocate_cache

Inherits

type~~featurecalculator~~InheritsGraph type~featurecalculator FeatureCalculator type~atomicdescriptor AtomicDescriptor type~featurecalculator->type~atomicdescriptor atomic_list type~element Element type~featurecalculator->type~element elements type~atomicdescriptor->type~element element_ptr type~structure Structure type~atomicdescriptor->type~structure structure_ptr type~featuremapptr FeatureMapPtr type~element->type~featuremapptr feature_maps type~fixedfeaturescalingsetting FixedFeatureScalingSetting type~element->type~fixedfeaturescalingsetting fixed_scaling type~abstractfeaturemap AbstractFeatureMap type~featuremapptr->type~abstractfeaturemap ptr

Inherited By

type~~featurecalculator~~InheritedByGraph type~featurecalculator FeatureCalculator type~runnerinterface RuNNerInterface type~runnerinterface->type~featurecalculator feature_calculators

Interface Details

interface FeatureCalculator


Procedure Details

function get_scaling_filename

function get_scaling_filename( &
    self, &
    suffix &
)

Get the name of the scaling.data file associated with this descriptor set.

The scaling.data file holds statistical information about all features like min, max, avg, std. dev.

Arguments

  • self : class(FeatureCalculator) [in]
  • suffix : character [in]– File ending behind the dot. Default is "data", resulting in scaling.data.

Called By

proc~~get_scaling_filename~~CalledByGraph proc~get_scaling_filename mod_feature_calculator::FeatureCalculator%get_scaling_filename proc~collect_and_print_feature_statistics mod_feature_calculator_statistics::collect_and_print_feature_statistics proc~collect_and_print_feature_statistics->proc~get_scaling_filename proc~read_old_scaling_from_file mod_feature_calculator_statistics::read_old_scaling_from_file proc~read_old_scaling_from_file->proc~get_scaling_filename proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~collect_and_print_feature_statistics proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~collect_and_print_feature_statistics proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~read_old_scaling_from_file proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~read_old_scaling_from_file proc~runner_interface_init mod_runner_interface_bindings::runner_interface_init proc~runner_interface_init->proc~read_old_scaling_from_file proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~read_old_scaling_from_file proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~runner_lammps_interface_init mod_lammps_interface::runner_lammps_interface_init proc~runner_lammps_interface_init->proc~runner_interface_init program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode

function get_feature_filename

function get_feature_filename( &
    self, &
    name &
)

Get the name of the function.data file associated with this descriptor set.

Adds the suffix

Arguments

Called By

proc~~get_feature_filename~~CalledByGraph proc~get_feature_filename mod_feature_calculator::FeatureCalculator%get_feature_filename proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~get_feature_filename proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~read_feature_derivatives mod_feature_calculator::FeatureCalculator%read_feature_derivatives proc~read_feature_derivatives->proc~get_feature_filename proc~read_features mod_feature_calculator::FeatureCalculator%read_features proc~read_features->proc~get_feature_filename proc~evaluate_feature_calculator->proc~read_feature_derivatives proc~evaluate_feature_calculator->proc~read_features program~runner RuNNer program~runner->proc~precompute_features_all_chunks proc~predict_mode mod_predict_mode::predict_mode program~runner->proc~predict_mode proc~train_mode mod_train_mode::train_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

function get_upper_bound_num_feature_maps_per_element

function get_upper_bound_num_feature_maps_per_element( &
    lines, &
    fm_keywords &
)

Count how many feature maps there are in total for all elements in this feature calculator.

This serves as an upper bound to allocate temporary arrays for parsing feature maps.

Arguments

  • lines : character (dim: (:)) [in]
  • fm_keywords : character (dim: (:)) [in]– The allowed keywords specifying a feature map for this feature calculator.

Called By

proc~~get_upper_bound_num_feature_maps_per_element~~CalledByGraph proc~get_upper_bound_num_feature_maps_per_element mod_feature_calculator::get_upper_bound_num_feature_maps_per_element proc~constructor_from_file_feature_calculator mod_feature_calculator::constructor_from_file_feature_calculator proc~constructor_from_file_feature_calculator->proc~get_upper_bound_num_feature_maps_per_element interface~featurecalculator mod_feature_calculator::FeatureCalculator interface~featurecalculator->proc~constructor_from_file_feature_calculator

function constructor_from_file_feature_calculator

function constructor_from_file_feature_calculator( &
    lines, &
    cutoff_functions, &
    atomic_numbers, &
    keyword_suffix, &
    scaling_file_prefix, &
    lcorrelation &
)

Read all featuremaps which match specific keywords from a file.

This routine initialize a full FeatureCalculator object based on the given contents of a file. It matches all possible feature map keywords

Arguments

  • lines : character (dim: (:)) [in]
  • cutoff_functions : type(CutoffFunctionPtr) (dim: (:)) [in]
  • atomic_numbers : integer (dim: (:)) [in]
  • keyword_suffix : character [in]
  • scaling_file_prefix : character [in]
  • lcorrelation : logical [in]

Called By

proc~~constructor_from_file_feature_calculator~~CalledByGraph proc~constructor_from_file_feature_calculator mod_feature_calculator::constructor_from_file_feature_calculator interface~featurecalculator mod_feature_calculator::FeatureCalculator interface~featurecalculator->proc~constructor_from_file_feature_calculator

function constructor_from_elements_feature_calculator

function constructor_from_elements_feature_calculator( &
    elements, &
    cutoff_functions, &
    lcorrelation, &
    lscale_feature_maps, &
    lcenter_feature_maps, &
    luse_old_scaling, &
    extrapolation_threshold &
)

Construct a FeatureCalculator object from a given list of elements.

Arguments

  • elements : type(Element) (dim: (MAX_ELEM_NUM)) [in]
  • cutoff_functions : type(CutoffFunctionPtr) (dim: (:)) [in]
  • lcorrelation : logical [in]
  • lscale_feature_maps : logical [in]
  • lcenter_feature_maps : logical [in]
  • luse_old_scaling : logical [in]
  • extrapolation_threshold : real(DP) [in]

Called By

proc~~constructor_from_elements_feature_calculator~~CalledByGraph proc~constructor_from_elements_feature_calculator mod_feature_calculator::constructor_from_elements_feature_calculator interface~featurecalculator mod_feature_calculator::FeatureCalculator interface~featurecalculator->proc~constructor_from_elements_feature_calculator

function neighbor_row_positions

function neighbor_row_positions( &
    reference, &
    subset, &
    atom &
)

Map a subset row to positions in a reference row. Neighbor order is not part of the neighbor-list contract; atom IDs alone also do not identify periodic images. Hash by atom ID, then compare image displacements within that bucket. Scratch scales with the row, not the whole structure/dataset.

Arguments

Called By

proc~~neighbor_row_positions~~CalledByGraph proc~neighbor_row_positions mod_feature_calculator::neighbor_row_positions proc~pack_feature_derivatives_to_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_to_atom proc~pack_feature_derivatives_to_atom->proc~neighbor_row_positions proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~pack_feature_derivatives_to_atom proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

function get_active_elements

function get_active_elements( &
    self &
)

Return the Element type of all elements for which this FeatureCalculator has feature maps.

The elements are returned in the order of the periodic table.

Arguments

Called By

proc~~get_active_elements~~CalledByGraph proc~get_active_elements mod_feature_calculator::FeatureCalculator%get_active_elements proc~initialize_models_and_feature_calculators_from_inputnn mod_initialize::initialize_models_and_feature_calculators_from_inputnn proc~initialize_models_and_feature_calculators_from_inputnn->proc~get_active_elements proc~initialize_from_inputnn mod_initialize::initialize_from_inputnn proc~initialize_from_inputnn->proc~initialize_models_and_feature_calculators_from_inputnn proc~runner_interface_init mod_runner_interface_bindings::runner_interface_init proc~runner_interface_init->proc~initialize_models_and_feature_calculators_from_inputnn proc~runner_lammps_interface_init mod_lammps_interface::runner_lammps_interface_init proc~runner_lammps_interface_init->proc~runner_interface_init program~runner RuNNer program~runner->proc~initialize_from_inputnn

function get_atomic_numbers

function get_atomic_numbers( &
    self &
)

Return the atomic numbers of all elements for which this FeatureCalculator has feature maps.

The atomic numbers are returned in the order of the periodic table.

Arguments

Called By

proc~~get_atomic_numbers~~CalledByGraph proc~get_atomic_numbers mod_feature_calculator::FeatureCalculator%get_atomic_numbers proc~calculate_features_first_derivative_towards_atom mod_feature_calculator::FeatureCalculator%calculate_features_first_derivative_towards_atom proc~calculate_features_first_derivative_towards_atom->proc~get_atomic_numbers proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~calculate_features_first_derivative_towards_atom proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

function get_max_num_features_of_central_atoms

function get_max_num_features_of_central_atoms( &
    calcs &
)

Arguments

Called By

proc~~get_max_num_features_of_central_atoms~~CalledByGraph proc~get_max_num_features_of_central_atoms mod_feature_calculator::get_max_num_features_of_central_atoms proc~init~4 mod_structure_batch_iterator::StructureBatchIterator%init proc~init~4->proc~get_max_num_features_of_central_atoms proc~predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure::predict_4g_no_force_trick_single_structure proc~predict_4g_no_force_trick_single_structure->proc~get_max_num_features_of_central_atoms proc~runner_interface_init mod_runner_interface_bindings::runner_interface_init proc~runner_interface_init->proc~get_max_num_features_of_central_atoms proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~get_max_num_features_of_central_atoms proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~init~4 proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~init~4 proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~init~4 proc~predict_qeq_feature_calculator_multiple_structures->proc~init~4 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~prediction_statistics_all_chunks->proc~init~4 proc~runner_lammps_interface_init mod_lammps_interface::runner_lammps_interface_init proc~runner_lammps_interface_init->proc~runner_interface_init proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_mode->proc~train_loop_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_mode->proc~train_loop_atomic_property proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~predict_multiple_structures program~runner RuNNer program~runner->proc~train_mode program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property->proc~output_files_and_cost

subroutine mod_keywords_fail

subroutine mod_keywords_fail( &
    keyword, &
    keyword_suffix &
)

Issues an error if feature map-modifying keywords with the same effect appear twice.

Arguments

  • keyword : character [in]– Feature map modifying keyword.
  • keyword_suffix : character [in]– The suffix of the feature calculator on which `keyword` is applied.

Called By

proc~~mod_keywords_fail~~CalledByGraph proc~mod_keywords_fail mod_feature_calculator::mod_keywords_fail proc~constructor_from_file_feature_calculator mod_feature_calculator::constructor_from_file_feature_calculator proc~constructor_from_file_feature_calculator->proc~mod_keywords_fail interface~featurecalculator mod_feature_calculator::FeatureCalculator interface~featurecalculator->proc~constructor_from_file_feature_calculator

subroutine reset_feature_calculator

subroutine reset_feature_calculator( &
    self, &
    force &
)

Turn the feature calculator back into its uninitialized state.

This forces the deallocation of all information stored inside self%atomic_list. By default, this routine does nothing if all features and feature derivatives have been precalculated. That behavior can be overruled by setting force to true.

Arguments

  • self : class(FeatureCalculator) [inout]
  • force : logical [in]– Uninitialize the object even if all features and feature derivatives were precalculated.

Called By

proc~~reset_feature_calculator~~CalledByGraph proc~reset_feature_calculator mod_feature_calculator::FeatureCalculator%reset_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~reset_feature_calculator proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~reset_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~output_files_and_cost->proc~reset_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~output_files_and_cost_4g_charges->proc~reset_feature_calculator proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~reset_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~reset_feature_calculator proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~reset_feature_calculator proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~predict_all_chunks->proc~reset_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~reset_feature_calculator proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~reset_feature_calculator proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~prediction_statistics_all_chunks->proc~reset_feature_calculator proc~runner_interface_reset mod_runner_interface_bindings::runner_interface_reset proc~runner_interface_reset->proc~reset_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~reset_feature_calculator proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~reset_feature_calculator proc~train_loop_short_range->proc~output_files_and_cost proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~train_loop_atomic_property program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine initialize_from_structure_list

subroutine initialize_from_structure_list( &
    self, &
    structures &
)

Initialize AtomicDescriptor objects in self%atomic_list based on a given list of structures. Only atoms, whose indices are contained in atomic_list are initialized.

Arguments

  • self : class(FeatureCalculator) [inout]
  • structures : type(Structure) (dim: (:)) [in]– The list of structures. One `AtomicDescriptor` object will be created for each local atom in `structures`. This means that we loop over `num_local_atoms` and all atoms beyond that are treated as ghost atoms.

Called By

proc~~initialize_from_structure_list~~CalledByGraph proc~initialize_from_structure_list mod_feature_calculator::FeatureCalculator%initialize_from_structure_list none~initialize~2 mod_feature_calculator::FeatureCalculator%initialize none~initialize~2->proc~initialize_from_structure_list proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->none~initialize~2 proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->none~initialize~2 proc~init~4 mod_structure_batch_iterator::StructureBatchIterator%init proc~init~4->none~initialize~2 proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->none~initialize~2 proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->none~initialize~2 proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->none~initialize~2 proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->none~initialize~2 proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->none~initialize~2 proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->none~initialize~2 proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->none~initialize~2 proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~init~4 proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~init~4 proc~predict_multiple_structures->proc~init~4 proc~predict_qeq_feature_calculator_multiple_structures->proc~init~4 proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~prediction_statistics_all_chunks->proc~init~4 proc~prepare_feature_calculator_get_neighbor_list_info mod_feature_calc_interface::prepare_feature_calculator_get_neighbor_list_info proc~prepare_feature_calculator_get_neighbor_list_info->proc~build_structure_neighborlists_feature_calculators proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine initialize_single_structure

subroutine initialize_single_structure( &
    self, &
    struct &
)

Initialize AtomicDescriptor objects in self%atomic_list based on a given structure.

Arguments

Called By

proc~~initialize_single_structure~~CalledByGraph proc~initialize_single_structure mod_feature_calculator::FeatureCalculator%initialize_single_structure none~initialize~2 mod_feature_calculator::FeatureCalculator%initialize none~initialize~2->proc~initialize_single_structure proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->none~initialize~2 proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->none~initialize~2 proc~init~4 mod_structure_batch_iterator::StructureBatchIterator%init proc~init~4->none~initialize~2 proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->none~initialize~2 proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->none~initialize~2 proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->none~initialize~2 proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->none~initialize~2 proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->none~initialize~2 proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->none~initialize~2 proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->none~initialize~2 proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~init~4 proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~init~4 proc~predict_multiple_structures->proc~init~4 proc~predict_qeq_feature_calculator_multiple_structures->proc~init~4 proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~prediction_statistics_all_chunks->proc~init~4 proc~prepare_feature_calculator_get_neighbor_list_info mod_feature_calc_interface::prepare_feature_calculator_get_neighbor_list_info proc~prepare_feature_calculator_get_neighbor_list_info->proc~build_structure_neighborlists_feature_calculators proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine initialize_from_structure_with_local_atom_indices

subroutine initialize_from_structure_with_local_atom_indices( &
    self, &
    struct, &
    local_atom_indices &
)

Initialize AtomicDescriptor objects in self%atomic_list based on a given list of structures and local atom indices. Only atoms, whose indices are contained in atomic_list are initialized.

Arguments

  • self : class(FeatureCalculator) [inout]
  • struct : type(Structure) [in]– Single structure. One `AtomicDescriptor` object will be created for each local atom in `struct`. This means that we loop over `num_local_atoms` and all atoms beyond that are treated as ghost atoms.
  • local_atom_indices : integer (dim: (struct%num_local_atoms))– Indices of local atoms in respective structure

Called By

proc~~initialize_from_structure_with_local_atom_indices~~CalledByGraph proc~initialize_from_structure_with_local_atom_indices mod_feature_calculator::FeatureCalculator%initialize_from_structure_with_local_atom_indices none~initialize~2 mod_feature_calculator::FeatureCalculator%initialize none~initialize~2->proc~initialize_from_structure_with_local_atom_indices proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->none~initialize~2 proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->none~initialize~2 proc~init~4 mod_structure_batch_iterator::StructureBatchIterator%init proc~init~4->none~initialize~2 proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->none~initialize~2 proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->none~initialize~2 proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->none~initialize~2 proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->none~initialize~2 proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->none~initialize~2 proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->none~initialize~2 proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->none~initialize~2 proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~init~4 proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~init~4 proc~predict_multiple_structures->proc~init~4 proc~predict_qeq_feature_calculator_multiple_structures->proc~init~4 proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~prediction_statistics_all_chunks->proc~init~4 proc~prepare_feature_calculator_get_neighbor_list_info mod_feature_calc_interface::prepare_feature_calculator_get_neighbor_list_info proc~prepare_feature_calculator_get_neighbor_list_info->proc~build_structure_neighborlists_feature_calculators proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine reallocate

subroutine reallocate( &
    self, &
    num_atoms, &
    num_local_atoms &
)

Resize the internal storage of self to num_atoms.

Arguments

  • self : class(FeatureCalculator) [inout]
  • num_atoms : integer [in]
  • num_local_atoms : integer [in]

Called By

proc~~reallocate~2~~CalledByGraph proc~reallocate~2 mod_feature_calculator::FeatureCalculator%reallocate proc~initialize_from_structure_list mod_feature_calculator::FeatureCalculator%initialize_from_structure_list proc~initialize_from_structure_list->proc~reallocate~2 proc~initialize_from_structure_with_local_atom_indices mod_feature_calculator::FeatureCalculator%initialize_from_structure_with_local_atom_indices proc~initialize_from_structure_with_local_atom_indices->proc~reallocate~2 proc~initialize_single_structure mod_feature_calculator::FeatureCalculator%initialize_single_structure proc~initialize_single_structure->proc~reallocate~2 none~initialize~2 mod_feature_calculator::FeatureCalculator%initialize none~initialize~2->proc~initialize_from_structure_list none~initialize~2->proc~initialize_from_structure_with_local_atom_indices none~initialize~2->proc~initialize_single_structure proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->none~initialize~2 proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->none~initialize~2 proc~init~4 mod_structure_batch_iterator::StructureBatchIterator%init proc~init~4->none~initialize~2 proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->none~initialize~2 proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->none~initialize~2 proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->none~initialize~2 proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->none~initialize~2 proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->none~initialize~2 proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->none~initialize~2 proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->none~initialize~2 proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~init~4 proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~init~4 proc~predict_multiple_structures->proc~init~4 proc~predict_qeq_feature_calculator_multiple_structures->proc~init~4 proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~prediction_statistics_all_chunks->proc~init~4 proc~prepare_feature_calculator_get_neighbor_list_info mod_feature_calc_interface::prepare_feature_calculator_get_neighbor_list_info proc~prepare_feature_calculator_get_neighbor_list_info->proc~build_structure_neighborlists_feature_calculators proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine evaluate_feature_calculator

subroutine evaluate_feature_calculator( &
    self, &
    neighbor_lists, &
    ids_on_process, &
    calc_features, &
    calc_feature_derivatives_from_atom, &
    calc_feature_derivatives_towards_atom, &
    num_feature_maps, &
    feature_map_indices &
)

Calculate the values of all feature maps that are requested.

The values are calculated for all central atoms whose ids on process are handed over. The values are stored in the features array of the corresponding AtomicDescriptor objects. The order of storage in desc%features is sequentially from feat_idx_lowest of the first feature map in elem%feature_maps to feat_idx_highest of the final feature map in elem%feature_maps. This is in contrast to the correct idx_sorted_features of the element. Sorting is only taken into account when packing or writeing features to file for performance reasons.

Arguments

  • self : class(FeatureCalculator) [inout]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all neighbor lists.
  • ids_on_process : integer (dim: (:)) [in]– The id on process of all atoms for which calculations will be done. Whether these atoms are treated as target atoms or central atoms depends on the given `calc_*` flags (see there for details).
  • calc_features : logical [in]– If True, the features for the central atoms atoms defined by `ids_on_process` will be calculated.
  • calc_feature_derivatives_from_atom : logical [in]– If True, the derivatives from all central atoms defined by `ids_on_process` towards all their neighbors are calculated.
  • calc_feature_derivatives_towards_atom : logical [in]– If True, the derivatives towards all target atoms defined by `ids_on_process` starting from their neighbors will be calculated.
  • num_feature_maps : integer (dim: (MAX_ELEM_NUM)) [in]
  • feature_map_indices : integer (dim: (:,:)) [in]– For each element, the index of the feature maps which are supposed to be calculated. Dimensions: (num_fms, MAX_ELEM_NUM)

Called By

proc~~evaluate_feature_calculator~~CalledByGraph proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine calculate_features

subroutine calculate_features( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    num_feature_maps, &
    feature_map_indices &
)

Calculate the values of all feature maps that are requested.

The values are calculated for all central atoms whose ids on process are handed over. The values are stored in the features array of the corresponding AtomicDescriptor objects. The order of storage in desc%features is sequentially from feat_idx_lowest of the first feature map in elem%feature_maps to feat_idx_highest of the final feature map in elem%feature_maps. This is in contrast to the correct idx_sorted_features of the element. Sorting is only taken into account when packing or writeing features to file for performance reasons.

Arguments

  • self : class(FeatureCalculator) [inout]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id on process of all atoms whose the feature maps should be calculated.
  • num_feature_maps : integer (dim: (MAX_ELEM_NUM)) [in]
  • feature_map_indices : integer (dim: (:,:)) [in]– For each element, the index of the feature maps which are supposed to be calculated. Dimensions: (num_fms, MAX_ELEM_NUM)

Called By

proc~~calculate_features~~CalledByGraph proc~calculate_features mod_feature_calculator::FeatureCalculator%calculate_features proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~calculate_features proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine read_features

subroutine read_features( &
    self, &
    ids_on_process &
)

Set `self%atomic_list(...)%features from the contents of a binary function.data file for a given list of atoms.

Arguments

Called By

proc~~read_features~~CalledByGraph proc~read_features mod_feature_calculator::FeatureCalculator%read_features proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~read_features proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine pack_features_allocatable

subroutine pack_features_allocatable( &
    self, &
    central_atom_ids_on_process, &
    features, &
    atomic_numbers &
)

Collect all features of the requested atoms into a continuous, unallocated array.

This copies the feature values from the AtomicDescriptor objects of all requested atoms into a matrix. The atoms do not need to have the same element and the indices do not need to be continuous. The features must have been calculated before this routine is called, otherwise the arrays are not allocated leading to a segfault. During packing, the features are reordered from their sequential order (see calc_features for details) to the correct ordering given by elem%idx_sorted_features.

Arguments

  • self : class(FeatureCalculator) [in]
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the central atoms whose features will be copied.
  • features : real(DP) (dim: (:,:)) [out]– The feature values of the requested central atoms. Dimension(max_num_features_of_central_atoms, size(central_atom_ids_on_process))
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of the requested central atoms in the same order as `central_atom_ids_on_process`. This is a convenience "service" provided by the routine, as usually when the features are requested the atomic numbers are needed as well.

Called By

proc~~pack_features_allocatable~~CalledByGraph proc~pack_features_allocatable mod_feature_calculator::FeatureCalculator%pack_features_allocatable proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~pack_features_allocatable proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~pack_features_allocatable proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~pack_features_allocatable proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~dataset_statistics_chi_all_chunks program~runner RuNNer program~runner->proc~train_mode

subroutine pack_features_allocated

subroutine pack_features_allocated( &
    self, &
    central_atom_ids_on_process, &
    features, &
    atomic_numbers &
)

Collect all features of the requested atoms into a continuous, allocated, array.

This copies the feature values from the AtomicDescriptor objects of all requested atoms into a matrix. The atoms do not need to have the same element and the indices do not need to be continuous.

The matrix can be larger and will by filled continously starting at (1, 1)

Scaling and centering factors are applied to all features.

The features must have been calculated before this routine is called, otherwise the arrays are not allocated leading to a segfault.

Arguments

  • self : class(FeatureCalculator) [in]
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the central atoms whose features will be copied.
  • features : real(DP) (dim: (:,:)) [out]– The feature values of the requested central atoms. Dimension (nfeat, size(central_atom_ids_on_process)) where nfeat must be at least max_num_features_of_central_atoms (without extra_features)
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of the requested central atoms in the same order as `central_atom_ids_on_process`. This is a convenience "service" provided by the routine, as usually when the features are requested the atomic numbers are needed as well.

Called By

proc~~pack_features_allocated~~CalledByGraph proc~pack_features_allocated mod_feature_calculator::FeatureCalculator%pack_features_allocated proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_features_allocated proc~pack_features_allocatable mod_feature_calculator::FeatureCalculator%pack_features_allocatable proc~pack_features_allocatable->proc~pack_features_allocated proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~pack_features_allocated proc~write_features_structure mod_precompute_features_all_chunks::write_features_structure proc~write_features_structure->proc~pack_features_allocated proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~write_features_structure proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~pack_features_allocatable proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~pack_features_allocatable proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~pack_features_allocatable proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~train_mode

subroutine unpack_features

subroutine unpack_features( &
    self, &
    central_atom_ids_on_process, &
    features &
)

Get continuous array of feature values and store them in self%atomic_list.

This assumes that self%atomic_list(...)%features is not allocated.

Arguments

  • self : class(FeatureCalculator) [inout]
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms in `features`.
  • features : real(DP) (dim: (:,:)) [in]– Continuous array of feature values.

Called By

proc~~unpack_features~~CalledByGraph proc~unpack_features mod_feature_calculator::FeatureCalculator%unpack_features proc~read_features mod_feature_calculator::FeatureCalculator%read_features proc~read_features->proc~unpack_features proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~read_features proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine pack_feature_derivatives_from_atom

subroutine pack_feature_derivatives_from_atom( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    sum_images, &
    feature_derivatives, &
    target_atoms_ids_on_process, &
    atomic_numbers &
)

Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous array.

This copies the feature_derivative values from the AtomicDescriptor objects of all requested atoms into a matrix ("central atoms", because the derivatives of their feature maps are calculated) with respect to all their neighbors. In mathematical terms, we pack a dense array of \(dG_i/dxyz_j\) from all central atoms \(i\) towards their neighbors \(j\).

The final packed array has dimensions (3 x max_num_features_of_central_atoms x sum_num_neighbors_central_atoms) or (3 x max_num_features_of_central_atoms x sum_num_atoms_in_structures_of_central_atoms).

During packing, the features are sorted from their sequential ordering (see calculate_* routines for details) to the correct ordering given by elem%idx_sorted_features.

As evident from the dimensions, the routine can pack atoms of different elements into one array. Therefore, the atomic numbers and id_on_processs of all neighbors are returned as additional output arrays.

The requested indices do not need to have the same element and do not need to be continuous.

The gradients must have been calculated before this routine is called, otherwise the arrays are not allocated leading to a segfault.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms whose derivatives should be copied.
  • sum_images : logical [in]– Whether to sum the contributions of periodic neighbors ("image atoms"). If sum_images is True, feature derivatives will have dimension (3 x max_num_features_of_central_atoms x sum_num_atoms_in_structures_of_central_atoms) Otherwise, it will have dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_of_central_atoms)
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– The derivatives of the feature maps of the requested central atoms wrt the Cartesian coordinates of all their respective neighbors. Depending on the setting of `sum_images`, the dimensions vary.
  • target_atoms_ids_on_process : integer (dim: (:)) [out]– The id_on_process of the target atoms (the j in dGi/dxj) in the same order as the final dimension of feature_derivatives. Depending on the setting of `sum_images`, the dimensions vary.
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of target_atoms_ids_on_process. Depending on the setting of `sum_images`, the dimensions vary.

Called By

proc~~pack_feature_derivatives_from_atom~~CalledByGraph proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom

subroutine get_max_nfeat_of_atoms_and_nat_in_struct

subroutine get_max_nfeat_of_atoms_and_nat_in_struct( &
    self, &
    central_atom_ids_on_process, &
    max_num_features_of_central_atoms, &
    num_atoms_in_structure &
)

Get the maximum number of features and number of atoms in the structure for any atom in central_atom_ids_on_process.

Arguments

  • self : class(FeatureCalculator) [in]
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms which are taken into account.
  • max_num_features_of_central_atoms : integer [out]– The maximum number of features for any atom in `central_atom_ids_on_process`.
  • num_atoms_in_structure : integer (dim: (size(central_atom_ids_on_process))) [out]– The number of atoms in the structure for each atom in `central_atom_ids_on_process`.

Called By

proc~~get_max_nfeat_of_atoms_and_nat_in_struct~~CalledByGraph proc~get_max_nfeat_of_atoms_and_nat_in_struct mod_feature_calculator::FeatureCalculator%get_max_nfeat_of_atoms_and_nat_in_struct proc~pack_feature_derivatives_from_atom_to_neighbors_sum_images mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors_sum_images proc~pack_feature_derivatives_from_atom_to_neighbors_sum_images->proc~get_max_nfeat_of_atoms_and_nat_in_struct proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~pack_feature_derivatives_from_atom->proc~pack_feature_derivatives_from_atom_to_neighbors_sum_images proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom

subroutine get_max_num_features_of_central_atoms_and_num_neighbors

subroutine get_max_num_features_of_central_atoms_and_num_neighbors( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    max_num_features_of_central_atoms, &
    num_neighbors &
)

Get the maximum number of features and number of neighbors for any atom in central_atom_ids_on_process.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms which are taken into account.
  • max_num_features_of_central_atoms : integer [out]– The maximum number of features for any atom in `central_atom_ids_on_process`.
  • num_neighbors : integer (dim: (size(central_atom_ids_on_process))) [out]– The number of atoms in the structure for each atom in `central_atom_ids_on_process`.

Called By

proc~~get_max_num_features_of_central_atoms_and_num_neighbors~~CalledByGraph proc~get_max_num_features_of_central_atoms_and_num_neighbors mod_feature_calculator::FeatureCalculator%get_max_num_features_of_central_atoms_and_num_neighbors proc~pack_feature_derivatives_from_atom_to_neighbors mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors proc~pack_feature_derivatives_from_atom_to_neighbors->proc~get_max_num_features_of_central_atoms_and_num_neighbors proc~prepare_feature_calculator_get_neighbor_list_info mod_feature_calc_interface::prepare_feature_calculator_get_neighbor_list_info proc~prepare_feature_calculator_get_neighbor_list_info->proc~get_max_num_features_of_central_atoms_and_num_neighbors proc~read_feature_derivatives mod_feature_calculator::FeatureCalculator%read_feature_derivatives proc~read_feature_derivatives->proc~get_max_num_features_of_central_atoms_and_num_neighbors proc~unpack_feature_derivatives_from_atom_to_neighbors mod_feature_calculator::FeatureCalculator%unpack_feature_derivatives_from_atom_to_neighbors proc~read_feature_derivatives->proc~unpack_feature_derivatives_from_atom_to_neighbors proc~unpack_feature_derivatives_from_atom_to_neighbors->proc~get_max_num_features_of_central_atoms_and_num_neighbors proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~read_feature_derivatives proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~pack_feature_derivatives_from_atom->proc~pack_feature_derivatives_from_atom_to_neighbors proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine pack_feature_derivatives_from_atom_to_neighbors_sum_images

subroutine pack_feature_derivatives_from_atom_to_neighbors_sum_images( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    feature_derivatives, &
    atoms_in_structure_ids_on_process, &
    atomic_numbers &
)

Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous array.

Contributions to periodic images are summed up. See pack_feature_derivatives_from_atom for details.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms whose derivatives should be copied.
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– The derivatives of the feature maps of the requested central atoms wrt the Cartesian coordinates of all the atoms in their structure that have at least one periodic image in the cutoff radius of the central atom. Dimension (3 x max_num_features_of_central_atoms x sum_num_atoms_in_structures_of_central_atoms).
  • atoms_in_structure_ids_on_process : integer (dim: (:)) [out]– The id_on_process of the target atoms (the j in dGi/dxj) in the same order as the final dimension of feature_derivatives.
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of atoms_in_structure_ids_on_process.

Called By

proc~~pack_feature_derivatives_from_atom_to_neighbors_sum_images~~CalledByGraph proc~pack_feature_derivatives_from_atom_to_neighbors_sum_images mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors_sum_images proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~pack_feature_derivatives_from_atom->proc~pack_feature_derivatives_from_atom_to_neighbors_sum_images proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom

subroutine pack_feature_derivatives_from_atom_to_neighbors

subroutine pack_feature_derivatives_from_atom_to_neighbors( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    feature_derivatives, &
    neighbor_atom_ids_on_process, &
    atomic_numbers &
)

Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous unallocated array.

Contributions to periodic images of neighbors are not summed up. See pack_feature_derivatives_from_atom for details.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms whose derivatives should be copied.
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– The derivatives of the feature maps of the requested central atoms wrt the Cartesian coordinates of all neighbors. Dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_of_central_atoms).
  • neighbor_atom_ids_on_process : integer (dim: (:)) [out]– The id_on_process of the target atoms (the j in dGi/dxj) in the same order as the final dimension of feature_derivatives.
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of neighbor_atom_ids_on_process.

Called By

proc~~pack_feature_derivatives_from_atom_to_neighbors~~CalledByGraph proc~pack_feature_derivatives_from_atom_to_neighbors mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~pack_feature_derivatives_from_atom->proc~pack_feature_derivatives_from_atom_to_neighbors proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom

subroutine pack_feature_derivatives_from_atom_to_neighbors_allocated

subroutine pack_feature_derivatives_from_atom_to_neighbors_allocated( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    num_neighbors, &
    feature_derivatives, &
    neighbor_atom_ids_on_process, &
    atomic_numbers &
)

Collect all features derivatives dGi/dxj originating at the requested atoms i into a continuous allocated array.

Contributions to periodic images of neighbors are not summed up. See pack_feature_derivatives_from_atom for details.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms whose derivatives should be copied.
  • num_neighbors : integer (dim: (:)) [in]– The number of neighbors of each central atom
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– The derivatives of the feature maps of the requested central atoms wrt the Cartesian coordinates of all neighbors. Dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_of_central_atoms).
  • neighbor_atom_ids_on_process : integer (dim: (:)) [out]– The id_on_process of the target atoms (the j in dGi/dxj) in the same order as the final dimension of feature_derivatives.
  • atomic_numbers : integer (dim: (:)) [out]– The atomic numbers of neighbor_atom_ids_on_process.

Called By

proc~~pack_feature_derivatives_from_atom_to_neighbors_allocated~~CalledByGraph proc~pack_feature_derivatives_from_atom_to_neighbors_allocated mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors_allocated proc~pack_feature_derivatives_from_atom_to_neighbors mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom_to_neighbors proc~pack_feature_derivatives_from_atom_to_neighbors->proc~pack_feature_derivatives_from_atom_to_neighbors_allocated proc~write_features_structure mod_precompute_features_all_chunks::write_features_structure proc~write_features_structure->proc~pack_feature_derivatives_from_atom_to_neighbors_allocated proc~pack_feature_derivatives_from_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_from_atom proc~pack_feature_derivatives_from_atom->proc~pack_feature_derivatives_from_atom_to_neighbors proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~write_features_structure proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~pack_feature_derivatives_from_atom program~runner RuNNer program~runner->proc~precompute_features_all_chunks

subroutine unpack_feature_derivatives_from_atom_to_neighbors

subroutine unpack_feature_derivatives_from_atom_to_neighbors( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    feature_derivatives &
)

Unpack all features derivatives dGi/dxj originating at the requested atoms i into the atomic descriptor.

Contributions to periodic images of neighbors are not summed up. See pack_feature_derivatives_from_atom for details.

This assumes that `self%atomic_list(...)%feature_derivatives has not yet been allocated. fill the atomic descriptor with the values

Arguments

  • self : class(FeatureCalculator) [inout]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– A list of all initialized neighbor lists.
  • central_atom_ids_on_process : integer (dim: (:)) [in]– The id_on_process of the atoms whose derivatives should be copied.
  • feature_derivatives : real(DP) (dim: (:,:,:)) [in]– The derivatives of the feature maps of the requested central atoms wrt the Cartesian coordinates of all neighbors. Dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_of_central_atoms).

Called By

proc~~unpack_feature_derivatives_from_atom_to_neighbors~~CalledByGraph proc~unpack_feature_derivatives_from_atom_to_neighbors mod_feature_calculator::FeatureCalculator%unpack_feature_derivatives_from_atom_to_neighbors proc~read_feature_derivatives mod_feature_calculator::FeatureCalculator%read_feature_derivatives proc~read_feature_derivatives->proc~unpack_feature_derivatives_from_atom_to_neighbors proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~read_feature_derivatives proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine pack_complete_feature_vector

subroutine pack_complete_feature_vector( &
    self, &
    id_central, &
    values &
)

Pack a complete scaled feature vector, irrespective of which feature's derivative connects this central atom to a particular target atom.

Arguments

  • self : class(FeatureCalculator) [in]
  • id_central : integer [in]
  • values : real(DP) (dim: (:)) [out]

Called By

proc~~pack_complete_feature_vector~~CalledByGraph proc~pack_complete_feature_vector mod_feature_calculator::pack_complete_feature_vector proc~pack_feature_derivatives_to_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_to_atom proc~pack_feature_derivatives_to_atom->proc~pack_complete_feature_vector proc~pack_feature_derivatives_to_atom_sum mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_to_atom_sum proc~pack_feature_derivatives_to_atom_sum->proc~pack_complete_feature_vector proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~pack_feature_derivatives_to_atom proc~train_loop_short_range->proc~pack_feature_derivatives_to_atom_sum proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

subroutine pack_feature_derivatives_to_atom

subroutine pack_feature_derivatives_to_atom( &
    self, &
    neighbor_lists, &
    target_atom_ids_on_process, &
    features, &
    feature_derivatives, &
    central_atom_ids_in_struct, &
    num_central_atoms_per_target_atom, &
    central_to_target_atom_map, &
    atomic_numbers &
)

Collect all features derivatives towards the given atoms.

This collects the derivatives of all atoms in a structure ("central atoms", because the derivavatives of their feature maps are calculated) towards the given list of target atoms. In mathematical terms, we pack a dense array of \(dG_i/dxyz_j\) for all central atoms \(i\) who have a non-zero derivative towards any of the target atoms \(j\). The final packed array has dimensions (3 x max_num_features_of_central_atoms x sum_max_num_neighbors_target_atoms). As evident from the dimensions, the routine can pack atoms of different elements into one array. Therefore, the atomic numbers and id_on_processs of the central atoms that have the target atoms as their neighbors are returned as additional output arrays. Additionally, the user may request to collect the features of the central atoms (not the target atoms) as well.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • target_atom_ids_on_process : integer (dim: (:)) [in]
  • features : real(DP) (dim: (:,:)) [out]
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– Dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_target_atoms).
  • central_atom_ids_in_struct : integer (dim: (:)) [out]
  • num_central_atoms_per_target_atom : integer (dim: (:)) [out]
  • central_to_target_atom_map : integer (dim: (:)) [out]
  • atomic_numbers : integer (dim: (:)) [out]

Called By

proc~~pack_feature_derivatives_to_atom~~CalledByGraph proc~pack_feature_derivatives_to_atom mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_to_atom proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~pack_feature_derivatives_to_atom proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

subroutine pack_feature_derivatives_to_atom_sum

subroutine pack_feature_derivatives_to_atom_sum( &
    self, &
    neighbor_lists, &
    target_atom_ids_on_process, &
    features, &
    feature_derivatives, &
    central_atom_ids_in_struct, &
    num_central_atoms_per_target_atom, &
    central_to_target_atom_map, &
    atomic_numbers &
)

Collect all features derivatives towards the given atoms.

This collects the derivatives of all atoms in a structure ("central atoms", because the derivavatives of their feature maps are calculated) towards the given list of target atoms. In mathematical terms, we pack a dense array of \(dG_i/dxyz_j\) for all central atoms \(i\) who have a non-zero derivative towards any of the target atoms \(j\). The final packed array has dimensions (3 x max_num_features_of_central_atoms x sum_max_num_neighbors_target_atoms). As evident from the dimensions, the routine can pack atoms of different elements into one array. Therefore, the atomic numbers and id_on_processs of the central atoms that have the target atoms as their neighbors are returned as additional output arrays. Additionally, the user may request to collect the features of the central atoms (not the target atoms) as well.

Arguments

  • self : class(FeatureCalculator) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • target_atom_ids_on_process : integer (dim: (:)) [in]
  • features : real(DP) (dim: (:,:)) [out]
  • feature_derivatives : real(DP) (dim: (:,:,:)) [out]– Dimension (3 x max_num_features_of_central_atoms x sum_num_neighbors_target_atoms).
  • central_atom_ids_in_struct : integer (dim: (:)) [out]
  • num_central_atoms_per_target_atom : integer (dim: (:)) [out]
  • central_to_target_atom_map : integer (dim: (:)) [out]
  • atomic_numbers : integer (dim: (:)) [out]

Called By

proc~~pack_feature_derivatives_to_atom_sum~~CalledByGraph proc~pack_feature_derivatives_to_atom_sum mod_feature_calculator::FeatureCalculator%pack_feature_derivatives_to_atom_sum proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~pack_feature_derivatives_to_atom_sum proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

subroutine free_atomic_list

subroutine free_atomic_list( &
    self, &
    central_atom_ids_on_process, &
    free_features, &
    free_feature_derivatives, &
    force &
)

Deallocate features and feature derivatives arrays for all given atoms.

In contrast to reset this does not set self%initialized to False, so the list of AtomicDescriptor objects is not constructed again when the next initialize call happens. Use reset to achieve that outcome.

Arguments

  • self : class(FeatureCalculator) [inout]
  • central_atom_ids_on_process : integer (dim: (:)) [in]
  • free_features : logical [in]
  • free_feature_derivatives : logical [in]
  • force : logical [in]

Called By

proc~~free_atomic_list~~CalledByGraph proc~free_atomic_list mod_feature_calculator::FeatureCalculator%free_atomic_list proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~free_atomic_list proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~free_atomic_list proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~free_atomic_list proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures->proc~free_atomic_list proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~prediction_statistics_all_chunks->proc~free_atomic_list proc~reset_feature_calculator mod_feature_calculator::FeatureCalculator%reset_feature_calculator proc~prediction_statistics_all_chunks->proc~reset_feature_calculator proc~reset_feature_calculator->proc~free_atomic_list proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~free_atomic_list proc~train_loop_4g_charges->proc~reset_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~free_atomic_list proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~free_atomic_list proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~reset_feature_calculator proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~free_atomic_list proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~free_atomic_list proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~reset_feature_calculator proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~reset_feature_calculator proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost->proc~reset_feature_calculator proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_charges->proc~reset_feature_calculator proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~reset_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~reset_feature_calculator proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~precompute_global_features_all_chunks->proc~reset_feature_calculator proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~predict_all_chunks->proc~predict_multiple_structures proc~predict_all_chunks->proc~reset_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~predict_multiple_structures proc~predict_mode->proc~reset_feature_calculator proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~reset_feature_calculator proc~runner_interface_reset mod_runner_interface_bindings::runner_interface_reset proc~runner_interface_reset->proc~reset_feature_calculator proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_all_chunks proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine calculate_features_first_derivative_towards_atom

subroutine calculate_features_first_derivative_towards_atom( &
    self, &
    neighbor_lists, &
    target_atom_ids_on_process, &
    calc_features, &
    num_feature_maps, &
    feature_map_indices &
)

Calculate the derivatives \(dG_i/dxyz_j\) for all i that have the given target atoms \(j\) as their neighbor. Also calculates the derivative with respect to all images of the given target atoms.

Arguments

  • self : class(FeatureCalculator) [inout]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– The `neighbor_lists` of all feature maps pertaining to the structures.
  • target_atom_ids_on_process : integer (dim: (:)) [in]
  • calc_features : logical [in]
  • num_feature_maps : integer (dim: (MAX_ELEM_NUM)) [in]
  • feature_map_indices : integer (dim: (:,:)) [in]– For each element, the index of the feature maps which are supposed to be calculated. Dimensions: (num_fms, MAX_ELEM_NUM)

Called By

proc~~calculate_features_first_derivative_towards_atom~~CalledByGraph proc~calculate_features_first_derivative_towards_atom mod_feature_calculator::FeatureCalculator%calculate_features_first_derivative_towards_atom proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~calculate_features_first_derivative_towards_atom proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine calculate_features_first_derivative_from_atom

subroutine calculate_features_first_derivative_from_atom( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process, &
    calc_features, &
    num_feature_maps, &
    feature_map_indices &
)

Calculate the derivative \(dG_i/dxyz_j\) for all given central atoms \(i\) with respect to all their respective neighbors \(j\).

Optionally also calculates the feature values (for free).

Arguments

  • self : class(FeatureCalculator) [inout]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • central_atom_ids_on_process : integer (dim: (:)) [in]
  • calc_features : logical [in]
  • num_feature_maps : integer (dim: (:)) [in]
  • feature_map_indices : integer (dim: (:,:)) [in]

Called By

proc~~calculate_features_first_derivative_from_atom~~CalledByGraph proc~calculate_features_first_derivative_from_atom mod_feature_calculator::FeatureCalculator%calculate_features_first_derivative_from_atom proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~calculate_features_first_derivative_from_atom proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine calculate_features_and_derivatives_from_atom_allocated

subroutine calculate_features_and_derivatives_from_atom_allocated( &
    self, &
    neighbor_lists, &
    central_atom_ids_on_process &
)

A streamlined and optimized version of calculate_features_first_derivative_from_atom.

Assumes that the internal arrays self%atomic_list(...)%features and their derivatives have already been allocated and set to zero before the routine is called.

To be used in prediction workflows.

Arguments


subroutine reallocate_features_and_derivatives

subroutine reallocate_features_and_derivatives( &
    self, &
    central_atom_ids_on_process, &
    max_num_neighbors &
)

Arguments

  • self : class(FeatureCalculator) [inout]
  • central_atom_ids_on_process : integer (dim: (:)) [in]
  • max_num_neighbors : integer [in]

subroutine set_features_and_derivatives_to_zero

subroutine set_features_and_derivatives_to_zero( &
    self, &
    central_atom_ids_on_process &
)

Set self%atomic_list(...)%features and derivatives to zero.

Optimized OpenMP-parallel loop. Should be used in prediction workflows.

Arguments

  • self : class(FeatureCalculator) [inout]
  • central_atom_ids_on_process : integer (dim: (:)) [in]

subroutine read_feature_derivatives

subroutine read_feature_derivatives( &
    self, &
    neighbor_lists, &
    ids_on_process &
)

Arguments

Called By

proc~~read_feature_derivatives~~CalledByGraph proc~read_feature_derivatives mod_feature_calculator::FeatureCalculator%read_feature_derivatives proc~evaluate_feature_calculator mod_feature_calculator::FeatureCalculator%evaluate_feature_calculator proc~evaluate_feature_calculator->proc~read_feature_derivatives proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~evaluate_feature_calculator proc~feature_calc_interface_feature_eval mod_feature_calc_interface::feature_calc_interface_feature_eval proc~feature_calc_interface_feature_eval->proc~evaluate_feature_calculator proc~precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk::precalc_nl_deriv_features_single_chunk proc~precalc_nl_deriv_features_single_chunk->proc~evaluate_feature_calculator proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~evaluate_feature_calculator proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~evaluate_feature_calculator proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_mode->proc~predict_multiple_structures proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~evaluate_feature_calculator proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~evaluate_feature_calculator proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~evaluate_feature_calculator proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~evaluate_feature_calculator proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~evaluate_feature_calculator proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~update_dataset_statistics_chi_multiple_structures mod_dataset_statistics::update_dataset_statistics_chi_multiple_structures proc~update_dataset_statistics_chi_multiple_structures->proc~evaluate_feature_calculator proc~update_prediction_statistics_multiple_structures mod_prediction_statistics::update_prediction_statistics_multiple_structures proc~update_prediction_statistics_multiple_structures->proc~evaluate_feature_calculator proc~dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks::dataset_statistics_chi_all_chunks proc~dataset_statistics_chi_all_chunks->proc~update_dataset_statistics_chi_multiple_structures proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~precalc_nl_deriv_features_single_chunk proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~dataset_statistics_chi_all_chunks proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~train_mode->proc~predict_all_chunks program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks->proc~predict_multiple_structures

subroutine update_statistics

subroutine update_statistics( &
    self, &
    indices, &
    lcorrelation &
)

Calculate the minimum, maximum, mean and standard deviation of all feature maps that are part of the feature calculator.

Arguments

  • self : class(FeatureCalculator) [inout]
  • indices : integer (dim: (:)) [in]
  • lcorrelation : logical [in]

Called By

proc~~update_statistics~~CalledByGraph proc~update_statistics mod_feature_calculator::FeatureCalculator%update_statistics proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 mod_feature_map_scaling_all_chunks::determine_scaling_factor_and_centering_subtrahend_all_chunks proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3->proc~update_statistics proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~update_statistics proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~determine_scaling_factor_and_centering_subtrahend_all_chunks~3 program~runner RuNNer program~runner->proc~precompute_features_all_chunks proc~train_mode mod_train_mode::train_mode program~runner->proc~train_mode proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks

subroutine check_for_extrapolations

subroutine check_for_extrapolations( &
    self, &
    central_atom_ids_on_process &
)

Check whether any feature map value in self%atomic_list lies outside of the statistical values for the respective element. Extrapoloation threshold is set by the feature_extrapolation_threshold keyword.

Arguments

  • self : class(FeatureCalculator) [in]
  • central_atom_ids_on_process : integer (dim: (:)) [in]– ID of the central atoms owned by the respective structure/batch on process

Called By

proc~~check_for_extrapolations~~CalledByGraph proc~check_for_extrapolations mod_feature_calculator::FeatureCalculator%check_for_extrapolations proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~check_for_extrapolations proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~check_for_extrapolations proc~predict_single_structure->proc~post_processing_wrapper_single_structure proc~predict_structure_batch mod_structure_batch_iterator::StructureBatchIterator%predict_structure_batch proc~predict_structure_batch->proc~check_for_extrapolations proc~runner_interface_short_range_4g mod_runner_interface_bindings::runner_interface_short_range_4g proc~runner_interface_short_range_4g->proc~check_for_extrapolations proc~predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures::predict_4g_charges_training_qeq_multiple_structures proc~predict_4g_charges_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_structure_batch proc~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~post_processing_wrapper_single_structure proc~predict_multiple_structures->proc~predict_structure_batch proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_structure_batch proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::prediction_statistics_all_chunks proc~prediction_statistics_all_chunks->proc~predict_structure_batch proc~feature_scaling_and_prediction_statistics_all_chunks mod_feature_map_scaling_all_chunks::feature_scaling_and_prediction_statistics_all_chunks proc~feature_scaling_and_prediction_statistics_all_chunks->proc~prediction_statistics_all_chunks proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~output_files_and_cost->proc~predict_multiple_structures proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~output_files_and_cost_4g_charges->proc~predict_4g_charges_training_qeq_multiple_structures proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~predict_all_chunks->proc~predict_multiple_structures proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~predict_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~feature_scaling_and_prediction_statistics_all_chunks proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_short_range proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_mode->proc~train_loop_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_mode->proc~train_loop_atomic_property proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property->proc~output_files_and_cost program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine allocate_cache

subroutine allocate_cache( &
    self, &
    max_num_atoms_in_struct, &
    num_structures_in_batch &
)

Allocate the cache of all feature maps.

Wrapper around the allocate_cache method of each feature map. See there for details.

Arguments

  • self : class(FeatureCalculator) [inout]
  • max_num_atoms_in_struct : integer [in]
  • num_structures_in_batch : integer [in]

Called By

proc~~allocate_cache~~CalledByGraph proc~allocate_cache mod_feature_calculator::FeatureCalculator%allocate_cache proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~allocate_cache program~runner RuNNer program~runner->proc~train_mode