Skip to content

mod_ee4g_feature_calculator

Lines: 261 | Visibility: private

Implements the ee4GFeatureCalculator Author: Moritz R. Schaefer

Dependencies

Uses

module~~mod_ee4g_feature_calculator~~UsesGraph module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_constants mod_constants module~mod_ee4g_feature_calculator->module~mod_constants module~mod_feature_map_neighborlist mod_feature_map_neighborlist module~mod_ee4g_feature_calculator->module~mod_feature_map_neighborlist module~mod_global_feature_calculator mod_global_feature_calculator module~mod_ee4g_feature_calculator->module~mod_global_feature_calculator module~mod_inputnn mod_inputnn module~mod_ee4g_feature_calculator->module~mod_inputnn module~mod_io mod_io module~mod_ee4g_feature_calculator->module~mod_io module~mod_outer_product mod_outer_product module~mod_ee4g_feature_calculator->module~mod_outer_product module~mod_path mod_path module~mod_ee4g_feature_calculator->module~mod_path module~mod_periodic_table mod_periodic_table module~mod_ee4g_feature_calculator->module~mod_periodic_table module~mod_precision mod_precision module~mod_ee4g_feature_calculator->module~mod_precision module~mod_settings mod_settings module~mod_ee4g_feature_calculator->module~mod_settings module~mod_sort mod_sort module~mod_ee4g_feature_calculator->module~mod_sort module~mod_structures mod_structures module~mod_ee4g_feature_calculator->module~mod_structures module~mod_throw mod_throw module~mod_ee4g_feature_calculator->module~mod_throw module~mod_constants->module~mod_precision iso_c_binding iso_c_binding module~mod_constants->iso_c_binding module~mod_feature_map_neighborlist->module~mod_constants module~mod_feature_map_neighborlist->module~mod_io module~mod_feature_map_neighborlist->module~mod_precision module~mod_feature_map_neighborlist->module~mod_structures module~mod_feature_map_neighborlist->module~mod_throw module~mod_abstract_cutoff_function mod_abstract_cutoff_function module~mod_feature_map_neighborlist->module~mod_abstract_cutoff_function module~mod_mpi mod_mpi module~mod_feature_map_neighborlist->module~mod_mpi module~mod_neighborlist mod_neighborlist module~mod_feature_map_neighborlist->module~mod_neighborlist module~mod_timer mod_timer module~mod_feature_map_neighborlist->module~mod_timer module~mod_global_feature_calculator->module~mod_io module~mod_global_feature_calculator->module~mod_periodic_table 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_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_statistics_container mod_statistics_container module~mod_global_feature_calculator->module~mod_statistics_container module~mod_training_charge_equilibration mod_training_charge_equilibration module~mod_global_feature_calculator->module~mod_training_charge_equilibration 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_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_outer_product->module~mod_precision module~mod_linalg mod_linalg module~mod_outer_product->module~mod_linalg module~mod_path->module~mod_io module~mod_periodic_table->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_array_helpers mod_array_helpers module~mod_periodic_table->module~mod_array_helpers module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_settings->module~mod_constants module~mod_settings->module~mod_io module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_precision 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_structures->module~mod_constants module~mod_structures->module~mod_periodic_table module~mod_structures->module~mod_precision module~mod_structures->module~mod_throw module~mod_structures->module~mod_array_helpers module~mod_structures->module~mod_linalg module~mod_structures->module~mod_mpi 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->module~mod_sort module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_mpi 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_cutoff_function->module~mod_precision module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_cpu_vendor->iso_c_binding module~mod_data_container->module~mod_io module~mod_data_container->module~mod_precision module~mod_data_container->module~mod_throw 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_periodic_table 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_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_neighborlist->module~mod_io module~mod_neighborlist->module~mod_precision module~mod_neighborlist->module~mod_settings module~mod_neighborlist->module~mod_structures module~mod_neighborlist->module~mod_throw module~mod_neighborlist->module~mod_mpi module~mod_dynamic_double_array mod_dynamic_double_array module~mod_neighborlist->module~mod_dynamic_double_array module~mod_dynamic_int_array mod_dynamic_int_array module~mod_neighborlist->module~mod_dynamic_int_array module~mod_neighbor_grid mod_neighbor_grid module~mod_neighborlist->module~mod_neighbor_grid module~mod_neighborlist_helper mod_neighborlist_helper module~mod_neighborlist->module~mod_neighborlist_helper module~mod_statistics_container->module~mod_constants module~mod_statistics_container->module~mod_io module~mod_statistics_container->module~mod_periodic_table module~mod_statistics_container->module~mod_precision module~mod_statistics_container->module~mod_throw module~mod_statistics_container->module~mod_mpi 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~mod_timer->module~mod_io module~mod_timer->module~mod_precision module~mod_timer->module~mod_throw module~mod_timer->module~mod_optional_args ieee_arithmetic ieee_arithmetic module~mod_timer->ieee_arithmetic module~mod_training_charge_equilibration->module~mod_precision module~mod_training_charge_equilibration->module~mod_structures module~mod_training_charge_equilibration->module~mod_data_container module~mod_training_charge_equilibration->module~mod_linalg module~mod_training_charge_equilibration->module~mod_optional_args 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_ewald_summation mod_ewald_summation module~mod_training_charge_equilibration->module~mod_ewald_summation module~mod_pair_electrostatics mod_pair_electrostatics module~mod_training_charge_equilibration->module~mod_pair_electrostatics module~cublas_wrapper->module~mod_settings module~cublas_wrapper->iso_c_binding module~mod_abstract_electrostatics->module~mod_precision module~mod_abstract_electrostatics->module~mod_structures module~mod_cross_matrix->module~mod_precision module~mod_cross_matrix->module~mod_linalg module~mod_dynamic_double_array->module~mod_precision module~mod_dynamic_double_array->module~mod_throw module~mod_ewald_summation->module~mod_constants module~mod_ewald_summation->module~mod_outer_product module~mod_ewald_summation->module~mod_precision module~mod_ewald_summation->module~mod_linalg module~mod_ewald_summation->module~mod_abstract_electrostatics module~mod_ewald_summation->module~mod_neighbor_grid module~mod_ewald_summation->module~mod_neighborlist_helper module~mod_ewald_summation->module~mod_pair_electrostatics 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_dynamic_int_array module~mod_neighbor_grid->module~mod_neighborlist_helper module~mod_neighborlist_helper->module~mod_precision module~mod_neighborlist_helper->module~mod_linalg module~mod_neighborlist_helper->module~mod_mpi module~mod_pair_electrostatics->module~mod_constants module~mod_pair_electrostatics->module~mod_precision module~mod_pair_electrostatics->module~mod_throw module~mod_pair_electrostatics->module~mod_abstract_electrostatics 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_ee4g_feature_calculator~~UsedByGraph module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator module~mod_initialize mod_initialize module~mod_initialize->module~mod_ee4g_feature_calculator module~mod_output_files_and_cost mod_output_files_and_cost module~mod_output_files_and_cost->module~mod_ee4g_feature_calculator 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_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_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_ee4g_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_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_ee4g_feature_calculator 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_ee4g_feature_calculator 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 mod_runner_interface module~mod_runner_interface->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_train_loop_short_range->module~mod_predict_ee4g_feature_calculator_multiple_structures 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_ee4g_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_train_loop_short_range module~mod_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_loop_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_ee4g_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_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_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_predict_all_chunks->module~mod_predict_multiple_structures 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

