Skip to content

mod_abstract_charge_equilibration

Lines: 169 | Visibility: private

Abstract parent type for all charge equilibration schemes. author: Jonas A. Finkler

Dependencies

Uses

module~~mod_abstract_charge_equilibration~~UsesGraph module~mod_abstract_charge_equilibration mod_abstract_charge_equilibration module~mod_abstract_electrostatics mod_abstract_electrostatics module~mod_abstract_charge_equilibration->module~mod_abstract_electrostatics module~mod_periodic_table mod_periodic_table module~mod_abstract_charge_equilibration->module~mod_periodic_table module~mod_precision mod_precision module~mod_abstract_charge_equilibration->module~mod_precision module~mod_structures mod_structures module~mod_abstract_charge_equilibration->module~mod_structures module~mod_abstract_electrostatics->module~mod_precision module~mod_abstract_electrostatics->module~mod_structures module~mod_periodic_table->module~mod_precision module~mod_array_helpers mod_array_helpers module~mod_periodic_table->module~mod_array_helpers module~mod_constants mod_constants module~mod_periodic_table->module~mod_constants module~mod_io mod_io module~mod_periodic_table->module~mod_io module~mod_throw mod_throw module~mod_periodic_table->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_periodic_table module~mod_structures->module~mod_precision module~mod_structures->module~mod_array_helpers module~mod_structures->module~mod_constants module~mod_linalg mod_linalg module~mod_structures->module~mod_linalg module~mod_mpi mod_mpi module~mod_structures->module~mod_mpi module~mod_structures_helper mod_structures_helper module~mod_structures->module~mod_structures_helper module~mod_structures->module~mod_throw 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_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_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~cublas_wrapper->iso_c_binding module~cublas_wrapper->module~mod_settings module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_precision module~mod_settings->module~mod_constants module~mod_settings->module~mod_io 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_abstract_charge_equilibration~~UsedByGraph module~mod_abstract_charge_equilibration mod_abstract_charge_equilibration module~mod_abstract_iterative_charge_equilibration mod_abstract_iterative_charge_equilibration module~mod_abstract_iterative_charge_equilibration->module~mod_abstract_charge_equilibration module~mod_direct_charge_equilibration mod_direct_charge_equilibration module~mod_direct_charge_equilibration->module~mod_abstract_charge_equilibration module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_abstract_charge_equilibration module~mod_initialize mod_initialize module~mod_initialize->module~mod_abstract_charge_equilibration module~mod_initialize->module~mod_direct_charge_equilibration module~mod_iterative_charge_equilibration_cg mod_iterative_charge_equilibration_cg module~mod_initialize->module~mod_iterative_charge_equilibration_cg module~mod_iterative_charge_equilibration_sqnm mod_iterative_charge_equilibration_sqnm module~mod_initialize->module~mod_iterative_charge_equilibration_sqnm module~mod_output_files_and_cost mod_output_files_and_cost module~mod_output_files_and_cost->module~mod_abstract_charge_equilibration module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_cost_calculator mod_cost_calculator module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_post_processing_4g_single_structure mod_post_processing_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_abstract_charge_equilibration 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_abstract_charge_equilibration 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_all_chunks mod_predict_all_chunks module~mod_predict_all_chunks->module~mod_abstract_charge_equilibration module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_abstract_charge_equilibration module~mod_predict_mode->module~mod_initialize 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_multiple_structures->module~mod_abstract_charge_equilibration 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_abstract_charge_equilibration module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_runner_interface mod_runner_interface module~mod_runner_interface->module~mod_abstract_charge_equilibration module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_abstract_charge_equilibration module~mod_train_loop_short_range->module~mod_initialize 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 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_abstract_charge_equilibration module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training program~runner RuNNer program~runner->module~mod_abstract_charge_equilibration program~runner->module~mod_initialize program~runner->module~mod_predict_mode program~runner->module~mod_train_mode 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_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_iterative_charge_equilibration_cg->module~mod_abstract_iterative_charge_equilibration module~mod_iterative_charge_equilibration_sqnm->module~mod_abstract_iterative_charge_equilibration module~mod_lammps_interface mod_lammps_interface 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_runner_interface_bindings->module~mod_evaluate_4g_single_structure module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_runner_interface 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_4g_charges->module~mod_initialize module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges 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_write_outfiles_training->module~mod_write_outfiles module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator

Derived Types Summary

Name Description
AbstractChargeEquilibrator

Procedures Summary

Name Type Description
initialize_private Subroutine Initializes the ChargeEquilibrator and other internal things Precision of the electrostatic solver
set_hardness Subroutine
set_charges Subroutine
update_structure Subroutine
set_zero_charge_and_lagrange_charge Subroutine Set charges and lagrange charges to zero as the initial guess for any solver. This may/should be...
compute_charges Subroutine Do the charge equilibration to compute the charges. The resulting charges are stored on the...
compute_dcharge_delectronegativity Subroutine @todo Come up with something similar to the force trick for the loss derivative
compute_dcharge_dhardness Subroutine
get_lagrange_charges Subroutine Calculate supplementary Lagrangian charges for the force trick. Before calling this subroutine...

Derived Types Details

type AbstractChargeEquilibrator

Components

Type-Bound Procedures

Name Attributes Binding
initialize_private public ⇒ initialize_private
compute_charges public ⇒ compute_charges
compute_dcharge_delectronegativity public ⇒ compute_dcharge_delectronegativity
compute_dcharge_dhardness public ⇒ compute_dcharge_dhardness
set_hardness public ⇒ set_hardness
set_charges public ⇒ set_charges
get_lagrange_charges public ⇒ get_lagrange_charges
update_structure public ⇒ update_structure
make_initial_charge_guess public ⇒ set_zero_charge_and_lagrange_charge
solve_linear_system public ⇒ solve_linear_system
initialize public ⇒ initialize

Inherits

type~~abstractchargeequilibrator~~InheritsGraph type~abstractchargeequilibrator AbstractChargeEquilibrator type~abstractelectrostaticscalculator AbstractElectrostaticsCalculator type~abstractchargeequilibrator->type~abstractelectrostaticscalculator elec_calc

Inherited By

type~~abstractchargeequilibrator~~InheritedByGraph type~abstractchargeequilibrator AbstractChargeEquilibrator type~abstractiterativechargeequilibrator AbstractIterativeChargeEquilibrator type~abstractiterativechargeequilibrator->type~abstractchargeequilibrator type~directchargeequilibrator DirectChargeEquilibrator type~directchargeequilibrator->type~abstractchargeequilibrator type~runnerinterface RuNNerInterface type~runnerinterface->type~abstractchargeequilibrator qeq_solver type~iterativecgchargeequilibrator IterativeCgChargeEquilibrator type~iterativecgchargeequilibrator->type~abstractiterativechargeequilibrator type~iterativesqnmchargeequilibrator IterativeSQNMChargeEquilibrator type~iterativesqnmchargeequilibrator->type~abstractiterativechargeequilibrator

Interface Details

interface solve_linear_system_abstract


interface initialize_abstract

Precision of the electrostatic solver


Procedure Details

subroutine initialize_private

subroutine initialize_private( &
    self, &
    num_atoms, &
    lperiodic, &
    pos, &
    lat, &
    elec_calc, &
    atomic_sigmas, &
    iter_tol, &
    electro_precision &
)

Initializes the ChargeEquilibrator and other internal things Precision of the electrostatic solver

Arguments

  • self : class(AbstractChargeEquilibrator) [out]
  • num_atoms : integer [in]
  • lperiodic : logical [in]
  • pos : real(DP) (dim: (3,num_atoms)) [in]
  • lat : real(DP) (dim: (3,3)) [in]
  • elec_calc : class(AbstractElectrostaticsCalculator) [in]
  • atomic_sigmas : real(DP) (dim: (num_atoms)) [in]
  • iter_tol : real(DP) [in]
  • electro_precision : real(DP) [in]– Tolerance of the iterative solver

Called By

proc~~initialize_private~~CalledByGraph proc~initialize_private mod_abstract_charge_equilibration::AbstractChargeEquilibrator%initialize_private proc~initialize_direct mod_direct_charge_equilibration::DirectChargeEquilibrator%initialize_direct proc~initialize_direct->proc~initialize_private proc~initialize_iterative mod_abstract_iterative_charge_equilibration::AbstractIterativeChargeEquilibrator%initialize_iterative proc~initialize_iterative->proc~initialize_private proc~analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues::analyse_a_prime_matrix_eigenvalues proc~analyse_a_prime_matrix_eigenvalues->proc~initialize_direct

subroutine set_hardness

subroutine set_hardness( &
    self, &
    hardness &
)

Arguments

Called By

proc~~set_hardness~~CalledByGraph proc~set_hardness mod_abstract_charge_equilibration::AbstractChargeEquilibrator%set_hardness proc~analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues::analyse_a_prime_matrix_eigenvalues proc~analyse_a_prime_matrix_eigenvalues->proc~set_hardness proc~calculate_charges_4g_single_structure mod_evaluate_4g_single_structure::calculate_charges_4g_single_structure proc~calculate_charges_4g_single_structure->proc~set_hardness 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~set_hardness 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~calculate_charges_4g_single_structure proc~post_processing_wrapper_single_structure->proc~post_processing_4g_single_structure proc~runner_interface_compute_charges_4g mod_runner_interface_bindings::runner_interface_compute_charges_4g proc~runner_interface_compute_charges_4g->proc~calculate_charges_4g_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~predict_multiple_structures mod_predict_multiple_structures::predict_multiple_structures proc~predict_multiple_structures->proc~post_processing_wrapper_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~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_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~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine set_charges

