Skip to content

mod_qeq_feature_calculator

Lines: 83 | Visibility: private

Implements the QEqFeatureCalculator Author: Moritz R. Schaefer

Dependencies

Uses

module~~mod_qeq_feature_calculator~~UsesGraph module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_global_feature_calculator mod_global_feature_calculator module~mod_qeq_feature_calculator->module~mod_global_feature_calculator module~mod_inputnn mod_inputnn module~mod_qeq_feature_calculator->module~mod_inputnn module~mod_io mod_io module~mod_qeq_feature_calculator->module~mod_io module~mod_path mod_path module~mod_qeq_feature_calculator->module~mod_path module~mod_precision mod_precision module~mod_qeq_feature_calculator->module~mod_precision module~mod_settings mod_settings module~mod_qeq_feature_calculator->module~mod_settings module~mod_structures mod_structures module~mod_qeq_feature_calculator->module~mod_structures module~mod_throw mod_throw module~mod_qeq_feature_calculator->module~mod_throw module~mod_training_charge_equilibration mod_training_charge_equilibration module~mod_qeq_feature_calculator->module~mod_training_charge_equilibration module~mod_global_feature_calculator->module~mod_io module~mod_global_feature_calculator->module~mod_precision module~mod_global_feature_calculator->module~mod_structures module~mod_global_feature_calculator->module~mod_throw module~mod_global_feature_calculator->module~mod_training_charge_equilibration module~mod_data_container mod_data_container module~mod_global_feature_calculator->module~mod_data_container module~mod_free mod_free module~mod_global_feature_calculator->module~mod_free module~mod_global_atomic_descriptor mod_global_atomic_descriptor module~mod_global_feature_calculator->module~mod_global_atomic_descriptor module~mod_global_feature_statistics mod_global_feature_statistics module~mod_global_feature_calculator->module~mod_global_feature_statistics module~mod_optional_args mod_optional_args module~mod_global_feature_calculator->module~mod_optional_args module~mod_periodic_table mod_periodic_table module~mod_global_feature_calculator->module~mod_periodic_table module~mod_statistics_container mod_statistics_container module~mod_global_feature_calculator->module~mod_statistics_container module~mod_inputnn->module~mod_io module~mod_inputnn->module~mod_throw module~mod_abstract_broadcast_file mod_abstract_broadcast_file module~mod_inputnn->module~mod_abstract_broadcast_file module~mod_mpi mod_mpi module~mod_inputnn->module~mod_mpi module~mod_io->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env module~mod_io->module~mod_optional_args module~mod_path->module~mod_io iso_c_binding iso_c_binding module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_settings->module~mod_io module~mod_settings->module~mod_precision module~mod_settings->module~mod_throw module~mod_constants mod_constants module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_settings->module~mod_periodic_table module~mod_structures->module~mod_precision module~mod_structures->module~mod_throw module~mod_array_helpers mod_array_helpers 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_structures->module~mod_mpi module~mod_structures->module~mod_periodic_table module~mod_structures_helper mod_structures_helper module~mod_structures->module~mod_structures_helper module~mod_throw->module~mod_io module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_training_charge_equilibration->module~mod_precision module~mod_training_charge_equilibration->module~mod_structures 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_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_training_charge_equilibration->module~mod_linalg 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_abstract_broadcast_file->module~mod_io module~mod_abstract_broadcast_file->module~mod_throw module~mod_abstract_broadcast_file->module~mod_mpi module~mod_genericfile mod_genericfile module~mod_abstract_broadcast_file->module~mod_genericfile module~mod_sanitize mod_sanitize module~mod_abstract_broadcast_file->module~mod_sanitize module~mod_abstract_electrostatics->module~mod_precision module~mod_abstract_electrostatics->module~mod_structures 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_cpu_vendor->iso_c_binding module~mod_cross_matrix->module~mod_precision module~mod_cross_matrix->module~mod_linalg module~mod_data_container->module~mod_io module~mod_data_container->module~mod_precision module~mod_data_container->module~mod_throw module~mod_ewald_summation->module~mod_precision module~mod_ewald_summation->module~mod_abstract_electrostatics module~mod_ewald_summation->module~mod_constants module~mod_ewald_summation->module~mod_linalg module~mod_ewald_summation->module~mod_pair_electrostatics 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_free->module~mod_precision module~mod_global_atomic_descriptor->module~mod_precision module~mod_global_atomic_descriptor->module~mod_optional_args module~mod_global_feature_statistics->module~mod_io module~mod_global_feature_statistics->module~mod_precision module~mod_global_feature_statistics->module~mod_throw module~mod_global_feature_statistics->module~mod_free module~mod_global_feature_statistics->module~mod_periodic_table module~mod_global_feature_statistics->module~mod_statistics_container module~mod_statisticsfile mod_statisticsfile module~mod_global_feature_statistics->module~mod_statisticsfile module~mod_linalg->module~mod_precision module~mod_linalg->module~mod_settings module~mod_linalg->module~mod_throw module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_pair_electrostatics->module~mod_precision module~mod_pair_electrostatics->module~mod_throw module~mod_pair_electrostatics->module~mod_abstract_electrostatics module~mod_pair_electrostatics->module~mod_constants module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_constants module~mod_sort->module~mod_precision module~mod_statistics_container->module~mod_io module~mod_statistics_container->module~mod_precision module~mod_statistics_container->module~mod_throw module~mod_statistics_container->module~mod_constants module~mod_statistics_container->module~mod_mpi module~mod_statistics_container->module~mod_periodic_table module~mod_table mod_table module~mod_statistics_container->module~mod_table module~mod_structures_helper->module~mod_precision module~mod_structures_helper->module~mod_linalg module~cublas_wrapper->module~mod_settings module~cublas_wrapper->iso_c_binding module~mod_genericfile->module~mod_io module~mod_genericfile->module~mod_throw module~mod_genericfile->module~mod_mpi 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_neighborlist_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_precision module~mod_neighborlist_helper->module~mod_linalg module~mod_neighborlist_helper->module~mod_mpi module~mod_outer_product->module~mod_precision module~mod_outer_product->module~mod_linalg module~mod_sanitize->module~mod_throw module~mod_statisticsfile->module~mod_abstract_broadcast_file module~mod_statisticsfile->module~mod_mpi module~mod_statisticsfile->module~mod_statistics_container module~mod_table->module~mod_io module~mod_table->module~mod_precision module~mod_table->module~mod_throw module~mod_decorations mod_decorations module~mod_table->module~mod_decorations module~mod_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_decorations->module~mod_throw

Used By

module~~mod_qeq_feature_calculator~~UsedByGraph module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator module~mod_initialize mod_initialize module~mod_initialize->module~mod_qeq_feature_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_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->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_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_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_qeq_feature_calculator module~mod_predict_mode->module~mod_initialize 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_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_qeq_feature_calculator_single_structure->module~mod_qeq_feature_calculator 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_initialize module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_qeq_feature_calculator module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_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_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_cost_calculator mod_cost_calculator module~mod_train_loop_short_range->module~mod_cost_calculator 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_qeq_feature_calculator module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode->module~mod_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_qeq_feature_calculator program~runner->module~mod_initialize program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode program~runner->module~mod_train_mode module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings 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_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_cost_calculator module~mod_train_loop_atomic_property->module~mod_output_files_and_cost 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->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator

Module Variables

  • QEQ_CHARGE_FILE_NAME : character
  • QEQ_FEATURE_DERIVATIVE_FILE_NAME : character
  • QEQ_SCALING_FILE_NAME : character
  • QEQ_FEAT_NAME : character– Constant for the name of the feature handled by the `QEqFeatureCalculator`.

Derived Types Summary

Name Description
QEqFeatureCalculator

Procedures Summary

Name Type Description
constructor_from_file Function
eval_qeq_feature_calculator Subroutine

Derived Types Details

type QEqFeatureCalculator

Components

  • feat_name : character– Name of the global feature map that is handled by this `GlobalFeatureCalculator`. – Inherited from GlobalFeatureCalculator
  • read_feature : logical– Flag to indicate whether the global features should be read from disk instead of being computed. Handled by the `evaluate` routine. – Inherited from GlobalFeatureCalculator
  • read_feature_derivative : logical– Flag to indicate whether the global feature derivatives should be read from disk instead of being computed. Handled by the `evaluate` routine. – Inherited from GlobalFeatureCalculator
  • computed_feature : logical– Flag to indicate whether the global features have been computed/read from disk. This is set to `.true.` after the `evaluate` routine has been called and the global features have been computed or read from disk. – Inherited from GlobalFeatureCalculator
  • computed_feature_derivative : logical– Flag to indicate whether the global feature derivatives have been computed/read from disk. This is set to `.true.` after the `evaluate` routine has been called and the global feature derivatives have been computed or read from disk. – Inherited from GlobalFeatureCalculator
  • atomic_numbers_set : logical– Flag to indicate whether the atomic numbers have been set. – Inherited from GlobalFeatureCalculator
  • use_old_scaling : logical– Flag to indicate whether the old scaling method should be used. – Inherited from GlobalFeatureCalculator
  • desc : type(GlobalAtomicDescriptor) (dim: (:))– Type which stores the global/extra features and their derivatives for each structure. Dimensions(num_global_feature_maps, num_structures). – Inherited from GlobalFeatureCalculator
  • num_features : integer– The number of global features per atom that at are stored/computed/read by this type. – Inherited from GlobalFeatureCalculator
  • statistics : type(GlobalFeatureStatistics)– Type holding the scaling_factor and centering_subtrahend. It also provides the necessary routines to compute, store, readn and write the statistics. – Inherited from GlobalFeatureCalculator
  • qeq : type(TrainingChargeEquilibrator)

