mod_abstract_electrostatics
Lines: 177 |
Visibility: private
Abstract type that defines an electrostatic calculator.
author: Moritz Gubler
Dependencies
Uses
module~~mod_abstract_electrostatics~~UsesGraph
module~mod_abstract_electrostatics
mod_abstract_electrostatics
module~mod_precision
mod_precision
module~mod_abstract_electrostatics->module~mod_precision
module~mod_structures
mod_structures
module~mod_abstract_electrostatics->module~mod_structures
iso_c_binding
iso_c_binding
module~mod_precision->iso_c_binding
iso_fortran_env
iso_fortran_env
module~mod_precision->iso_fortran_env
module~mod_structures->module~mod_precision
module~mod_array_helpers
mod_array_helpers
module~mod_structures->module~mod_array_helpers
module~mod_constants
mod_constants
module~mod_structures->module~mod_constants
module~mod_linalg
mod_linalg
module~mod_structures->module~mod_linalg
module~mod_mpi
mod_mpi
module~mod_structures->module~mod_mpi
module~mod_periodic_table
mod_periodic_table
module~mod_structures->module~mod_periodic_table
module~mod_structures_helper
mod_structures_helper
module~mod_structures->module~mod_structures_helper
module~mod_throw
mod_throw
module~mod_structures->module~mod_throw
module~mod_array_helpers->module~mod_precision
module~mod_array_helpers->module~mod_throw
module~mod_constants->module~mod_precision
module~mod_constants->iso_c_binding
module~mod_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_periodic_table->module~mod_precision
module~mod_periodic_table->module~mod_array_helpers
module~mod_periodic_table->module~mod_constants
module~mod_periodic_table->module~mod_throw
module~mod_io
mod_io
module~mod_periodic_table->module~mod_io
module~mod_structures_helper->module~mod_precision
module~mod_structures_helper->module~mod_linalg
module~mod_throw->module~mod_precision
module~mod_throw->iso_c_binding
module~mod_throw->iso_fortran_env
module~mod_throw->module~mod_mpi
module~mod_throw->module~mod_io
module~mod_sort
mod_sort
module~mod_throw->module~mod_sort
module~cublas_wrapper->iso_c_binding
module~cublas_wrapper->module~mod_settings
module~mod_io->module~mod_precision
module~mod_io->iso_fortran_env
module~mod_optional_args
mod_optional_args
module~mod_io->module~mod_optional_args
module~mod_settings->module~mod_precision
module~mod_settings->module~mod_constants
module~mod_settings->module~mod_periodic_table
module~mod_settings->module~mod_throw
module~mod_settings->module~mod_io
module~mod_cpu_vendor
mod_cpu_vendor
module~mod_settings->module~mod_cpu_vendor
module~mod_sort->module~mod_precision
module~mod_cpu_vendor->iso_c_binding
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Used By
module~~mod_abstract_electrostatics~~UsedByGraph
module~mod_abstract_electrostatics
mod_abstract_electrostatics
module~mod_abstract_charge_equilibration
mod_abstract_charge_equilibration
module~mod_abstract_charge_equilibration->module~mod_abstract_electrostatics
module~mod_abstract_iterative_charge_equilibration
mod_abstract_iterative_charge_equilibration
module~mod_abstract_iterative_charge_equilibration->module~mod_abstract_electrostatics
module~mod_abstract_iterative_charge_equilibration->module~mod_abstract_charge_equilibration
module~mod_pair_electrostatics
mod_pair_electrostatics
module~mod_abstract_iterative_charge_equilibration->module~mod_pair_electrostatics
module~mod_analyse_a_prime_matrix_eigenvalues
mod_analyse_a_prime_matrix_eigenvalues
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_electrostatics
module~mod_direct_charge_equilibration
mod_direct_charge_equilibration
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_direct_charge_equilibration
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_pair_electrostatics
module~mod_direct_charge_equilibration->module~mod_abstract_electrostatics
module~mod_direct_charge_equilibration->module~mod_abstract_charge_equilibration
module~mod_evaluate_electrostatics_3g_single_structure
mod_evaluate_electrostatics_3g_single_structure
module~mod_evaluate_electrostatics_3g_single_structure->module~mod_abstract_electrostatics
module~mod_ewald_summation
mod_ewald_summation
module~mod_ewald_summation->module~mod_abstract_electrostatics
module~mod_ewald_summation->module~mod_pair_electrostatics
module~mod_initialize
mod_initialize
module~mod_initialize->module~mod_abstract_electrostatics
module~mod_initialize->module~mod_abstract_charge_equilibration
module~mod_initialize->module~mod_direct_charge_equilibration
module~mod_initialize->module~mod_ewald_summation
module~mod_initialize->module~mod_pair_electrostatics
module~mod_pppm
mod_pppm
module~mod_initialize->module~mod_pppm
module~mod_pw
mod_pw
module~mod_initialize->module~mod_pw
module~mod_iterative_charge_equilibration_cg
mod_iterative_charge_equilibration_cg
module~mod_initialize->module~mod_iterative_charge_equilibration_cg
module~mod_iterative_charge_equilibration_sqnm
mod_iterative_charge_equilibration_sqnm
module~mod_initialize->module~mod_iterative_charge_equilibration_sqnm
module~mod_qeq_feature_calculator
mod_qeq_feature_calculator
module~mod_initialize->module~mod_qeq_feature_calculator
module~mod_ee4g_feature_calculator
mod_ee4g_feature_calculator
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_abstract_electrostatics
module~mod_output_files_and_cost->module~mod_abstract_charge_equilibration
module~mod_predict_multiple_structures
mod_predict_multiple_structures
module~mod_output_files_and_cost->module~mod_predict_multiple_structures
module~mod_output_files_and_cost->module~mod_ee4g_feature_calculator
module~mod_cost_calculator
mod_cost_calculator
module~mod_output_files_and_cost->module~mod_cost_calculator
module~mod_pair_electrostatics->module~mod_abstract_electrostatics
module~mod_post_processing_3g_single_structure
mod_post_processing_3g_single_structure
module~mod_post_processing_3g_single_structure->module~mod_abstract_electrostatics
module~mod_post_processing_3g_single_structure->module~mod_evaluate_electrostatics_3g_single_structure
module~mod_post_processing_wrapper_single_structure
mod_post_processing_wrapper_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_abstract_electrostatics
module~mod_post_processing_wrapper_single_structure->module~mod_abstract_charge_equilibration
module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_3g_single_structure
module~mod_evaluate_4g_single_structure
mod_evaluate_4g_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure
module~mod_post_processing_4g_single_structure
mod_post_processing_4g_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure
module~mod_post_processing_wrapper_single_structure->module~mod_ee4g_feature_calculator
module~mod_global_features_helper
mod_global_features_helper
module~mod_post_processing_wrapper_single_structure->module~mod_global_features_helper
module~mod_pppm->module~mod_abstract_electrostatics
module~mod_pppm->module~mod_ewald_summation
module~mod_pppm->module~mod_pair_electrostatics
module~mod_pppm->module~mod_pw
module~mod_predict_all_chunks
mod_predict_all_chunks
module~mod_predict_all_chunks->module~mod_abstract_electrostatics
module~mod_predict_all_chunks->module~mod_abstract_charge_equilibration
module~mod_predict_all_chunks->module~mod_predict_multiple_structures
module~mod_predict_mode
mod_predict_mode
module~mod_predict_mode->module~mod_abstract_electrostatics
module~mod_predict_mode->module~mod_abstract_charge_equilibration
module~mod_predict_mode->module~mod_initialize
module~mod_predict_mode->module~mod_predict_multiple_structures
module~mod_predict_mode->module~mod_qeq_feature_calculator
module~mod_write_outfiles
mod_write_outfiles
module~mod_predict_mode->module~mod_write_outfiles
module~mod_predict_mode->module~mod_ee4g_feature_calculator
module~mod_enforce_reading
mod_enforce_reading
module~mod_predict_mode->module~mod_enforce_reading
module~mod_predict_multiple_structures->module~mod_abstract_electrostatics
module~mod_predict_multiple_structures->module~mod_abstract_charge_equilibration
module~mod_predict_multiple_structures->module~mod_pair_electrostatics
module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure
module~mod_predict_multiple_structures->module~mod_ee4g_feature_calculator
module~mod_structure_batch_iterator
mod_structure_batch_iterator
module~mod_predict_multiple_structures->module~mod_structure_batch_iterator
module~mod_predict_single_structure
mod_predict_single_structure
module~mod_predict_single_structure->module~mod_abstract_electrostatics
module~mod_predict_single_structure->module~mod_abstract_charge_equilibration
module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure
module~mod_predict_single_structure->module~mod_ee4g_feature_calculator
module~mod_pw->module~mod_abstract_electrostatics
module~mod_runner_interface
mod_runner_interface
module~mod_runner_interface->module~mod_abstract_electrostatics
module~mod_runner_interface->module~mod_abstract_charge_equilibration
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_abstract_electrostatics
module~mod_train_loop_short_range->module~mod_abstract_charge_equilibration
module~mod_train_loop_short_range->module~mod_initialize
module~mod_train_loop_short_range->module~mod_output_files_and_cost
module~mod_global_feature_calculator
mod_global_feature_calculator
module~mod_train_loop_short_range->module~mod_global_feature_calculator
module~mod_train_loop_short_range->module~mod_qeq_feature_calculator
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_ee4g_feature_calculator
module~mod_train_loop_short_range->module~mod_global_features_helper
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_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_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_cost_calculator
module~mod_train_mode
mod_train_mode
module~mod_train_mode->module~mod_abstract_electrostatics
module~mod_train_mode->module~mod_abstract_charge_equilibration
module~mod_train_mode->module~mod_initialize
module~mod_train_mode->module~mod_predict_all_chunks
module~mod_train_mode->module~mod_train_loop_short_range
module~mod_training_charge_equilibration
mod_training_charge_equilibration
module~mod_train_mode->module~mod_training_charge_equilibration
module~mod_dataset_statistics
mod_dataset_statistics
module~mod_train_mode->module~mod_dataset_statistics
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_train_mode->module~mod_global_feature_calculator
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_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_qeq_feature_calculator
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_train_mode->module~mod_ee4g_feature_calculator
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_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures
module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures
module~mod_write_outfiles_training
mod_write_outfiles_training
module~mod_train_mode->module~mod_write_outfiles_training
module~mod_training_charge_equilibration->module~mod_abstract_electrostatics
module~mod_training_charge_equilibration->module~mod_ewald_summation
module~mod_training_charge_equilibration->module~mod_pair_electrostatics
program~runner
RuNNer
program~runner->module~mod_abstract_electrostatics
program~runner->module~mod_abstract_charge_equilibration
program~runner->module~mod_initialize
program~runner->module~mod_predict_mode
program~runner->module~mod_train_mode
module~mod_calculate_coulomb_matrix
mod_calculate_coulomb_matrix
program~runner->module~mod_calculate_coulomb_matrix
program~runner->module~mod_qeq_feature_calculator
program~runner->module~mod_ee4g_feature_calculator
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->module~mod_training_charge_equilibration
module~mod_dataset_statistics->module~mod_training_charge_equilibration
module~mod_dataset_statistics_chi_all_chunks->module~mod_training_charge_equilibration
module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics
module~mod_evaluate_4g_single_structure->module~mod_abstract_charge_equilibration
module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator
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_global_feature_calculator->module~mod_training_charge_equilibration
module~mod_iterative_charge_equilibration_cg->module~mod_abstract_iterative_charge_equilibration
module~mod_iterative_charge_equilibration_sqnm->module~mod_abstract_iterative_charge_equilibration
module~mod_lammps_interface
mod_lammps_interface
module~mod_lammps_interface->module~mod_runner_interface
module~mod_runner_interface_bindings
mod_runner_interface_bindings
module~mod_lammps_interface->module~mod_runner_interface_bindings
module~mod_output_files_and_cost_4g_charges
mod_output_files_and_cost_4g_charges
module~mod_output_files_and_cost_4g_charges->module~mod_training_charge_equilibration
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_post_processing_4g_single_structure->module~mod_abstract_charge_equilibration
module~mod_post_processing_4g_single_structure->module~mod_evaluate_4g_single_structure
module~mod_post_processing_4g_single_structure->module~mod_ee4g_feature_calculator
module~mod_precalc_coulomb_matrix_all_chunks->module~mod_training_charge_equilibration
module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures
module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_training_charge_equilibration
module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator
module~mod_predict_qeq_feature_calculator_single_structure
mod_predict_qeq_feature_calculator_single_structure
module~mod_predict_qeq_feature_calculator_single_structure->module~mod_training_charge_equilibration
module~mod_predict_qeq_feature_calculator_single_structure->module~mod_qeq_feature_calculator
module~mod_qeq_feature_calculator->module~mod_training_charge_equilibration
module~mod_qeq_feature_calculator->module~mod_global_feature_calculator
module~mod_runner_interface_bindings->module~mod_evaluate_electrostatics_3g_single_structure
module~mod_runner_interface_bindings->module~mod_initialize
module~mod_runner_interface_bindings->module~mod_runner_interface
module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure
module~mod_runner_interface_bindings->module~mod_qeq_feature_calculator
module~mod_runner_interface_bindings->module~mod_enforce_reading
module~mod_runner_interface_bindings->module~mod_global_features_helper
module~mod_train_4g_atomic_charges_structure_batch
mod_train_4g_atomic_charges_structure_batch
module~mod_train_4g_atomic_charges_structure_batch->module~mod_training_charge_equilibration
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_training_charge_equilibration
module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges
module~mod_train_loop_4g_charges->module~mod_train_4g_atomic_charges_structure_batch
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_ee4g_feature_calculator->module~mod_global_feature_calculator
module~mod_enforce_reading->module~mod_global_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_global_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator
module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator
module~mod_global_features_helper->module~mod_global_feature_calculator
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_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures
module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator
module~mod_precompute_global_features_all_chunks->module~mod_qeq_feature_calculator
module~mod_precompute_global_features_all_chunks->module~mod_ee4g_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_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_predict_qeq_feature_calculator_single_structure
module~mod_predict_4g_no_force_trick_single_structure->module~mod_qeq_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_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_predict_ee4g_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator
module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator
module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_predict_qeq_feature_calculator_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_structure_batch_iterator->module~mod_global_feature_calculator
module~mod_structure_batch_iterator->module~mod_global_features_helper
module~mod_write_outfiles_training->module~mod_write_outfiles
module~mod_cost_calculator->module~mod_write_outfiles_training
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Derived Types Summary
Procedures Summary
Derived Types Details
type AbstractElectrostaticsCalculator
Abstract type that defines an electrostatic calculator
The calculator should be closed when it is no longer needed.
It must also be closed before it can be initialized again.
author: Moritz Gubler
Components
Type-Bound Procedures
Name
Attributes
Binding
initialize
public
⇒ initialize_abstract_electrostatics_calculator
initialize_abstract_electrostatics_calculator_private
public
⇒ initialize_abstract_electrostatics_calculator_private
evaluate_intern_to_implement
public
⇒ evaluate_intern_to_implement
numerical_forces
public
⇒ numerical_forces_electrostatic
numerical_stress
public
⇒ numerical_stress_electrostatic
evaluate
public
⇒ evaluate
evaluate_structure
public
⇒ evaluate_structure
update_sigma
public
⇒ update_sigma
free_fftw_intern
public
⇒ free_fftw_intern
Inherited By
type~~abstractelectrostaticscalculator~~InheritedByGraph
type~abstractelectrostaticscalculator
AbstractElectrostaticsCalculator
type~abstractchargeequilibrator
AbstractChargeEquilibrator
type~abstractchargeequilibrator->type~abstractelectrostaticscalculator
elec_calc
type~ewaldcalculator
EwaldCalculator
type~ewaldcalculator->type~abstractelectrostaticscalculator
type~pairelectrostaticscalculator
PairElectrostaticsCalculator
type~pairelectrostaticscalculator->type~abstractelectrostaticscalculator
type~pppmcalculator
PppmCalculator
type~pppmcalculator->type~abstractelectrostaticscalculator
type~pwcalculator
PwCalculator
type~pppmcalculator->type~pwcalculator
pw_calc
type~pwcalculator->type~abstractelectrostaticscalculator
type~runnerinterface
RuNNerInterface
type~runnerinterface->type~abstractelectrostaticscalculator
elec_calc
type~runnerinterface->type~abstractchargeequilibrator
qeq_solver
type~abstractiterativechargeequilibrator
AbstractIterativeChargeEquilibrator
type~abstractiterativechargeequilibrator->type~abstractchargeequilibrator
type~directchargeequilibrator
DirectChargeEquilibrator
type~directchargeequilibrator->type~abstractchargeequilibrator
type~iterativecgchargeequilibrator
IterativeCgChargeEquilibrator
type~iterativecgchargeequilibrator->type~abstractiterativechargeequilibrator
type~iterativesqnmchargeequilibrator
IterativeSQNMChargeEquilibrator
type~iterativesqnmchargeequilibrator->type~abstractiterativechargeequilibrator
Nodes of different colours represent the following:
Graph Key
Type
Type
This Page's Entity
This Page's Entity
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Interface Details
interface evaluate_abstract
interface free_fftw_abstract
Procedure Details
subroutine initialize_abstract_electrostatics_calculator
subroutine initialize_abstract_electrostatics_calculator ( & self, & num_atoms, & atomic_sigmas, & electrostatics_precision, & lattice &)
Default initialization routine for electrostatics calculators.
May be overloaded by descendants of the class.
Arguments
self :
class (AbstractElectrostaticsCalculator ) [out]
num_atoms :
integer [in]
atomic_sigmas :
real (DP) (dim: (num_atoms)) [in]
electrostatics_precision :
real (DP) [in]
lattice :
real (DP) (dim: (3,3)) [in]
Called By
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
subroutine initialize_abstract_electrostatics_calculator_private
subroutine initialize_abstract_electrostatics_calculator_private ( & self, & num_atoms, & atomic_sigmas, & electrostatics_precision, & lattice &)
Default initialization routine for electrostatics calculators.
Arguments
self :
class (AbstractElectrostaticsCalculator ) [out]
num_atoms :
integer [in]
atomic_sigmas :
real (DP) (dim: (num_atoms)) [in]
electrostatics_precision :
real (DP) [in]
lattice :
real (DP) (dim: (3,3)) [in]
Called By
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
subroutine update_sigma
subroutine update_sigma ( & self, & atomic_sigmas &)
Arguments
Called By
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
subroutine numerical_forces_electrostatic
subroutine numerical_forces_electrostatic ( & self, & struct, & charges &)
Calculate electrostatic forces numerically.
author: Moritz Gubler
Arguments
subroutine numerical_stress_electrostatic
subroutine numerical_stress_electrostatic ( & self, & struct, & charges &)
Calculate electrostatic stress numerically.
author: Moritz Gubler
Arguments
subroutine evaluate
subroutine evaluate ( & self, & pos, & lat, & charges, & lagrange_charges, & calc_energy, & calc_forces, & calc_stress, & calc_de_dq, & calc_a_matrix, & calc_lambda_times_da_dpos_times_q, & calc_lambda_times_da_dlat_times_q &)
Evaluates electrostatic properties. Calls the abstract subroutine
evaluate_intern_to_implement with all the requested arguments.
Charges need to be projected to the constrained total charge manifold
before passing them to this routine. The same goes for the dE/dQ, which
should be constrained manually after this routine finishes.
author: Moritz Gubler
Arguments
self :
class (AbstractElectrostaticsCalculator )
pos :
real (DP) (dim: (3,self%num_atoms)) [in]– Atomic positions
lat :
real (DP) (dim: (3,3)) [in]– Lattice vectors
charges :
real (DP) (dim: (self%num_atoms)) [in]– atomic charges.
lagrange_charges :
real (DP) [in]
calc_energy :
logical [in]– If true, the electrostatic energy will be calculated
calc_forces :
logical [in]– If true, the electrostatic force will be calculated
calc_stress :
logical [in]– If true, the electrostatic stress will be calculated
calc_de_dq :
logical [in]– If true, the de_dq will be calculated
calc_a_matrix :
logical [in]– If true, the A matrix (coulomb matrix) matrix will be calculated
calc_lambda_times_da_dpos_times_q :
logical [in]– If true, da_dxyz_times_q will be calculated
calc_lambda_times_da_dlat_times_q :
logical [in]– If true, da_dlat_times_q will be calculated
Called By
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
subroutine evaluate_structure
subroutine evaluate_structure ( & self, & struct, & charges, & calc_energy, & calc_forces, & calc_stress, & calc_de_dq, & calc_a_matrix, & calc_lambda_times_da_dpos_times_q, & calc_lambda_times_da_dlat_times_q &)
Arguments
self :
class (AbstractElectrostaticsCalculator )
struct :
type (Structure ) [in]– Structure that will be evaluated.
charges :
real (DP) (dim: (struct%num_atoms)) [in]
calc_energy :
logical [in]– If true, the electrostatic energy will be calculated
calc_forces :
logical [in]– If true, the electrostatic force will be calculated
calc_stress :
logical [in]– If true, the electrostatic stress will be calculated
calc_de_dq :
logical [in]– If true, the de_dq will be calculated
calc_a_matrix :
logical [in]– If true, the A matrix (coulomb matrix) matrix will be calculated
calc_lambda_times_da_dpos_times_q :
logical [in]– If true, da_dxyz_times_q will be calculated
calc_lambda_times_da_dlat_times_q :
logical [in]– If true, da_dlat_times_q will be calculated
subroutine project_charges_to_constraint
subroutine project_charges_to_constraint ( & charges, & total_charge, & num_atoms &)
Projects the predicted charges to the charge conservation constraint manifold.
author: Moritz Gubler
Arguments
charges :
real (DP) (dim: (num_atoms)) [inout]
total_charge :
real (DP) [in]
num_atoms :
integer [in]
Called By
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.