subroutine set_charges( &
    self, &
    charges &
)

Arguments

Called By

proc~~set_charges~~CalledByGraph proc~set_charges mod_abstract_charge_equilibration::AbstractChargeEquilibrator%set_charges proc~calculate_charges_4g_single_structure mod_evaluate_4g_single_structure::calculate_charges_4g_single_structure proc~calculate_charges_4g_single_structure->proc~set_charges proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~calculate_charges_4g_single_structure proc~runner_interface_compute_charges_4g mod_runner_interface_bindings::runner_interface_compute_charges_4g proc~runner_interface_compute_charges_4g->proc~calculate_charges_4g_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_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~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_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~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine update_structure

subroutine update_structure( &
    self, &
    pos, &
    lat, &
    charges &
)

Arguments

  • self : class(AbstractChargeEquilibrator) [inout]
  • pos : real(DP) (dim: (3,self%nat)) [in]
  • lat : real(DP) (dim: (3,3)) [in]
  • charges : real(DP) (dim: (self%nat)) [in]

Called By

proc~~update_structure~~CalledByGraph proc~update_structure mod_abstract_charge_equilibration::AbstractChargeEquilibrator%update_structure proc~reinitialize_electrostatics_interface mod_runner_interface::RuNNerInterface%reinitialize_electrostatics_interface proc~reinitialize_electrostatics_interface->proc~update_structure proc~predict_structure_interface mod_generic_interface::predict_structure_interface proc~predict_structure_interface->proc~reinitialize_electrostatics_interface proc~runner_interface_reinitialize_electrostatics mod_runner_interface_bindings::runner_interface_reinitialize_electrostatics proc~runner_interface_reinitialize_electrostatics->proc~reinitialize_electrostatics_interface

subroutine set_zero_charge_and_lagrange_charge

subroutine set_zero_charge_and_lagrange_charge( &
    self, &
    electronegativities, &
    total_charge &
)

Set charges and lagrange charges to zero as the initial guess for any solver. This may/should be overriden to a more sensible default by child classes.

Arguments

  • self : class(AbstractChargeEquilibrator) [inout]
  • electronegativities : real(DP) (dim: (self%nat)) [in]
  • total_charge : real(DP) [in]

Called By

proc~~set_zero_charge_and_lagrange_charge~~CalledByGraph proc~set_zero_charge_and_lagrange_charge mod_abstract_charge_equilibration::AbstractChargeEquilibrator%set_zero_charge_and_lagrange_charge proc~calculate_charges_4g_single_structure mod_evaluate_4g_single_structure::calculate_charges_4g_single_structure proc~calculate_charges_4g_single_structure->proc~set_zero_charge_and_lagrange_charge proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~calculate_charges_4g_single_structure proc~runner_interface_compute_charges_4g mod_runner_interface_bindings::runner_interface_compute_charges_4g proc~runner_interface_compute_charges_4g->proc~calculate_charges_4g_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_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~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_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~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine compute_charges

subroutine compute_charges( &
    self, &
    chis, &
    total_charge &
)

Do the charge equilibration to compute the charges.

The resulting charges are stored on the object as self%charges.

Arguments

Called By

proc~~compute_charges~2~~CalledByGraph proc~compute_charges~2 mod_abstract_charge_equilibration::AbstractChargeEquilibrator%compute_charges proc~calculate_charges_4g_single_structure mod_evaluate_4g_single_structure::calculate_charges_4g_single_structure proc~calculate_charges_4g_single_structure->proc~compute_charges~2 proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~calculate_charges_4g_single_structure proc~runner_interface_compute_charges_4g mod_runner_interface_bindings::runner_interface_compute_charges_4g proc~runner_interface_compute_charges_4g->proc~calculate_charges_4g_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_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~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_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~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~predict_mode program~runner->proc~train_mode

subroutine compute_dcharge_delectronegativity

subroutine compute_dcharge_delectronegativity( &
    self &
)

@todo Come up with something similar to the force trick for the loss derivative

Arguments


subroutine compute_dcharge_dhardness

subroutine compute_dcharge_dhardness( &
    self &
)

Arguments


subroutine get_lagrange_charges

subroutine get_lagrange_charges( &
    self, &
    de_dq &
)

Calculate supplementary Lagrangian charges for the force trick.

Before calling this subroutine the electrostatics calculator needs to be evaluated.

Arguments

  • self : class(AbstractChargeEquilibrator) [inout]
  • de_dq : real(DP) (dim: (self%nat)) [in]– partial derivative of total energy w.r.t. the atomic charges

Called By

proc~~get_lagrange_charges~~CalledByGraph proc~get_lagrange_charges mod_abstract_charge_equilibration::AbstractChargeEquilibrator%get_lagrange_charges 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~get_lagrange_charges 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~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~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_4g_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_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~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_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~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_all_chunks proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~predict_mode program~runner->proc~train_mode