Type-Bound Procedures

Name Attributes Binding
initialize public ⇒ init_global_feature_calculator
reset public ⇒ reset_global_feature_calculator
write_feature_to_file public ⇒ write_feature_to_file
write_feature_derivative_to_file public ⇒ write_feature_derivative_to_file
pack public ⇒ pack_all⇒ pack_one
pack_all public ⇒ pack_all
pack_one public ⇒ pack_one
pack_derivatives public ⇒ pack_all_deriv⇒ pack_one_deriv
pack_all_deriv public ⇒ pack_all_deriv
pack_one_deriv public ⇒ pack_one_deriv
read_feature_from_file public ⇒ read_feature_from_file
read_feature_derivative_from_file public ⇒ read_feature_derivative_from_file
compute_statistics public ⇒ compute_statistics
set_features_from_flat_array public ⇒ set_features_from_flat_array
allocate_atomic_list public ⇒ allocate_atomic_list
free_feature_derivatives public ⇒ free_feature_derivatives
prepare_evaluate_parent public ⇒ prepare_evaluate_parent
get_full_file_path_feature public ⇒ get_full_file_path_feature
get_full_file_path_feature_derivative public ⇒ get_full_file_path_feature_derivative
get_atomic_number public ⇒ get_atomic_number
evaluate public ⇒ eval_qeq_feature_calculator

Inherits

type~~qeqfeaturecalculator~~InheritsGraph type~qeqfeaturecalculator QEqFeatureCalculator type~globalfeaturecalculator GlobalFeatureCalculator type~qeqfeaturecalculator->type~globalfeaturecalculator type~trainingchargeequilibrator TrainingChargeEquilibrator type~qeqfeaturecalculator->type~trainingchargeequilibrator qeq type~globalatomicdescriptor GlobalAtomicDescriptor type~globalfeaturecalculator->type~globalatomicdescriptor desc type~globalfeaturestatistics GlobalFeatureStatistics type~globalfeaturecalculator->type~globalfeaturestatistics statistics type~crossmatrix CrossMatrix type~trainingchargeequilibrator->type~crossmatrix da_dr type~statisticscontainer StatisticsContainer type~globalfeaturestatistics->type~statisticscontainer statistics

Interface Details

interface QEqFeatureCalculator


Procedure Details

function constructor_from_file

function constructor_from_file( &
    lines, &
    id_committee, &
    num_committee_members &
)

Arguments

  • lines : character (dim: (:)) [in]
  • id_committee : integer [in]
  • num_committee_members : integer [in]

Called By

proc~~constructor_from_file~2~~CalledByGraph proc~constructor_from_file~2 mod_qeq_feature_calculator::constructor_from_file interface~qeqfeaturecalculator mod_qeq_feature_calculator::QEqFeatureCalculator interface~qeqfeaturecalculator->proc~constructor_from_file~2

subroutine eval_qeq_feature_calculator

subroutine eval_qeq_feature_calculator( &
    self, &
    calc_q, &
    calc_dq_dr, &
    calc_coulomb_matrix, &
    struct, &
    idx_struct, &
    sigma, &
    prec, &
    total_charge, &
    chi, &
    dchi_dr, &
    dhardness_dr, &
    hardness &
)

Arguments

  • self : class(QEqFeatureCalculator) [inout]
  • calc_q : logical [in]
  • calc_dq_dr : logical [in]
  • calc_coulomb_matrix : logical [in]
  • struct : type(Structure) [in]
  • idx_struct : integer [in]
  • sigma : real(DP) (dim: (struct%num_atoms)) [in]– Standard deviation of gaussian charge densities.
  • prec : real(DP) [in]– Requested precision for electrostatic properties.
  • total_charge : real(DP) [in]– The desired sum of all atomic charges. Must only be given if properties are not read from file or already precomputed.
  • chi : real(DP) (dim: (struct%num_atoms)) [in]– Electronegativity of all atoms. Must only be given if properties are not read from file or already precomputed.
  • dchi_dr : real(DP) (dim: (3,struct%num_atoms,struct%num_atoms)) [in]– Derivative of the electronegativities `chi` with respect to the atomic positions of all other atoms in the system.
  • dhardness_dr : real(DP) (dim: (3,struct%num_atoms,struct%num_atoms)) [in]– Derivative of the hardness with respect to the atomic positions of all other atoms in the system. This is only relevant if the hardness was predicted by an environmnet-dependent model like a HDNN. For an elemental hardness, this term is 0.0 .
  • hardness : real(DP) (dim: (struct%num_atoms)) [in]– Hardnesses values for all atoms. Must only be given if properties are not read from file or already precomputed.

Called By

proc~~eval_qeq_feature_calculator~~CalledByGraph proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_feature_calculator proc~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure proc~predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure::predict_4g_no_force_trick_single_structure proc~predict_4g_no_force_trick_single_structure->proc~predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode