Skip to content

mod_global_feature_calculator

Lines: 266 | Visibility: private

Module providing the GlobalFeatureCalculator type, see its documentation. author: Moritz R. Schaefer

Dependencies

Uses

module~~mod_global_feature_calculator~~UsesGraph module~mod_global_feature_calculator mod_global_feature_calculator 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_io mod_io module~mod_global_feature_calculator->module~mod_io 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_precision mod_precision module~mod_global_feature_calculator->module~mod_precision module~mod_statistics_container mod_statistics_container module~mod_global_feature_calculator->module~mod_statistics_container module~mod_structures mod_structures module~mod_global_feature_calculator->module~mod_structures module~mod_throw mod_throw module~mod_global_feature_calculator->module~mod_throw module~mod_training_charge_equilibration mod_training_charge_equilibration module~mod_global_feature_calculator->module~mod_training_charge_equilibration 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_optional_args module~mod_global_atomic_descriptor->module~mod_precision module~mod_global_feature_statistics->module~mod_free 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_statistics_container module~mod_global_feature_statistics->module~mod_throw module~mod_statisticsfile mod_statisticsfile module~mod_global_feature_statistics->module~mod_statisticsfile module~mod_io->module~mod_optional_args module~mod_io->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env 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_constants mod_constants module~mod_periodic_table->module~mod_constants iso_c_binding iso_c_binding module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env 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_constants module~mod_mpi mod_mpi module~mod_statistics_container->module~mod_mpi module~mod_table mod_table module~mod_statistics_container->module~mod_table 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_constants module~mod_linalg mod_linalg 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->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_data_container module~mod_training_charge_equilibration->module~mod_optional_args 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_ewald_summation mod_ewald_summation module~mod_training_charge_equilibration->module~mod_ewald_summation module~mod_training_charge_equilibration->module~mod_linalg module~mod_pair_electrostatics mod_pair_electrostatics module~mod_training_charge_equilibration->module~mod_pair_electrostatics 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_cross_matrix->module~mod_precision module~mod_cross_matrix->module~mod_linalg 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_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_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_sort->module~mod_precision module~mod_statisticsfile->module~mod_statistics_container module~mod_statisticsfile->module~mod_mpi module~mod_abstract_broadcast_file mod_abstract_broadcast_file module~mod_statisticsfile->module~mod_abstract_broadcast_file module~mod_structures_helper->module~mod_precision module~mod_structures_helper->module~mod_linalg 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~cublas_wrapper->iso_c_binding module~cublas_wrapper->module~mod_settings 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_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_decorations->module~mod_throw module~mod_neighbor_grid->module~mod_precision module~mod_neighbor_grid->module~mod_mpi module~mod_neighbor_grid->module~mod_structures_helper module~mod_neighbor_grid->module~mod_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_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_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_cpu_vendor->iso_c_binding module~mod_genericfile->module~mod_io module~mod_genericfile->module~mod_throw module~mod_genericfile->module~mod_mpi module~mod_sanitize->module~mod_throw

Used By

module~~mod_global_feature_calculator~~UsedByGraph module~mod_global_feature_calculator mod_global_feature_calculator module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_ee4g_feature_calculator->module~mod_global_feature_calculator module~mod_enforce_reading mod_enforce_reading module~mod_enforce_reading->module~mod_global_feature_calculator module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_global_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator module~mod_global_features_helper mod_global_features_helper module~mod_global_features_helper->module~mod_global_feature_calculator module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_output_files_and_cost_4g_short_range->module~mod_global_feature_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_cost_calculator mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator module~mod_predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_global_feature_calculator module~mod_predict_4g_no_force_trick_single_structure->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_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_4g_short_range_training_qeq_multiple_structures->module~mod_global_feature_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_global_feature_calculator module~mod_qeq_feature_calculator->module~mod_global_feature_calculator module~mod_structure_batch_iterator->module~mod_global_feature_calculator module~mod_structure_batch_iterator->module~mod_global_features_helper module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_global_feature_calculator module~mod_train_loop_short_range->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range->module~mod_global_features_helper module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_qeq_feature_calculator module~mod_initialize mod_initialize module~mod_train_loop_short_range->module~mod_initialize 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_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures 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_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_train_mode mod_train_mode module~mod_train_mode->module~mod_global_feature_calculator 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_qeq_feature_calculator module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_initialize module~mod_predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures 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_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks 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 module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_initialize->module~mod_ee4g_feature_calculator module~mod_initialize->module~mod_qeq_feature_calculator 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_output_files_and_cost->module~mod_cost_calculator module~mod_post_processing_4g_single_structure mod_post_processing_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_4g_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_wrapper_single_structure->module~mod_global_features_helper module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure module~mod_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_precompute_global_features_all_chunks->module~mod_qeq_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator 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_ee4g_feature_calculator module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_mode->module~mod_qeq_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_structure_batch_iterator module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_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_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_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_global_features_helper module~mod_runner_interface_bindings->module~mod_qeq_feature_calculator 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 program~runner RuNNer program~runner->module~mod_ee4g_feature_calculator program~runner->module~mod_qeq_feature_calculator program~runner->module~mod_train_mode program~runner->module~mod_initialize program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_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_lammps_interface->module~mod_runner_interface_bindings module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_output_files_and_cost_4g_charges->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_predict_all_chunks->module~mod_predict_multiple_structures 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_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_cost_calculator 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

Derived Types Summary

Name Description
GlobalFeatureCalculator Type to hold the global features (and their derivatives) of a structure. This is meant to hold...
GlobalFeatureCalculatorPtr Type holding a poymorphic pointer

Procedures Summary

Name Type Description
pack_all Function Get the scaled extra features for all atoms in one structure structure.
pack_one Function
pack_one_deriv Function Get the derivative of the extra features from one atom wrt another atom in the structure.
pack_all_deriv Function Get the derivative of the extra features from all atoms wrt all other atoms in the structure.
get_full_file_path_feature Function
get_full_file_path_feature_derivative Function
get_atomic_number Function Private
init_global_feature_calculator Subroutine
allocate_atomic_list Subroutine Allocate the atomic list for the global features for a given number of structures.
set_features_from_flat_array Subroutine Set the global features from a flat array.
reset_global_feature_calculator Subroutine Free all memory on this object and the underlying TrainingChargeEquilibrator. This sets the...
read_feature_from_file Subroutine Populate self%feature by reading values from a binary file on disk.
read_feature_derivative_from_file Subroutine Populate self%feature_derivative by reading values from a binary file on disk.
write_feature_to_file Subroutine Dump self%feature into a binary file on disk at a given id_struct.
write_feature_derivative_to_file Subroutine Dump self%feature_derivative into a binary file on disk at a given id_struct.
compute_statistics Subroutine Determine the scaling factor and centering subtrahend for the global features of the structure....
free_feature_derivatives Subroutine Free the feature derivatives of all structures. This is used to free the memory of the feature...
prepare_evaluate_parent Subroutine Prepare the evaluation of the global features and their derivatives This routine can be called...

Derived Types Details

type GlobalFeatureCalculator

Type to hold the global features (and their derivatives) of a structure.

This is meant to hold features that depend on each atom in the structure. examples are the charge neuron in a 4G-HDNNP or the local electrostatic potential of a ee4G-HDNNP (which still depend via the charge on all atoms in the structure). Note that this type does not provide an evaluate routine since the way a global feature is calculated might very a lot between different models. This type should hence only be used as container which can scale, read and write the global features computed by a child class or a subroutine which fills it.

Components

  • feat_name : character– Name of the global feature map that is handled by this `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.
  • 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.
  • 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.
  • 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.
  • atomic_numbers_set : logical– Flag to indicate whether the atomic numbers have been set.
  • use_old_scaling : logical– Flag to indicate whether the old scaling method should be used.
  • desc : type(GlobalAtomicDescriptor) (dim: (:))– Type which stores the global/extra features and their derivatives for each structure. Dimensions(num_global_feature_maps, num_structures).
  • num_features : integer– The number of global features per atom that at are stored/computed/read by this type.
  • 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.
  • num_structures : integer
  • file_path : character– Path under which the features, feature derivatives, and statistics file will be written/read.
  • filename_feature : character– Name of the file containing feature values. Also see file_path.
  • filename_feature_derivative : character– Name of the file containing feature derivative values. Also see file_path.
  • filename_statistics : character– Name of the file containing feature scaling information. Also see file_path.

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

Inherits

type~~globalfeaturecalculator~~InheritsGraph type~globalfeaturecalculator 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~~globalfeaturecalculator~~InheritedByGraph type~globalfeaturecalculator GlobalFeatureCalculator type~ee4gfeaturecalculator EE4GFeatureCalculator type~ee4gfeaturecalculator->type~globalfeaturecalculator type~globalfeaturecalculatorptr GlobalFeatureCalculatorPtr type~globalfeaturecalculatorptr->type~globalfeaturecalculator ptr type~qeqfeaturecalculator QEqFeatureCalculator type~qeqfeaturecalculator->type~globalfeaturecalculator type~runnerinterface RuNNerInterface type~runnerinterface->type~ee4gfeaturecalculator ee4g_calc

type GlobalFeatureCalculatorPtr

Type holding a poymorphic pointer

Components

  • ptr : class(GlobalFeatureCalculator) (dim: (:))– Pointer to a committee of `GlobalFeatureCalculator`s. This is used to pass polymorphic calculators around without copying them.

Inherits

type~~globalfeaturecalculatorptr~~InheritsGraph type~globalfeaturecalculatorptr GlobalFeatureCalculatorPtr type~globalfeaturecalculator GlobalFeatureCalculator type~globalfeaturecalculatorptr->type~globalfeaturecalculator ptr type~globalatomicdescriptor GlobalAtomicDescriptor type~globalfeaturecalculator->type~globalatomicdescriptor desc type~globalfeaturestatistics GlobalFeatureStatistics type~globalfeaturecalculator->type~globalfeaturestatistics statistics type~statisticscontainer StatisticsContainer type~globalfeaturestatistics->type~statisticscontainer statistics

Procedure Details

function pack_all

function pack_all( &
    self, &
    id_on_process_across_chunks_struc &
)

Get the scaled extra features for all atoms in one structure structure.

Arguments


function pack_one

function pack_one( &
    self, &
    id_on_process_across_chunks_struc, &
    id_in_struct &
)

Arguments

  • self : class(GlobalFeatureCalculator) [in]
  • id_on_process_across_chunks_struc : integer [in]
  • id_in_struct : integer [in]

Called By

proc~~pack_one~~CalledByGraph proc~pack_one mod_global_feature_calculator::GlobalFeatureCalculator%pack_one proc~pack_all mod_global_feature_calculator::GlobalFeatureCalculator%pack_all proc~pack_all->proc~pack_one

function pack_one_deriv

function pack_one_deriv( &
    self, &
    id_on_process_across_chunks_struc, &
    to, &
    from &
)

Get the derivative of the extra features from one atom wrt another atom in the structure.

Arguments

  • self : class(GlobalFeatureCalculator) [in]
  • id_on_process_across_chunks_struc : integer [in]
  • to : integer [in]
  • from : integer [in]

Called By

proc~~pack_one_deriv~~CalledByGraph proc~pack_one_deriv mod_global_feature_calculator::GlobalFeatureCalculator%pack_one_deriv none~pack_derivatives mod_global_feature_calculator::GlobalFeatureCalculator%pack_derivatives none~pack_derivatives->proc~pack_one_deriv proc~pack_all_deriv mod_global_feature_calculator::GlobalFeatureCalculator%pack_all_deriv none~pack_derivatives->proc~pack_all_deriv proc~pack_all_deriv->proc~pack_one_deriv proc~append_global_features_and_derivatives_struc_batch mod_global_features_helper::append_global_features_and_derivatives_struc_batch proc~append_global_features_and_derivatives_struc_batch->none~pack_derivatives proc~predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure::predict_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_single_structure->none~pack_derivatives 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_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_4g_short_range_training_qeq_single_structure proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~append_global_features_and_derivatives_struc_batch proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

function pack_all_deriv

function pack_all_deriv( &
    self, &
    id_on_process_across_chunks_struc &
)

Get the derivative of the extra features from all atoms wrt all other atoms in the structure.

Arguments

Called By

proc~~pack_all_deriv~~CalledByGraph proc~pack_all_deriv mod_global_feature_calculator::GlobalFeatureCalculator%pack_all_deriv none~pack_derivatives mod_global_feature_calculator::GlobalFeatureCalculator%pack_derivatives none~pack_derivatives->proc~pack_all_deriv proc~append_global_features_and_derivatives_struc_batch mod_global_features_helper::append_global_features_and_derivatives_struc_batch proc~append_global_features_and_derivatives_struc_batch->none~pack_derivatives proc~predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure::predict_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_single_structure->none~pack_derivatives 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_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_4g_short_range_training_qeq_single_structure proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~append_global_features_and_derivatives_struc_batch proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

function get_full_file_path_feature

function get_full_file_path_feature( &
    self &
)

Arguments

Called By

proc~~get_full_file_path_feature~~CalledByGraph proc~get_full_file_path_feature mod_global_feature_calculator::GlobalFeatureCalculator%get_full_file_path_feature proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~get_full_file_path_feature proc~read_global_features_all_chunks mod_train_mode::read_global_features_all_chunks proc~read_global_features_all_chunks->proc~get_full_file_path_feature proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~read_global_features_all_chunks program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

function get_full_file_path_feature_derivative

function get_full_file_path_feature_derivative( &
    self &
)

Arguments

Called By

proc~~get_full_file_path_feature_derivative~~CalledByGraph proc~get_full_file_path_feature_derivative mod_global_feature_calculator::GlobalFeatureCalculator%get_full_file_path_feature_derivative proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~get_full_file_path_feature_derivative program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks

function get_atomic_number

function get_atomic_number( &
    self, &
    id_on_process_across_chunks_struc, &
    iatom &
)

Private

Arguments

Called By

proc~~get_atomic_number~~CalledByGraph proc~get_atomic_number mod_global_feature_calculator::GlobalFeatureCalculator%get_atomic_number proc~compute_statistics mod_global_feature_calculator::GlobalFeatureCalculator%compute_statistics proc~compute_statistics->proc~get_atomic_number proc~pack_one mod_global_feature_calculator::GlobalFeatureCalculator%pack_one proc~pack_one->proc~get_atomic_number proc~pack_one_deriv mod_global_feature_calculator::GlobalFeatureCalculator%pack_one_deriv proc~pack_one_deriv->proc~get_atomic_number none~pack_derivatives mod_global_feature_calculator::GlobalFeatureCalculator%pack_derivatives none~pack_derivatives->proc~pack_one_deriv proc~pack_all_deriv mod_global_feature_calculator::GlobalFeatureCalculator%pack_all_deriv none~pack_derivatives->proc~pack_all_deriv proc~pack_all mod_global_feature_calculator::GlobalFeatureCalculator%pack_all proc~pack_all->proc~pack_one proc~pack_all_deriv->proc~pack_one_deriv proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~compute_statistics proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range proc~append_global_features_and_derivatives_struc_batch mod_global_features_helper::append_global_features_and_derivatives_struc_batch proc~append_global_features_and_derivatives_struc_batch->none~pack_derivatives proc~predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure::predict_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_single_structure->none~pack_derivatives program~runner RuNNer program~runner->proc~train_mode 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_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_4g_short_range_training_qeq_single_structure proc~train_loop_short_range->proc~append_global_features_and_derivatives_struc_batch proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures

subroutine init_global_feature_calculator

subroutine init_global_feature_calculator( &
    self, &
    num_features, &
    scale_feature_maps, &
    center_feature_maps, &
    read_feature, &
    read_feature_derivative, &
    use_old_scaling, &
    file_path, &
    filename_feature, &
    filename_feature_derivative, &
    filename_statistics, &
    feat_name &
)

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • num_features : integer [in]
  • scale_feature_maps : logical [in]
  • center_feature_maps : logical [in]
  • read_feature : logical [in]
  • read_feature_derivative : logical [in]
  • use_old_scaling : logical [in]
  • file_path : character [in]
  • filename_feature : character [in]
  • filename_feature_derivative : character [in]
  • filename_statistics : character [in]
  • feat_name : character [in]

Called By

proc~~init_global_feature_calculator~~CalledByGraph proc~init_global_feature_calculator mod_global_feature_calculator::GlobalFeatureCalculator%init_global_feature_calculator proc~constructor_from_file mod_ee4g_feature_calculator::constructor_from_file proc~constructor_from_file->proc~init_global_feature_calculator proc~constructor_from_file~2 mod_qeq_feature_calculator::constructor_from_file proc~constructor_from_file~2->proc~init_global_feature_calculator 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~init_global_feature_calculator interface~ee4gfeaturecalculator mod_ee4g_feature_calculator::EE4GFeatureCalculator interface~ee4gfeaturecalculator->proc~constructor_from_file interface~qeqfeaturecalculator mod_qeq_feature_calculator::QEqFeatureCalculator interface~qeqfeaturecalculator->proc~constructor_from_file~2

subroutine allocate_atomic_list

subroutine allocate_atomic_list( &
    self, &
    num_structures &
)

Allocate the atomic list for the global features for a given number of structures.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • num_structures : integer [in]– The number of structures for which the global features should be stored. Normally the number of structures on one process across chunks.

Called By

proc~~allocate_atomic_list~~CalledByGraph proc~allocate_atomic_list mod_global_feature_calculator::GlobalFeatureCalculator%allocate_atomic_list proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~allocate_atomic_list 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~allocate_atomic_list proc~set_features_from_flat_array mod_global_feature_calculator::GlobalFeatureCalculator%set_features_from_flat_array proc~set_features_from_flat_array->proc~allocate_atomic_list proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~allocate_atomic_list proc~train_mode->proc~set_features_from_flat_array program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine set_features_from_flat_array

subroutine set_features_from_flat_array( &
    self, &
    num_atoms, &
    atomic_numbers, &
    features &
)

Set the global features from a flat array.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • num_atoms : integer (dim: (:)) [in]– The number of atoms in each structure.
  • atomic_numbers : integer (dim: (sum(num_atoms))) [in]– The flat array containing the atomic numbers for the structures.
  • features : real(DP) (dim: (sum(num_atoms)*self%num_features)) [in]– The flat array containing the global features for the structures.

Called By

proc~~set_features_from_flat_array~~CalledByGraph proc~set_features_from_flat_array mod_global_feature_calculator::GlobalFeatureCalculator%set_features_from_flat_array proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~set_features_from_flat_array program~runner RuNNer program~runner->proc~train_mode

subroutine reset_global_feature_calculator

subroutine reset_global_feature_calculator( &
    self &
)

Free all memory on this object and the underlying TrainingChargeEquilibrator.

This sets the calculator back into the original state before any call to evaluate. The routine should be called if memory is insufficient to store q or feature_derivative.

Arguments

Called By

proc~~reset_global_feature_calculator~~CalledByGraph proc~reset_global_feature_calculator mod_global_feature_calculator::GlobalFeatureCalculator%reset_global_feature_calculator proc~allocate_atomic_list mod_global_feature_calculator::GlobalFeatureCalculator%allocate_atomic_list proc~allocate_atomic_list->proc~reset_global_feature_calculator proc~init_global_feature_calculator mod_global_feature_calculator::GlobalFeatureCalculator%init_global_feature_calculator proc~init_global_feature_calculator->proc~reset_global_feature_calculator proc~constructor_from_file mod_ee4g_feature_calculator::constructor_from_file proc~constructor_from_file->proc~init_global_feature_calculator proc~constructor_from_file~2 mod_qeq_feature_calculator::constructor_from_file proc~constructor_from_file~2->proc~init_global_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~allocate_atomic_list 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~allocate_atomic_list proc~predict_4g_no_force_trick_single_structure->proc~init_global_feature_calculator proc~set_features_from_flat_array mod_global_feature_calculator::GlobalFeatureCalculator%set_features_from_flat_array proc~set_features_from_flat_array->proc~allocate_atomic_list proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~allocate_atomic_list proc~train_mode->proc~set_features_from_flat_array interface~ee4gfeaturecalculator mod_ee4g_feature_calculator::EE4GFeatureCalculator interface~ee4gfeaturecalculator->proc~constructor_from_file interface~qeqfeaturecalculator mod_qeq_feature_calculator::QEqFeatureCalculator interface~qeqfeaturecalculator->proc~constructor_from_file~2 program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine read_feature_from_file

subroutine read_feature_from_file( &
    self, &
    id_on_process_across_chunks_struc, &
    id_struct, &
    binary_file &
)

Populate self%feature by reading values from a binary file on disk.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • id_on_process_across_chunks_struc : integer [in]
  • id_struct : integer [in]
  • binary_file : type(DataCont) [inout]

Called By

proc~~read_feature_from_file~~CalledByGraph proc~read_feature_from_file mod_global_feature_calculator::GlobalFeatureCalculator%read_feature_from_file proc~prepare_evaluate_parent mod_global_feature_calculator::GlobalFeatureCalculator%prepare_evaluate_parent proc~prepare_evaluate_parent->proc~read_feature_from_file proc~read_global_features_all_chunks mod_train_mode::read_global_features_all_chunks proc~read_global_features_all_chunks->proc~read_feature_from_file proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~prepare_evaluate_parent proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~prepare_evaluate_parent proc~prepare_global_feature_derivatives_for_structure mod_predict_4g_short_range_training_qeq_multiple_structures::prepare_global_feature_derivatives_for_structure proc~prepare_global_feature_derivatives_for_structure->proc~prepare_evaluate_parent proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~read_global_features_all_chunks 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~train_mode->proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures 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_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~prepare_global_feature_derivatives_for_structure 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 program~runner RuNNer program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_ee4g_feature_calculator_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks->proc~predict_ee4g_feature_calculator_multiple_structures 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~train_loop_short_range->proc~predict_ee4g_feature_calculator_multiple_structures proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures 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->proc~predict_qeq_feature_calculator_single_structure

subroutine read_feature_derivative_from_file

subroutine read_feature_derivative_from_file( &
    self, &
    id_on_process_across_chunks_struc, &
    id_struct, &
    binary_file &
)

Populate self%feature_derivative by reading values from a binary file on disk.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • id_on_process_across_chunks_struc : integer [in]
  • id_struct : integer [in]
  • binary_file : type(DataCont) [inout]

Called By

proc~~read_feature_derivative_from_file~~CalledByGraph proc~read_feature_derivative_from_file mod_global_feature_calculator::GlobalFeatureCalculator%read_feature_derivative_from_file proc~prepare_evaluate_parent mod_global_feature_calculator::GlobalFeatureCalculator%prepare_evaluate_parent proc~prepare_evaluate_parent->proc~read_feature_derivative_from_file proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~prepare_evaluate_parent proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~prepare_evaluate_parent proc~prepare_global_feature_derivatives_for_structure mod_predict_4g_short_range_training_qeq_multiple_structures::prepare_global_feature_derivatives_for_structure proc~prepare_global_feature_derivatives_for_structure->proc~prepare_evaluate_parent 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_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~prepare_global_feature_derivatives_for_structure 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~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures 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_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_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_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~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_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures 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->proc~predict_qeq_feature_calculator_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_qeq_feature_calculator_multiple_structures program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine write_feature_to_file

subroutine write_feature_to_file( &
    self, &
    id_on_process_across_chunks_struc, &
    id_struct, &
    max_arrays, &
    binary_file &
)

Dump self%feature into a binary file on disk at a given id_struct.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • id_on_process_across_chunks_struc : integer [in]
  • id_struct : integer [in]
  • max_arrays : integer [in]– Number of arrays that the data container should store in total not necessary the number of arrays that will be written here.
  • binary_file : type(DataCont) [inout]

Called By

proc~~write_feature_to_file~~CalledByGraph proc~write_feature_to_file mod_global_feature_calculator::GlobalFeatureCalculator%write_feature_to_file proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~write_feature_to_file program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks

subroutine write_feature_derivative_to_file

subroutine write_feature_derivative_to_file( &
    self, &
    id_on_process_across_chunks_struc, &
    id_struct, &
    max_arrays, &
    binary_file &
)

Dump self%feature_derivative into a binary file on disk at a given id_struct.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • id_on_process_across_chunks_struc : integer [in]
  • id_struct : integer [in]
  • max_arrays : integer [in]– Number of arrays that the data container should store in total not necessary the number of arrays that will be written here.
  • binary_file : type(DataCont) [inout]

Called By

proc~~write_feature_derivative_to_file~~CalledByGraph proc~write_feature_derivative_to_file mod_global_feature_calculator::GlobalFeatureCalculator%write_feature_derivative_to_file proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~write_feature_derivative_to_file program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks

subroutine compute_statistics

subroutine compute_statistics( &
    self &
)

Determine the scaling factor and centering subtrahend for the global features of the structure. Don't forget to communicate the statistics afterwards.

Arguments

Called By

proc~~compute_statistics~~CalledByGraph proc~compute_statistics mod_global_feature_calculator::GlobalFeatureCalculator%compute_statistics proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~compute_statistics program~runner RuNNer program~runner->proc~train_mode

subroutine free_feature_derivatives

subroutine free_feature_derivatives( &
    self, &
    force &
)

Free the feature derivatives of all structures.

This is used to free the memory of the feature derivatives. If the force argument is not present or .false., the routine only frees the feature derivatives if they have not been precomputed. TODO: only free for calcualted structures (similiar to commented loop below)

Arguments

Called By

proc~~free_feature_derivatives~~CalledByGraph proc~free_feature_derivatives mod_global_feature_calculator::GlobalFeatureCalculator%free_feature_derivatives proc~free_global_feature_derivatives mod_predict_4g_short_range_training_qeq_multiple_structures::free_global_feature_derivatives proc~free_global_feature_derivatives->proc~free_feature_derivatives 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~free_feature_derivatives proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~free_feature_derivatives proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range 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~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~free_global_feature_derivatives 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 proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine prepare_evaluate_parent

subroutine prepare_evaluate_parent( &
    self, &
    struct, &
    id_on_process_across_chunks_struc, &
    feature_needed, &
    feature_derivatives_needed, &
    features_need_to_be_computed, &
    feature_derivative_need_to_be_computed &
)

Prepare the evaluation of the global features and their derivatives

This routine can be called before the evaluate routine (implemented by a child class) to determine whether the features and their derivatives need to be computed or if they can be read from disk. It also allocates the necessary arrays in the desc array.

Arguments

  • self : class(GlobalFeatureCalculator) [inout]
  • struct : type(Structure) [in]
  • id_on_process_across_chunks_struc : integer [in]
  • feature_needed : logical [in]
  • feature_derivatives_needed : logical [in]
  • features_need_to_be_computed : logical [out]
  • feature_derivative_need_to_be_computed : logical [out]

Called By

proc~~prepare_evaluate_parent~~CalledByGraph proc~prepare_evaluate_parent mod_global_feature_calculator::GlobalFeatureCalculator%prepare_evaluate_parent proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~prepare_evaluate_parent proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~prepare_evaluate_parent proc~prepare_global_feature_derivatives_for_structure mod_predict_4g_short_range_training_qeq_multiple_structures::prepare_global_feature_derivatives_for_structure proc~prepare_global_feature_derivatives_for_structure->proc~prepare_evaluate_parent 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_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~prepare_global_feature_derivatives_for_structure 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~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures 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_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_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_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~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_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures 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->proc~predict_qeq_feature_calculator_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_qeq_feature_calculator_multiple_structures program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode