(git:1f9fd2c)
Loading...
Searching...
No Matches
input_cp2k_neb.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!> \par History
10!> - taken out of input_cp2k_motion
11!> \author Ole Schuett
12! **************************************************************************************************
13
15 USE bibliography, ONLY: elber1987,&
25 USE cp_units, ONLY: cp_unit_to_cp2k
26 USE input_constants, ONLY: &
39 USE input_val_types, ONLY: real_t
40 USE kinds, ONLY: dp
41 USE string_utilities, ONLY: s2a
42#include "./base/base_uses.f90"
43
44 IMPLICIT NONE
45 PRIVATE
46
47 LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .true.
48 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_neb'
49
50 PUBLIC :: create_band_section
51
52CONTAINS
53
54! **************************************************************************************************
55!> \brief creates the section for a BAND run
56!> \param section will contain the pint section
57!> \author Teodoro Laino 09.2006 [tlaino]
58! **************************************************************************************************
59 SUBROUTINE create_band_section(section)
60 TYPE(section_type), POINTER :: section
61
62 TYPE(keyword_type), POINTER :: keyword
63 TYPE(section_type), POINTER :: print_key, subsection, subsubsection
64
65 cpassert(.NOT. ASSOCIATED(section))
66 CALL section_create(section, __location__, name="band", &
67 description="The section that controls a BAND run", &
68 n_keywords=1, n_subsections=0, repeats=.false., &
70 NULLIFY (keyword, print_key, subsection, subsubsection)
71
72 CALL keyword_create(keyword, __location__, name="NPROC_REP", &
73 description="Specify the number of processors to be used per replica "// &
74 "environment (for parallel runs)", &
75 default_i_val=1)
76 CALL section_add_keyword(section, keyword)
77 CALL keyword_release(keyword)
78
79 CALL keyword_create(keyword, __location__, name="PROC_DIST_TYPE", &
80 description="Specify the topology of the mapping of processors into replicas.", &
81 usage="PROC_DIST_TYPE (INTERLEAVED|BLOCKED)", &
82 enum_c_vals=s2a("INTERLEAVED", &
83 "BLOCKED"), &
84 enum_desc=s2a("Interleaved distribution", &
85 "Blocked distribution"), &
86 enum_i_vals=[do_rep_interleaved, do_rep_blocked], &
87 default_i_val=do_rep_blocked)
88 CALL section_add_keyword(section, keyword)
89 CALL keyword_release(keyword)
90
91 CALL keyword_create(keyword, __location__, name="BAND_TYPE", &
92 description="Specifies the type of BAND calculation", &
93 usage="BAND_TYPE (B-NEB|IT-NEB|CI-NEB|D-NEB|SM|EB)", &
94 default_i_val=do_it_neb, &
95 enum_c_vals=s2a("B-NEB", &
96 "IT-NEB", &
97 "CI-NEB", &
98 "D-NEB", &
99 "SM", &
100 "EB"), &
101 enum_desc=s2a("Bisection nudged elastic band", &
102 "Improved tangent nudged elastic band", &
103 "Climbing image nudged elastic band", &
104 "Doubly nudged elastic band", &
105 "String Method", &
106 "Elastic band (Hamiltonian formulation)"), &
107 enum_i_vals=[do_b_neb, do_it_neb, do_ci_neb, do_d_neb, do_sm, do_eb])
108 CALL section_add_keyword(section, keyword)
109 CALL keyword_release(keyword)
110
111 CALL keyword_create(keyword, __location__, name="NUMBER_OF_REPLICA", &
112 description="Specify the number of Replica to use in the BAND. This may "// &
113 "be equal to or larger than the number of defined &REPLICA sections. If "// &
114 "larger, the rest of missing replica will automatically be interpolated "// &
115 "in an iterative bisection procedure: on each step, the largest distance "// &
116 "between adjacent replica is found and a new replica is inserted there by "// &
117 "taking the average of adjacent replica; this is repeated until getting "// &
118 "requested number of replica. Please note that the number of replica is "// &
119 "always including both end points regardless of the setting of keyword "// &
120 "OPTIMIZE_END_POINTS, which should be taken into account when adjusting "// &
121 "the NPROC_REP value based on processors available on the machine.", &
122 default_i_val=10)
123 CALL section_add_keyword(section, keyword)
124 CALL keyword_release(keyword)
125
126 CALL keyword_create(keyword, __location__, name="USE_COLVARS", &
127 description="Uses a version of the band scheme projected in a subspace of colvars.", &
128 default_l_val=.false., lone_keyword_l_val=.true.)
129 CALL section_add_keyword(section, keyword)
130 CALL keyword_release(keyword)
131
132 CALL keyword_create(keyword, __location__, name="POT_TYPE", &
133 description="Specifies the type of potential used in the BAND calculation", &
134 usage="POT_TYPE (FULL|FE|ME)", &
135 default_i_val=pot_neb_full, &
136 enum_c_vals=s2a("FULL", &
137 "FE", &
138 "ME"), &
139 enum_desc=s2a("Full potential (no projections in a subspace of colvars)", &
140 "Free energy (requires a projections in a subspace of colvars)", &
141 "Minimum energy (requires a projections in a subspace of colvars)"), &
142 enum_i_vals=[pot_neb_full, pot_neb_fe, pot_neb_me])
143 CALL section_add_keyword(section, keyword)
144 CALL keyword_release(keyword)
145
146 CALL keyword_create(keyword, __location__, name="ROTATE_FRAMES", &
147 description="Compute at each BAND step the RMSD and rotate the frames in order"// &
148 " to minimize it.", &
149 default_l_val=.true., lone_keyword_l_val=.true.)
150 CALL section_add_keyword(section, keyword)
151 CALL keyword_release(keyword)
152
153 CALL keyword_create(keyword, __location__, name="ALIGN_FRAMES", &
154 description="Enables the alignment of the frames at the beginning of a BAND calculation. "// &
155 "This keyword does not affect the rotation of the replicas during a BAND calculation.", &
156 default_l_val=.true., lone_keyword_l_val=.true.)
157 CALL section_add_keyword(section, keyword)
158 CALL keyword_release(keyword)
159
160 CALL keyword_create(keyword, __location__, name="K_SPRING", &
161 variants=["K"], &
162 description="Specify the value of the spring constant", &
163 default_r_val=0.02_dp)
164 CALL section_add_keyword(section, keyword)
165 CALL keyword_release(keyword)
166
167 ! Convergence_control
168 CALL section_create(subsection, __location__, name="CONVERGENCE_CONTROL", &
169 description="Setup parameters to control the convergence criteria for BAND", &
170 repeats=.false.)
171 CALL keyword_create(keyword, __location__, name="MAX_DR", &
172 description="Tolerance on the maximum value of the displacement on the BAND.", &
173 usage="MAX_DR {real}", &
174 default_r_val=0.0002_dp)
175 CALL section_add_keyword(subsection, keyword)
176 CALL keyword_release(keyword)
177
178 CALL keyword_create(keyword, __location__, name="MAX_FORCE", &
179 description="Tolerance on the maximum value of Forces on the BAND.", &
180 usage="MAX_FORCE {real}", &
181 default_r_val=0.00045_dp)
182 CALL section_add_keyword(subsection, keyword)
183 CALL keyword_release(keyword)
184
185 CALL keyword_create(keyword, __location__, name="RMS_DR", &
186 description="Tolerance on RMS displacements on the BAND.", &
187 usage="RMS_DR {real}", &
188 default_r_val=0.0001_dp)
189 CALL section_add_keyword(subsection, keyword)
190 CALL keyword_release(keyword)
191
192 CALL keyword_create(keyword, __location__, name="RMS_FORCE", &
193 description="Tolerance on RMS Forces on the BAND.", &
194 usage="RMS_FORCE {real}", &
195 default_r_val=0.00030_dp)
196 CALL section_add_keyword(subsection, keyword)
197 CALL keyword_release(keyword)
198 CALL section_add_subsection(section, subsection)
199 CALL section_release(subsection)
200
201 NULLIFY (subsection, subsubsection)
202 ! CI-NEB section
203 CALL section_create(subsection, __location__, name="CI_NEB", &
204 description="Controls parameters for CI-NEB type calculation only.", &
205 repeats=.false.)
206 CALL keyword_create(keyword, __location__, name="NSTEPS_IT", &
207 description="Specify the number of steps of IT-NEB to perform before "// &
208 "switching on the CI algorithm", &
209 default_i_val=5)
210 CALL section_add_keyword(subsection, keyword)
211 CALL keyword_release(keyword)
212 CALL section_add_subsection(section, subsection)
213 CALL section_release(subsection)
214
215 ! String Method section
216 CALL section_create(subsection, __location__, name="STRING_METHOD", &
217 description="Controls parameters for String Method type calculation only.", &
218 repeats=.false.)
219
220 CALL keyword_create(keyword, __location__, name="SPLINE_ORDER", &
221 description="Specify the oder of the spline used in the String Method.", &
222 default_i_val=1)
223 CALL section_add_keyword(subsection, keyword)
224 CALL keyword_release(keyword)
225 CALL keyword_create(keyword, __location__, name="SMOOTHING", &
226 description="Smoothing parameter for the reparametrization of the frames.", &
227 default_r_val=0.2_dp)
228 CALL section_add_keyword(subsection, keyword)
229 CALL keyword_release(keyword)
230
231 CALL section_add_subsection(section, subsection)
232 CALL section_release(subsection)
233
234 ! Optimization section
235 CALL section_create(subsection, __location__, name="optimize_band", &
236 description="Specify the optimization method for the band", &
237 repeats=.true.)
238 CALL create_opt_band_section(subsection)
239 CALL section_add_subsection(section, subsection)
240 CALL section_release(subsection)
241
242 ! replica section: to specify coordinates and velocities (possibly) of the
243 ! different replica used in the BAND
244 CALL section_create(subsection, __location__, name="replica", &
245 description="Specify coordinates and velocities (possibly) of the replica", &
246 repeats=.true.)
247 ! Colvar
248 CALL keyword_create(keyword, __location__, name="COLLECTIVE", &
249 description="Specifies the value of the collective variables used in the projected"// &
250 " BAND method. The order of the values is the order of the COLLECTIVE section in the"// &
251 " constraints/restraints section", &
252 usage="COLLECTIVE {real} .. {real}", &
253 type_of_var=real_t, n_var=-1)
254 CALL section_add_keyword(subsection, keyword)
255 CALL keyword_release(keyword)
256 ! Coordinates read through an external file
257 CALL keyword_create(keyword, __location__, name="COORD_FILE_NAME", &
258 description="Name of the xyz file with coordinates (alternative to &COORD section)", &
259 usage="COORD_FILE_NAME <CHAR>", &
260 default_lc_val="")
261 CALL section_add_keyword(subsection, keyword)
262 CALL keyword_release(keyword)
263 ! Coordinates and velocities
264 CALL create_coord_section(subsubsection, "BAND")
265 CALL section_add_subsection(subsection, subsubsection)
266 CALL section_release(subsubsection)
267 CALL create_velocity_section(subsubsection, "BAND")
268 CALL section_add_subsection(subsection, subsubsection)
269 CALL section_release(subsubsection)
270
271 CALL section_add_subsection(section, subsection)
272 CALL section_release(subsection)
273
274 ! Print key section
275 CALL cp_print_key_section_create(print_key, __location__, "PROGRAM_RUN_INFO", &
276 description="Controls the printing basic info about the BAND run", &
277 print_level=low_print_level, add_last=add_last_numeric, filename="__STD_OUT__")
278
279 CALL keyword_create(keyword, __location__, name="INITIAL_CONFIGURATION_INFO", &
280 description="Print information for the setup of the initial configuration.", &
281 usage="INITIAL_CONFIGURATION_INFO <LOGICAL>", &
282 default_l_val=.false., lone_keyword_l_val=.true.)
283 CALL section_add_keyword(print_key, keyword)
284 CALL keyword_release(keyword)
285
286 CALL keyword_create(keyword, __location__, name="PLOT_REL_ENERGY", &
287 description="If a simple plot of relative energy of each replica is shown "// &
288 "alongside data vertically on each step. This makes the output format less "// &
289 "compact than default but creates a visual aid for ease of monitoring, with "// &
290 "some special marks for the local maxima `(X)` or minima `(x)` in the plot "// &
291 "and adjacent to the energy values in the form of `(++)` or `(--)`. Please "// &
292 "note that this plot does not represent optimization history where absolute "// &
293 "energy values vary between steps, because it shows *relative* energy that "// &
294 "is calculated by (E_rep-E_min)/(E_max-E_min) for each replica on one step.", &
295 usage="PLOT_REL_ENERGY <LOGICAL>", &
296 default_l_val=.false., lone_keyword_l_val=.true.)
297 CALL section_add_keyword(print_key, keyword)
298 CALL keyword_release(keyword)
299
300 CALL section_add_subsection(section, print_key)
301 CALL section_release(print_key)
302
303 CALL cp_print_key_section_create(print_key, __location__, "CONVERGENCE_INFO", &
304 description="Controls the printing of the convergence criteria during a BAND run", &
305 print_level=low_print_level, add_last=add_last_numeric, filename="__STD_OUT__")
306 CALL section_add_subsection(section, print_key)
307 CALL section_release(print_key)
308
309 CALL cp_print_key_section_create(print_key, __location__, "REPLICA_INFO", &
310 description="Controls the printing of each replica info during a BAND run", &
311 print_level=medium_print_level, add_last=add_last_numeric, filename="__STD_OUT__")
312 CALL section_add_subsection(section, print_key)
313 CALL section_release(print_key)
314
315 CALL cp_print_key_section_create(print_key, __location__, "ENERGY", &
316 description="Controls the printing of the ENER file in a BAND run", &
317 print_level=low_print_level, common_iter_levels=1, &
318 filename="")
319 CALL section_add_subsection(section, print_key)
320 CALL section_release(print_key)
321
322 CALL cp_print_key_section_create(print_key, __location__, "FINAL_BAND", &
323 description="Controls the printing of the final structures as an "// &
324 "XYZ trajectory file after a BAND run, regardless of convergence "// &
325 "status. The unit is angstrom for coordinates and cell vectors.", &
326 print_level=low_print_level, common_iter_levels=1, &
327 filename="FINAL")
328
329 CALL keyword_create(keyword, __location__, name="PRINT_ATOM_KIND", &
330 description="Write the atom kind given in the subsys section instead "// &
331 "of the element symbol in the XYZ trajectory file.", &
332 usage="PRINT_ATOM_KIND {LOGICAL}", &
333 default_l_val=.false., lone_keyword_l_val=.true.)
334 CALL section_add_keyword(print_key, keyword)
335 CALL keyword_release(keyword)
336
337 CALL section_add_subsection(section, print_key)
338 CALL section_release(print_key)
339
340 CALL cp_print_key_section_create(print_key, __location__, "BANNER", &
341 description="Controls the printing of the BAND banner", &
342 print_level=low_print_level, common_iter_levels=1, &
343 filename="__STD_OUT__")
344 CALL section_add_subsection(section, print_key)
345 CALL section_release(print_key)
346 END SUBROUTINE create_band_section
347
348! **************************************************************************************************
349!> \brief creates the optimization section for a BAND run
350!> \param section will contain the pint section
351!> \author Teodoro Laino 02.2007 [tlaino]
352! **************************************************************************************************
353 SUBROUTINE create_opt_band_section(section)
354 TYPE(section_type), POINTER :: section
355
356 TYPE(keyword_type), POINTER :: keyword
357 TYPE(section_type), POINTER :: print_key, subsection, subsubsection
358
359 cpassert(ASSOCIATED(section))
360 NULLIFY (keyword, print_key, subsection, subsubsection)
361
362 CALL keyword_create(keyword, __location__, name="OPT_TYPE", &
363 description="Specifies the type optimizer used for the band", &
364 usage="OPT_TYPE (MD|DIIS)", &
365 default_i_val=band_diis_opt, &
366 enum_c_vals=s2a("MD", &
367 "DIIS"), &
368 enum_desc=s2a("Molecular dynamics-based optimizer", &
369 "Coupled steepest descent / direct inversion in the iterative subspace"), &
370 enum_i_vals=[band_md_opt, band_diis_opt])
371 CALL section_add_keyword(section, keyword)
372 CALL keyword_release(keyword)
373
374 CALL keyword_create(keyword, __location__, name="OPTIMIZE_END_POINTS", &
375 description="If both end points of the band are also optimized alongside "// &
376 "the rest of replica. This may be set to .TRUE. if both end points have "// &
377 "already been optimized with the same FORCE_EVAL, in which case the force "// &
378 "on both end points will be reset to 0 on each step. Please note that both "// &
379 "end points will always be included in NUMBER_OF_REPLICA and get NPROC_REP "// &
380 "processors allocated each for calculation in the same way as the rest of "// &
381 "replica, regardless of this setting.", &
382 default_l_val=.false., lone_keyword_l_val=.true.)
383 CALL section_add_keyword(section, keyword)
384 CALL keyword_release(keyword)
385
386 ! MD optimization section
387 CALL section_create(subsection, __location__, name="MD", &
388 description="Activate the MD based optimization procedure for BAND", &
389 repeats=.false.)
390
391 CALL keyword_create(keyword, __location__, name="MAX_STEPS", &
392 description="Specify the maximum number of MD steps", &
393 default_i_val=100)
394 CALL section_add_keyword(subsection, keyword)
395 CALL keyword_release(keyword)
396
397 CALL keyword_create( &
398 keyword, __location__, &
399 name="timestep", &
400 description="The length of an integration step", &
401 usage="timestep 1.0", &
402 default_r_val=cp_unit_to_cp2k(value=0.5_dp, &
403 unit_str="fs"), &
404 unit_str="fs")
405 CALL section_add_keyword(subsection, keyword)
406 CALL keyword_release(keyword)
407
408 CALL keyword_create(keyword, __location__, name="TEMPERATURE", &
409 description="Specify the initial temperature", &
410 default_r_val=cp_unit_to_cp2k(value=0.0_dp, &
411 unit_str="K"), &
412 unit_str="K")
413 CALL section_add_keyword(subsection, keyword)
414 CALL keyword_release(keyword)
415
416 ! Temp_control
417 CALL section_create(subsubsection, __location__, name="TEMP_CONTROL", &
418 description="Setup parameters to control the temperature during a BAND MD run.", &
419 repeats=.false.)
420 CALL keyword_create(keyword, __location__, name="TEMPERATURE", &
421 description="Specify the target temperature", &
422 type_of_var=real_t, unit_str="K")
423 CALL section_add_keyword(subsubsection, keyword)
424 CALL keyword_release(keyword)
425
426 CALL keyword_create(keyword, __location__, name="TEMP_TOL", &
427 description="Specify the tolerance on the temperature for rescaling", &
428 default_r_val=cp_unit_to_cp2k(value=0.0_dp, &
429 unit_str="K"), &
430 unit_str="K")
431 CALL section_add_keyword(subsubsection, keyword)
432 CALL keyword_release(keyword)
433
434 CALL keyword_create(keyword, __location__, name="TEMP_TOL_STEPS", &
435 description="Specify the number of steps to apply a temperature control", &
436 default_i_val=0)
437 CALL section_add_keyword(subsubsection, keyword)
438 CALL keyword_release(keyword)
439 CALL section_add_subsection(subsection, subsubsection)
440 CALL section_release(subsubsection)
441
442 ! Vel_control
443 CALL section_create(subsubsection, __location__, name="VEL_CONTROL", &
444 description="Setup parameters to control the velocity during a BAND MD run.", &
445 repeats=.false.)
446 CALL keyword_create(keyword, __location__, name="ANNEALING", &
447 description="Specify the annealing coefficient", &
448 default_r_val=1.0_dp)
449 CALL section_add_keyword(subsubsection, keyword)
450 CALL keyword_release(keyword)
451 CALL keyword_create(keyword, __location__, name="PROJ_VELOCITY_VERLET", &
452 description="Uses a Projected Velocity Verlet instead of a normal Velocity Verlet."// &
453 " Every time the cosine between velocities and forces is < 0 velocities are"// &
454 " zeroed.", &
455 usage="PROJ_VELOCITY_VERLET <LOGICAL>", &
456 default_l_val=.true., lone_keyword_l_val=.true.)
457 CALL section_add_keyword(subsubsection, keyword)
458 CALL keyword_release(keyword)
459 CALL keyword_create(keyword, __location__, name="SD_LIKE", &
460 description="Zeros velocity at each MD step emulating a steepest descent like "// &
461 "(SD_LIKE) approach", &
462 usage="SD_LIKE <LOGICAL>", &
463 default_l_val=.false., lone_keyword_l_val=.true.)
464 CALL section_add_keyword(subsubsection, keyword)
465 CALL keyword_release(keyword)
466 CALL section_add_subsection(subsection, subsubsection)
467 CALL section_release(subsubsection)
468 ! End of MD
469 CALL section_add_subsection(section, subsection)
470 CALL section_release(subsection)
471
472 ! DIIS optimization section
473 CALL section_create(subsection, __location__, name="DIIS", &
474 description="Activate the DIIS based optimization procedure for BAND", &
475 repeats=.false.)
476
477 CALL keyword_create(keyword, __location__, name="MAX_SD_STEPS", &
478 description="Specify the maximum number of SD steps to perform"// &
479 " before switching on DIIS (the minimum number will always be equal to N_DIIS).", &
480 default_i_val=1)
481 CALL section_add_keyword(subsection, keyword)
482 CALL keyword_release(keyword)
483
484 CALL keyword_create(keyword, __location__, name="MAX_STEPS", &
485 description="Specify the maximum number of optimization steps", &
486 default_i_val=100)
487 CALL section_add_keyword(subsection, keyword)
488 CALL keyword_release(keyword)
489
490 CALL keyword_create(keyword, __location__, name="N_DIIS", &
491 variants=["NDIIS"], &
492 description="Number of history vectors to be used with DIIS", &
493 usage="N_DIIS 4", &
494 default_i_val=7)
495 CALL section_add_keyword(subsection, keyword)
496 CALL keyword_release(keyword)
497
498 CALL keyword_create(keyword, __location__, name="STEPSIZE", &
499 description="Initial stepsize used for the line search, sometimes this parameter "// &
500 "can be reduced to stabilize DIIS", &
501 usage="STEPSIZE <REAL>", &
502 default_r_val=1.0_dp)
503 CALL section_add_keyword(subsection, keyword)
504 CALL keyword_release(keyword)
505
506 CALL keyword_create(keyword, __location__, name="MAX_STEPSIZE", &
507 description="Maximum stepsize used for the line search, sometimes this parameter "// &
508 "can be reduced to stabilize the LS for particularly difficult initial geometries", &
509 usage="MAX_STEPSIZE <REAL>", &
510 default_r_val=2.0_dp)
511 CALL section_add_keyword(subsection, keyword)
512 CALL keyword_release(keyword)
513
514 CALL keyword_create(keyword, __location__, name="NP_LS", &
515 description="Number of points used in the line search SD.", &
516 usage="NP_LS <INTEGER>", &
517 default_i_val=2)
518 CALL section_add_keyword(subsection, keyword)
519 CALL keyword_release(keyword)
520
521 CALL keyword_create(keyword, __location__, name="NO_LS", &
522 description="Does not perform LS during SD. Useful in combination with a proper STEPSIZE"// &
523 " for particularly out of equilibrium starting geometries.", &
524 default_l_val=.false., lone_keyword_l_val=.true.)
525 CALL section_add_keyword(subsection, keyword)
526 CALL keyword_release(keyword)
527
528 CALL keyword_create(keyword, __location__, name="CHECK_DIIS", &
529 description="Performs a series of checks on the DIIS solution in order to accept the DIIS step."// &
530 " If set to .FALSE. the only check performed is that the angle between the DIIS solution and the"// &
531 " reference vector is less than Pi/2. Can be useful if many DIIS steps are rejected.", &
532 default_l_val=.true., lone_keyword_l_val=.true.)
533 CALL section_add_keyword(subsection, keyword)
534 CALL keyword_release(keyword)
535
536 CALL cp_print_key_section_create(print_key, __location__, "diis_info", &
537 description="Controls the printing of DIIS info during a BAND run", &
538 print_level=high_print_level, add_last=add_last_numeric, filename="__STD_OUT__")
539 CALL section_add_subsection(subsection, print_key)
540 CALL section_release(print_key)
541
542 CALL section_add_subsection(section, subsection)
543 CALL section_release(subsection)
544 END SUBROUTINE create_opt_band_section
545
546END MODULE input_cp2k_neb
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public elber1987
integer, save, public jonsson2000_1
integer, save, public jonsson1998
integer, save, public jonsson2000_2
integer, save, public wales2004
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public low_print_level
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
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
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:1210
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public pot_neb_me
integer, parameter, public band_md_opt
integer, parameter, public pot_neb_fe
integer, parameter, public do_rep_interleaved
integer, parameter, public do_rep_blocked
integer, parameter, public do_sm
integer, parameter, public do_b_neb
integer, parameter, public do_d_neb
integer, parameter, public do_eb
integer, parameter, public band_diis_opt
integer, parameter, public do_ci_neb
integer, parameter, public do_it_neb
integer, parameter, public pot_neb_full
subroutine, public create_band_section(section)
creates the section for a BAND run
subroutine, public create_coord_section(section, name)
Creates the coord section.
subroutine, public create_velocity_section(section, name)
Creates the velocity section.
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 real_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Utilities for string manipulations.
represent a keyword in the input
represent a section of the input file