Skip to content

mod_calc_screening

Lines: 87 | Visibility: private

Routines for calculating the screening interaction for a given structure. author: Alexander Knoll

Dependencies

Uses

module~~mod_calc_screening~~UsesGraph module~mod_calc_screening mod_calc_screening module~mod_constants mod_constants module~mod_calc_screening->module~mod_constants module~mod_feature_map_neighborlist mod_feature_map_neighborlist module~mod_calc_screening->module~mod_feature_map_neighborlist module~mod_precision mod_precision module~mod_calc_screening->module~mod_precision module~mod_structures mod_structures module~mod_calc_screening->module~mod_structures module~mod_constants->module~mod_precision iso_c_binding iso_c_binding module~mod_constants->iso_c_binding module~mod_feature_map_neighborlist->module~mod_constants module~mod_feature_map_neighborlist->module~mod_precision module~mod_feature_map_neighborlist->module~mod_structures module~mod_abstract_cutoff_function mod_abstract_cutoff_function module~mod_feature_map_neighborlist->module~mod_abstract_cutoff_function module~mod_io mod_io module~mod_feature_map_neighborlist->module~mod_io module~mod_mpi mod_mpi module~mod_feature_map_neighborlist->module~mod_mpi module~mod_neighborlist mod_neighborlist module~mod_feature_map_neighborlist->module~mod_neighborlist module~mod_throw mod_throw module~mod_feature_map_neighborlist->module~mod_throw module~mod_timer mod_timer module~mod_feature_map_neighborlist->module~mod_timer module~mod_precision->iso_c_binding iso_fortran_env iso_fortran_env module~mod_precision->iso_fortran_env module~mod_structures->module~mod_constants module~mod_structures->module~mod_precision module~mod_array_helpers mod_array_helpers module~mod_structures->module~mod_array_helpers module~mod_linalg mod_linalg module~mod_structures->module~mod_linalg module~mod_structures->module~mod_mpi module~mod_periodic_table mod_periodic_table module~mod_structures->module~mod_periodic_table module~mod_structures_helper mod_structures_helper module~mod_structures->module~mod_structures_helper module~mod_structures->module~mod_throw module~mod_abstract_cutoff_function->module~mod_precision module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_io->module~mod_precision module~mod_io->iso_fortran_env module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args module~mod_linalg->module~mod_precision module~mod_linalg->module~mod_throw module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_settings mod_settings module~mod_linalg->module~mod_settings module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_neighborlist->module~mod_precision module~mod_neighborlist->module~mod_structures module~mod_neighborlist->module~mod_io module~mod_neighborlist->module~mod_mpi module~mod_neighborlist->module~mod_throw module~mod_dynamic_double_array mod_dynamic_double_array module~mod_neighborlist->module~mod_dynamic_double_array module~mod_dynamic_int_array mod_dynamic_int_array module~mod_neighborlist->module~mod_dynamic_int_array module~mod_neighbor_grid mod_neighbor_grid module~mod_neighborlist->module~mod_neighbor_grid module~mod_neighborlist_helper mod_neighborlist_helper module~mod_neighborlist->module~mod_neighborlist_helper module~mod_neighborlist->module~mod_settings module~mod_periodic_table->module~mod_constants module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_throw module~mod_structures_helper->module~mod_precision module~mod_structures_helper->module~mod_linalg module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_io module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_timer->module~mod_precision module~mod_timer->module~mod_io module~mod_timer->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_timer->ieee_arithmetic module~mod_timer->module~mod_optional_args module~cublas_wrapper->iso_c_binding module~cublas_wrapper->module~mod_settings module~mod_dynamic_double_array->module~mod_precision module~mod_dynamic_double_array->module~mod_throw module~mod_neighbor_grid->module~mod_precision module~mod_neighbor_grid->module~mod_mpi module~mod_neighbor_grid->module~mod_structures_helper module~mod_neighbor_grid->module~mod_dynamic_int_array module~mod_neighbor_grid->module~mod_neighborlist_helper module~mod_neighborlist_helper->module~mod_precision module~mod_neighborlist_helper->module~mod_linalg module~mod_neighborlist_helper->module~mod_mpi module~mod_settings->module~mod_constants module~mod_settings->module~mod_precision module~mod_settings->module~mod_io module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_throw module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_sort->module~mod_precision module~mod_cpu_vendor->iso_c_binding

Used By

module~~mod_calc_screening~~UsedByGraph module~mod_calc_screening mod_calc_screening module~mod_post_processing_3g_single_structure mod_post_processing_3g_single_structure module~mod_post_processing_3g_single_structure->module~mod_calc_screening module~mod_post_processing_4g_single_structure mod_post_processing_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_calc_screening module~mod_predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure module~mod_predict_qeq_feature_calculator_single_structure->module~mod_calc_screening module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_calc_screening module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_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_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_predict_qeq_feature_calculator_single_structure 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_predict_qeq_feature_calculator_single_structure module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode->module~mod_train_loop_short_range module~mod_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_generic_interface mod_generic_interface module~mod_generic_interface->module~mod_predict_single_structure module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_predict_multiple_structures program~runner RuNNer program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_train_mode program~runner->module~mod_predict_mode module~mod_feature_calc_interface mod_feature_calc_interface module~mod_feature_calc_interface->module~mod_generic_interface module~mod_train_loop_atomic_property->module~mod_output_files_and_cost

Procedures Summary

Name Type Description
calc_screening Subroutine Calculates the energy and force corrections due to screening. If start of screening goes to...
calc_screening_self_interaction Subroutine Calculate the self-interaction contribution of Gaussian charges.

Procedure Details

subroutine calc_screening

subroutine calc_screening( &
    struct, &
    neighbor_list, &
    charges, &
    sigma, &
    energy, &
    forces, &
    de_dq, &
    de_dstrain &
)

Calculates the energy and force corrections due to screening.

If start of screening goes to infinity, the energy becomes the negative of the total electrostatic energy for point charges for Gaussian charges the self interaction remains

Arguments

  • struct : type(Structure) [in]– The structure for which we calculate the electrostatic screening.
  • neighbor_list : type(FeatureMapNeighborList) [in]– Neighbor list that is based on the cutoff function used for screening.
  • charges : real(DP) (dim: (struct%num_atoms)) [in]
  • sigma : real(DP) (dim: (struct%num_atoms)) [in]
  • energy : real(DP) [out]
  • forces : real(DP) (dim: (3,struct%num_atoms)) [out]
  • de_dq : real(DP) (dim: (struct%num_atoms)) [out]
  • de_dstrain : real(DP) (dim: (3,3)) [out]

Called By

proc~~calc_screening~~CalledByGraph proc~calc_screening mod_calc_screening::calc_screening 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~calc_screening 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~calc_screening proc~post_processing_4g_single_structure mod_post_processing_4g_single_structure::post_processing_4g_single_structure proc~post_processing_4g_single_structure->proc~calc_screening proc~runner_interface_calc_screening mod_runner_interface_bindings::runner_interface_calc_screening proc~runner_interface_calc_screening->proc~calc_screening 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~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure 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~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_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_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~post_processing_wrapper_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~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~post_processing_wrapper_single_structure 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_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~predict_all_chunks->proc~predict_multiple_structures proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~predict_multiple_structures proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_short_range proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_mode->proc~train_loop_atomic_property proc~train_loop_atomic_property->proc~output_files_and_cost program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine calc_screening_self_interaction

subroutine calc_screening_self_interaction( &
    num_atoms, &
    charges, &
    sigma, &
    energy, &
    de_dq &
)

Calculate the self-interaction contribution of Gaussian charges.

Arguments

  • num_atoms : integer [in]– The number of atoms who carry a Gaussian-augmented charge. In an MD run, this should only be the number of actual atoms which reside on the process, excluding ghost atoms.
  • charges : real(DP) (dim: (num_atoms)) [in]– The nominal value of the Gaussian charge on each atom.
  • sigma : real(DP) (dim: (num_atoms)) [in]– The width of the Gaussian centered at each atom. If the first Gaussian width is 0 or smaller, all atoms will be treated as point charges who do not have a self-interaction contribution.
  • energy : real(DP) [inout]
  • de_dq : real(DP) (dim: (num_atoms)) [inout]

Called By

proc~~calc_screening_self_interaction~~CalledByGraph proc~calc_screening_self_interaction mod_calc_screening::calc_screening_self_interaction proc~calc_screening mod_calc_screening::calc_screening proc~calc_screening->proc~calc_screening_self_interaction 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~calc_screening 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~calc_screening proc~post_processing_4g_single_structure mod_post_processing_4g_single_structure::post_processing_4g_single_structure proc~post_processing_4g_single_structure->proc~calc_screening proc~runner_interface_calc_screening mod_runner_interface_bindings::runner_interface_calc_screening proc~runner_interface_calc_screening->proc~calc_screening 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~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure 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~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_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_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~post_processing_wrapper_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~predict_single_structure mod_predict_single_structure::predict_single_structure proc~predict_single_structure->proc~post_processing_wrapper_single_structure 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_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_all_chunks mod_predict_all_chunks::predict_all_chunks proc~predict_all_chunks->proc~predict_multiple_structures proc~predict_mode mod_predict_mode::predict_mode proc~predict_mode->proc~predict_multiple_structures proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~predict_single_structure proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_short_range proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_mode->proc~train_loop_atomic_property proc~train_loop_atomic_property->proc~output_files_and_cost program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode