mod_training_charge_equilibration
Lines: 306 |
Visibility: public
Contains subroutines, functions and types that can be used to calculate
electrostatics, charge equilibration and all the derivatives. This is useful
for training when the properties of the same system is calculated often.
author: Moritz Gubler
Dependencies
Uses
module~~mod_training_charge_equilibration~~UsesGraph
module~mod_training_charge_equilibration
mod_training_charge_equilibration
module~mod_abstract_electrostatics
mod_abstract_electrostatics
module~mod_training_charge_equilibration->module~mod_abstract_electrostatics
module~mod_cross_matrix
mod_cross_matrix
module~mod_training_charge_equilibration->module~mod_cross_matrix
module~mod_data_container
mod_data_container
module~mod_training_charge_equilibration->module~mod_data_container
module~mod_ewald_summation
mod_ewald_summation
module~mod_training_charge_equilibration->module~mod_ewald_summation
module~mod_linalg
mod_linalg
module~mod_training_charge_equilibration->module~mod_linalg
module~mod_optional_args
mod_optional_args
module~mod_training_charge_equilibration->module~mod_optional_args
module~mod_pair_electrostatics
mod_pair_electrostatics
module~mod_training_charge_equilibration->module~mod_pair_electrostatics
module~mod_precision
mod_precision
module~mod_training_charge_equilibration->module~mod_precision
module~mod_structures
mod_structures
module~mod_training_charge_equilibration->module~mod_structures
module~mod_abstract_electrostatics->module~mod_precision
module~mod_abstract_electrostatics->module~mod_structures
module~mod_cross_matrix->module~mod_linalg
module~mod_cross_matrix->module~mod_precision
module~mod_data_container->module~mod_precision
module~mod_io
mod_io
module~mod_data_container->module~mod_io
module~mod_throw
mod_throw
module~mod_data_container->module~mod_throw
module~mod_ewald_summation->module~mod_abstract_electrostatics
module~mod_ewald_summation->module~mod_linalg
module~mod_ewald_summation->module~mod_pair_electrostatics
module~mod_ewald_summation->module~mod_precision
module~mod_constants
mod_constants
module~mod_ewald_summation->module~mod_constants
module~mod_neighbor_grid
mod_neighbor_grid
module~mod_ewald_summation->module~mod_neighbor_grid
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_linalg->module~mod_precision
module~cublas_wrapper
cublas_wrapper
module~mod_linalg->module~cublas_wrapper
module~mod_settings
mod_settings
module~mod_linalg->module~mod_settings
module~mod_linalg->module~mod_throw
module~mod_pair_electrostatics->module~mod_abstract_electrostatics
module~mod_pair_electrostatics->module~mod_precision
module~mod_pair_electrostatics->module~mod_constants
module~mod_pair_electrostatics->module~mod_throw
iso_c_binding
iso_c_binding
module~mod_precision->iso_c_binding
iso_fortran_env
iso_fortran_env
module~mod_precision->iso_fortran_env
module~mod_structures->module~mod_linalg
module~mod_structures->module~mod_precision
module~mod_array_helpers
mod_array_helpers
module~mod_structures->module~mod_array_helpers
module~mod_structures->module~mod_constants
module~mod_mpi
mod_mpi
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~cublas_wrapper->iso_c_binding
module~cublas_wrapper->module~mod_settings
module~mod_array_helpers->module~mod_precision
module~mod_array_helpers->module~mod_throw
module~mod_constants->module~mod_precision
module~mod_constants->iso_c_binding
module~mod_io->module~mod_optional_args
module~mod_io->module~mod_precision
module~mod_io->iso_fortran_env
module~mod_mpi->module~mod_precision
mpi_f08
mpi_f08
module~mod_mpi->mpi_f08
module~mod_neighbor_grid->module~mod_precision
module~mod_neighbor_grid->module~mod_mpi
module~mod_neighbor_grid->module~mod_neighborlist_helper
module~mod_neighbor_grid->module~mod_structures_helper
module~mod_dynamic_int_array
mod_dynamic_int_array
module~mod_neighbor_grid->module~mod_dynamic_int_array
module~mod_neighborlist_helper->module~mod_linalg
module~mod_neighborlist_helper->module~mod_precision
module~mod_neighborlist_helper->module~mod_mpi
module~mod_outer_product->module~mod_linalg
module~mod_outer_product->module~mod_precision
module~mod_periodic_table->module~mod_precision
module~mod_periodic_table->module~mod_array_helpers
module~mod_periodic_table->module~mod_constants
module~mod_periodic_table->module~mod_io
module~mod_periodic_table->module~mod_throw
module~mod_settings->module~mod_precision
module~mod_settings->module~mod_constants
module~mod_settings->module~mod_io
module~mod_settings->module~mod_periodic_table
module~mod_settings->module~mod_throw
module~mod_cpu_vendor
mod_cpu_vendor
module~mod_settings->module~mod_cpu_vendor
module~mod_structures_helper->module~mod_linalg
module~mod_structures_helper->module~mod_precision
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_cpu_vendor->iso_c_binding
module~mod_sort->module~mod_precision
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_training_charge_equilibration~~UsedByGraph
module~mod_training_charge_equilibration
mod_training_charge_equilibration
module~mod_calculate_coulomb_matrix
mod_calculate_coulomb_matrix
module~mod_calculate_coulomb_matrix->module~mod_training_charge_equilibration
module~mod_dataset_statistics
mod_dataset_statistics
module~mod_dataset_statistics->module~mod_training_charge_equilibration
module~mod_dataset_statistics_chi_all_chunks
mod_dataset_statistics_chi_all_chunks
module~mod_dataset_statistics_chi_all_chunks->module~mod_training_charge_equilibration
module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics
module~mod_global_feature_calculator
mod_global_feature_calculator
module~mod_global_feature_calculator->module~mod_training_charge_equilibration
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_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_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_predict_4g_charges_training_qeq_multiple_structures
module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_training_charge_equilibration
module~mod_structure_batch_iterator
mod_structure_batch_iterator
module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator
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_training_charge_equilibration
module~mod_qeq_feature_calculator
mod_qeq_feature_calculator
module~mod_predict_qeq_feature_calculator_single_structure->module~mod_qeq_feature_calculator
module~mod_qeq_feature_calculator->module~mod_training_charge_equilibration
module~mod_qeq_feature_calculator->module~mod_global_feature_calculator
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_loop_4g_charges
mod_train_loop_4g_charges
module~mod_train_loop_4g_charges->module~mod_training_charge_equilibration
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_initialize
mod_initialize
module~mod_train_loop_4g_charges->module~mod_initialize
module~mod_train_loop_4g_charges->module~mod_cost_calculator
module~mod_train_mode
mod_train_mode
module~mod_train_mode->module~mod_training_charge_equilibration
module~mod_train_mode->module~mod_dataset_statistics
module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks
module~mod_train_mode->module~mod_global_feature_calculator
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_qeq_feature_calculator
module~mod_train_mode->module~mod_train_loop_4g_charges
module~mod_ee4g_feature_calculator
mod_ee4g_feature_calculator
module~mod_train_mode->module~mod_ee4g_feature_calculator
module~mod_feature_map_scaling_all_chunks
mod_feature_map_scaling_all_chunks
module~mod_train_mode->module~mod_feature_map_scaling_all_chunks
module~mod_train_mode->module~mod_initialize
module~mod_predict_ee4g_feature_calculator_multiple_structures
mod_predict_ee4g_feature_calculator_multiple_structures
module~mod_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures
module~mod_predict_qeq_feature_calculator_multiple_structures
mod_predict_qeq_feature_calculator_multiple_structures
module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures
module~mod_train_loop_short_range
mod_train_loop_short_range
module~mod_train_mode->module~mod_train_loop_short_range
module~mod_train_loop_atomic_property
mod_train_loop_atomic_property
module~mod_train_mode->module~mod_train_loop_atomic_property
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_ee4g_feature_calculator->module~mod_global_feature_calculator
module~mod_enforce_reading
mod_enforce_reading
module~mod_enforce_reading->module~mod_global_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_global_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator
module~mod_global_features_helper
mod_global_features_helper
module~mod_global_features_helper->module~mod_global_feature_calculator
module~mod_initialize->module~mod_qeq_feature_calculator
module~mod_initialize->module~mod_ee4g_feature_calculator
module~mod_output_files_and_cost_4g_short_range
mod_output_files_and_cost_4g_short_range
module~mod_output_files_and_cost_4g_short_range->module~mod_global_feature_calculator
module~mod_predict_4g_short_range_training_qeq_multiple_structures
mod_predict_4g_short_range_training_qeq_multiple_structures
module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures
module~mod_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_precompute_global_features_all_chunks
mod_precompute_global_features_all_chunks
module~mod_precompute_global_features_all_chunks->module~mod_qeq_feature_calculator
module~mod_precompute_global_features_all_chunks->module~mod_ee4g_feature_calculator
module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures
module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures
module~mod_predict_4g_no_force_trick_single_structure
mod_predict_4g_no_force_trick_single_structure
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_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_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_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_global_feature_calculator
module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator
module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator
module~mod_predict_mode
mod_predict_mode
module~mod_predict_mode->module~mod_qeq_feature_calculator
module~mod_predict_mode->module~mod_ee4g_feature_calculator
module~mod_predict_mode->module~mod_enforce_reading
module~mod_predict_mode->module~mod_initialize
module~mod_predict_multiple_structures
mod_predict_multiple_structures
module~mod_predict_mode->module~mod_predict_multiple_structures
module~mod_write_outfiles
mod_write_outfiles
module~mod_predict_mode->module~mod_write_outfiles
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_runner_interface_bindings
mod_runner_interface_bindings
module~mod_runner_interface_bindings->module~mod_qeq_feature_calculator
module~mod_runner_interface_bindings->module~mod_enforce_reading
module~mod_runner_interface_bindings->module~mod_global_features_helper
module~mod_runner_interface_bindings->module~mod_initialize
module~mod_evaluate_4g_single_structure
mod_evaluate_4g_single_structure
module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure
module~mod_runner_interface
mod_runner_interface
module~mod_runner_interface_bindings->module~mod_runner_interface
module~mod_structure_batch_iterator->module~mod_global_feature_calculator
module~mod_structure_batch_iterator->module~mod_global_features_helper
module~mod_train_loop_short_range->module~mod_global_feature_calculator
module~mod_train_loop_short_range->module~mod_qeq_feature_calculator
module~mod_train_loop_short_range->module~mod_ee4g_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_output_files_and_cost_4g_short_range
module~mod_train_loop_short_range->module~mod_predict_ee4g_feature_calculator_multiple_structures
module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures
module~mod_output_files_and_cost
mod_output_files_and_cost
module~mod_train_loop_short_range->module~mod_output_files_and_cost
module~mod_train_energy_multiple_structures
mod_train_energy_multiple_structures
module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures
module~mod_train_forces_multiple_structures
mod_train_forces_multiple_structures
module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures
module~mod_train_loop_short_range->module~mod_cost_calculator
program~runner
RuNNer
program~runner->module~mod_calculate_coulomb_matrix
program~runner->module~mod_qeq_feature_calculator
program~runner->module~mod_train_mode
program~runner->module~mod_ee4g_feature_calculator
program~runner->module~mod_initialize
program~runner->module~mod_precompute_global_features_all_chunks
program~runner->module~mod_predict_mode
module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator
module~mod_lammps_interface
mod_lammps_interface
module~mod_lammps_interface->module~mod_runner_interface_bindings
module~mod_lammps_interface->module~mod_runner_interface
module~mod_output_files_and_cost->module~mod_ee4g_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_post_processing_4g_single_structure
mod_post_processing_4g_single_structure
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_wrapper_single_structure
mod_post_processing_wrapper_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_ee4g_feature_calculator
module~mod_post_processing_wrapper_single_structure->module~mod_global_features_helper
module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure
module~mod_predict_multiple_structures->module~mod_ee4g_feature_calculator
module~mod_predict_multiple_structures->module~mod_structure_batch_iterator
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_ee4g_feature_calculator
module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure
module~mod_runner_interface->module~mod_ee4g_feature_calculator
module~mod_train_energy_multiple_structures->module~mod_initialize
module~mod_train_forces_multiple_structures->module~mod_initialize
module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures
module~mod_train_loop_atomic_property->module~mod_initialize
module~mod_train_loop_atomic_property->module~mod_output_files_and_cost
module~mod_train_loop_atomic_property->module~mod_cost_calculator
module~mod_write_outfiles->module~mod_initialize
module~mod_feature_calc_interface
mod_feature_calc_interface
module~mod_feature_calc_interface->module~mod_runner_interface
module~mod_generic_interface
mod_generic_interface
module~mod_feature_calc_interface->module~mod_generic_interface
module~mod_generic_interface->module~mod_predict_single_structure
module~mod_generic_interface->module~mod_runner_interface
module~mod_predict_all_chunks->module~mod_predict_multiple_structures
module~mod_write_outfiles_training->module~mod_write_outfiles
module~mod_cost_calculator->module~mod_write_outfiles_training
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.
Derived Types Summary
Name
Description
TrainingChargeEquilibrator
Stores coulomb matrix, its inverse and its derivative with respect to positions in a sparse...
Procedures Summary
Name
Type
Description
get_data
Function
Returns all the data in a matrix needed to create the object again.
compute_charge
Function
Return charge equilibration charge of atom i.
compute_charges
Function
Returns charge equilibration charges of all atoms
compute_chis
Function
Returns the electronegativities of all atoms for a given set of charges.
get_memory_usage
Function
Returns the memory usage of the object in bytes.
dqi_drj
Function
Returns the derivative of charge of atom with charge_index with respect to atom with atom_pos_index
get_electric_energy
Function
Returns the electrostatic energy.
get_electric_force
Function
Calculates electrostatic force. Does not include any dq/dr correction.
get_de_dcharges
Function
Computes derivative of electric energy with respect to charges. Puts charges on constraint first...
dcharge_dchi
Function
Returns derivative of charge equilibration charges with respect to electronegativity
dcharge_i_d_hardness_j
Function
Returns the derivative of charge equilibration charge with respect to hardness
free
Subroutine
initialize_from_arrays
Subroutine
Initialize routine chooses wether to calculate or load the coulomb matrices.
initialize_from_structure
Subroutine
Initialize type from structure type. See initialize_from_arrays for more information.
initialize_from_arrays_calc
Subroutine
Initialize type from structure. Matrices are calculated and stored internally. For larger...
initialize_with_data
Subroutine
Initialize class with data matrix obtained from get_data function of this class.
initialize_from_arrays_file
Subroutine
Initialize class with data matrix obtained from file.
update_inverse
Subroutine
Derived Types Details
type TrainingChargeEquilibrator
Stores coulomb matrix, its inverse and its derivative with respect to
positions in a sparse matrix format. After initialization, all
electrostatic and charge equilibration properties can be calculated
for arbitrary charges and electronegativities quickly (Assuming positions
and lattice do not change).
Components
coul_matrix :
real (DP) (dim: (:,:))– Coulomb matrix. Does not contain hardness
coul_hardness_inv :
real (DP) (dim: (:,:))– Inverse coulomb Matrix. Contains hardess. Currently, their hardness
cannot be changed after initialization.
Dimension is nat+1, nat+1
da_dr :
type (CrossMatrix ) (dim: (:,:))– array of length (3, n_at) containing all the derivatives of the
Coulomb matrix A. Sored as sparse cross matrix.
Dimension is nat+1, nat+1
nat :
integer – Number of atoms
total_charge :
real (DP)– Total charge
work1 :
real (DP) (dim: (:))– Work arrays of length nat+1.
work2 :
real (DP) (dim: (:))– Work arrays of length nat+1.
initialized :
logical
Type-Bound Procedures
Name
Attributes
Binding
initialize
public
⇒ initialize_from_arrays⇒ initialize_from_structure
initialize_from_arrays_calc
private
⇒ initialize_from_arrays_calc
initialize_from_arrays_file
private
⇒ initialize_from_arrays_file
initialize_from_structure
private
⇒ initialize_from_structure
initialize_from_arrays
private
⇒ initialize_from_arrays
compute_charge
public
⇒ compute_charge
compute_charges
public
⇒ compute_charges
compute_chis
public
⇒ compute_chis
dqi_drj
public
⇒ dqi_drj
get_memory_usage
public
⇒ get_memory_usage
get_electric_energy
public
⇒ get_electric_energy
get_de_dcharges
public
⇒ get_de_dcharges
get_electric_force
public
⇒ get_electric_force
dcharge_dchi
public
⇒ dcharge_dchi
get_data
public
⇒ get_data
initialize_with_data
public
⇒ initialize_with_data
dcharge_i_d_hardness_j
public
⇒ dcharge_i_d_hardness_j
free
public
⇒ free
update_inverse
public
⇒ update_inverse
Inherits
type~~trainingchargeequilibrator~~InheritsGraph
type~trainingchargeequilibrator
TrainingChargeEquilibrator
type~crossmatrix
CrossMatrix
type~trainingchargeequilibrator->type~crossmatrix
da_dr
Nodes of different colours represent the following:
Graph Key
Type
Type
This Page's Entity
This Page's Entity
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Inherited By
type~~trainingchargeequilibrator~~InheritedByGraph
type~trainingchargeequilibrator
TrainingChargeEquilibrator
type~qeqfeaturecalculator
QEqFeatureCalculator
type~qeqfeaturecalculator->type~trainingchargeequilibrator
qeq
Nodes of different colours represent the following:
Graph Key
Type
Type
This Page's Entity
This Page's Entity
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Procedure Details
function get_data
function get_data ( & self &)
Returns all the data in a matrix needed to create the object again.
Arguments
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.
function compute_charge
function compute_charge ( & self, & iat, & electronegativities, & total_charge &)
Return charge equilibration charge of atom i.
Arguments
self :
class (TrainingChargeEquilibrator ) [in]
iat :
integer [in]– Index of atom i.
electronegativities :
real (DP) (dim: (self%nat)) [in]– Electronegativities of all atoms
total_charge :
real (DP) [in]– Total charge of the structure to which atom i belongs.
function compute_charges
function compute_charges ( & self, & electronegativities, & total_charge &)
Returns charge equilibration charges of all atoms
Arguments
self :
class (TrainingChargeEquilibrator ) [inout]
electronegativities :
real (DP) (dim: (self%nat)) [in]– Electronegativities of all atoms
total_charge :
real (DP) [in]
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.
function compute_chis
function compute_chis ( & self, & charges, & hardnesses &)
Returns the electronegativities of all atoms for a given set of charges.
Arguments
self :
class (TrainingChargeEquilibrator ) [inout]
charges :
real (DP) (dim: (self%nat)) [in]
hardnesses :
real (DP) (dim: (self%nat)) [in]
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.
function get_memory_usage
function get_memory_usage ( & self &)
Returns the memory usage of the object in bytes.
Arguments
function dqi_drj
function dqi_drj ( & self, & charge_index, & atom_pos_index, & d_chi_drj, & d_hardness_drj, & charges &)
Returns the derivative of charge of atom with charge_index with respect to atom with
atom_pos_index
Arguments
self :
class (TrainingChargeEquilibrator ) [in]
charge_index :
integer [in]– Index of atom to which the charge belongs
atom_pos_index :
integer [in]– Index of the atom that is used to differentiate
d_chi_drj :
real (DP) (dim: (3,self%nat)) [in]– derivative of electronegativity with respect to position
d_hardness_drj :
real (DP) (dim: (3,self%nat)) [in]– derivative of hardness with respect to position
charges :
real (DP) (dim: (self%nat)) [in]– Charge equilibration charges.
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.
function get_electric_energy
function get_electric_energy ( & self, & charges, & total_charge &)
Returns the electrostatic energy.
Arguments
self :
class (TrainingChargeEquilibrator ) [inout]
charges :
real (DP) (dim: (self%nat)) [inout]– Atomic charges
total_charge :
real (DP) [in]
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.
function get_electric_force
function get_electric_force ( & self, & charges, & atom_index, & total_charge &)
Calculates electrostatic force. Does not include any dq/dr correction.
Arguments
self :
class (TrainingChargeEquilibrator ) [in]
charges :
real (DP) (dim: (self%nat)) [inout]– Atomic charges
atom_index :
integer [in]– Index of the force that should be returned
total_charge :
real (DP) [in]
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.
function get_de_dcharges
function get_de_dcharges ( & self, & charges, & total_charge &)
Computes derivative of electric energy with respect to charges.
Puts charges on constraint first to reproduce behaviour of electrostatic calculator.
Charges obtained using the charge equilibration are already on the charge constraint
manifold.
Arguments
self :
class (TrainingChargeEquilibrator ) [inout]
charges :
real (DP) (dim: (self%nat)) [inout]– Atomic charges
total_charge :
real (DP) [in]
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.
function dcharge_dchi
function dcharge_dchi ( & self, & charge_index, & chi_index &)
Returns derivative of charge equilibration charges with respect to electronegativity
Arguments
self :
class (TrainingChargeEquilibrator ) [in]
charge_index :
integer [in]– Index of atomic charge
chi_index :
integer [in]– Index of electronegativity
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.
function dcharge_i_d_hardness_j
function dcharge_i_d_hardness_j ( & self, & charges, & charge_index, & hardness_index &)
Returns the derivative of charge equilibration charge with respect to hardness
Arguments
self :
class (TrainingChargeEquilibrator )
charges :
real (DP) (dim: (self%nat)) [in]– Atomic charges
charge_index :
integer [in]– Iddex of atomic charge
hardness_index :
integer [in]– Index of hardness
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 free
subroutine free ( & self &)
Arguments
subroutine initialize_from_arrays
subroutine initialize_from_arrays ( & self, & nat, & pos, & lperiodic, & lat, & sigma, & hardness, & electrostatic_precision, & file_coul_mat, & struc_id, & load_coul_mat &)
Initialize routine chooses wether to calculate or load the coulomb matrices.
Arguments
self :
class (TrainingChargeEquilibrator ) [out]
nat :
integer [in]
pos :
real (DP) (dim: (3,nat)) [in]
lperiodic :
logical [in]
lat :
real (DP) (dim: (3,3)) [in]
sigma :
real (DP) (dim: (nat)) [in]– standard deviation of gaussian charge densities
hardness :
real (DP) (dim: (nat)) [in]– Element specific hardnesses of all atoms.
electrostatic_precision :
real (DP) [in]– Electrostatic precision.
file_coul_mat :
type (DataCont ) [inout]– File object with coulomb matrix and its inverse
struc_id :
integer [in]– Global structure ID of the structure to be loaded
load_coul_mat :
logical [in]– Flag if should be loaded or not
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 initialize_from_structure
subroutine initialize_from_structure ( & self, & struct, & sigma, & hardness, & electrostatic_precision &)
Initialize type from structure type.
See initialize_from_arrays for more information.
Arguments
self :
class (TrainingChargeEquilibrator ) [out]
struct :
type (Structure ) [in]
sigma :
real (DP) (dim: (struct%num_atoms)) [in]– standard deviation of gaussian charge densities
hardness :
real (DP) (dim: (struct%num_atoms)) [in]– Element specific hardnesses of all atoms.
electrostatic_precision :
real (DP) [in]– Electrostatic precision.
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 initialize_from_arrays_calc
subroutine initialize_from_arrays_calc ( & self, & nat, & pos, & lperiodic, & lat, & sigma, & hardness, & electrostatic_precision &)
Initialize type from structure. Matrices are calculated and stored internally.
For larger systems, this might take a while. This object can only be used
for the structure that was given in this constructor. Also, the
positions and lattice vectors must not change.
A change in atomic charges and electronegativites is ok.
Arguments
self :
class (TrainingChargeEquilibrator ) [out]
nat :
integer [in]
pos :
real (DP) (dim: (3,nat)) [in]
lperiodic :
logical [in]
lat :
real (DP) (dim: (3,3)) [in]
sigma :
real (DP) (dim: (nat)) [in]– standard deviation of gaussian charge densities
hardness :
real (DP) (dim: (nat)) [in]– Element specific hardnesses of all atoms.
electrostatic_precision :
real (DP) [in]– Electrostatic precision.
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 initialize_with_data
subroutine initialize_with_data ( & self, & data_matrix, & num_atoms &)
Initialize class with data matrix obtained from get_data function of this class.
Arguments
self :
class (TrainingChargeEquilibrator ) [out]
data_matrix :
real (DP) (dim: (num_atoms+1,num_atoms+1,5)) [in]– Data matrix obtained from get_data.
num_atoms :
integer [in]– Number of atoms
subroutine initialize_from_arrays_file
subroutine initialize_from_arrays_file ( & self, & num_atoms, & file_coul_mat, & hardness, & struc_id &)
Initialize class with data matrix obtained from file.
Arguments
self :
class (TrainingChargeEquilibrator ) [out]
num_atoms :
integer [in]– Number of atoms
file_coul_mat :
type (DataCont ) [inout]
hardness :
real (DP) (dim: (num_atoms)) [in]
struc_id :
integer [in]
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 update_inverse
subroutine update_inverse ( & self, & hardness &)
Arguments
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.