Skip to content

mod_overlap_matrix

Lines: 279 | Visibility: private

The overlap matrix descriptor/feature map, also knwon as Overlap Matrix Fingerprint (OMFP)

This file contains the type definitions of the AbstactOverlapMatrix OverlapMatrix and SmoothOverlaMatrix derived types. Since OverlapMatrix and SmoothOverlapMatrix use private procedures of AbstractOverlapMatrix, they need to be defined in the same module. Since this module would be very large, we make extensive use of submodules. Hence, this module only holds the interfaces of the type bound procedures and their documentation. See the mentioned submodules for their implementation. author: Moritz R. Schaefer

Dependencies

Uses

module~~mod_overlap_matrix~~UsesGraph module~mod_overlap_matrix mod_overlap_matrix module~mod_cutoff_function mod_cutoff_function module~mod_overlap_matrix->module~mod_cutoff_function module~mod_feature_map mod_feature_map module~mod_overlap_matrix->module~mod_feature_map module~mod_feature_map_neighborlist mod_feature_map_neighborlist module~mod_overlap_matrix->module~mod_feature_map_neighborlist module~mod_precision mod_precision module~mod_overlap_matrix->module~mod_precision module~mod_structures mod_structures module~mod_overlap_matrix->module~mod_structures module~mod_cutoff_function->module~mod_precision 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_io mod_io module~mod_cutoff_function->module~mod_io module~mod_throw mod_throw module~mod_cutoff_function->module~mod_throw module~mod_feature_map->module~mod_cutoff_function module~mod_feature_map->module~mod_feature_map_neighborlist module~mod_feature_map->module~mod_precision module~mod_feature_map->module~mod_structures module~mod_hash mod_hash module~mod_feature_map->module~mod_hash module~mod_feature_map->module~mod_io module~mod_sanitize mod_sanitize module~mod_feature_map->module~mod_sanitize module~mod_feature_map->module~mod_throw module~mod_feature_map_neighborlist->module~mod_precision module~mod_feature_map_neighborlist->module~mod_structures module~mod_feature_map_neighborlist->module~mod_abstract_cutoff_function module~mod_constants mod_constants module~mod_feature_map_neighborlist->module~mod_constants module~mod_feature_map_neighborlist->module~mod_io module~mod_mpi mod_mpi module~mod_feature_map_neighborlist->module~mod_mpi module~mod_neighborlist mod_neighborlist module~mod_feature_map_neighborlist->module~mod_neighborlist module~mod_feature_map_neighborlist->module~mod_throw module~mod_timer mod_timer module~mod_feature_map_neighborlist->module~mod_timer iso_c_binding iso_c_binding module~mod_precision->iso_c_binding iso_fortran_env iso_fortran_env module~mod_precision->iso_fortran_env module~mod_structures->module~mod_precision module~mod_array_helpers mod_array_helpers module~mod_structures->module~mod_array_helpers module~mod_structures->module~mod_constants module~mod_linalg mod_linalg module~mod_structures->module~mod_linalg module~mod_structures->module~mod_mpi module~mod_periodic_table mod_periodic_table module~mod_structures->module~mod_periodic_table module~mod_structures_helper mod_structures_helper module~mod_structures->module~mod_structures_helper module~mod_structures->module~mod_throw module~mod_abstract_cutoff_function->module~mod_precision module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_constants->module~mod_precision module~mod_constants->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_abstract_cutoff_function module~mod_cutoff_function_null->module~mod_throw module~mod_cutoff_function_polynomial->module~mod_precision module~mod_cutoff_function_polynomial->module~mod_abstract_cutoff_function module~mod_fastmath mod_fastmath 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_hash->module~mod_precision module~mod_hash->module~mod_io module~mod_hash->module~mod_periodic_table module~mod_io->module~mod_precision module~mod_io->iso_fortran_env module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args module~mod_linalg->module~mod_precision module~mod_linalg->module~mod_throw module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_settings mod_settings module~mod_linalg->module~mod_settings module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_neighborlist->module~mod_precision module~mod_neighborlist->module~mod_structures module~mod_neighborlist->module~mod_io module~mod_neighborlist->module~mod_mpi module~mod_neighborlist->module~mod_throw module~mod_dynamic_double_array mod_dynamic_double_array module~mod_neighborlist->module~mod_dynamic_double_array module~mod_dynamic_int_array mod_dynamic_int_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_neighborlist->module~mod_settings module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_constants module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_throw module~mod_sanitize->module~mod_throw module~mod_structures_helper->module~mod_precision module~mod_structures_helper->module~mod_linalg module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_io module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_timer->module~mod_precision module~mod_timer->module~mod_io module~mod_timer->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_timer->ieee_arithmetic module~mod_timer->module~mod_optional_args module~cublas_wrapper->iso_c_binding module~cublas_wrapper->module~mod_settings module~mod_dynamic_double_array->module~mod_precision module~mod_dynamic_double_array->module~mod_throw module~mod_fastmath->module~mod_precision module~mod_neighbor_grid->module~mod_precision module~mod_neighbor_grid->module~mod_mpi 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_precision module~mod_neighborlist_helper->module~mod_linalg module~mod_neighborlist_helper->module~mod_mpi module~mod_settings->module~mod_precision module~mod_settings->module~mod_constants module~mod_settings->module~mod_io module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_throw module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_sort->module~mod_precision module~mod_cpu_vendor->iso_c_binding

