(git:d43dca4)
Loading...
Searching...
No Matches
input_cp2k_eip.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Creates the EIP section of the input
10!> \par History
11!> 03.2006 created
12!> \author Thomas D. Kuehne (tkuehne@cp2k.org)
13! **************************************************************************************************
15 USE bibliography, ONLY: bazant1996,&
36 USE input_val_types, ONLY: enum_t
37 USE string_utilities, ONLY: s2a
38#include "./base/base_uses.f90"
39
40 IMPLICIT NONE
41 PRIVATE
42
43 LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .true.
44 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_eip'
45
46 PUBLIC :: create_eip_section
47
48CONTAINS
49
50! **************************************************************************************************
51!> \brief Create the input section for EIP
52!> \param section the section to create
53!> \par History
54!> 03.2006 created
55!> \author Thomas D. Kuehne (tkuehne@cp2k.org)
56! **************************************************************************************************
57 SUBROUTINE create_eip_section(section)
58 TYPE(section_type), POINTER :: section
59
60 TYPE(keyword_type), POINTER :: keyword
61 TYPE(section_type), POINTER :: subsection
62
63! ------------------------------------------------------------------------
64
65 cpassert(.NOT. ASSOCIATED(section))
66 CALL section_create(section, __location__, name="EIP", &
67 description="This section contains all information to run an "// &
68 "Empirical Interatomic Potential (EIP) calculation.", &
69 n_keywords=1, n_subsections=1, repeats=.false., &
72
73 NULLIFY (subsection, keyword)
74
75 CALL keyword_create(keyword, __location__, name="EIP_MODEL", &
76 description="Selects the empirical interaction potential model. "// &
77 "EDIP is accepted as an alias of BAZANT and uses the identical "// &
78 "implementation. EIP is currently supported only for a single "// &
79 "MPI rank. BAZANT and LENOSKY retain OpenMP parallelization, "// &
80 "while STILLINGER_WEBER and TERSOFF currently run without "// &
81 "OpenMP parallelization.", &
82 usage="EIP_MODEL BAZANT", type_of_var=enum_t, &
83 n_var=1, repeats=.false., variants=["EIP-MODEL"], &
84 enum_c_vals=s2a("BAZANT", "EDIP", "LENOSKY", &
85 "STILLINGER_WEBER", "TERSOFF"), &
88 enum_desc=s2a("Bazant potentials", &
89 "Environment-Dependent Interatomic Potential", &
90 "Lenosky potentials", &
91 "Stillinger-Weber potentials", &
92 "Tersoff potentials"), &
93 default_i_val=use_lenosky_eip)
94 CALL section_add_keyword(section, keyword)
95 CALL keyword_release(keyword)
96
97 CALL create_eip_print_section(subsection)
98 CALL section_add_subsection(section, subsection)
99 CALL section_release(subsection)
100
101 END SUBROUTINE create_eip_section
102
103! **************************************************************************************************
104!> \brief Creates the print section for the eip subsection
105!> \param section the section to create
106!> \par History
107!> 03.2006 created
108!> \author Thomas D. Kuehne (tkuehne@cp2k.org)
109! **************************************************************************************************
110 SUBROUTINE create_eip_print_section(section)
111 TYPE(section_type), POINTER :: section
112
113 TYPE(section_type), POINTER :: print_key
114
115! ------------------------------------------------------------------------
116
117 cpassert(.NOT. ASSOCIATED(section))
118 CALL section_create(section, __location__, name="PRINT", &
119 description="Section of possible print options in EIP code.", &
120 n_keywords=0, n_subsections=6, repeats=.false.)
121
122 NULLIFY (print_key)
123
124 CALL cp_print_key_section_create(print_key, __location__, "ENERGIES", &
125 description="Controls the printing of the EIP energies.", &
126 print_level=medium_print_level, filename="__STD_OUT__")
127 CALL section_add_subsection(section, print_key)
128 CALL section_release(print_key)
129
130 CALL cp_print_key_section_create(print_key, __location__, "ENERGIES_VAR", &
131 description="Controls the printing of the variance of the EIP energies.", &
132 print_level=high_print_level, filename="__STD_OUT__")
133 CALL section_add_subsection(section, print_key)
134 CALL section_release(print_key)
135
136 CALL cp_print_key_section_create(print_key, __location__, "FORCES", &
137 description="Controls the printing of the EIP forces.", &
138 print_level=medium_print_level, filename="__STD_OUT__")
139 CALL section_add_subsection(section, print_key)
140 CALL section_release(print_key)
141
142 CALL cp_print_key_section_create(print_key, __location__, "COORD_AVG", &
143 description="Controls the printing of the average coordination number.", &
144 print_level=high_print_level, filename="__STD_OUT__")
145 CALL section_add_subsection(section, print_key)
146 CALL section_release(print_key)
147
148 CALL cp_print_key_section_create(print_key, __location__, "COORD_VAR", &
149 description="Controls the printing of the variance of the coordination number.", &
150 print_level=high_print_level, filename="__STD_OUT__")
151 CALL section_add_subsection(section, print_key)
152 CALL section_release(print_key)
153
154 CALL cp_print_key_section_create(print_key, __location__, "COUNT", &
155 description="Controls the printing of the number of function calls.", &
156 print_level=high_print_level, filename="__STD_OUT__")
157 CALL section_add_subsection(section, print_key)
158 CALL section_release(print_key)
159
160 END SUBROUTINE create_eip_print_section
161
162END MODULE input_cp2k_eip
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public tersoff1988
integer, save, public bazant1997
integer, save, public bazant1996
integer, save, public stillinger1985
integer, save, public goedecker2002
integer, save, public lenosky2000
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
subroutine, public cp_print_key_section_create(print_key_section, location, name, description, print_level, each_iter_names, each_iter_values, add_last, filename, common_iter_levels, citations, unit_str)
creates a print_key section
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public use_bazant_eip
integer, parameter, public use_tersoff_eip
integer, parameter, public use_lenosky_eip
integer, parameter, public use_stillinger_weber_eip
Creates the EIP section of the input.
subroutine, public create_eip_section(section)
Create the input section for EIP.
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, deprecation_notice)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
subroutine, public section_add_subsection(section, subsection)
adds a subsection to the given section
recursive subroutine, public section_release(section)
releases the given keyword list (see doc/ReferenceCounting.html)
a wrapper for basic fortran types.
integer, parameter, public enum_t
Utilities for string manipulations.
represent a keyword in the input
represent a section of the input file