mod_analyse_a_prime_matrix_eigenvalues
Lines: 53 |
Visibility: private
Provide analysis routines for the A prime matrix during 4G charge equilibration.
The routines in this module are not meant for production runs. Instead, they
may be helpful to understand problematic QEq behavior (eg. covergence issues).
Dependencies
Uses
module~~mod_analyse_a_prime_matrix_eigenvalues~~UsesGraph
module~mod_analyse_a_prime_matrix_eigenvalues
mod_analyse_a_prime_matrix_eigenvalues
module~mod_abstract_electrostatics
mod_abstract_electrostatics
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_electrostatics
module~mod_abstract_property_model
mod_abstract_property_model
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_property_model
module~mod_direct_charge_equilibration
mod_direct_charge_equilibration
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_direct_charge_equilibration
module~mod_pair_electrostatics
mod_pair_electrostatics
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_pair_electrostatics
module~mod_periodic_table
mod_periodic_table
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_periodic_table
module~mod_precision
mod_precision
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_precision
module~mod_structures
mod_structures
module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_structures
module~mod_abstract_electrostatics->module~mod_precision
module~mod_abstract_electrostatics->module~mod_structures
module~mod_abstract_property_model->module~mod_precision
module~mod_array_helpers
mod_array_helpers
module~mod_abstract_property_model->module~mod_array_helpers
module~mod_initialize_array
mod_initialize_array
module~mod_abstract_property_model->module~mod_initialize_array
module~mod_io
mod_io
module~mod_abstract_property_model->module~mod_io
module~mod_random
mod_random
module~mod_abstract_property_model->module~mod_random
module~mod_settings
mod_settings
module~mod_abstract_property_model->module~mod_settings
module~mod_throw
mod_throw
module~mod_abstract_property_model->module~mod_throw
module~mod_direct_charge_equilibration->module~mod_abstract_electrostatics
module~mod_direct_charge_equilibration->module~mod_precision
module~mod_abstract_charge_equilibration
mod_abstract_charge_equilibration
module~mod_direct_charge_equilibration->module~mod_abstract_charge_equilibration
module~mod_linalg
mod_linalg
module~mod_direct_charge_equilibration->module~mod_linalg
module~mod_pair_electrostatics->module~mod_abstract_electrostatics
module~mod_pair_electrostatics->module~mod_precision
module~mod_constants
mod_constants
module~mod_pair_electrostatics->module~mod_constants
module~mod_pair_electrostatics->module~mod_throw
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_io
module~mod_periodic_table->module~mod_throw
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_periodic_table
module~mod_structures->module~mod_precision
module~mod_structures->module~mod_array_helpers
module~mod_structures->module~mod_constants
module~mod_structures->module~mod_linalg
module~mod_mpi
mod_mpi
module~mod_structures->module~mod_mpi
module~mod_structures_helper
mod_structures_helper
module~mod_structures->module~mod_structures_helper
module~mod_structures->module~mod_throw
module~mod_abstract_charge_equilibration->module~mod_abstract_electrostatics
module~mod_abstract_charge_equilibration->module~mod_periodic_table
module~mod_abstract_charge_equilibration->module~mod_precision
module~mod_abstract_charge_equilibration->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_initialize_array->module~mod_precision
module~mod_initialize_array->module~mod_io
module~mod_initialize_array->module~mod_mpi
module~mod_initialize_array->module~mod_random
module~mod_initialize_array->module~mod_throw
module~mod_parameter_file
mod_parameter_file
module~mod_initialize_array->module~mod_parameter_file
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_linalg->module~mod_precision
module~mod_linalg->module~mod_settings
module~mod_linalg->module~mod_throw
module~cublas_wrapper
cublas_wrapper
module~mod_linalg->module~cublas_wrapper
module~mod_mpi->module~mod_precision
mpi_f08
mpi_f08
module~mod_mpi->mpi_f08
module~mod_random->module~mod_precision
module~mod_random->module~mod_constants
module~mod_settings->module~mod_periodic_table
module~mod_settings->module~mod_precision
module~mod_settings->module~mod_constants
module~mod_settings->module~mod_io
module~mod_settings->module~mod_throw
module~mod_cpu_vendor
mod_cpu_vendor
module~mod_settings->module~mod_cpu_vendor
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_io
module~mod_throw->module~mod_mpi
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_cpu_vendor->iso_c_binding
module~mod_parameter_file->module~mod_precision
module~mod_parameter_file->module~mod_io
module~mod_parameter_file->module~mod_throw
module~mod_abstract_broadcast_file
mod_abstract_broadcast_file
module~mod_parameter_file->module~mod_abstract_broadcast_file
module~mod_nan_check
mod_nan_check
module~mod_parameter_file->module~mod_nan_check
module~mod_sort->module~mod_precision
module~mod_abstract_broadcast_file->module~mod_io
module~mod_abstract_broadcast_file->module~mod_mpi
module~mod_abstract_broadcast_file->module~mod_throw
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_nan_check->module~mod_precision
module~mod_nan_check->module~mod_io
module~mod_nan_check->module~mod_throw
ieee_arithmetic
ieee_arithmetic
module~mod_nan_check->ieee_arithmetic
module~mod_genericfile->module~mod_io
module~mod_genericfile->module~mod_mpi
module~mod_genericfile->module~mod_throw
module~mod_sanitize->module~mod_throw
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.
Procedures Summary
Procedure Details
subroutine analyse_a_prime_matrix_eigenvalues
subroutine analyse_a_prime_matrix_eigenvalues ( & structures, & indices_struc, & iter_tol, & precision, & elemental_sigma, & hardness_model, & elec_calc, & qeq_solver &)
Calculates the eigenvalues of the A' matrix for all structures. And
writes them to one file per structure. Filenames are of the form
'eigenvalues_1', 'eigenvalues_2', etc.
This routine should not be used in MPI-parallel runs.
author: Moritz R. Schäfer
Arguments
structures :
type (Structure ) (dim: (:)) [in]– A list of all structures.
indices_struc :
integer (dim: (:)) [in]– The index of the structures in `structures` which should be
calculated. We hand over the full list of `structures` to avoid an
additional copy operation.
iter_tol :
real (DP) [in]– Convergence threshold for the iterative solver. Can be set by keyword iter_tol.
precision :
real (DP) [in]– Precision of the electrostatics calculator. Can be set by keyword
`electrostatics_precision`.
Has to be smaller than `iter_tol`.
elemental_sigma :
real (DP) (dim: (MAX_ELEM_NUM)) [in]– Gausswidth of charges for each element.
hardness_model :
type (ModelPtr ) [in]– Model for the hardness. Must be already initialized.
elec_calc :
class (AbstractElectrostaticsCalculator ) [inout]– Electrostatic calculator used to process the charges.
Is reinitialized for each structure. Its state after the routine is determined by
the last structure in indices_struc.
qeq_solver :
class (DirectChargeEquilibrator ) [inout]– Charge equilibrator to calculate charges from hardnesses and predicted chis.
Is reinitialized for each structure. Its state after the routine is determined by
the last structure in indices_struc.