Used By

module~~mod_overlap_matrix~~UsedByGraph module~mod_overlap_matrix mod_overlap_matrix module~mod_feature_calculator mod_feature_calculator module~mod_feature_calculator->module~mod_overlap_matrix module~smod_atom_overlap smod_atom_overlap module~smod_atom_overlap->module~mod_overlap_matrix module~smod_cache smod_cache module~smod_cache->module~mod_overlap_matrix module~smod_constructor smod_constructor module~smod_constructor->module~mod_overlap_matrix module~smod_eigenval_and_vectors smod_eigenval_and_vectors module~smod_eigenval_and_vectors->module~mod_overlap_matrix module~smod_first_derivative smod_first_derivative module~smod_first_derivative->module~mod_overlap_matrix module~smod_original smod_original module~smod_original->module~mod_overlap_matrix module~smod_smooth smod_smooth module~smod_smooth->module~mod_overlap_matrix 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
AtomicOM Holds the actual overlap matrix S for each atom as well associated values. During training it...
AbstractOverlapMatrix The definition of the AbstractOverlapMatrix derived type. This type defines all main rountines...
OverlapMatrix The original "Overlap Matrix Fingerprint" as proposed by Goedecker and coworkers. This type...
SmoothOverlapMatrix A "smooth" version of the "Overlap Matrix Fingerprint" This type implements the original idea...

Procedures Summary

Name Type Description
constructor_wrapper_overlap_matrix Function Construct a FeatureMapPtr object containing a reference to a OverlapMatrix object. ...
constructor_wrapper_smooth_overlap_matrix Function Construct a FeatureMapPtr object containing a reference to a SmoothOverlapMatrix object....

Derived Types Details

type AtomicOM

Holds the actual overlap matrix S for each atom as well associated values.

During training it is possible, that we need to call first_derivative_wrt_one_neighbor for multiple neighbors of the same atom. In this case, we want to avoid that S and it's eigenvalues and eigenvectors need to be recomputed. This can be used to cache those intermediate values.

Components

  • overlap : real(DP) (dim: (:,:))– The overlap matrix S_ij
  • om_eigenvec : real(DP) (dim: (:,:))– The eigenvectors of the overlap matrix S_ij
  • eigenvalues : real(DP) (dim: (:))– The eigenvalues of the overlap matrix S_ij
  • norb : integer– Number of orbitals for the overlap matrix.
  • num_relevant_eigenvec : integer– The number of eigenvectors that are needed to compute the derivatives of the eigenvalues for this atom. Corresponds to min(num_eval, norb).
  • lb_evec : integer– The index of the eigenvector which corresponds to the smallest relevant eigenvalue

Inherited By

type~~atomicom~~InheritedByGraph type~atomicom AtomicOM type~abstractoverlapmatrix AbstractOverlapMatrix type~abstractoverlapmatrix->type~atomicom atomic_oms type~overlapmatrix OverlapMatrix type~overlapmatrix->type~abstractoverlapmatrix type~smoothoverlapmatrix SmoothOverlapMatrix type~smoothoverlapmatrix->type~abstractoverlapmatrix

type AbstractOverlapMatrix

The definition of the AbstractOverlapMatrix derived type.

This type defines all main rountines related to the overlap matrix itself. Hence it defines routines to compute a matrix containing all overlaps between all atomic orbitals inside a given cutoff sphere. To keep them differentiable each overlap is multiplied with the values of a given cutoff function, centered on a central atom, at the position of the atoms to which the two atomic orbitials, defining the overlap, belong. It was shown that the eigenvalues of this matrix, after some postprocessing, can be used as a descriptor of the local enviornment of the central atom. This type also defines the necessary routines to compute those eigenvalues and their derivatives. It also provides the necessary routines to compute the mentioned derivatives of It also provides an abstract interface for the postprocessing routine eigenvalues2features, and the two wrapper routines actual_first_derivative_wrt_one_neighbor and actual_first_derivative_wrt_self, which do the necessary pre- and postprocessing for the features' derivatives. Those routines may differ between different flavours of the descriptor and hence are to be overriden.

Components

  • name : character– The name of this feature map type. – Inherited from AbstractFeatureMap
  • hash_str : character– Hash string for sorting feature maps. – Inherited from AbstractFeatureMap
  • num_features : integer– The number of features provided by this feature map. – Inherited from AbstractFeatureMap
  • max_num_features : integer– The number of features provided by all feature maps that contribute to the same descriptor as this feature map. – Inherited from AbstractFeatureMap
  • neighbor_list_idx : integer– index of the neighbor_list in the neighbor_lists array which is the correct one for this feature map – Inherited from AbstractFeatureMap
  • feat_idx_lowest : integer– Inherited from AbstractFeatureMap
  • feat_idx_highest : integer– Inherited from AbstractFeatureMap
  • idx_sorted_features : integer (dim: (:))– Inherited from AbstractFeatureMap
  • lscale_wrt_tot_min_max_of_all_features : logical– If true, all features of this feature map will be scaled by the same factor. Min and max values are the total min and max values of all features of this feature map. – Inherited from AbstractFeatureMap
  • num_s_orb : integer– number of s-orbitals on each atom
  • num_p_orb : integer– number of sets (px, py, pz) of p-orbitals on each atom
  • num_at_orb : integer– number of s-orbitals + number of p-orbital (3 * num_p_orb)
  • num_eval : integer– The number of eigenvalues/eigenvectors (later called relevant eigenvalues/vectors) which should be used to compute the features
  • a_s_orb : real(DP) (dim: (:,:))– s-orbital coefficients
  • a_p_orb : real(DP) (dim: (:,:))– p-orbital coefficients
  • atomic_oms : type(AtomicOM) (dim: (:,:))– Atom specific intermediary results

Type-Bound Procedures

Name Attributes Binding
read_from_string public ⇒ read_from_string
first_derivative_wrt_self public ⇒ first_derivative_wrt_self
generate_hash public ⇒ generate_hash
d_value_d_strain public ⇒ d_value_d_strain
set_idx_sorted_features public ⇒ set_idx_sorted_features
get_idx_sorted_features public ⇒ get_idx_sorted_features
set_string public ⇒ set_string
get_string public ⇒ get_string
get_string_without_modifier public ⇒ get_string_without_modifier
get_modifiers_string_and_lhas_modifiers public ⇒ get_modifiers_string_and_lhas_modifiers
value public ⇒ value
first_derivative_wrt_self_and_neighbors public ⇒ first_derivative_wrt_self_and_neighbors
first_derivative_wrt_one_neighbor public ⇒ first_derivative_wrt_one_neighbor_wrapper
print public ⇒ print
allocate_cache public ⇒ allocate_cache
clean_cache public ⇒ clean_cache
om_and_eigenvectors private ⇒ om_and_eigenvectors
full_overlap private ⇒ full_overlap
calc_overlap private ⇒ calc_overlap
calc_der_overlap_wrt_one_neighbor private ⇒ calc_der_overlap_wrt_one_neighbor
calc_deriv_overlap private ⇒ calc_deriv_overlap
derivative_eval_one_neighbor private ⇒ derivative_eval_one_neighbor
derivative_eval_self private ⇒ derivative_eval_self
set_up_abstract_om private ⇒ set_up_abstract_om
eigenvalues2features private ⇒ eigenvalues2features
actual_first_derivative_wrt_one_neighbor private ⇒ actual_first_derivative_wrt_one_neighbor

Inherits

type~~abstractoverlapmatrix~~InheritsGraph type~abstractoverlapmatrix AbstractOverlapMatrix type~abstractfeaturemap AbstractFeatureMap type~abstractoverlapmatrix->type~abstractfeaturemap type~atomicom AtomicOM type~abstractoverlapmatrix->type~atomicom atomic_oms

Inherited By

type~~abstractoverlapmatrix~~InheritedByGraph type~abstractoverlapmatrix AbstractOverlapMatrix type~overlapmatrix OverlapMatrix type~overlapmatrix->type~abstractoverlapmatrix type~smoothoverlapmatrix SmoothOverlapMatrix type~smoothoverlapmatrix->type~abstractoverlapmatrix

type OverlapMatrix

The original "Overlap Matrix Fingerprint" as proposed by Goedecker and coworkers.

This type implements the original idea to transform the overlap matrix' eigenvalues and their derivatives into a usable feature vector. The main problem is that the number of eigenvalues depend on the number of orbitals in the cutoff sphere while a feature vector must have a consistent size. The very original idea was to sort the eigenvalues in decreasing order, truncate them after a given length if there are to many of fill them up with zeros until the given length is reached. The sorting leads to kinks in the function describing the eigenvalues if they are degenerated. This makes it impossible to compute derivatives at those points. In this implementation we do sort the eigenvalues increasing order and potentially fill the head of this list with zeros. This makes it easier to have a unified interface with other flavours of the omfp and is computationally less demanding. This obviously does not solve the problem regarding the indifferentiablity.

Components

  • name : character– The name of this feature map type. – Inherited from AbstractFeatureMap
  • hash_str : character– Hash string for sorting feature maps. – Inherited from AbstractFeatureMap
  • num_features : integer– The number of features provided by this feature map. – Inherited from AbstractFeatureMap
  • max_num_features : integer– The number of features provided by all feature maps that contribute to the same descriptor as this feature map. – Inherited from AbstractFeatureMap
  • neighbor_list_idx : integer– index of the neighbor_list in the neighbor_lists array which is the correct one for this feature map – Inherited from AbstractFeatureMap
  • feat_idx_lowest : integer– Inherited from AbstractFeatureMap
  • feat_idx_highest : integer– Inherited from AbstractFeatureMap
  • idx_sorted_features : integer (dim: (:))– Inherited from AbstractFeatureMap
  • lscale_wrt_tot_min_max_of_all_features : logical– If true, all features of this feature map will be scaled by the same factor. Min and max values are the total min and max values of all features of this feature map. – Inherited from AbstractFeatureMap

Type-Bound Procedures

Name Attributes Binding
generate_hash public ⇒ generate_hash
d_value_d_strain public ⇒ d_value_d_strain
set_idx_sorted_features public ⇒ set_idx_sorted_features
get_idx_sorted_features public ⇒ get_idx_sorted_features
set_string public ⇒ set_string
get_string public ⇒ get_string
get_string_without_modifier public ⇒ get_string_without_modifier
get_modifiers_string_and_lhas_modifiers public ⇒ get_modifiers_string_and_lhas_modifiers
value public ⇒ value
first_derivative_wrt_self_and_neighbors public ⇒ first_derivative_wrt_self_and_neighbors
first_derivative_wrt_one_neighbor public ⇒ first_derivative_wrt_one_neighbor_wrapper
print public ⇒ print
allocate_cache public ⇒ allocate_cache
clean_cache public ⇒ clean_cache
eigenvalues2features private ⇒ eigenvalues2features_om
actual_first_derivative_wrt_one_neighbor private ⇒ actual_first_derivative_wrt_one_neighbor
read_from_string public ⇒ read_from_string_overlap_matrix
first_derivative_wrt_self public ⇒ first_derivative_wrt_self_om

Inherits

type~~overlapmatrix~~InheritsGraph type~overlapmatrix OverlapMatrix type~abstractoverlapmatrix AbstractOverlapMatrix type~overlapmatrix->type~abstractoverlapmatrix type~abstractfeaturemap AbstractFeatureMap type~abstractoverlapmatrix->type~abstractfeaturemap type~atomicom AtomicOM type~abstractoverlapmatrix->type~atomicom atomic_oms

type SmoothOverlapMatrix

A "smooth" version of the "Overlap Matrix Fingerprint"

This type implements the original idea to transform the overlap matrix' eigenvalues and their derivatives into a usable feature vector. It does not just ensure that the feature vector always has the same length but also that the features have well defined derivatives. This is done by defining the jth feature as G_j = sum(sin(F_i * x_j)), where F_i are the num_eval (choosen by user) largest eigenvalues und x_j is a unified grid with length grid_length and num_features grid points (both choosen by user). Around 20 to 100 grid points should be used.

Components

  • name : character– The name of this feature map type. – Inherited from AbstractFeatureMap
  • hash_str : character– Hash string for sorting feature maps. – Inherited from AbstractFeatureMap
  • num_features : integer– The number of features provided by this feature map. – Inherited from AbstractFeatureMap
  • max_num_features : integer– The number of features provided by all feature maps that contribute to the same descriptor as this feature map. – Inherited from AbstractFeatureMap
  • neighbor_list_idx : integer– index of the neighbor_list in the neighbor_lists array which is the correct one for this feature map – Inherited from AbstractFeatureMap
  • feat_idx_lowest : integer– Inherited from AbstractFeatureMap
  • feat_idx_highest : integer– Inherited from AbstractFeatureMap
  • idx_sorted_features : integer (dim: (:))– Inherited from AbstractFeatureMap
  • lscale_wrt_tot_min_max_of_all_features : logical– If true, all features of this feature map will be scaled by the same factor. Min and max values are the total min and max values of all features of this feature map. – Inherited from AbstractFeatureMap
  • grid_length : real(DP)– length of the grid, 15._DP is good choice
  • grid_spacing : real(DP)– grid_length / num_features

Type-Bound Procedures

Name Attributes Binding
generate_hash public ⇒ generate_hash
d_value_d_strain public ⇒ d_value_d_strain
set_idx_sorted_features public ⇒ set_idx_sorted_features
get_idx_sorted_features public ⇒ get_idx_sorted_features
set_string public ⇒ set_string
get_string public ⇒ get_string
get_string_without_modifier public ⇒ get_string_without_modifier
get_modifiers_string_and_lhas_modifiers public ⇒ get_modifiers_string_and_lhas_modifiers
value public ⇒ value
first_derivative_wrt_self_and_neighbors public ⇒ first_derivative_wrt_self_and_neighbors
first_derivative_wrt_one_neighbor public ⇒ first_derivative_wrt_one_neighbor_wrapper
print public ⇒ print
allocate_cache public ⇒ allocate_cache
clean_cache public ⇒ clean_cache
first_derivative_wrt_self public ⇒ smooth_first_derivative_wrt_self
read_from_string public ⇒ read_from_string_smooth_overlap_matrix
actual_first_derivative_wrt_one_neighbor private ⇒ smooth_actual_first_derivative_wrt_one_neighbor
eigenvalues2features private ⇒ eigenvalues2features_som
calc_smooth_derivatives private ⇒ calc_smooth_derivatives

Inherits

type~~smoothoverlapmatrix~~InheritsGraph type~smoothoverlapmatrix SmoothOverlapMatrix type~abstractoverlapmatrix AbstractOverlapMatrix type~smoothoverlapmatrix->type~abstractoverlapmatrix type~abstractfeaturemap AbstractFeatureMap type~abstractoverlapmatrix->type~abstractfeaturemap type~atomicom AtomicOM type~abstractoverlapmatrix->type~atomicom atomic_oms

Interface Details

interface print


interface calc_deriv_overlap


interface calc_overlap


interface set_up_abstract_om


interface value


interface om_and_eigenvectors


interface full_overlap


interface first_derivative_wrt_self_and_neighbors


interface first_derivative_wrt_one_neighbor_wrapper


interface derivative_eval_one_neighbor


interface derivative_eval_self


interface calc_der_overlap_wrt_one_neighbor


interface allocate_cache


interface clean_cache


interface OverlapMatrix


interface constructor_overlap_matrix


interface eigenvalues2features_om


interface actual_first_derivative_wrt_one_neighbor


interface read_from_string_overlap_matrix


interface first_derivative_wrt_self_om


interface SmoothOverlapMatrix


interface constructor_smooth_overlap_matrix


interface eigenvalues2features_som


interface smooth_actual_first_derivative_wrt_one_neighbor


interface calc_smooth_derivatives


interface read_from_string_smooth_overlap_matrix


interface smooth_first_derivative_wrt_self


Procedure Details

function constructor_wrapper_overlap_matrix

function constructor_wrapper_overlap_matrix( &
    line, &
    cutoff_functions &
)

Construct a FeatureMapPtr object containing a reference to a OverlapMatrix object.

Note: This can not be put in a submodule due to a compiler bug in gfortran 9.x

Arguments

  • line : character [in]– line defining the om, read from input.nn
  • cutoff_functions : type(CutoffFunctionPtr) (dim: (:)) [in]

Called By

proc~~constructor_wrapper_overlap_matrix~~CalledByGraph proc~constructor_wrapper_overlap_matrix mod_overlap_matrix::constructor_wrapper_overlap_matrix interface~overlapmatrix mod_overlap_matrix::OverlapMatrix interface~overlapmatrix->proc~constructor_wrapper_overlap_matrix

function constructor_wrapper_smooth_overlap_matrix

function constructor_wrapper_smooth_overlap_matrix( &
    line, &
    cutoff_functions &
)

Construct a FeatureMapPtr object containing a reference to a SmoothOverlapMatrix object.

Note: This can not be put in a submodule due to a compiler bug in gfortran 9.x

Arguments

  • line : character [in]– line defining the om, read from input.nn
  • cutoff_functions : type(CutoffFunctionPtr) (dim: (:)) [in]

Called By

proc~~constructor_wrapper_smooth_overlap_matrix~~CalledByGraph proc~constructor_wrapper_smooth_overlap_matrix mod_overlap_matrix::constructor_wrapper_smooth_overlap_matrix interface~smoothoverlapmatrix mod_overlap_matrix::SmoothOverlapMatrix interface~smoothoverlapmatrix->proc~constructor_wrapper_smooth_overlap_matrix