Skip to content

mod_dynamic_int_array_2d

Lines: 167 | Visibility: private

Provides a dynamically growing integer array in two dimensions. author: Alexander Knoll

Dependencies

Uses

module~~mod_dynamic_int_array_2d~~UsesGraph module~mod_dynamic_int_array_2d mod_dynamic_int_array_2d module~mod_mpi mod_mpi module~mod_dynamic_int_array_2d->module~mod_mpi module~mod_precision mod_precision module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 iso_c_binding iso_c_binding module~mod_precision->iso_c_binding iso_fortran_env iso_fortran_env module~mod_precision->iso_fortran_env

Used By

module~~mod_dynamic_int_array_2d~~UsedByGraph module~mod_dynamic_int_array_2d mod_dynamic_int_array_2d module~mod_abstract_property_list mod_abstract_property_list module~mod_abstract_property_list->module~mod_dynamic_int_array_2d module~mod_initialize mod_initialize module~mod_initialize->module~mod_abstract_property_list module~mod_dataset_storage mod_dataset_storage module~mod_initialize->module~mod_dataset_storage module~mod_two_body mod_two_body module~mod_initialize->module~mod_two_body module~mod_storage_container mod_storage_container module~mod_storage_container->module~mod_abstract_property_list module~mod_dataset_storage->module~mod_storage_container module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_initialize module~mod_predict_mode->module~mod_dataset_storage module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_predict_mode->module~mod_predict_multiple_structures module~mod_predict_mode->module~mod_two_body module~mod_dataloader_file mod_dataloader_file module~mod_predict_mode->module~mod_dataloader_file module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_two_body module~mod_runner_interface mod_runner_interface module~mod_runner_interface_bindings->module~mod_runner_interface module~mod_sum_out mod_sum_out module~mod_sum_out->module~mod_storage_container module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_energy_multiple_structures->module~mod_dataset_storage module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_dataset_storage module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_initialize module~mod_train_loop_4g_charges->module~mod_dataset_storage module~mod_cost_calculator mod_cost_calculator module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_cost_epoch mod_cost_epoch module~mod_train_loop_4g_charges->module~mod_cost_epoch 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_4g_charges->module~mod_dataloader_file module~mod_train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch module~mod_train_loop_4g_charges->module~mod_train_4g_atomic_charges_structure_batch module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_dataset_storage module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_train_loop_atomic_property->module~mod_cost_epoch module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_dataloader_file module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_dataset_storage module~mod_train_loop_short_range->module~mod_train_energy_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_loop_short_range->module~mod_cost_epoch module~mod_train_loop_short_range->module~mod_output_files_and_cost 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_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_dataloader_file 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_mode mod_train_mode module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_dataset_storage module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_cost_epoch module~mod_dataset_statistics mod_dataset_statistics module~mod_train_mode->module~mod_dataset_statistics 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_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_test_split mod_train_test_split module~mod_train_mode->module~mod_train_test_split module~mod_train_mode->module~mod_two_body module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_train_mode->module~mod_dataloader_file module~mod_dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_precalc_nl_deriv_features_single_chunk mod_precalc_nl_deriv_features_single_chunk module~mod_train_mode->module~mod_precalc_nl_deriv_features_single_chunk module~mod_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_write_outfiles->module~mod_initialize module~mod_write_outfiles->module~mod_dataset_storage module~mod_write_outfiles->module~mod_sum_out program~runner RuNNer program~runner->module~mod_initialize program~runner->module~mod_predict_mode program~runner->module~mod_train_mode program~runner->module~mod_two_body program~runner->module~mod_dataloader_file module~mod_inputdata mod_inputdata program~runner->module~mod_inputdata module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks program~runner->module~mod_precompute_features_all_chunks module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks program~runner->module~mod_precompute_global_features_all_chunks module~mod_calculate_coulomb_matrix mod_calculate_coulomb_matrix program~runner->module~mod_calculate_coulomb_matrix module~mod_abstract_structure_data_file mod_abstract_structure_data_file module~mod_abstract_structure_data_file->module~mod_dataset_storage module~mod_cost_calculator->module~mod_dataset_storage module~mod_cost_calculator->module~mod_cost_epoch module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_cost_calculator->module~mod_dataloader_file module~mod_cost_epoch->module~mod_dataset_storage module~mod_dataset_statistics->module~mod_dataset_storage module~mod_dataset_statistics->module~mod_dataloader_file module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_lammps_interface->module~mod_runner_interface module~mod_output_files_and_cost->module~mod_dataset_storage module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_dataloader_file module~mod_output_files_and_cost_4g_charges->module~mod_dataset_storage module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator 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_dataloader_file module~mod_output_files_and_cost_4g_short_range->module~mod_dataset_storage module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_dataloader_file module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_dataset_storage module~mod_store_atomic_property_single_structure mod_store_atomic_property_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_store_atomic_property_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_two_body module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_dataset_storage module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_dataset_storage module~mod_predict_all_chunks->module~mod_dataset_storage module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_all_chunks->module~mod_two_body module~mod_predict_all_chunks->module~mod_dataloader_file module~mod_predict_multiple_structures->module~mod_dataset_storage module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_multiple_structures->module~mod_store_atomic_property_single_structure module~mod_predict_multiple_structures->module~mod_two_body module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_dataset_storage module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_store_atomic_property_single_structure->module~mod_dataset_storage module~mod_train_test_split->module~mod_dataset_storage module~mod_train_test_split->module~mod_cost_epoch module~mod_two_body->module~mod_dataset_storage module~mod_two_body->module~mod_dataloader_file module~mod_write_outfiles_training->module~mod_dataset_storage module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_write_outfiles_training->module~mod_cost_epoch module~mod_dataloader_file->module~mod_abstract_structure_data_file module~mod_dataset_statistics_chi_all_chunks->module~mod_cost_epoch module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics module~mod_dataset_statistics_chi_all_chunks->module~mod_dataloader_file module~mod_feature_map_scaling_all_chunks->module~mod_cost_epoch module~mod_feature_map_scaling_all_chunks->module~mod_dataloader_file module~mod_feature_map_scaling_all_chunks->module~mod_precalc_nl_deriv_features_single_chunk module~mod_inputdata->module~mod_abstract_structure_data_file module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_precalc_coulomb_matrix_all_chunks->module~mod_dataloader_file module~mod_precompute_features_all_chunks->module~mod_train_test_split module~mod_precompute_features_all_chunks->module~mod_dataloader_file module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_dataloader_file module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_predict_single_structure->module~mod_two_body module~mod_runner_interface->module~mod_two_body module~mod_calculate_coulomb_matrix->module~mod_dataloader_file 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_precalc_nl_deriv_features_single_chunk->module~mod_dataloader_file module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_dataloader_file module~mod_train_4g_atomic_charges_structure_batch->module~mod_dataloader_file

Derived Types Summary

Name Description
DynamicIntArray2D A dynamically growing two-dimensional integer array.

Procedures Summary

Name Type Description
constructor Function Create a new DynamicIntArray2D object.
get_row Function Return one row of integer values from self.data.
flatten Function Flattens dynamic 2D int array to rank 1 int array. index of first element of row in flattened...
flatten_across_processes Function Flattens dynamic 2D int array to rank 1 int array across all mpi ranks.
resize Subroutine
copy_data_to_temp Subroutine
copy_data_from_temp Subroutine
finalize_int_array_2d Subroutine
append_row Subroutine Append elem as a a new row to self.data.
add_empty_row Subroutine Append a new, empty row to self.data.
append_to_row Subroutine Append elem to an existing row at idx of self.data.

Derived Types Details

type DynamicIntArray2D

A dynamically growing two-dimensional integer array.

Components

  • nrows : integer– Amount of actual rows in the array.
  • ncols : integer (dim: (:))– Number of columns in each row.
  • data : integer (dim: (:,:))– Storage container for rows of integers.
  • maxrows : integer– Length of the `data` container, can be larger than `ndata`.
  • maxcols : integer

Type-Bound Procedures

Name Attributes Binding
append_row public ⇒ append_row
append_to_row public ⇒ append_to_row
get_row public ⇒ get_row
flatten public ⇒ flatten
flatten_across_processes public ⇒ flatten_across_processes
add_empty_row private ⇒ add_empty_row
resize private ⇒ resize
copy_data_to_temp private ⇒ copy_data_to_temp
copy_data_from_temp private ⇒ copy_data_from_temp

Inherited By

type~~dynamicintarray2d~~InheritedByGraph type~dynamicintarray2d DynamicIntArray2D type~abstractpropertylist AbstractPropertyList type~abstractpropertylist->type~dynamicintarray2d init_tags

Interface Details

interface DynamicIntArray2D


Procedure Details

function constructor

function constructor()

Create a new DynamicIntArray2D object.

Called By

proc~~constructor~8~~CalledByGraph proc~constructor~8 mod_dynamic_int_array_2d::constructor interface~dynamicintarray2d mod_dynamic_int_array_2d::DynamicIntArray2D interface~dynamicintarray2d->proc~constructor~8

function get_row

function get_row( &
    self, &
    idx &
)

Return one row of integer values from self.data.

Arguments

  • self : class(DynamicIntArray2D) [in]
  • idx : integer [in]– The idx of the target row in `self.data`.

Called By

proc~~get_row~~CalledByGraph proc~get_row mod_dynamic_int_array_2d::DynamicIntArray2D%get_row proc~flatten mod_dynamic_int_array_2d::DynamicIntArray2D%flatten proc~flatten->proc~get_row proc~flatten_across_processes mod_dynamic_int_array_2d::DynamicIntArray2D%flatten_across_processes proc~flatten_across_processes->proc~flatten

