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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.