(git:374b731)
Loading...
Searching...
No Matches
qs_fb_input.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
9 USE bibliography, ONLY: rayson2009
10 USE cp_units, ONLY: cp_unit_to_cp2k
17 USE input_val_types, ONLY: logical_t,&
18 real_t
19 USE kinds, ONLY: dp
20#include "./base/base_uses.f90"
21
22 IMPLICIT NONE
23 PRIVATE
24
25 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_fb_input'
26
28
29CONTAINS
30
31! **************************************************************************************************
32!> \brief Input section for filter matrix diagonalisation method
33!> \param section : section to be created
34!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
35! **************************************************************************************************
36 SUBROUTINE create_filtermatrix_section(section)
37 TYPE(section_type), POINTER :: section
38
39 TYPE(keyword_type), POINTER :: keyword
40
41 cpassert(.NOT. ASSOCIATED(section))
42
43 CALL section_create(section, __location__, name="FILTER_MATRIX", &
44 description=" ", &
45 n_keywords=1, n_subsections=0, repeats=.false.)
46
47 NULLIFY (keyword)
48
49 CALL keyword_create(keyword, __location__, &
50 name="FILTER_TEMPERATURE", &
51 description="Temperature used for the filter function used "// &
52 "to construct the filter matrix.", &
53 repeats=.false., &
54 n_var=1, &
55 type_of_var=real_t, &
56 default_r_val=cp_unit_to_cp2k(value=10000.0_dp, &
57 unit_str="K"), &
58 unit_str="K", &
59 usage="FILTER_TEMPERATURE [K] 10000", &
60 citations=(/rayson2009/))
61 CALL section_add_keyword(section, keyword)
62 CALL keyword_release(keyword)
63
64 CALL keyword_create(keyword, __location__, &
65 name="AUTO_CUTOFF_SCALE", &
66 description="Scalar constant multiplied to maximum orbital "// &
67 "size of each atom, used for automatically "// &
68 "creating cutoff radii for atomic matrices", &
69 repeats=.false., &
70 n_var=1, &
71 type_of_var=real_t, &
72 default_r_val=0.5_dp, &
73 usage="AUTO_CUTOFF_SCALE 0.5_dp", &
74 citations=(/rayson2009/))
75 CALL section_add_keyword(section, keyword)
76 CALL keyword_release(keyword)
77
78 CALL keyword_create(keyword, __location__, &
79 name="EPS_FB", &
80 description="Default tolerance used in generating the filter "// &
81 "matrix. Anything less than EPS_FB will be "// &
82 "regarded as zero", &
83 repeats=.false., &
84 n_var=1, &
85 type_of_var=real_t, &
86 default_r_val=1.e-12_dp, &
87 usage="EPS_FB 1.e-12", &
88 citations=(/rayson2009/))
89 CALL section_add_keyword(section, keyword)
90 CALL keyword_release(keyword)
91
92 CALL keyword_create(keyword, __location__, &
93 name="COLLECTIVE_COMMUNICATION", &
94 description="If set to TRUE, then all MPI communications "// &
95 "required for the construction of the "// &
96 "filter matrix is done at the start and end "// &
97 "of each filter matrix calculation. This "// &
98 "makes communications more efficient, at "// &
99 "the expense of using more memory. If you "// &
100 "find the fb_fltrmat_add_blkcol_mpi times "// &
101 "at the end of CP2K output is high, then "// &
102 "run again with this option set to .TRUE.", &
103 repeats=.false., &
104 n_var=1, &
105 type_of_var=logical_t, &
106 default_l_val=.false., &
107 usage="COLLECTIVE_COMMUNICATION T")
108 CALL section_add_keyword(section, keyword)
109 CALL keyword_release(keyword)
110
111 END SUBROUTINE create_filtermatrix_section
112
113END MODULE qs_fb_input
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public rayson2009
unit conversion facility
Definition cp_units.F:30
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Definition cp_units.F:1150
represents keywords in an input
subroutine, public keyword_release(keyword)
releases the given keyword (see doc/ReferenceCounting.html)
subroutine, public keyword_create(keyword, location, name, description, usage, type_of_var, n_var, repeats, variants, default_val, default_l_val, default_r_val, default_lc_val, default_c_val, default_i_val, default_l_vals, default_r_vals, default_c_vals, default_i_vals, lone_keyword_val, lone_keyword_l_val, lone_keyword_r_val, lone_keyword_c_val, lone_keyword_i_val, lone_keyword_l_vals, lone_keyword_r_vals, lone_keyword_c_vals, lone_keyword_i_vals, enum_c_vals, enum_i_vals, enum, enum_strict, enum_desc, unit_str, citations, deprecation_notice, removed)
creates a keyword object
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_create(section, location, name, description, n_keywords, n_subsections, repeats, citations)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
a wrapper for basic fortran types.
integer, parameter, public real_t
integer, parameter, public logical_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
subroutine, public create_filtermatrix_section(section)
Input section for filter matrix diagonalisation method.
Definition qs_fb_input.F:37
represent a keyword in the input
represent a section of the input file