Module Variables

  • EE4G_CHARGE_FILE_NAME : character
  • EE4G_FEATURE_DERIVATIVE_FILE_NAME : character
  • EE4G_SCALING_FILE_NAME : character
  • EE4G_FEAT_NAME : character– Constant for the name of the feature handled by the `EE4GFeatureCalculator`.
  • TWO_OVER_SQRT_PI : real(DP)

Derived Types Summary

Name Description
EE4GFeatureCalculator

Procedures Summary

Name Type Description
constructor_from_file Function
v_over_qj Function
eval_ee4g_feature_calculator Subroutine Note: this scales as O(N_atoms^2 * N_neighbors) due to the charge derivatives which is quite...
calc_scaled_v_and_derivatives Subroutine Calc scaled feature values and their derivatives wrt the atomic charges. Meant to be called...
chain_de_dv_to_de_dq Subroutine
chain_de_dv_geom_to_forces Subroutine
geometric_contribution Subroutine

Derived Types Details

type EE4GFeatureCalculator

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
  • neighbor_list_idx : integer
  • atomic_number_to_ielem : integer (dim: (MAX_ELEM_NUM))
  • point_charges : logical
  • atomic_numbers : integer (dim: (:))
  • sqrt2_gamma : real(DP) (dim: (:,:))

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_ee4g_feature_calculator
calc_scaled_v_and_derivatives public ⇒ calc_scaled_v_and_derivatives
chain_de_dv_to_de_dq public ⇒ chain_de_dv_to_de_dq
chain_de_dv_geom_to_forces public ⇒ chain_de_dv_geom_to_forces
v_over_qj private ⇒ v_over_qj
geometric_contribution private ⇒ geometric_contribution

Inherits

type~~ee4gfeaturecalculator~~InheritsGraph type~ee4gfeaturecalculator EE4GFeatureCalculator type~globalfeaturecalculator GlobalFeatureCalculator type~ee4gfeaturecalculator->type~globalfeaturecalculator type~globalatomicdescriptor GlobalAtomicDescriptor type~globalfeaturecalculator->type~globalatomicdescriptor desc type~globalfeaturestatistics GlobalFeatureStatistics type~globalfeaturecalculator->type~globalfeaturestatistics statistics type~statisticscontainer StatisticsContainer type~globalfeaturestatistics->type~statisticscontainer statistics

Inherited By

type~~ee4gfeaturecalculator~~InheritedByGraph type~ee4gfeaturecalculator EE4GFeatureCalculator type~runnerinterface RuNNerInterface type~runnerinterface->type~ee4gfeaturecalculator ee4g_calc

Interface Details

interface EE4GFeatureCalculator


Procedure Details

function constructor_from_file

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

Arguments

  • lines : character (dim: (:)) [in]
  • id_committee : integer [in]
  • num_committee_members : integer [in]
  • atomic_numbers : integer (dim: (:)) [in]
  • sigma : real(DP) (dim: (size(atomic_numbers))) [in]

Called By

proc~~constructor_from_file~~CalledByGraph proc~constructor_from_file mod_ee4g_feature_calculator::constructor_from_file interface~ee4gfeaturecalculator mod_ee4g_feature_calculator::EE4GFeatureCalculator interface~ee4gfeaturecalculator->proc~constructor_from_file

function v_over_qj

function v_over_qj( &
    self, &
    nl, &
    ineigh, &
    iielem, &
    jjelem &
)

Arguments

Called By

proc~~v_over_qj~~CalledByGraph proc~v_over_qj mod_ee4g_feature_calculator::EE4GFeatureCalculator%v_over_qj proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~v_over_qj proc~predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures->proc~eval_ee4g_feature_calculator 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_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks->proc~predict_ee4g_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_ee4g_feature_calculator_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine eval_ee4g_feature_calculator

subroutine eval_ee4g_feature_calculator( &
    self, &
    calc_v, &
    calc_dv_dr, &
    struct, &
    idx_struct, &
    neighbor_lists, &
    q, &
    dq_dr &
)

Note: this scales as O(N_atoms^2 * N_neighbors) due to the charge derivatives which is quite expensive. However, this is only needed during force training since we utilize the force-trick during prediction. There might be room for optimizations here.

Arguments

  • self : class(EE4GFeatureCalculator) [inout]
  • calc_v : logical [in]
  • calc_dv_dr : logical [in]
  • struct : type(Structure) [in]
  • idx_struct : integer [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]– Note: Distances stored are assumed to be non-zero
  • q : real(DP) (dim: (struct%num_local_atoms)) [in]
  • dq_dr : real(DP) (dim: (3,struct%num_atoms,struct%num_local_atoms)) [in]

Called By

proc~~eval_ee4g_feature_calculator~~CalledByGraph proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures->proc~eval_ee4g_feature_calculator 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_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks->proc~predict_ee4g_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_ee4g_feature_calculator_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine calc_scaled_v_and_derivatives

subroutine calc_scaled_v_and_derivatives( &
    self, &
    struct, &
    neighbor_lists, &
    q, &
    v, &
    v_scaled, &
    scaled_dv_dq_neigh, &
    scaled_partial_v_partial_r_neigh &
)

Calc scaled feature values and their derivatives wrt the atomic charges.

Meant to be called during a prediction. It is necessary that the scaling factor was already set/computed. TODO: check if the compiler vectorizes this correctly.

Arguments

  • self : class(EE4GFeatureCalculator) [in]
  • struct : type(Structure) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • q : real(DP) (dim: (struct%num_local_atoms)) [in]
  • v : real(DP) (dim: (self%num_features,struct%num_local_atoms)) [out]– Electrostatically embedded atomic potentials (neither scaled nor centered).
  • v_scaled : real(DP) (dim: (:,:)) [out]– Scaled and centered `v`, DIMENSION(num_features, num_local_atoms)
  • scaled_dv_dq_neigh : real(DP) (dim: (:)) [out]
  • scaled_partial_v_partial_r_neigh : real(DP) (dim: (:,:)) [out]– dimension(3, edges)

Called By

proc~~calc_scaled_v_and_derivatives~~CalledByGraph proc~calc_scaled_v_and_derivatives mod_ee4g_feature_calculator::EE4GFeatureCalculator%calc_scaled_v_and_derivatives proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~calc_scaled_v_and_derivatives proc~runner_interface_short_range_4g mod_runner_interface_bindings::runner_interface_short_range_4g proc~runner_interface_short_range_4g->proc~calc_scaled_v_and_derivatives 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 chain_de_dv_to_de_dq

subroutine chain_de_dv_to_de_dq( &
    self, &
    struct, &
    neighbor_lists, &
    de_dv, &
    scaled_dv_dq_neigh, &
    de_dq &
)

Arguments

  • self : class(EE4GFeatureCalculator) [in]
  • struct : type(Structure) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • de_dv : real(DP) (dim: (self%num_features,struct%num_local_atoms)) [in]
  • scaled_dv_dq_neigh : real(DP) (dim: (:)) [in]
  • de_dq : real(DP) (dim: (struct%num_atoms)) [inout]

Called By

proc~~chain_de_dv_to_de_dq~~CalledByGraph proc~chain_de_dv_to_de_dq mod_ee4g_feature_calculator::EE4GFeatureCalculator%chain_de_dv_to_de_dq proc~calculate_short_range_de_dq_4g_single_structure mod_evaluate_4g_single_structure::calculate_short_range_de_dq_4g_single_structure proc~calculate_short_range_de_dq_4g_single_structure->proc~chain_de_dv_to_de_dq 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_short_range_de_dq_4g_single_structure proc~runner_interface_short_range_4g mod_runner_interface_bindings::runner_interface_short_range_4g proc~runner_interface_short_range_4g->proc~calculate_short_range_de_dq_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 chain_de_dv_geom_to_forces

subroutine chain_de_dv_geom_to_forces( &
    self, &
    struct, &
    neighbor_lists, &
    de_dv, &
    scaled_partial_v_partial_r_neigh, &
    do_forces, &
    do_stress, &
    forces, &
    de_dstrain &
)

Arguments

  • self : class(EE4GFeatureCalculator) [in]
  • struct : type(Structure) [in]
  • neighbor_lists : type(FeatureMapNeighborList) (dim: (:)) [in]
  • de_dv : real(DP) (dim: (self%num_features,struct%num_local_atoms)) [in]– w.r.t. *scaled* v
  • scaled_partial_v_partial_r_neigh : real(DP) (dim: (:,:)) [in]
  • do_forces : logical [in]
  • do_stress : logical [in]
  • forces : real(DP) (dim: (3,struct%num_atoms)) [inout]
  • de_dstrain : real(DP) (dim: (3,3)) [inout]

Called By

proc~~chain_de_dv_geom_to_forces~~CalledByGraph proc~chain_de_dv_geom_to_forces mod_ee4g_feature_calculator::EE4GFeatureCalculator%chain_de_dv_geom_to_forces proc~post_processing_4g_single_structure mod_post_processing_4g_single_structure::post_processing_4g_single_structure proc~post_processing_4g_single_structure->proc~chain_de_dv_geom_to_forces proc~runner_interface_evaluate_electrostatics_4g_part_2 mod_runner_interface_bindings::runner_interface_evaluate_electrostatics_4g_part_2 proc~runner_interface_evaluate_electrostatics_4g_part_2->proc~chain_de_dv_geom_to_forces 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

subroutine geometric_contribution

subroutine geometric_contribution( &
    self, &
    iielem, &
    ifeat, &
    xyz_rel, &
    dfc_dxyz_ineigh, &
    r_ij, &
    f_cut, &
    jat, &
    q_j, &
    phi, &
    partial_v_partial_r_neigh &
)

Arguments

  • self : class(EE4GFeatureCalculator) [in]
  • iielem : integer [in]
  • ifeat : integer [in]
  • xyz_rel : real(DP) [in]
  • dfc_dxyz_ineigh : real(DP) [in]
  • r_ij : real(DP) [in]
  • f_cut : real(DP) [in]
  • jat : integer [in]
  • q_j : real(DP) [in]
  • phi : real(DP) [out]
  • partial_v_partial_r_neigh : real(DP) (dim: (3)) [out]

Called By

proc~~geometric_contribution~~CalledByGraph proc~geometric_contribution mod_ee4g_feature_calculator::EE4GFeatureCalculator%geometric_contribution proc~calc_scaled_v_and_derivatives mod_ee4g_feature_calculator::EE4GFeatureCalculator%calc_scaled_v_and_derivatives proc~calc_scaled_v_and_derivatives->proc~geometric_contribution proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~geometric_contribution proc~post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure::post_processing_wrapper_single_structure proc~post_processing_wrapper_single_structure->proc~calc_scaled_v_and_derivatives proc~predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures->proc~eval_ee4g_feature_calculator proc~runner_interface_short_range_4g mod_runner_interface_bindings::runner_interface_short_range_4g proc~runner_interface_short_range_4g->proc~calc_scaled_v_and_derivatives 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_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks->proc~predict_ee4g_feature_calculator_multiple_structures 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~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~predict_ee4g_feature_calculator_multiple_structures proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~train_loop_short_range->proc~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_mode mod_train_mode::train_mode proc~train_mode->proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~train_mode->proc~train_loop_short_range proc~train_mode->proc~predict_all_chunks proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_mode->proc~train_loop_atomic_property program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~predict_mode program~runner->proc~train_mode proc~train_loop_atomic_property->proc~output_files_and_cost