function flatten

function flatten( &
    self &
)

Flattens dynamic 2D int array to rank 1 int array. index of first element of row in flattened array index of last element of row in flattened array

Arguments

Called By

proc~~flatten~~CalledByGraph proc~flatten mod_dynamic_int_array_2d::DynamicIntArray2D%flatten proc~flatten_across_processes mod_dynamic_int_array_2d::DynamicIntArray2D%flatten_across_processes proc~flatten_across_processes->proc~flatten

function flatten_across_processes

function flatten_across_processes( &
    self &
)

Flattens dynamic 2D int array to rank 1 int array across all mpi ranks.

Arguments


subroutine resize

subroutine resize( &
    self, &
    new_maxrows, &
    new_maxcols &
)

Arguments

  • self : class(DynamicIntArray2D) [inout]
  • new_maxrows : integer [in]
  • new_maxcols : integer [in]

Called By

proc~~resize~~CalledByGraph proc~resize mod_dynamic_int_array_2d::DynamicIntArray2D%resize proc~add_empty_row mod_dynamic_int_array_2d::DynamicIntArray2D%add_empty_row proc~add_empty_row->proc~resize proc~append_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_row proc~append_row->proc~resize proc~append_to_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_to_row proc~append_to_row->proc~resize proc~append_to_row->proc~add_empty_row proc~add_property mod_abstract_property_list::AbstractPropertyList%add_property proc~add_property->proc~append_row

subroutine copy_data_to_temp

subroutine copy_data_to_temp( &
    self, &
    tmp_data, &
    tmp_ncols &
)

Arguments

  • self : class(DynamicIntArray2D) [in]
  • tmp_data : integer (dim: (:,:)) [out]
  • tmp_ncols : integer (dim: (:)) [out]

Called By

proc~~copy_data_to_temp~~CalledByGraph proc~copy_data_to_temp mod_dynamic_int_array_2d::DynamicIntArray2D%copy_data_to_temp proc~resize mod_dynamic_int_array_2d::DynamicIntArray2D%resize proc~resize->proc~copy_data_to_temp proc~add_empty_row mod_dynamic_int_array_2d::DynamicIntArray2D%add_empty_row proc~add_empty_row->proc~resize proc~append_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_row proc~append_row->proc~resize proc~append_to_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_to_row proc~append_to_row->proc~resize proc~append_to_row->proc~add_empty_row proc~add_property mod_abstract_property_list::AbstractPropertyList%add_property proc~add_property->proc~append_row

subroutine copy_data_from_temp

subroutine copy_data_from_temp( &
    self, &
    tmp_data, &
    tmp_ncols &
)

Arguments

  • self : class(DynamicIntArray2D) [inout]
  • tmp_data : integer (dim: (:,:)) [in]
  • tmp_ncols : integer (dim: (:)) [in]

Called By

proc~~copy_data_from_temp~~CalledByGraph proc~copy_data_from_temp mod_dynamic_int_array_2d::DynamicIntArray2D%copy_data_from_temp proc~resize mod_dynamic_int_array_2d::DynamicIntArray2D%resize proc~resize->proc~copy_data_from_temp proc~add_empty_row mod_dynamic_int_array_2d::DynamicIntArray2D%add_empty_row proc~add_empty_row->proc~resize proc~append_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_row proc~append_row->proc~resize proc~append_to_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_to_row proc~append_to_row->proc~resize proc~append_to_row->proc~add_empty_row proc~add_property mod_abstract_property_list::AbstractPropertyList%add_property proc~add_property->proc~append_row

subroutine finalize_int_array_2d

subroutine finalize_int_array_2d( &
    self &
)

Arguments


subroutine append_row

subroutine append_row( &
    self, &
    elem &
)

Append elem as a a new row to self.data.

Arguments

  • self : class(DynamicIntArray2D) [inout]
  • elem : integer (dim: (:)) [in]– The array to be stored.

Called By

proc~~append_row~~CalledByGraph proc~append_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_row proc~add_property mod_abstract_property_list::AbstractPropertyList%add_property proc~add_property->proc~append_row

subroutine add_empty_row

subroutine add_empty_row( &
    self &
)

Append a new, empty row to self.data.

Arguments

Called By

proc~~add_empty_row~~CalledByGraph proc~add_empty_row mod_dynamic_int_array_2d::DynamicIntArray2D%add_empty_row proc~append_to_row mod_dynamic_int_array_2d::DynamicIntArray2D%append_to_row proc~append_to_row->proc~add_empty_row

subroutine append_to_row

subroutine append_to_row( &
    self, &
    idx, &
    elem &
)

Append elem to an existing row at idx of self.data.

Arguments

  • self : class(DynamicIntArray2D) [inout]
  • idx : integer [in]– The index of the row where `elem` will be appended.
  • elem : integer (dim: (:)) [in]– The array to be stored.