Skip to content

mod_linalg

Lines: 820 | Visibility: private

Linear algebra functions including easy-to-use interfaces to BLAS and LAPACK. author: Jonas Finkler, Moritz R. Schaefer, Marco Eckhoff, Gunnar Schmitz

Dependencies

Uses

module~~mod_linalg~~UsesGraph module~mod_linalg mod_linalg module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_precision mod_precision module~mod_linalg->module~mod_precision module~mod_settings mod_settings module~mod_linalg->module~mod_settings module~mod_throw mod_throw module~mod_linalg->module~mod_throw module~cublas_wrapper->module~mod_settings iso_c_binding iso_c_binding module~cublas_wrapper->iso_c_binding module~mod_precision->iso_c_binding iso_fortran_env iso_fortran_env module~mod_precision->iso_fortran_env module~mod_settings->module~mod_precision module~mod_settings->module~mod_throw module~mod_constants mod_constants module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_io mod_io module~mod_settings->module~mod_io module~mod_periodic_table mod_periodic_table module~mod_settings->module~mod_periodic_table 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_mpi mod_mpi module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_constants->module~mod_precision module~mod_constants->iso_c_binding module~mod_cpu_vendor->iso_c_binding 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_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_constants module~mod_periodic_table->module~mod_io module~mod_array_helpers mod_array_helpers module~mod_periodic_table->module~mod_array_helpers module~mod_sort->module~mod_precision module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw

Used By

module~~mod_linalg~~UsedByGraph module~mod_linalg mod_linalg module~mod_abstract_kalman_filter mod_abstract_kalman_filter module~mod_abstract_kalman_filter->module~mod_linalg module~mod_cross_matrix mod_cross_matrix module~mod_cross_matrix->module~mod_linalg module~mod_dataset_statistics mod_dataset_statistics module~mod_dataset_statistics->module~mod_linalg module~mod_structures mod_structures module~mod_dataset_statistics->module~mod_structures module~mod_training_charge_equilibration mod_training_charge_equilibration module~mod_dataset_statistics->module~mod_training_charge_equilibration module~mod_dataloader_file mod_dataloader_file module~mod_dataset_statistics->module~mod_dataloader_file module~mod_feature_calculator mod_feature_calculator module~mod_dataset_statistics->module~mod_feature_calculator module~mod_dense_layer mod_dense_layer module~mod_dense_layer->module~mod_linalg module~mod_dense_layer_with_single_activations mod_dense_layer_with_single_activations module~mod_dense_layer_with_single_activations->module~mod_linalg module~mod_dense_layer_with_single_activations->module~mod_dense_layer module~mod_direct_charge_equilibration mod_direct_charge_equilibration module~mod_direct_charge_equilibration->module~mod_linalg module~mod_abstract_charge_equilibration mod_abstract_charge_equilibration module~mod_direct_charge_equilibration->module~mod_abstract_charge_equilibration module~mod_abstract_electrostatics mod_abstract_electrostatics module~mod_direct_charge_equilibration->module~mod_abstract_electrostatics module~mod_ewald_summation mod_ewald_summation module~mod_ewald_summation->module~mod_linalg module~mod_neighborlist_helper mod_neighborlist_helper module~mod_ewald_summation->module~mod_neighborlist_helper module~mod_outer_product mod_outer_product module~mod_ewald_summation->module~mod_outer_product module~mod_ewald_summation->module~mod_abstract_electrostatics module~mod_neighbor_grid mod_neighbor_grid module~mod_ewald_summation->module~mod_neighbor_grid module~mod_pair_electrostatics mod_pair_electrostatics module~mod_ewald_summation->module~mod_pair_electrostatics module~mod_fft_potential mod_fft_potential module~mod_fft_potential->module~mod_linalg module~mod_fft_potential->module~mod_neighborlist_helper module~mod_structures_helper mod_structures_helper module~mod_fft_potential->module~mod_structures_helper module~mod_neighborlist_helper->module~mod_linalg module~mod_outer_product->module~mod_linalg module~mod_pppm mod_pppm module~mod_pppm->module~mod_linalg module~mod_pppm->module~mod_ewald_summation module~mod_pppm->module~mod_outer_product module~mod_pppm->module~mod_abstract_electrostatics module~mod_pppm->module~mod_neighbor_grid module~mod_pw mod_pw module~mod_pppm->module~mod_pw module~mod_pppm->module~mod_pair_electrostatics module~mod_structures->module~mod_linalg module~mod_structures->module~mod_structures_helper module~mod_structures_helper->module~mod_linalg module~mod_training_charge_equilibration->module~mod_linalg module~mod_training_charge_equilibration->module~mod_cross_matrix module~mod_training_charge_equilibration->module~mod_ewald_summation module~mod_training_charge_equilibration->module~mod_structures module~mod_training_charge_equilibration->module~mod_abstract_electrostatics module~mod_training_charge_equilibration->module~mod_pair_electrostatics module~sqnm sqnm module~sqnm->module~mod_linalg proc~calc_lambda_q_derivatives mod_pw::PwCalculator%calc_lambda_q_derivatives proc~calc_lambda_q_derivatives->module~mod_linalg proc~calc_pw_energy mod_fft_potential::PWPotCalculator%calc_pw_energy proc~calc_pw_energy->module~mod_linalg proc~calc_pw_stress mod_fft_potential::PWPotCalculator%calc_pw_stress proc~calc_pw_stress->module~mod_linalg proc~rho_to_grid_grid mod_fft_potential::PWPotCalculator%rho_to_grid_grid proc~rho_to_grid_grid->module~mod_linalg module~mod_abstract_angular_symmetry_function mod_abstract_angular_symmetry_function module~mod_abstract_angular_symmetry_function->module~mod_structures module~mod_abstract_symmetry_function mod_abstract_symmetry_function module~mod_abstract_angular_symmetry_function->module~mod_abstract_symmetry_function module~mod_feature_map_neighborlist mod_feature_map_neighborlist module~mod_abstract_angular_symmetry_function->module~mod_feature_map_neighborlist module~mod_abstract_charge_equilibration->module~mod_structures module~mod_abstract_charge_equilibration->module~mod_abstract_electrostatics module~mod_abstract_electrostatics->module~mod_structures module~mod_abstract_radial_symmetry_function mod_abstract_radial_symmetry_function module~mod_abstract_radial_symmetry_function->module~mod_structures module~mod_abstract_radial_symmetry_function->module~mod_abstract_symmetry_function module~mod_abstract_radial_symmetry_function->module~mod_feature_map_neighborlist module~mod_abstract_structure_data_file mod_abstract_structure_data_file module~mod_abstract_structure_data_file->module~mod_structures module~mod_abstract_symmetry_function->module~mod_structures module~mod_feature_map mod_feature_map module~mod_abstract_symmetry_function->module~mod_feature_map module~mod_abstract_symmetry_function->module~mod_feature_map_neighborlist 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_analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_direct_charge_equilibration module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_structures module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_electrostatics module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_pair_electrostatics module~mod_angular_symmetry_function_3 mod_angular_symmetry_function_3 module~mod_angular_symmetry_function_3->module~mod_structures module~mod_angular_symmetry_function_3->module~mod_abstract_angular_symmetry_function module~mod_angular_symmetry_function_3->module~mod_abstract_symmetry_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_8 mod_angular_symmetry_function_8 module~mod_angular_symmetry_function_8->module~mod_structures 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_feature_map module~mod_angular_symmetry_function_8->module~mod_feature_map_neighborlist module~mod_angular_symmetry_function_9 mod_angular_symmetry_function_9 module~mod_angular_symmetry_function_9->module~mod_structures 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_feature_map module~mod_angular_symmetry_function_9->module~mod_feature_map_neighborlist module~mod_atomic_descriptor mod_atomic_descriptor module~mod_atomic_descriptor->module~mod_structures module~mod_element mod_element module~mod_atomic_descriptor->module~mod_element module~mod_calc_screening mod_calc_screening module~mod_calc_screening->module~mod_structures module~mod_calc_screening->module~mod_feature_map_neighborlist module~mod_calculate_coulomb_matrix mod_calculate_coulomb_matrix module~mod_calculate_coulomb_matrix->module~mod_training_charge_equilibration module~mod_calculate_coulomb_matrix->module~mod_dataloader_file module~mod_dataloader_file->module~mod_structures module~mod_dataloader_file->module~mod_abstract_structure_data_file module~mod_dataloader_file->module~mod_feature_calculator module~mod_dataloader_file->module~mod_feature_map_neighborlist module~mod_memory_estimation mod_memory_estimation module~mod_dataloader_file->module~mod_memory_estimation module~mod_dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics module~mod_dataset_statistics_chi_all_chunks->module~mod_training_charge_equilibration module~mod_dataset_statistics_chi_all_chunks->module~mod_dataloader_file module~mod_dataset_statistics_chi_all_chunks->module~mod_feature_calculator module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_ee4g_feature_calculator->module~mod_outer_product module~mod_ee4g_feature_calculator->module~mod_structures module~mod_ee4g_feature_calculator->module~mod_feature_map_neighborlist module~mod_global_feature_calculator mod_global_feature_calculator module~mod_ee4g_feature_calculator->module~mod_global_feature_calculator module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_structures module~mod_evaluate_4g_single_structure->module~mod_structures_helper module~mod_evaluate_4g_single_structure->module~mod_abstract_charge_equilibration module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_evaluate_4g_single_structure->module~mod_feature_calculator module~mod_evaluate_4g_single_structure->module~mod_feature_map_neighborlist module~mod_chain_features mod_chain_features module~mod_evaluate_4g_single_structure->module~mod_chain_features module~mod_feature_calculator->module~mod_structures module~mod_feature_calculator->module~mod_angular_symmetry_function_3 module~mod_feature_calculator->module~mod_angular_symmetry_function_8 module~mod_feature_calculator->module~mod_angular_symmetry_function_9 module~mod_feature_calculator->module~mod_atomic_descriptor module~mod_feature_calculator->module~mod_feature_map module~mod_feature_calculator->module~mod_feature_map_neighborlist module~mod_overlap_matrix mod_overlap_matrix module~mod_feature_calculator->module~mod_overlap_matrix 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_feature_calculator->module~mod_element module~mod_feature_calculator_statistics mod_feature_calculator_statistics module~mod_feature_calculator_statistics->module~mod_structures module~mod_feature_calculator_statistics->module~mod_feature_calculator module~mod_feature_calculator_statistics->module~mod_feature_map_neighborlist module~mod_scalingdata mod_scalingdata module~mod_feature_calculator_statistics->module~mod_scalingdata module~mod_feature_map->module~mod_structures module~mod_feature_map->module~mod_feature_map_neighborlist module~mod_feature_map_neighborlist->module~mod_structures module~mod_neighborlist mod_neighborlist module~mod_feature_map_neighborlist->module~mod_neighborlist module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_structures module~mod_feature_map_scaling_all_chunks->module~mod_dataloader_file module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_feature_calculator_statistics module~mod_feature_map_scaling_all_chunks->module~mod_global_feature_calculator module~mod_prediction_statistics mod_prediction_statistics module~mod_feature_map_scaling_all_chunks->module~mod_prediction_statistics module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator 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_generic_interface mod_generic_interface module~mod_generic_interface->module~mod_structures module~mod_generic_interface->module~mod_feature_map_neighborlist module~mod_predict_single_structure mod_predict_single_structure module~mod_generic_interface->module~mod_predict_single_structure module~mod_runner_interface mod_runner_interface module~mod_generic_interface->module~mod_runner_interface module~mod_global_feature_calculator->module~mod_structures module~mod_global_feature_calculator->module~mod_training_charge_equilibration module~mod_global_features_helper mod_global_features_helper module~mod_global_features_helper->module~mod_structures module~mod_global_features_helper->module~mod_feature_calculator module~mod_global_features_helper->module~mod_global_feature_calculator module~mod_initialize mod_initialize module~mod_initialize->module~mod_direct_charge_equilibration module~mod_initialize->module~mod_ewald_summation module~mod_initialize->module~mod_pppm module~mod_initialize->module~mod_abstract_charge_equilibration module~mod_initialize->module~mod_abstract_electrostatics module~mod_initialize->module~mod_ee4g_feature_calculator module~mod_initialize->module~mod_feature_calculator module~mod_iterative_charge_equilibration_sqnm mod_iterative_charge_equilibration_sqnm module~mod_initialize->module~mod_iterative_charge_equilibration_sqnm module~mod_initialize->module~mod_pw module~mod_initialize->module~mod_qeq_feature_calculator module~mod_two_body mod_two_body module~mod_initialize->module~mod_two_body module~mod_initialize->module~mod_element module~mod_hirshfeld_vdw mod_hirshfeld_vdw module~mod_initialize->module~mod_hirshfeld_vdw module~mod_optimizers mod_optimizers module~mod_initialize->module~mod_optimizers module~mod_initialize->module~mod_pair_electrostatics module~mod_hdnn mod_hdnn module~mod_initialize->module~mod_hdnn module~mod_iterative_charge_equilibration_cg mod_iterative_charge_equilibration_cg module~mod_initialize->module~mod_iterative_charge_equilibration_cg module~mod_inputdata mod_inputdata module~mod_inputdata->module~mod_structures module~mod_inputdata->module~mod_structures_helper module~mod_inputdata->module~mod_abstract_structure_data_file module~mod_inputdata->module~mod_neighbor_grid module~mod_iterative_charge_equilibration_sqnm->module~sqnm module~mod_abstract_iterative_charge_equilibration mod_abstract_iterative_charge_equilibration module~mod_iterative_charge_equilibration_sqnm->module~mod_abstract_iterative_charge_equilibration module~mod_kalman_filter mod_kalman_filter module~mod_kalman_filter->module~mod_abstract_kalman_filter module~mod_kalman_filter_std mod_kalman_filter_std module~mod_kalman_filter_std->module~mod_abstract_kalman_filter module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_structures module~mod_lammps_interface->module~mod_feature_map_neighborlist module~mod_lammps_interface->module~mod_runner_interface module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_layers mod_layers module~mod_layers->module~mod_dense_layer module~mod_layers->module~mod_dense_layer_with_single_activations module~mod_memory_estimation->module~mod_structures module~mod_memory_estimation->module~mod_feature_calculator module~mod_memory_estimation->module~mod_feature_map_neighborlist module~mod_neighbor_grid->module~mod_neighborlist_helper module~mod_neighbor_grid->module~mod_structures_helper module~mod_neighborlist->module~mod_neighborlist_helper module~mod_neighborlist->module~mod_structures module~mod_neighborlist->module~mod_neighbor_grid 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_training_charge_equilibration module~mod_output_files_and_cost_4g_charges->module~mod_dataloader_file module~mod_output_files_and_cost_4g_charges->module~mod_feature_calculator 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_cost_calculator mod_cost_calculator module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_overlap_matrix->module~mod_structures module~mod_overlap_matrix->module~mod_feature_map module~mod_overlap_matrix->module~mod_feature_map_neighborlist module~mod_post_processing_2g_single_structure mod_post_processing_2g_single_structure module~mod_post_processing_2g_single_structure->module~mod_structures module~mod_post_processing_2g_single_structure->module~mod_feature_calculator module~mod_post_processing_2g_single_structure->module~mod_feature_map_neighborlist 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_structures module~mod_post_processing_3g_single_structure->module~mod_abstract_electrostatics module~mod_post_processing_3g_single_structure->module~mod_calc_screening module~mod_post_processing_3g_single_structure->module~mod_feature_calculator module~mod_post_processing_3g_single_structure->module~mod_feature_map_neighborlist module~mod_evaluate_electrostatics_3g_single_structure mod_evaluate_electrostatics_3g_single_structure 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_structures module~mod_post_processing_4g_single_structure->module~mod_abstract_charge_equilibration module~mod_post_processing_4g_single_structure->module~mod_calc_screening module~mod_post_processing_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_4g_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_feature_calculator module~mod_post_processing_4g_single_structure->module~mod_feature_map_neighborlist module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_structures module~mod_post_processing_wrapper_single_structure->module~mod_abstract_charge_equilibration module~mod_post_processing_wrapper_single_structure->module~mod_abstract_electrostatics module~mod_post_processing_wrapper_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_feature_calculator module~mod_post_processing_wrapper_single_structure->module~mod_feature_map_neighborlist 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_store_atomic_property_single_structure mod_store_atomic_property_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_store_atomic_property_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_two_body module~mod_calc_atomic_properties mod_calc_atomic_properties module~mod_post_processing_wrapper_single_structure->module~mod_calc_atomic_properties module~mod_post_processing_wrapper_single_structure->module~mod_hirshfeld_vdw module~mod_post_processing_vdw_hirshfeld_single_structure mod_post_processing_vdw_hirshfeld_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_vdw_hirshfeld_single_structure module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_precalc_coulomb_matrix_all_chunks->module~mod_training_charge_equilibration module~mod_precalc_coulomb_matrix_all_chunks->module~mod_dataloader_file module~mod_precalc_coulomb_matrix_all_chunks->module~mod_feature_calculator module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks module~mod_precompute_features_all_chunks->module~mod_structures module~mod_precompute_features_all_chunks->module~mod_dataloader_file module~mod_precompute_features_all_chunks->module~mod_feature_calculator module~mod_precompute_features_all_chunks->module~mod_feature_calculator_statistics module~mod_featuredata mod_featuredata module~mod_precompute_features_all_chunks->module~mod_featuredata module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structures module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_training_charge_equilibration module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_feature_calculator module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_feature_map_neighborlist 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_structures module~mod_predict_4g_no_force_trick_single_structure->module~mod_feature_calculator module~mod_predict_4g_no_force_trick_single_structure->module~mod_feature_map_neighborlist module~mod_predict_4g_no_force_trick_single_structure->module~mod_global_feature_calculator 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_no_force_trick_single_structure->module~mod_qeq_feature_calculator module~mod_predict_4g_no_force_trick_single_structure->module~mod_calc_atomic_properties module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structures 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_feature_map_neighborlist module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_global_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_structures 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_feature_map_neighborlist module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_global_feature_calculator module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_post_processing_2g_single_structure module~mod_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_structures module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_feature_calculator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_feature_map_neighborlist module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_predict_multiple_structures->module~mod_structures module~mod_predict_multiple_structures->module~mod_abstract_charge_equilibration module~mod_predict_multiple_structures->module~mod_abstract_electrostatics module~mod_predict_multiple_structures->module~mod_ee4g_feature_calculator module~mod_predict_multiple_structures->module~mod_feature_calculator module~mod_predict_multiple_structures->module~mod_feature_map_neighborlist module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_multiple_structures->module~mod_store_atomic_property_single_structure module~mod_predict_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_multiple_structures->module~mod_two_body module~mod_predict_multiple_structures->module~mod_hirshfeld_vdw module~mod_predict_multiple_structures->module~mod_pair_electrostatics module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structures module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_feature_map_neighborlist 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_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_qeq_feature_calculator_single_structure->module~mod_structures module~mod_predict_qeq_feature_calculator_single_structure->module~mod_training_charge_equilibration module~mod_predict_qeq_feature_calculator_single_structure->module~mod_calc_screening module~mod_predict_qeq_feature_calculator_single_structure->module~mod_feature_calculator module~mod_predict_qeq_feature_calculator_single_structure->module~mod_feature_map_neighborlist module~mod_predict_qeq_feature_calculator_single_structure->module~mod_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_single_structure->module~mod_chain_features module~mod_predict_single_structure->module~mod_structures module~mod_predict_single_structure->module~mod_abstract_charge_equilibration module~mod_predict_single_structure->module~mod_abstract_electrostatics module~mod_predict_single_structure->module~mod_ee4g_feature_calculator module~mod_predict_single_structure->module~mod_feature_calculator module~mod_predict_single_structure->module~mod_feature_map_neighborlist module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_predict_single_structure->module~mod_two_body module~mod_predict_single_structure->module~mod_calc_atomic_properties module~mod_predict_single_structure->module~mod_hirshfeld_vdw module~mod_prediction_statistics->module~mod_structures module~mod_prediction_statistics->module~mod_feature_calculator module~mod_prediction_statistics->module~mod_feature_map_neighborlist module~mod_prediction_statistics->module~mod_calc_atomic_properties module~mod_pw->module~mod_fft_potential module~mod_pw->module~mod_abstract_electrostatics module~mod_qeq_feature_calculator->module~mod_structures module~mod_qeq_feature_calculator->module~mod_training_charge_equilibration module~mod_qeq_feature_calculator->module~mod_global_feature_calculator module~mod_radial_symmetry_function_1->module~mod_structures module~mod_radial_symmetry_function_1->module~mod_abstract_radial_symmetry_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_2->module~mod_structures 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_feature_map module~mod_radial_symmetry_function_2->module~mod_feature_map_neighborlist module~mod_runner_interface->module~mod_structures module~mod_runner_interface->module~mod_structures_helper module~mod_runner_interface->module~mod_abstract_charge_equilibration module~mod_runner_interface->module~mod_abstract_electrostatics module~mod_runner_interface->module~mod_ee4g_feature_calculator module~mod_runner_interface->module~mod_feature_calculator module~mod_runner_interface->module~mod_feature_map_neighborlist module~mod_runner_interface->module~mod_two_body module~mod_runner_interface->module~mod_hirshfeld_vdw module~mod_runner_interface_bindings->module~mod_structures_helper module~mod_runner_interface_bindings->module~mod_calc_screening module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure module~mod_runner_interface_bindings->module~mod_feature_calculator 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_qeq_feature_calculator module~mod_runner_interface_bindings->module~mod_runner_interface module~mod_runner_interface_bindings->module~mod_two_body module~mod_runner_interface_bindings->module~mod_calc_atomic_properties module~mod_enforce_reading mod_enforce_reading module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_evaluate_electrostatics_3g_single_structure module~mod_runner_interface_bindings->module~mod_hirshfeld_vdw module~mod_runner_interface_bindings->module~mod_post_processing_vdw_hirshfeld_single_structure module~mod_store_atomic_property_single_structure->module~mod_structures module~mod_structure_batch_iterator->module~mod_structures module~mod_structure_batch_iterator->module~mod_feature_calculator module~mod_structure_batch_iterator->module~mod_feature_map_neighborlist module~mod_structure_batch_iterator->module~mod_global_feature_calculator module~mod_structure_batch_iterator->module~mod_global_features_helper module~mod_structure_batch_iterator->module~mod_calc_atomic_properties 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_training_charge_equilibration module~mod_train_4g_atomic_charges_structure_batch->module~mod_dataloader_file module~mod_train_4g_atomic_charges_structure_batch->module~mod_feature_calculator module~mod_train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms module~mod_train_atomic_property_multiple_atoms->module~mod_structures module~mod_train_atomic_property_multiple_atoms->module~mod_feature_calculator module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_structures module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_forces_multiple_structures->module~mod_structures module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_structures module~mod_train_loop_4g_charges->module~mod_training_charge_equilibration module~mod_train_loop_4g_charges->module~mod_dataloader_file module~mod_train_loop_4g_charges->module~mod_feature_calculator 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_structures module~mod_train_loop_atomic_property->module~mod_dataloader_file module~mod_train_loop_atomic_property->module~mod_feature_calculator module~mod_train_loop_atomic_property->module~mod_initialize 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_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_structures module~mod_train_loop_short_range->module~mod_abstract_charge_equilibration module~mod_train_loop_short_range->module~mod_abstract_electrostatics module~mod_train_loop_short_range->module~mod_dataloader_file module~mod_train_loop_short_range->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range->module~mod_feature_calculator module~mod_train_loop_short_range->module~mod_global_feature_calculator 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_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_qeq_feature_calculator module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_dataset_statistics module~mod_train_mode->module~mod_training_charge_equilibration module~mod_train_mode->module~mod_abstract_charge_equilibration module~mod_train_mode->module~mod_abstract_electrostatics module~mod_train_mode->module~mod_dataloader_file module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks module~mod_train_mode->module~mod_ee4g_feature_calculator module~mod_train_mode->module~mod_feature_calculator 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_global_feature_calculator module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures 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_qeq_feature_calculator 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_train_mode->module~mod_precalc_nl_deriv_features_single_chunk module~mod_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_two_body->module~mod_structures module~mod_two_body->module~mod_dataloader_file module~mod_two_body->module~mod_feature_map_neighborlist module~mod_abstract_iterative_charge_equilibration->module~mod_abstract_charge_equilibration module~mod_abstract_iterative_charge_equilibration->module~mod_abstract_electrostatics module~mod_abstract_iterative_charge_equilibration->module~mod_pair_electrostatics module~mod_calc_atomic_properties->module~mod_feature_calculator module~mod_calc_atomic_properties->module~mod_feature_map_neighborlist module~mod_chain_features->module~mod_feature_calculator module~mod_chain_features->module~mod_feature_map_neighborlist module~mod_cost_calculator->module~mod_dataloader_file module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_electric_field_prefactor->module~mod_feature_map_neighborlist module~mod_element->module~mod_angular_symmetry_function_3 module~mod_element->module~mod_angular_symmetry_function_9 module~mod_element->module~mod_feature_map module~mod_element->module~mod_radial_symmetry_function_2 module~mod_enforce_reading->module~mod_feature_calculator module~mod_enforce_reading->module~mod_global_feature_calculator module~mod_evaluate_electrostatics_3g_single_structure->module~mod_abstract_electrostatics module~mod_evaluate_electrostatics_3g_single_structure->module~mod_feature_calculator module~mod_evaluate_electrostatics_3g_single_structure->module~mod_feature_map_neighborlist module~mod_evaluate_electrostatics_3g_single_structure->module~mod_chain_features module~mod_feature_calc_interface mod_feature_calc_interface module~mod_feature_calc_interface->module~mod_generic_interface module~mod_feature_calc_interface->module~mod_runner_interface module~mod_featuredata->module~mod_feature_calculator module~mod_featuredata->module~mod_element module~mod_hirshfeld_vdw->module~mod_feature_map_neighborlist module~mod_neural_network mod_neural_network module~mod_neural_network->module~mod_layers module~mod_optimizers->module~mod_kalman_filter module~mod_optimizers->module~mod_kalman_filter_std module~mod_output_files_and_cost->module~mod_abstract_charge_equilibration module~mod_output_files_and_cost->module~mod_abstract_electrostatics module~mod_output_files_and_cost->module~mod_dataloader_file module~mod_output_files_and_cost->module~mod_ee4g_feature_calculator module~mod_output_files_and_cost->module~mod_feature_calculator module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_dataloader_file module~mod_output_files_and_cost_4g_short_range->module~mod_feature_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_global_feature_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_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_pair_electrostatics->module~mod_abstract_electrostatics module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_feature_calculator module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_feature_map_neighborlist module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_chain_features module~mod_post_processing_vdw_hirshfeld_single_structure->module~mod_hirshfeld_vdw module~mod_precalc_nl_deriv_features_single_chunk->module~mod_dataloader_file module~mod_precalc_nl_deriv_features_single_chunk->module~mod_feature_calculator module~mod_precalc_nl_deriv_features_single_chunk->module~mod_memory_estimation module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_dataloader_file module~mod_precompute_global_features_all_chunks->module~mod_ee4g_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_feature_calculator_statistics 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_precompute_global_features_all_chunks->module~mod_qeq_feature_calculator module~mod_predict_all_chunks->module~mod_abstract_charge_equilibration module~mod_predict_all_chunks->module~mod_abstract_electrostatics module~mod_predict_all_chunks->module~mod_dataloader_file module~mod_predict_all_chunks->module~mod_feature_calculator module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_all_chunks->module~mod_two_body module~mod_predict_all_chunks->module~mod_hirshfeld_vdw module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_abstract_charge_equilibration module~mod_predict_mode->module~mod_abstract_electrostatics module~mod_predict_mode->module~mod_dataloader_file module~mod_predict_mode->module~mod_ee4g_feature_calculator module~mod_predict_mode->module~mod_feature_calculator 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_qeq_feature_calculator module~mod_predict_mode->module~mod_two_body module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_mode->module~mod_hirshfeld_vdw module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_scalingdata->module~mod_feature_calculator module~mod_scalingdata->module~mod_element module~mod_spin_prefactor->module~mod_feature_map_neighborlist module~mod_write_outfiles->module~mod_initialize 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 program~runner RuNNer program~runner->module~mod_abstract_charge_equilibration program~runner->module~mod_abstract_electrostatics program~runner->module~mod_calculate_coulomb_matrix program~runner->module~mod_dataloader_file program~runner->module~mod_ee4g_feature_calculator program~runner->module~mod_feature_calculator program~runner->module~mod_initialize program~runner->module~mod_inputdata program~runner->module~mod_precompute_features_all_chunks program~runner->module~mod_qeq_feature_calculator program~runner->module~mod_train_mode program~runner->module~mod_two_body program~runner->module~mod_hirshfeld_vdw program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode module~mod_hdnn->module~mod_neural_network module~mod_iterative_charge_equilibration_cg->module~mod_abstract_iterative_charge_equilibration module~mod_write_outfiles_training->module~mod_write_outfiles

Procedures Summary

Name Type Description
cross_product Function Calculate the cross product c of two vectors a and b.
dot Function Compute the dot product of two vectors.
inv Function Returns the inverse of a general matrix A if exploit_symmat Bunch Kaufman decompoistiton is...
matrix_times_vec Function Compute the matrix-vector product \(y = alpha * A * x + beta * y\) using BLAS where A has...
symmetric_matrix_times_vec Function Compute a matrix vector product for a symmetry matrix A \(y = \alpha * A * x + \beta * y\) using BLAS.
det_3d Function Computes determinant of 3x3 matrix.
inv_3d Function Inverst 3x3 Matrix
solve_equation_system Subroutine Solve a system of linear equations.
solve_symmetric_equation_system Subroutine Solve a system of linear equations.
solve_least_squares Subroutine Least-squares solution (dgels overrides a and b).
inv_in_place Subroutine Inverse a general or symmetric matrix A if exploit_symmat Bunch Kaufman decompoistiton is used...
vec_plus_matrix_times_vec Subroutine Compute the matrix-vector product \(y = alpha * A * x + beta * y\) using BLAS where A has...
vec_plus_matrix_transpose_times_vec Subroutine Compute the matrix-vector product \(y = alpha * A**T * x + beta * y\) using BLAS where A has...
matrix_plus_vec_times_vec_transpose Subroutine Add a vector product to a matrix \(A = A + \alpha * x * y**T\) using BLAS where A has dimensions (m, n).
matrix_plus_matrix_times_matrix Subroutine Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has...
matrix_plus_matrix_transpose_times_matrix Subroutine Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has...
matrix_plus_matrix_times_matrix_transpose_k_equal_1_special Subroutine Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has...
matrix_plus_matrix_times_matrix_transpose Subroutine
dgemm_nt_m_n_1_manual Subroutine Custom implementation of DGEMM for matrices with k = 1 with efficient OpenMP parallelization. ...
symmetric_matrix_plus_vec_times_vec_transpose Subroutine Add a vector product to a matrix \(A = A + \alpha * x * x**T\) using BLAS where A has...
symmetric_matrix_times_matrix_plus_matrix_upper_triangle Subroutine Compute a matrix matrix product for a symmetry matrix A \(C = \alpha * A * B + \beta *C\) using...
symmetric_matrix_times_matrix_plus_matrix Subroutine Compute a matrix matrix product for a symmetry matrix A \(C = \alpha * A * B + \beta *C\) using...
matrix_transpose_times_matrix_plus_matrix Subroutine Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has...
eigenvalues_symmetric_matrix Subroutine diagonalize a symmetric matrix A, only its upper triangle needs to be defined. Here we only...
eigenvectors_symmetric_matrix Subroutine diagonalize a symmetric matrix A, only its upper triangle needs to be defined. Here we compute...
diagonalize_large_symmetric_matrix Subroutine aiagonalize a large symmetric matrix A, only its upper triangle needs to be defined. This...
cp_upper_triangle Subroutine
cp_lower_triangle Subroutine
dsymm_scalar_parallel Subroutine Specialized DSYMM for edge cases (m=1 or n=1)
dsymv_parallel_mv Subroutine Helper routine for symmetric matrix-vector multiplication (column vector)
dsymv_parallel_1d Subroutine Helper routine for 1D symmetric matrix-vector multiplication (row vector)
dsymm_column_parallel Subroutine Column-group parallel DSYMM for narrow matrices
dsymm_blocked Subroutine
extract_block_general Subroutine
insert_block_general Subroutine

Interface Details

interface ddot


interface dlacpy


interface dger


interface dgels


interface dgemv


interface dgemm


interface dcopy


interface dgetrf


interface dgetri


interface dsymv


interface dsysv


interface dsyr


interface dgesv


interface dsymm


interface dsyev


interface dsyevr


interface dsytrf


interface dsytri


Procedure Details

function cross_product

function cross_product( &
    a, &
    b &
)

Calculate the cross product c of two vectors a and b.

Arguments

  • a : real(DP) (dim: (3)) [in]– First vector.
  • b : real(DP) (dim: (3)) [in]– Second input vector.

Called By

proc~~cross_product~~CalledByGraph proc~cross_product mod_linalg::cross_product proc~count_ghost_cells_fractional mod_neighborlist_helper::count_ghost_cells_fractional proc~count_ghost_cells_fractional->proc~cross_product proc~calc_pw_forces mod_fft_potential::PWPotCalculator%calc_pw_forces proc~calc_pw_forces->proc~count_ghost_cells_fractional proc~count_ghost_cells mod_neighborlist_helper::count_ghost_cells proc~count_ghost_cells->proc~count_ghost_cells_fractional proc~rho_to_grid mod_fft_potential::PWPotCalculator%rho_to_grid proc~rho_to_grid->proc~count_ghost_cells_fractional proc~rho_to_grid_grid mod_fft_potential::PWPotCalculator%rho_to_grid_grid proc~rho_to_grid_grid->proc~count_ghost_cells_fractional proc~rho_to_grid_grid->proc~rho_to_grid proc~calc_lambda_q_derivatives mod_pw::PwCalculator%calc_lambda_q_derivatives proc~calc_lambda_q_derivatives->proc~calc_pw_forces proc~calc_potential mod_fft_potential::PWPotCalculator%calc_potential proc~calc_lambda_q_derivatives->proc~calc_potential proc~calc_potential->proc~rho_to_grid_grid proc~calc_potential_and_get_energy_and_forces mod_fft_potential::PWPotCalculator%calc_potential_and_get_energy_and_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_pw_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_potential proc~count_neighbors_pairwise mod_neighborlist::count_neighbors_pairwise proc~count_neighbors_pairwise->proc~count_ghost_cells proc~evaluate_pw_electrostatics_calculator mod_pw::PwCalculator%evaluate_pw_electrostatics_calculator proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_forces proc~evaluate_pw_electrostatics_calculator->proc~calc_lambda_q_derivatives proc~evaluate_pw_electrostatics_calculator->proc~calc_potential proc~ewald_a_recip mod_ewald_summation::ewald_a_recip proc~ewald_a_recip->proc~count_ghost_cells proc~ewald_da_dlat_times_q_recip mod_ewald_summation::ewald_da_dlat_times_q_recip proc~ewald_da_dlat_times_q_recip->proc~count_ghost_cells proc~ewald_da_dpos_recip mod_ewald_summation::ewald_da_dpos_recip proc~ewald_da_dpos_recip->proc~count_ghost_cells proc~ewald_da_dpos_times_q_recip mod_ewald_summation::ewald_da_dpos_times_q_recip proc~ewald_da_dpos_times_q_recip->proc~count_ghost_cells proc~ewald_energy_force_stress_recip mod_ewald_summation::ewald_energy_force_stress_recip proc~ewald_energy_force_stress_recip->proc~count_ghost_cells proc~find_neighbors_pairwise mod_neighborlist::find_neighbors_pairwise proc~find_neighbors_pairwise->proc~count_ghost_cells proc~prepare_grid mod_neighbor_grid::NeighborGrid%prepare_grid proc~prepare_grid->proc~count_ghost_cells proc~constructor_neighbor_grid mod_neighbor_grid::constructor_neighbor_grid proc~constructor_neighbor_grid->proc~prepare_grid proc~count_neighbors_single_structure mod_neighborlist::NeighborList%count_neighbors_single_structure proc~count_neighbors_single_structure->proc~count_neighbors_pairwise proc~ewald_a mod_ewald_summation::ewald_a proc~ewald_a->proc~ewald_a_recip proc~ewald_da_dlat_times_q mod_ewald_summation::ewald_da_dlat_times_q proc~ewald_da_dlat_times_q->proc~ewald_da_dlat_times_q_recip proc~ewald_da_dpos mod_ewald_summation::ewald_da_dpos proc~ewald_da_dpos->proc~ewald_da_dpos_recip proc~ewald_da_dpos_times_q mod_ewald_summation::ewald_da_dpos_times_q proc~ewald_da_dpos_times_q->proc~ewald_da_dpos_times_q_recip proc~ewald_energy_force_stress mod_ewald_summation::ewald_energy_force_stress proc~ewald_energy_force_stress->proc~ewald_energy_force_stress_recip proc~generate_neighborlist_single_structure mod_neighborlist::NeighborList%generate_neighborlist_single_structure proc~generate_neighborlist_single_structure->proc~find_neighbors_pairwise interface~neighborgrid mod_neighbor_grid::NeighborGrid interface~neighborgrid->proc~constructor_neighbor_grid none~count_neighbors mod_neighborlist::NeighborList%count_neighbors none~count_neighbors->proc~count_neighbors_single_structure proc~count_neighbors_structure_list mod_neighborlist::NeighborList%count_neighbors_structure_list none~count_neighbors->proc~count_neighbors_structure_list none~generate_neighborlist mod_neighborlist::NeighborList%generate_neighborlist none~generate_neighborlist->proc~generate_neighborlist_single_structure proc~generate_neighborlist_structure_list mod_neighborlist::NeighborList%generate_neighborlist_structure_list none~generate_neighborlist->proc~generate_neighborlist_structure_list proc~count_neighbors_structure_list->proc~count_neighbors_single_structure proc~evaluate_ewald_calculator mod_ewald_summation::EwaldCalculator%evaluate_ewald_calculator proc~evaluate_ewald_calculator->proc~ewald_a proc~evaluate_ewald_calculator->proc~ewald_da_dlat_times_q proc~evaluate_ewald_calculator->proc~ewald_da_dpos_times_q proc~evaluate_ewald_calculator->proc~ewald_energy_force_stress proc~generate_neighborlist_structure_list->proc~generate_neighborlist_single_structure proc~initialize_from_arrays_calc mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_calc proc~initialize_from_arrays_calc->proc~ewald_a proc~initialize_from_arrays_calc->proc~ewald_da_dpos proc~allocate_and_generate_single_structure mod_neighborlist::NeighborList%allocate_and_generate_single_structure proc~allocate_and_generate_single_structure->none~count_neighbors proc~allocate_and_generate_single_structure->none~generate_neighborlist proc~allocate_and_generate_structure_list mod_neighborlist::NeighborList%allocate_and_generate_structure_list proc~allocate_and_generate_structure_list->none~count_neighbors proc~allocate_and_generate_structure_list->none~generate_neighborlist proc~initialize_from_arrays mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays proc~initialize_from_arrays->proc~initialize_from_arrays_calc none~allocate_and_generate_adaptive mod_feature_map_neighborlist::FeatureMapNeighborList%allocate_and_generate_adaptive none~allocate_and_generate_adaptive->proc~allocate_and_generate_single_structure none~allocate_and_generate_adaptive->proc~allocate_and_generate_structure_list none~allocate_and_generate_adaptive~2 mod_neighborlist::NeighborList%allocate_and_generate_adaptive none~allocate_and_generate_adaptive~2->proc~allocate_and_generate_single_structure none~allocate_and_generate_adaptive~2->proc~allocate_and_generate_structure_list none~initialize~3 mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize none~initialize~3->proc~initialize_from_arrays proc~initialize_from_structure mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_structure none~initialize~3->proc~initialize_from_structure proc~initialize_from_structure->proc~initialize_from_arrays proc~constructor_single_structure mod_feature_map_neighborlist::constructor_single_structure proc~constructor_single_structure->none~allocate_and_generate_adaptive proc~constructor_single_structure~2 mod_neighborlist::constructor_single_structure proc~constructor_single_structure~2->none~allocate_and_generate_adaptive~2 proc~constructor_structure_list mod_feature_map_neighborlist::constructor_structure_list proc~constructor_structure_list->none~allocate_and_generate_adaptive proc~constructor_structure_list~2 mod_neighborlist::constructor_structure_list proc~constructor_structure_list~2->none~allocate_and_generate_adaptive~2 proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->none~initialize~3 proc~precompute_coulomb_matrix_all_chunks mod_calculate_coulomb_matrix::precompute_coulomb_matrix_all_chunks proc~precompute_coulomb_matrix_all_chunks->none~initialize~3 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->none~initialize~3 proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->none~initialize~3 interface~featuremapneighborlist mod_feature_map_neighborlist::FeatureMapNeighborList interface~featuremapneighborlist->proc~constructor_single_structure interface~featuremapneighborlist->proc~constructor_structure_list interface~neighborlist mod_neighborlist::NeighborList interface~neighborlist->proc~constructor_single_structure~2 interface~neighborlist->proc~constructor_structure_list~2 proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_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~predict_4g_charges_training_qeq_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges program~runner RuNNer program~runner->proc~precompute_coulomb_matrix_all_chunks 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~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure proc~train_mode->proc~train_loop_4g_charges proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range 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~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures

function dot

function dot( &
    d, &
    x, &
    y &
)

Compute the dot product of two vectors.

Arguments

  • d : integer [in]– Dimension of `x` and `y`.
  • x : real(DP) (dim: (d)) [in]– Vectors to be multiplied.
  • y : real(DP) (dim: (d)) [in]– Vectors to be multiplied.

Called By

proc~~dot~~CalledByGraph proc~dot mod_linalg::dot proc~compute_charge mod_training_charge_equilibration::TrainingChargeEquilibrator%compute_charge proc~compute_charge->proc~dot proc~dqi_drj mod_training_charge_equilibration::TrainingChargeEquilibrator%dqi_drj proc~dqi_drj->proc~dot proc~multiply mod_cross_matrix::CrossMatrix%multiply proc~dqi_drj->proc~multiply proc~get_electric_force mod_training_charge_equilibration::TrainingChargeEquilibrator%get_electric_force proc~get_electric_force->proc~dot proc~get_electric_force->proc~multiply proc~multiply->proc~dot proc~multiply_element mod_cross_matrix::CrossMatrix%multiply_element proc~multiply_element->proc~dot proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~dot proc~calc_electrostatic_contributions_single_structure mod_predict_qeq_feature_calculator_single_structure::calc_electrostatic_contributions_single_structure proc~calc_electrostatic_contributions_single_structure->proc~get_electric_force proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~dqi_drj proc~calc_electrostatic_contributions_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::calc_electrostatic_contributions_multiple_structures proc~calc_electrostatic_contributions_multiple_structures->proc~calc_electrostatic_contributions_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_feature_calculator proc~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~calc_electrostatic_contributions_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure 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~predict_qeq_feature_calculator_single_structure 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_qeq_feature_calculator_single_structure 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~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_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

function inv

function inv( &
    a, &
    exploit_symmat &
)

Returns the inverse of a general matrix A if exploit_symmat Bunch Kaufman decompoistiton is used in combination with inversion, which is faster than LU decomposition with subsequent inversion. However, Bunch-Kaufmann decomposition can only be used for symmetric matices! author: Moritz Gubler

Arguments

  • a : real(DP) (dim: (:,:)) [in]
  • exploit_symmat : logical [in]

Called By

proc~~inv~~CalledByGraph proc~inv mod_linalg::inv proc~initialize_from_arrays_calc mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_calc proc~initialize_from_arrays_calc->proc~inv proc~initialize_from_arrays_file mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_file proc~initialize_from_arrays_file->proc~inv proc~update_inverse mod_training_charge_equilibration::TrainingChargeEquilibrator%update_inverse proc~update_inverse->proc~inv proc~initialize_from_arrays mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays proc~initialize_from_arrays->proc~initialize_from_arrays_calc proc~initialize_from_arrays->proc~initialize_from_arrays_file 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~update_inverse none~initialize~3 mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize proc~predict_4g_charges_training_qeq_multiple_structures->none~initialize~3 proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->proc~update_inverse proc~train_4g_atomic_charges_structure_batch->none~initialize~3 none~initialize~3->proc~initialize_from_arrays proc~initialize_from_structure mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_structure none~initialize~3->proc~initialize_from_structure proc~initialize_from_structure->proc~initialize_from_arrays 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~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->none~initialize~3 proc~precompute_coulomb_matrix_all_chunks mod_calculate_coulomb_matrix::precompute_coulomb_matrix_all_chunks proc~precompute_coulomb_matrix_all_chunks->none~initialize~3 proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_feature_calculator program~runner RuNNer program~runner->proc~precompute_coulomb_matrix_all_chunks 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~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure 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~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures

function matrix_times_vec

function matrix_times_vec( &
    n, &
    mat, &
    x &
)

Compute the matrix-vector product \(y = alpha * A * x + beta * y\) using BLAS where A has dimensions (m, n).

Arguments

  • n : integer [in]– Dimensions of matrix `A`.
  • mat : real(DP) (dim: (n,n)) [in]– The matrix to be multiplied.
  • x : real(DP) (dim: (n)) [in]– The vector to be multiplied.

function symmetric_matrix_times_vec

function symmetric_matrix_times_vec( &
    d, &
    mat, &
    x &
)

Compute a matrix vector product for a symmetry matrix A \(y = \alpha * A * x + \beta * y\) using BLAS.

Arguments

  • d : integer [in]– Dimension of matrix `A`.
  • mat : real(DP) (dim: (d,d)) [in]– Matrix to be multiplied.
  • x : real(DP) (dim: (d)) [in]– Vector to be multiplied.

Called By

proc~~symmetric_matrix_times_vec~~CalledByGraph proc~symmetric_matrix_times_vec mod_linalg::symmetric_matrix_times_vec proc~compute_charges mod_training_charge_equilibration::TrainingChargeEquilibrator%compute_charges proc~compute_charges->proc~symmetric_matrix_times_vec proc~get_de_dcharges mod_training_charge_equilibration::TrainingChargeEquilibrator%get_de_dcharges proc~get_de_dcharges->proc~symmetric_matrix_times_vec proc~get_electric_energy mod_training_charge_equilibration::TrainingChargeEquilibrator%get_electric_energy proc~get_electric_energy->proc~symmetric_matrix_times_vec proc~calc_electrostatic_contributions_single_structure mod_predict_qeq_feature_calculator_single_structure::calc_electrostatic_contributions_single_structure proc~calc_electrostatic_contributions_single_structure->proc~get_de_dcharges proc~calc_electrostatic_contributions_single_structure->proc~get_electric_energy proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~compute_charges 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~compute_charges proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->proc~compute_charges proc~calc_electrostatic_contributions_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::calc_electrostatic_contributions_multiple_structures proc~calc_electrostatic_contributions_multiple_structures->proc~calc_electrostatic_contributions_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_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~predict_4g_charges_training_qeq_multiple_structures proc~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~calc_electrostatic_contributions_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges 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~predict_qeq_feature_calculator_single_structure 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_qeq_feature_calculator_single_structure proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range 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~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures program~runner RuNNer program~runner->proc~train_mode program~runner->proc~precompute_global_features_all_chunks

function det_3d

function det_3d( &
    mat &
)

Computes determinant of 3x3 matrix.

Arguments

  • mat : real(DP) (dim: (3,3)) [in]

Called By

proc~~det_3d~~CalledByGraph proc~det_3d mod_linalg::det_3d proc~calc_pw_energy mod_fft_potential::PWPotCalculator%calc_pw_energy proc~calc_pw_energy->proc~det_3d proc~calc_real_space_pair mod_pppm::PppmCalculator%calc_real_space_pair proc~calc_real_space_pair->proc~det_3d proc~calculate_volume mod_structures_helper::calculate_volume proc~calculate_volume->proc~det_3d proc~evaluate_ewald_calculator mod_ewald_summation::EwaldCalculator%evaluate_ewald_calculator proc~evaluate_ewald_calculator->proc~det_3d proc~get_optimal_eta mod_ewald_summation::get_optimal_eta proc~evaluate_ewald_calculator->proc~get_optimal_eta proc~get_optimal_eta_matrix mod_ewald_summation::get_optimal_eta_matrix proc~evaluate_ewald_calculator->proc~get_optimal_eta_matrix proc~ewald_a mod_ewald_summation::ewald_a proc~evaluate_ewald_calculator->proc~ewald_a proc~ewald_da_dlat_times_q mod_ewald_summation::ewald_da_dlat_times_q proc~evaluate_ewald_calculator->proc~ewald_da_dlat_times_q proc~ewald_da_dpos_times_q mod_ewald_summation::ewald_da_dpos_times_q proc~evaluate_ewald_calculator->proc~ewald_da_dpos_times_q proc~ewald_energy_force_stress mod_ewald_summation::ewald_energy_force_stress proc~evaluate_ewald_calculator->proc~ewald_energy_force_stress proc~ewald_a_recip mod_ewald_summation::ewald_a_recip proc~ewald_a_recip->proc~det_3d proc~inv_3d mod_linalg::inv_3d proc~ewald_a_recip->proc~inv_3d proc~ewald_da_dlat_times_q_recip mod_ewald_summation::ewald_da_dlat_times_q_recip proc~ewald_da_dlat_times_q_recip->proc~det_3d proc~ewald_da_dlat_times_q_recip->proc~inv_3d proc~ewald_da_dpos_recip mod_ewald_summation::ewald_da_dpos_recip proc~ewald_da_dpos_recip->proc~det_3d proc~ewald_da_dpos_recip->proc~inv_3d proc~ewald_da_dpos_times_q_recip mod_ewald_summation::ewald_da_dpos_times_q_recip proc~ewald_da_dpos_times_q_recip->proc~det_3d proc~ewald_da_dpos_times_q_recip->proc~inv_3d proc~ewald_energy_force_stress_real mod_ewald_summation::ewald_energy_force_stress_real proc~ewald_energy_force_stress_real->proc~det_3d proc~ewald_energy_force_stress_recip mod_ewald_summation::ewald_energy_force_stress_recip proc~ewald_energy_force_stress_recip->proc~det_3d proc~ewald_energy_force_stress_recip->proc~inv_3d proc~get_optimal_eta->proc~det_3d proc~get_optimal_eta_matrix->proc~det_3d proc~get_stress_from_lattice_derivatives mod_structures::Structure%get_stress_from_lattice_derivatives proc~get_stress_from_lattice_derivatives->proc~det_3d proc~inv_3d->proc~det_3d proc~calc_lambda_q_derivatives mod_pw::PwCalculator%calc_lambda_q_derivatives proc~calc_lambda_q_derivatives->proc~inv_3d proc~calc_potential mod_fft_potential::PWPotCalculator%calc_potential proc~calc_lambda_q_derivatives->proc~calc_potential proc~calc_pw_forces mod_fft_potential::PWPotCalculator%calc_pw_forces proc~calc_lambda_q_derivatives->proc~calc_pw_forces proc~calc_potential->proc~inv_3d proc~rho_to_grid_grid mod_fft_potential::PWPotCalculator%rho_to_grid_grid proc~calc_potential->proc~rho_to_grid_grid proc~calc_pw_forces->proc~calculate_volume proc~calc_pw_forces->proc~inv_3d proc~calc_pw_stress mod_fft_potential::PWPotCalculator%calc_pw_stress proc~calc_pw_stress->proc~calculate_volume proc~calc_pw_stress->proc~inv_3d proc~calc_real_space_party mod_pppm::PppmCalculator%calc_real_space_party proc~calc_real_space_party->proc~calc_real_space_pair proc~calc_recip_lattice mod_structures::Structure%calc_recip_lattice proc~calc_recip_lattice->proc~inv_3d proc~calculate_electrostatics_4g_single_structure_part_1 mod_evaluate_4g_single_structure::calculate_electrostatics_4g_single_structure_part_1 proc~calculate_electrostatics_4g_single_structure_part_1->proc~calculate_volume proc~count_structures_and_atoms_inputdata mod_inputdata::InputData%count_structures_and_atoms_inputdata proc~count_structures_and_atoms_inputdata->proc~calculate_volume proc~move_atoms_into_cell mod_structures::Structure%move_atoms_into_cell proc~count_structures_and_atoms_inputdata->proc~move_atoms_into_cell proc~evaluate_pw_electrostatics_calculator mod_pw::PwCalculator%evaluate_pw_electrostatics_calculator proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_energy proc~evaluate_pw_electrostatics_calculator->proc~calc_lambda_q_derivatives proc~evaluate_pw_electrostatics_calculator->proc~calc_potential proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_forces proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_stress proc~ewald_a->proc~ewald_a_recip proc~ewald_da_dlat_times_q->proc~ewald_da_dlat_times_q_recip proc~ewald_da_dlat_times_q_real mod_ewald_summation::ewald_da_dlat_times_q_real proc~ewald_da_dlat_times_q->proc~ewald_da_dlat_times_q_real proc~ewald_da_dlat_times_q_real->proc~inv_3d proc~ewald_da_dpos mod_ewald_summation::ewald_da_dpos proc~ewald_da_dpos->proc~ewald_da_dpos_recip proc~ewald_da_dpos_times_q->proc~ewald_da_dpos_times_q_recip proc~ewald_energy_force_stress->proc~ewald_energy_force_stress_real proc~ewald_energy_force_stress->proc~ewald_energy_force_stress_recip proc~get_volume mod_structures::Structure%get_volume proc~get_volume->proc~calculate_volume proc~initialize_from_arrays_calc mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_calc proc~initialize_from_arrays_calc->proc~get_optimal_eta_matrix proc~initialize_from_arrays_calc->proc~ewald_a proc~initialize_from_arrays_calc->proc~ewald_da_dpos proc~numerical_stress_electrostatic mod_abstract_electrostatics::AbstractElectrostaticsCalculator%numerical_stress_electrostatic proc~numerical_stress_electrostatic->proc~get_stress_from_lattice_derivatives proc~get_relative_positions mod_structures::Structure%get_relative_positions proc~numerical_stress_electrostatic->proc~get_relative_positions proc~rho_to_grid mod_fft_potential::PWPotCalculator%rho_to_grid proc~rho_to_grid->proc~inv_3d proc~rho_to_grid_grid->proc~inv_3d proc~rho_to_grid_grid->proc~rho_to_grid proc~runner_interface_evaluate_electrostatics_3g_part_1 mod_runner_interface_bindings::runner_interface_evaluate_electrostatics_3g_part_1 proc~runner_interface_evaluate_electrostatics_3g_part_1->proc~calculate_volume proc~move_atoms_into_cell~2 mod_structures_helper::move_atoms_into_cell proc~runner_interface_evaluate_electrostatics_3g_part_1->proc~move_atoms_into_cell~2 proc~stress_to_lattice_gradients mod_structures::Structure%stress_to_lattice_gradients proc~stress_to_lattice_gradients->proc~inv_3d proc~stress_to_lattice_gradients->proc~get_volume proc~to_relative_positions mod_structures_helper::to_relative_positions proc~to_relative_positions->proc~inv_3d proc~calc_potential_and_get_energy_and_forces mod_fft_potential::PWPotCalculator%calc_potential_and_get_energy_and_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_potential proc~calc_potential_and_get_energy_and_forces->proc~calc_pw_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_pw_stress proc~constructor_neighbor_grid mod_neighbor_grid::constructor_neighbor_grid proc~constructor_neighbor_grid->proc~to_relative_positions proc~constructor~3 mod_inputdata::constructor proc~constructor~3->proc~count_structures_and_atoms_inputdata proc~evaluate_intern_to_implement mod_pppm::PppmCalculator%evaluate_intern_to_implement proc~evaluate_intern_to_implement->proc~calc_real_space_party proc~get_relative_positions->proc~to_relative_positions proc~initialize_from_arrays mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays proc~initialize_from_arrays->proc~initialize_from_arrays_calc proc~move_atoms_into_cell~2->proc~to_relative_positions proc~post_processing_3g_single_structure_electrostatics mod_post_processing_3g_single_structure::post_processing_3g_single_structure_electrostatics proc~post_processing_3g_single_structure_electrostatics->proc~get_volume proc~post_processing_4g_single_structure mod_post_processing_4g_single_structure::post_processing_4g_single_structure proc~post_processing_4g_single_structure->proc~calculate_electrostatics_4g_single_structure_part_1 proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~get_volume proc~post_processing_wrapper_single_structure->proc~post_processing_3g_single_structure_electrostatics proc~post_processing_wrapper_single_structure->proc~post_processing_4g_single_structure proc~store_meta_information_single_structure mod_store_atomic_property_single_structure::store_meta_information_single_structure proc~post_processing_wrapper_single_structure->proc~store_meta_information_single_structure proc~runner_interface_evaluate_electrostatics_4g_part_1 mod_runner_interface_bindings::runner_interface_evaluate_electrostatics_4g_part_1 proc~runner_interface_evaluate_electrostatics_4g_part_1->proc~calculate_electrostatics_4g_single_structure_part_1 proc~store_meta_information_single_structure->proc~get_volume interface~inputdata mod_inputdata::InputData interface~inputdata->proc~constructor~3 interface~neighborgrid mod_neighbor_grid::NeighborGrid interface~neighborgrid->proc~constructor_neighbor_grid none~initialize~3 mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize none~initialize~3->proc~initialize_from_arrays proc~initialize_from_structure mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_structure none~initialize~3->proc~initialize_from_structure proc~initialize_from_structure->proc~initialize_from_arrays proc~move_atoms_into_cell->proc~get_relative_positions 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~store_meta_information_single_structure proc~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~post_processing_wrapper_single_structure proc~reinitialize_electrostatics_interface mod_runner_interface::RuNNerInterface%reinitialize_electrostatics_interface proc~reinitialize_electrostatics_interface->proc~move_atoms_into_cell~2 proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->proc~move_atoms_into_cell proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->none~initialize~3 proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~output_files_and_cost->proc~predict_multiple_structures proc~precompute_coulomb_matrix_all_chunks mod_calculate_coulomb_matrix::precompute_coulomb_matrix_all_chunks proc~precompute_coulomb_matrix_all_chunks->none~initialize~3 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->none~initialize~3 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~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~predict_structure_interface->proc~reinitialize_electrostatics_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~read_next_structure_inputdata mod_inputdata::InputData%read_next_structure_inputdata proc~read_next_structure_inputdata->proc~move_atoms_into_cell proc~runner_interface_reinitialize_electrostatics mod_runner_interface_bindings::runner_interface_reinitialize_electrostatics proc~runner_interface_reinitialize_electrostatics->proc~reinitialize_electrostatics_interface proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->none~initialize~3 proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_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~predict_4g_charges_training_qeq_multiple_structures 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~read_structures_inputdata mod_inputdata::InputData%read_structures_inputdata proc~read_structures_inputdata->proc~read_next_structure_inputdata proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch 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~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~output_files_and_cost 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_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks 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~predict_qeq_feature_calculator_multiple_structures program~runner RuNNer program~runner->proc~precompute_coulomb_matrix_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~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure 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~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures

function inv_3d

function inv_3d( &
    mat_in &
)

Inverst 3x3 Matrix

Arguments

  • mat_in : real(DP) [in]

Called By

proc~~inv_3d~~CalledByGraph proc~inv_3d mod_linalg::inv_3d proc~calc_lambda_q_derivatives mod_pw::PwCalculator%calc_lambda_q_derivatives proc~calc_lambda_q_derivatives->proc~inv_3d proc~calc_potential mod_fft_potential::PWPotCalculator%calc_potential proc~calc_lambda_q_derivatives->proc~calc_potential proc~calc_pw_forces mod_fft_potential::PWPotCalculator%calc_pw_forces proc~calc_lambda_q_derivatives->proc~calc_pw_forces proc~calc_potential->proc~inv_3d proc~rho_to_grid_grid mod_fft_potential::PWPotCalculator%rho_to_grid_grid proc~calc_potential->proc~rho_to_grid_grid proc~calc_pw_forces->proc~inv_3d proc~calc_pw_stress mod_fft_potential::PWPotCalculator%calc_pw_stress proc~calc_pw_stress->proc~inv_3d proc~calc_recip_lattice mod_structures::Structure%calc_recip_lattice proc~calc_recip_lattice->proc~inv_3d proc~ewald_a_recip mod_ewald_summation::ewald_a_recip proc~ewald_a_recip->proc~inv_3d proc~ewald_da_dlat_times_q_real mod_ewald_summation::ewald_da_dlat_times_q_real proc~ewald_da_dlat_times_q_real->proc~inv_3d proc~ewald_da_dlat_times_q_recip mod_ewald_summation::ewald_da_dlat_times_q_recip proc~ewald_da_dlat_times_q_recip->proc~inv_3d proc~ewald_da_dpos_recip mod_ewald_summation::ewald_da_dpos_recip proc~ewald_da_dpos_recip->proc~inv_3d proc~ewald_da_dpos_times_q_recip mod_ewald_summation::ewald_da_dpos_times_q_recip proc~ewald_da_dpos_times_q_recip->proc~inv_3d proc~ewald_energy_force_stress_recip mod_ewald_summation::ewald_energy_force_stress_recip proc~ewald_energy_force_stress_recip->proc~inv_3d proc~rho_to_grid mod_fft_potential::PWPotCalculator%rho_to_grid proc~rho_to_grid->proc~inv_3d proc~rho_to_grid_grid->proc~inv_3d proc~rho_to_grid_grid->proc~rho_to_grid proc~stress_to_lattice_gradients mod_structures::Structure%stress_to_lattice_gradients proc~stress_to_lattice_gradients->proc~inv_3d proc~to_relative_positions mod_structures_helper::to_relative_positions proc~to_relative_positions->proc~inv_3d proc~calc_potential_and_get_energy_and_forces mod_fft_potential::PWPotCalculator%calc_potential_and_get_energy_and_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_potential proc~calc_potential_and_get_energy_and_forces->proc~calc_pw_forces proc~calc_potential_and_get_energy_and_forces->proc~calc_pw_stress proc~constructor_neighbor_grid mod_neighbor_grid::constructor_neighbor_grid proc~constructor_neighbor_grid->proc~to_relative_positions proc~evaluate_pw_electrostatics_calculator mod_pw::PwCalculator%evaluate_pw_electrostatics_calculator proc~evaluate_pw_electrostatics_calculator->proc~calc_lambda_q_derivatives proc~evaluate_pw_electrostatics_calculator->proc~calc_potential proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_forces proc~evaluate_pw_electrostatics_calculator->proc~calc_pw_stress proc~ewald_a mod_ewald_summation::ewald_a proc~ewald_a->proc~ewald_a_recip proc~ewald_da_dlat_times_q mod_ewald_summation::ewald_da_dlat_times_q proc~ewald_da_dlat_times_q->proc~ewald_da_dlat_times_q_real proc~ewald_da_dlat_times_q->proc~ewald_da_dlat_times_q_recip proc~ewald_da_dpos mod_ewald_summation::ewald_da_dpos proc~ewald_da_dpos->proc~ewald_da_dpos_recip proc~ewald_da_dpos_times_q mod_ewald_summation::ewald_da_dpos_times_q proc~ewald_da_dpos_times_q->proc~ewald_da_dpos_times_q_recip proc~ewald_energy_force_stress mod_ewald_summation::ewald_energy_force_stress proc~ewald_energy_force_stress->proc~ewald_energy_force_stress_recip proc~get_relative_positions mod_structures::Structure%get_relative_positions proc~get_relative_positions->proc~to_relative_positions proc~move_atoms_into_cell~2 mod_structures_helper::move_atoms_into_cell proc~move_atoms_into_cell~2->proc~to_relative_positions interface~neighborgrid mod_neighbor_grid::NeighborGrid interface~neighborgrid->proc~constructor_neighbor_grid proc~evaluate_ewald_calculator mod_ewald_summation::EwaldCalculator%evaluate_ewald_calculator proc~evaluate_ewald_calculator->proc~ewald_a proc~evaluate_ewald_calculator->proc~ewald_da_dlat_times_q proc~evaluate_ewald_calculator->proc~ewald_da_dpos_times_q proc~evaluate_ewald_calculator->proc~ewald_energy_force_stress proc~initialize_from_arrays_calc mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_calc proc~initialize_from_arrays_calc->proc~ewald_a proc~initialize_from_arrays_calc->proc~ewald_da_dpos proc~move_atoms_into_cell mod_structures::Structure%move_atoms_into_cell proc~move_atoms_into_cell->proc~get_relative_positions proc~numerical_stress_electrostatic mod_abstract_electrostatics::AbstractElectrostaticsCalculator%numerical_stress_electrostatic proc~numerical_stress_electrostatic->proc~get_relative_positions proc~reinitialize_electrostatics_interface mod_runner_interface::RuNNerInterface%reinitialize_electrostatics_interface proc~reinitialize_electrostatics_interface->proc~move_atoms_into_cell~2 proc~runner_interface_evaluate_electrostatics_3g_part_1 mod_runner_interface_bindings::runner_interface_evaluate_electrostatics_3g_part_1 proc~runner_interface_evaluate_electrostatics_3g_part_1->proc~move_atoms_into_cell~2 proc~build_structure_neighborlists_feature_calculators mod_generic_interface::build_structure_neighborlists_feature_calculators proc~build_structure_neighborlists_feature_calculators->proc~move_atoms_into_cell proc~count_structures_and_atoms_inputdata mod_inputdata::InputData%count_structures_and_atoms_inputdata proc~count_structures_and_atoms_inputdata->proc~move_atoms_into_cell proc~initialize_from_arrays mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays proc~initialize_from_arrays->proc~initialize_from_arrays_calc proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~reinitialize_electrostatics_interface proc~predict_structure_interface->proc~build_structure_neighborlists_feature_calculators proc~read_next_structure_inputdata mod_inputdata::InputData%read_next_structure_inputdata proc~read_next_structure_inputdata->proc~move_atoms_into_cell proc~runner_interface_reinitialize_electrostatics mod_runner_interface_bindings::runner_interface_reinitialize_electrostatics proc~runner_interface_reinitialize_electrostatics->proc~reinitialize_electrostatics_interface none~initialize~3 mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize none~initialize~3->proc~initialize_from_arrays proc~initialize_from_structure mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_structure none~initialize~3->proc~initialize_from_structure proc~constructor~3 mod_inputdata::constructor proc~constructor~3->proc~count_structures_and_atoms_inputdata proc~initialize_from_structure->proc~initialize_from_arrays 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~read_structures_inputdata mod_inputdata::InputData%read_structures_inputdata proc~read_structures_inputdata->proc~read_next_structure_inputdata interface~inputdata mod_inputdata::InputData interface~inputdata->proc~constructor~3 proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->none~initialize~3 proc~precompute_coulomb_matrix_all_chunks mod_calculate_coulomb_matrix::precompute_coulomb_matrix_all_chunks proc~precompute_coulomb_matrix_all_chunks->none~initialize~3 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->none~initialize~3 proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->none~initialize~3 proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_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~predict_4g_charges_training_qeq_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges program~runner RuNNer program~runner->proc~precompute_coulomb_matrix_all_chunks 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~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure proc~train_mode->proc~train_loop_4g_charges proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range 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~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures

subroutine solve_equation_system

subroutine solve_equation_system( &
    n, &
    nrhs, &
    a, &
    b, &
    x &
)

Solve a system of linear equations.

Arguments

  • n : integer [in]– Order of matrix `a`.
  • nrhs : integer [in]– Number of equation systems.
  • a : real(DP) (dim: (n,n)) [in]– The coefficient matrix on the LHS.
  • b : real(DP) (dim: (n,nrhs)) [in]– The RHS of the system of equations.
  • x : real(DP) (dim: (n,nrhs)) [out]

subroutine solve_symmetric_equation_system

subroutine solve_symmetric_equation_system( &
    n, &
    nrhs, &
    a, &
    b, &
    x &
)

Solve a system of linear equations.

Arguments

  • n : integer [in]– Order of matrix `a`.
  • nrhs : integer [in]– Number of equation systems.
  • a : real(DP) (dim: (n,n)) [inout]– The coefficient matrix on the LHS.
  • b : real(DP) (dim: (n,nrhs)) [inout]– The RHS of the system of equations.
  • x : real(DP) (dim: (n,nrhs)) [out]

Called By

proc~~solve_symmetric_equation_system~~CalledByGraph proc~solve_symmetric_equation_system mod_linalg::solve_symmetric_equation_system proc~solve_linear_system_direct mod_direct_charge_equilibration::DirectChargeEquilibrator%solve_linear_system_direct proc~solve_linear_system_direct->proc~solve_symmetric_equation_system

subroutine solve_least_squares

subroutine solve_least_squares( &
    transa, &
    m, &
    n, &
    nrhs, &
    a, &
    b &
)

Least-squares solution (dgels overrides a and b).

Arguments

  • transa : character [in]
  • m : integer [in]
  • n : integer [in]
  • nrhs : integer [in]
  • a : real(DP) (dim: (m,n)) [inout]
  • b : real(DP) (dim: (m,nrhs)) [inout]

Called By

proc~~solve_least_squares~~CalledByGraph proc~solve_least_squares mod_linalg::solve_least_squares proc~determine_mean_atomic_energy_per_element mod_dataset_statistics::determine_mean_atomic_energy_per_element proc~determine_mean_atomic_energy_per_element->proc~solve_least_squares proc~print_and_collect_energy_and_force_statistics mod_train_mode::print_and_collect_energy_and_force_statistics proc~print_and_collect_energy_and_force_statistics->proc~determine_mean_atomic_energy_per_element proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~print_and_collect_energy_and_force_statistics program~runner RuNNer program~runner->proc~train_mode

subroutine inv_in_place

subroutine inv_in_place( &
    a, &
    exploit_symmat &
)

Inverse a general or symmetric matrix A if exploit_symmat Bunch Kaufman decompoistiton is used in combination with inversion, which is faster than LU decomposition with subsequent inversion. However, Bunch-Kaufmann decomposition can only be used for symmetric matices! author: Moritz R Schaefer

Arguments

  • a : real(DP) (dim: (:,:)) [inout]
  • exploit_symmat : logical [in]

Called By

proc~~inv_in_place~~CalledByGraph proc~inv_in_place mod_linalg::inv_in_place proc~inv mod_linalg::inv proc~inv->proc~inv_in_place proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~inv_in_place proc~initialize_from_arrays_calc mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_calc proc~initialize_from_arrays_calc->proc~inv proc~initialize_from_arrays_file mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays_file proc~initialize_from_arrays_file->proc~inv proc~update_inverse mod_training_charge_equilibration::TrainingChargeEquilibrator%update_inverse proc~update_inverse->proc~inv proc~initialize_from_arrays mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_arrays proc~initialize_from_arrays->proc~initialize_from_arrays_calc proc~initialize_from_arrays->proc~initialize_from_arrays_file 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~update_inverse none~initialize~3 mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize proc~predict_4g_charges_training_qeq_multiple_structures->none~initialize~3 proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->proc~update_inverse proc~train_4g_atomic_charges_structure_batch->none~initialize~3 none~initialize~3->proc~initialize_from_arrays proc~initialize_from_structure mod_training_charge_equilibration::TrainingChargeEquilibrator%initialize_from_structure none~initialize~3->proc~initialize_from_structure proc~initialize_from_structure->proc~initialize_from_arrays 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~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->none~initialize~3 proc~precompute_coulomb_matrix_all_chunks mod_calculate_coulomb_matrix::precompute_coulomb_matrix_all_chunks proc~precompute_coulomb_matrix_all_chunks->none~initialize~3 proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_feature_calculator program~runner RuNNer program~runner->proc~precompute_coulomb_matrix_all_chunks 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~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure 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~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures

subroutine vec_plus_matrix_times_vec

subroutine vec_plus_matrix_times_vec( &
    m, &
    n, &
    alpha, &
    beta, &
    mat_a, &
    x, &
    y &
)

Compute the matrix-vector product \(y = alpha * A * x + beta * y\) using BLAS where A has dimensions (m, n).

Arguments

  • m : integer [in]– Dimensions of matrix `A`.
  • n : integer [in]– Dimensions of matrix `A`.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (m,n)) [in]– The matrix to be multiplied.
  • x : real(DP) (dim: (n)) [in]– The vector to be multiplied.
  • y : real(DP) (dim: (m)) [inout]– The vector to be added.

Called By

proc~~vec_plus_matrix_times_vec~~CalledByGraph proc~vec_plus_matrix_times_vec mod_linalg::vec_plus_matrix_times_vec proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~vec_plus_matrix_times_vec

subroutine vec_plus_matrix_transpose_times_vec

subroutine vec_plus_matrix_transpose_times_vec( &
    m, &
    n, &
    alpha, &
    beta, &
    mat_a, &
    x, &
    y &
)

Compute the matrix-vector product \(y = alpha * A**T * x + beta * y\) using BLAS where A has dimensions (m, n).

Arguments

  • m : integer [in]– Dimensions of matrix `A`.
  • n : integer [in]– Dimensions of matrix `A`.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (m,n)) [in]– The matrix to be multiplied.
  • x : real(DP) (dim: (m)) [in]– The vector to be multiplied.
  • y : real(DP) (dim: (n)) [inout]– The vector to be added.

subroutine matrix_plus_vec_times_vec_transpose

subroutine matrix_plus_vec_times_vec_transpose( &
    m, &
    n, &
    alpha, &
    x, &
    y, &
    mat_a &
)

Add a vector product to a matrix \(A = A + \alpha * x * y**T\) using BLAS where A has dimensions (m, n).

Arguments

  • m : integer [in]– Dimensions of matrix `A`.
  • n : integer [in]– Dimensions of matrix `A`.
  • alpha : real(DP) [in]– Scalar factor.
  • x : real(DP) (dim: (m)) [in]– Vector 1 for multiplication.
  • y : real(DP) (dim: (n)) [in]– Vector 2 for multiplication, will be transposed.
  • mat_a : real(DP) (dim: (m,n)) [inout]– The matrix to be multiplied.

subroutine matrix_plus_matrix_times_matrix

subroutine matrix_plus_matrix_times_matrix( &
    m, &
    n, &
    k, &
    alpha, &
    beta, &
    mat_a, &
    mat_b, &
    mat_c &
)

Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has dimensions (m, k), B has dimensions (k, n) and C has dimensions (m, n).

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • k : integer [in]– Matrix dimensions.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (m,k)) [in]– The first matrix to be multiplied.
  • mat_b : real(DP) (dim: (k,n)) [in]– The second matrix to be multiplied.
  • mat_c : real(DP) (dim: (m,n)) [inout]– The result matrix to be added.

Called By

proc~~matrix_plus_matrix_times_matrix~2~~CalledByGraph proc~matrix_plus_matrix_times_matrix~2 mod_linalg::matrix_plus_matrix_times_matrix proc~forward_denselayer_omp_parallel mod_dense_layer::forward_denselayer_omp_parallel proc~forward_denselayer_omp_parallel->proc~matrix_plus_matrix_times_matrix~2 proc~forward_denselayer_serial mod_dense_layer::forward_denselayer_serial proc~forward_denselayer_serial->proc~matrix_plus_matrix_times_matrix~2 proc~forward_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%forward_denselayer_with_single_act proc~forward_denselayer_with_single_act->proc~matrix_plus_matrix_times_matrix~2 proc~forward_gradient_denselayer mod_dense_layer::DenseLayer%forward_gradient_denselayer proc~forward_gradient_denselayer->proc~matrix_plus_matrix_times_matrix~2 proc~forward_gradient_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%forward_gradient_denselayer_with_single_act proc~forward_gradient_denselayer_with_single_act->proc~matrix_plus_matrix_times_matrix~2 proc~forward_gradient_denselayer_with_single_act->proc~forward_denselayer_with_single_act proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~matrix_plus_matrix_times_matrix~2

subroutine matrix_plus_matrix_transpose_times_matrix

subroutine matrix_plus_matrix_transpose_times_matrix( &
    m, &
    n, &
    k, &
    alpha, &
    beta, &
    mat_a, &
    mat_b, &
    mat_c &
)

Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has dimensions (m, k), B has dimensions (k, n) and C has dimensions (m, n).

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • k : integer [in]– Matrix dimensions.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (k,m)) [in]– The first matrix to be multiplied.
  • mat_b : real(DP) (dim: (k,n)) [in]– The second matrix to be multiplied.
  • mat_c : real(DP) (dim: (m,n)) [inout]– The result matrix to be added.

Called By

proc~~matrix_plus_matrix_transpose_times_matrix~~CalledByGraph proc~matrix_plus_matrix_transpose_times_matrix mod_linalg::matrix_plus_matrix_transpose_times_matrix proc~backward_denselayer_omp_parallel mod_dense_layer::backward_denselayer_omp_parallel proc~backward_denselayer_omp_parallel->proc~matrix_plus_matrix_transpose_times_matrix proc~backward_denselayer_serial mod_dense_layer::backward_denselayer_serial proc~backward_denselayer_serial->proc~matrix_plus_matrix_transpose_times_matrix proc~backward_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%backward_denselayer_with_single_act proc~backward_denselayer_with_single_act->proc~matrix_plus_matrix_transpose_times_matrix proc~backward_gradient_denselayer mod_dense_layer::DenseLayer%backward_gradient_denselayer proc~backward_gradient_denselayer->proc~matrix_plus_matrix_transpose_times_matrix proc~backward_gradient_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%backward_gradient_denselayer_with_single_act proc~backward_gradient_denselayer_with_single_act->proc~matrix_plus_matrix_transpose_times_matrix proc~backward_gradient_neuralnetwork mod_neural_network::NeuralNetwork%backward_gradient_neuralnetwork proc~backward_gradient_neuralnetwork->proc~backward_gradient_denselayer

subroutine matrix_plus_matrix_times_matrix_transpose_k_equal_1_special

subroutine matrix_plus_matrix_times_matrix_transpose_k_equal_1_special( &
    m, &
    n, &
    k, &
    alpha, &
    beta, &
    mat_a, &
    mat_b, &
    mat_c &
)

Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has dimensions (m, k), B has dimensions (k, n) and C has dimensions (m, n).

In contrast to matrix_plus_matrix_times_matrix_transpose this routine has a special treatment for k=1 that we suspect to be very useful when m = n >> k, especially on AMD hardware.

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • k : integer [in]– Matrix dimensions.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (m,k)) [in]– The first matrix to be multiplied.
  • mat_b : real(DP) (dim: (n,k)) [in]– The second matrix to be multiplied.
  • mat_c : real(DP) (dim: (m,n)) [inout]– The result matrix to be added.

Called By

proc~~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special~~CalledByGraph proc~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special mod_linalg::matrix_plus_matrix_times_matrix_transpose_k_equal_1_special proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special

subroutine matrix_plus_matrix_times_matrix_transpose

subroutine matrix_plus_matrix_times_matrix_transpose( &
    m, &
    n, &
    k, &
    alpha, &
    beta, &
    mat_a, &
    mat_b, &
    mat_c &
)

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • k : integer [in]– Matrix dimensions.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (m,k)) [in]– The first matrix to be multiplied.
  • mat_b : real(DP) (dim: (n,k)) [in]– The second matrix to be multiplied.
  • mat_c : real(DP) (dim: (m,n)) [inout]– The result matrix to be added.

Called By

proc~~matrix_plus_matrix_times_matrix_transpose~~CalledByGraph proc~matrix_plus_matrix_times_matrix_transpose mod_linalg::matrix_plus_matrix_times_matrix_transpose proc~backward_denselayer_omp_parallel mod_dense_layer::backward_denselayer_omp_parallel proc~backward_denselayer_omp_parallel->proc~matrix_plus_matrix_times_matrix_transpose proc~backward_denselayer_serial mod_dense_layer::backward_denselayer_serial proc~backward_denselayer_serial->proc~matrix_plus_matrix_times_matrix_transpose proc~backward_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%backward_denselayer_with_single_act proc~backward_denselayer_with_single_act->proc~matrix_plus_matrix_times_matrix_transpose proc~backward_gradient_denselayer mod_dense_layer::DenseLayer%backward_gradient_denselayer proc~backward_gradient_denselayer->proc~matrix_plus_matrix_times_matrix_transpose proc~backward_gradient_denselayer_with_single_act mod_dense_layer_with_single_activations::DenseLayerWithSingleActivations%backward_gradient_denselayer_with_single_act proc~backward_gradient_denselayer_with_single_act->proc~matrix_plus_matrix_times_matrix_transpose proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~matrix_plus_matrix_times_matrix_transpose proc~backward_gradient_neuralnetwork mod_neural_network::NeuralNetwork%backward_gradient_neuralnetwork proc~backward_gradient_neuralnetwork->proc~backward_gradient_denselayer

subroutine dgemm_nt_m_n_1_manual

subroutine dgemm_nt_m_n_1_manual( &
    m, &
    n, &
    alpha, &
    mat_a, &
    lda, &
    mat_b, &
    ldb, &
    beta, &
    mat_c, &
    ldc &
)

Custom implementation of DGEMM for matrices with k = 1 with efficient OpenMP parallelization.

To be used in matrix_plus_matrix_times_matrix_transpose. We found that the intrinsic DGEMM in the MKL does not parallelize well on AMD hardware (e.g. Paderborn's Otus cluster) when k = 1. This becomes relevant since matrix_plus_matrix_times_matrix_transpose takes up about 80% of our CPU time during training with the Kalman filter. In that case, k is the number of parallel streams (= MPI tasks). So for MPI-serial execution, there was basically no OpenMP parallelization.

With this routine, the expected OpenMP parallelization could be recovered.

Arguments

  • m : integer [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • mat_a : real(DP) (dim: (m,1)) [in]
  • lda : integer [in]
  • mat_b : real(DP) (dim: (n,1)) [in]
  • ldb : integer [in]
  • beta : real(DP) [in]
  • mat_c : real(DP) (dim: (m,n)) [inout]
  • ldc : integer [in]

Called By

proc~~dgemm_nt_m_n_1_manual~~CalledByGraph proc~dgemm_nt_m_n_1_manual mod_linalg::dgemm_nt_m_n_1_manual proc~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special mod_linalg::matrix_plus_matrix_times_matrix_transpose_k_equal_1_special proc~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special->proc~dgemm_nt_m_n_1_manual proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~matrix_plus_matrix_times_matrix_transpose_k_equal_1_special

subroutine symmetric_matrix_plus_vec_times_vec_transpose

subroutine symmetric_matrix_plus_vec_times_vec_transpose( &
    d, &
    mat, &
    x, &
    alpha &
)

Add a vector product to a matrix \(A = A + \alpha * x * x**T\) using BLAS where A has dimensions (n, n). ATTENTION: Since M is symmetric, only the lower part is filled.

Arguments

  • d : integer [in]– Dimension of `M` and `x`.
  • mat : real(DP) (dim: (d,d)) [inout]– Symmetric matrix to be added.
  • x : real(DP) (dim: (d)) [in]– Vector to be multiplied.
  • alpha : real(DP) [in]– Scalar factor.

subroutine symmetric_matrix_times_matrix_plus_matrix_upper_triangle

subroutine symmetric_matrix_times_matrix_plus_matrix_upper_triangle( &
    m, &
    n, &
    mat_a, &
    mat_b, &
    mat_c, &
    alpha, &
    beta &
)

Compute a matrix matrix product for a symmetry matrix A \(C = \alpha * A * B + \beta *C\) using BLAS. ATTENTION: Since A is symmetric, only the upper part is filled.

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • mat_a : real(DP) (dim: (m,m)) [in]
  • mat_b : real(DP) (dim: (m,n)) [in]
  • mat_c : real(DP) (dim: (m,n)) [inout]
  • alpha : real(DP) [in]
  • beta : real(DP) [in]

subroutine symmetric_matrix_times_matrix_plus_matrix

subroutine symmetric_matrix_times_matrix_plus_matrix( &
    m, &
    n, &
    mat_a, &
    mat_b, &
    mat_c, &
    alpha, &
    beta &
)

Compute a matrix matrix product for a symmetry matrix A \(C = \alpha * A * B + \beta *C\) using BLAS. ATTENTION: Since A is symmetric, only the lower part is filled.

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • mat_a : real(DP) (dim: (m,m)) [in]
  • mat_b : real(DP) (dim: (m,n)) [in]
  • mat_c : real(DP) (dim: (m,n)) [inout]
  • alpha : real(DP) [in]
  • beta : real(DP) [in]

Called By

proc~~symmetric_matrix_times_matrix_plus_matrix~~CalledByGraph proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine matrix_transpose_times_matrix_plus_matrix

subroutine matrix_transpose_times_matrix_plus_matrix( &
    m, &
    n, &
    k, &
    alpha, &
    beta, &
    mat_a, &
    mat_b, &
    mat_c &
)

Compute the matrix-matrix product \(C = alpha * A * B + beta * C\) using BLAS where A has dimensions (m, k), B has dimensions (k, n) and C has dimensions (m, n). A has the dimensions (k, m) on entry and is transposed during the routine.

Arguments

  • m : integer [in]– Matrix dimensions.
  • n : integer [in]– Matrix dimensions.
  • k : integer [in]– Matrix dimensions.
  • alpha : real(DP) [in]– Scalar factors.
  • beta : real(DP) [in]– Scalar factors.
  • mat_a : real(DP) (dim: (k,m)) [in]– The first matrix to be multiplied.
  • mat_b : real(DP) (dim: (k,n)) [in]– The second matrix to be multiplied.
  • mat_c : real(DP) (dim: (m,n)) [inout]– The result matrix to be added.

Called By

proc~~matrix_transpose_times_matrix_plus_matrix~2~~CalledByGraph proc~matrix_transpose_times_matrix_plus_matrix~2 mod_linalg::matrix_transpose_times_matrix_plus_matrix proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~matrix_transpose_times_matrix_plus_matrix~2

subroutine eigenvalues_symmetric_matrix

subroutine eigenvalues_symmetric_matrix( &
    d, &
    mat, &
    eval &
)

diagonalize a symmetric matrix A, only its upper triangle needs to be defined. Here we only compute eigenvalues, not the eigenvectors, which should be significantly faster.

Arguments

  • d : integer [in]– Dimension of matrix `mat`.
  • mat : real(DP) (dim: (d,d)) [inout]– Matrix to be diagonalized
  • eval : real(DP) (dim: (d)) [out]– Vector of eigenvalues

Called By

proc~~eigenvalues_symmetric_matrix~~CalledByGraph proc~eigenvalues_symmetric_matrix mod_linalg::eigenvalues_symmetric_matrix proc~get_eigenvalues mod_direct_charge_equilibration::DirectChargeEquilibrator%get_eigenvalues proc~get_eigenvalues->proc~eigenvalues_symmetric_matrix proc~analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues::analyse_a_prime_matrix_eigenvalues proc~analyse_a_prime_matrix_eigenvalues->proc~get_eigenvalues

subroutine eigenvectors_symmetric_matrix

subroutine eigenvectors_symmetric_matrix( &
    d, &
    mat, &
    eval &
)

diagonalize a symmetric matrix A, only its upper triangle needs to be defined. Here we compute eigenvalues and their corresponding eigen- vectors, but only return the eigenvectors.

Arguments

  • d : integer [in]– Dimension of matrix `mat`.
  • mat : real(DP) (dim: (d,d)) [inout]– Matrix to be diagonalized
  • eval : real(DP) (dim: (d)) [out]– Vector of eigenvalues

Called By

proc~~eigenvectors_symmetric_matrix~~CalledByGraph proc~eigenvectors_symmetric_matrix mod_linalg::eigenvectors_symmetric_matrix proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~eigenvectors_symmetric_matrix

subroutine diagonalize_large_symmetric_matrix

subroutine diagonalize_large_symmetric_matrix( &
    d, &
    mat, &
    eval &
)

aiagonalize a large symmetric matrix A, only its upper triangle needs to be defined. This routinen uses dsyevr instead of dsyev, which should be faster for large matrices.

Arguments

  • d : integer [in]– Dimension of matrix `mat`.
  • mat : real(DP) (dim: (d,d)) [inout]– Matrix to be diagonalized
  • eval : real(DP) (dim: (d)) [out]– Vector of eigenvalues

subroutine cp_upper_triangle

subroutine cp_upper_triangle( &
    d, &
    mat, &
    copy &
)

Arguments

  • d : integer [in]
  • mat : real(DP) (dim: (d,d)) [in]
  • copy : real(DP) (dim: (d,d)) [out]

subroutine cp_lower_triangle

subroutine cp_lower_triangle( &
    d, &
    mat, &
    copy &
)

Arguments

  • d : integer [in]
  • mat : real(DP) (dim: (d,d)) [in]
  • copy : real(DP) (dim: (d,d)) [out]

subroutine dsymm_scalar_parallel

subroutine dsymm_scalar_parallel( &
    side, &
    uplo, &
    m, &
    n, &
    alpha, &
    a, &
    lda, &
    b, &
    ldb, &
    beta, &
    c, &
    ldc &
)

Specialized DSYMM for edge cases (m=1 or n=1)

Arguments

  • side : character [in]
  • uplo : character [in]
  • m : integer [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • a : real(DP) (dim: (lda,*)) [in]
  • lda : integer [in]
  • b : real(DP) (dim: (ldb,*)) [in]
  • ldb : integer [in]
  • beta : real(DP) [in]
  • c : real(DP) (dim: (ldc,*)) [inout]
  • ldc : integer [in]

Called By

proc~~dsymm_scalar_parallel~~CalledByGraph proc~dsymm_scalar_parallel mod_linalg::dsymm_scalar_parallel proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~dsymm_scalar_parallel proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine dsymv_parallel_mv

subroutine dsymv_parallel_mv( &
    uplo, &
    n, &
    alpha, &
    a, &
    lda, &
    x, &
    incx, &
    y, &
    incy &
)

Helper routine for symmetric matrix-vector multiplication (column vector)

Arguments

  • uplo : character [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • a : real(DP) (dim: (lda,*)) [in]
  • lda : integer [in]
  • x : real(DP) (dim: (*)) [in]
  • incx : integer [in]
  • y : real(DP) (dim: (*)) [inout]
  • incy : integer [in]

Called By

proc~~dsymv_parallel_mv~~CalledByGraph proc~dsymv_parallel_mv mod_linalg::dsymv_parallel_mv proc~dsymm_scalar_parallel mod_linalg::dsymm_scalar_parallel proc~dsymm_scalar_parallel->proc~dsymv_parallel_mv proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~dsymm_scalar_parallel proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine dsymv_parallel_1d

subroutine dsymv_parallel_1d( &
    uplo, &
    n, &
    alpha, &
    a, &
    lda, &
    x, &
    incx, &
    y, &
    incy &
)

Helper routine for 1D symmetric matrix-vector multiplication (row vector)

Arguments

  • uplo : character [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • a : real(DP) (dim: (lda,*)) [in]
  • lda : integer [in]
  • x : real(DP) (dim: (*)) [in]
  • incx : integer [in]
  • y : real(DP) (dim: (*)) [inout]
  • incy : integer [in]

Called By

proc~~dsymv_parallel_1d~~CalledByGraph proc~dsymv_parallel_1d mod_linalg::dsymv_parallel_1d proc~dsymm_scalar_parallel mod_linalg::dsymm_scalar_parallel proc~dsymm_scalar_parallel->proc~dsymv_parallel_1d proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~dsymm_scalar_parallel proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine dsymm_column_parallel

subroutine dsymm_column_parallel( &
    side, &
    uplo, &
    m, &
    n, &
    alpha, &
    a, &
    lda, &
    b, &
    ldb, &
    beta, &
    c, &
    ldc &
)

Column-group parallel DSYMM for narrow matrices

Arguments

  • side : character [in]
  • uplo : character [in]
  • m : integer [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • a : real(DP) (dim: (lda,*)) [in]
  • lda : integer [in]
  • b : real(DP) (dim: (ldb,*)) [in]
  • ldb : integer [in]
  • beta : real(DP) [in]
  • c : real(DP) (dim: (ldc,*)) [inout]
  • ldc : integer [in]

Called By

proc~~dsymm_column_parallel~~CalledByGraph proc~dsymm_column_parallel mod_linalg::dsymm_column_parallel proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~dsymm_column_parallel proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine dsymm_blocked

subroutine dsymm_blocked( &
    side, &
    uplo, &
    m, &
    n, &
    alpha, &
    a, &
    lda, &
    b, &
    ldb, &
    beta, &
    c, &
    ldc, &
    block_size &
)

Arguments

  • side : character [in]
  • uplo : character [in]
  • m : integer [in]
  • n : integer [in]
  • alpha : real(DP) [in]
  • a : real(DP) (dim: (lda,*)) [in]
  • lda : integer [in]
  • b : real(DP) (dim: (ldb,*)) [in]
  • ldb : integer [in]
  • beta : real(DP) [in]
  • c : real(DP) (dim: (ldc,*)) [inout]
  • ldc : integer [in]
  • block_size : integer [in]

Called By

proc~~dsymm_blocked~~CalledByGraph proc~dsymm_blocked mod_linalg::dsymm_blocked proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine extract_block_general

subroutine extract_block_general( &
    matrix, &
    ld, &
    start_i, &
    start_j, &
    rows, &
    cols, &
    block, &
    block_ld &
)

Arguments

  • matrix : real(DP) (dim: (ld,*)) [in]
  • ld : integer [in]
  • start_i : integer [in]
  • start_j : integer [in]
  • rows : integer [in]
  • cols : integer [in]
  • block : real(DP) (dim: (block_ld,*)) [out]
  • block_ld : integer [in]

Called By

proc~~extract_block_general~~CalledByGraph proc~extract_block_general mod_linalg::extract_block_general proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~extract_block_general proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix

subroutine insert_block_general

subroutine insert_block_general( &
    block, &
    block_ld, &
    matrix, &
    ld, &
    start_i, &
    start_j, &
    rows, &
    cols &
)

Arguments

  • block : real(DP) (dim: (block_ld,*)) [in]
  • block_ld : integer [in]
  • matrix : real(DP) (dim: (ld,*)) [inout]
  • ld : integer [in]
  • start_i : integer [in]
  • start_j : integer [in]
  • rows : integer [in]
  • cols : integer [in]

Called By

proc~~insert_block_general~~CalledByGraph proc~insert_block_general mod_linalg::insert_block_general proc~dsymm_blocked mod_linalg::dsymm_blocked proc~dsymm_blocked->proc~insert_block_general proc~symmetric_matrix_times_matrix_plus_matrix mod_linalg::symmetric_matrix_times_matrix_plus_matrix proc~symmetric_matrix_times_matrix_plus_matrix->proc~dsymm_blocked proc~update_kalman_parent mod_abstract_kalman_filter::AbstractKalmanFilter%update_kalman_parent proc~update_kalman_parent->proc~symmetric_matrix_times_matrix_plus_matrix