atomes 1.3.1
atomes: an atomic scale modeling tool box
Loading...
Searching...
No Matches
cpmd_print.c
Go to the documentation of this file.
1/* This file is part of the 'atomes' software
2
3'atomes' is free software: you can redistribute it and/or modify it under the terms
4of the GNU Affero General Public License as published by the Free Software Foundation,
5either version 3 of the License, or (at your option) any later version.
6
7'atomes' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
8without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9See the GNU General Public License for more details.
10
11You should have received a copy of the GNU Affero General Public License along with 'atomes'.
12If not, see <https://www.gnu.org/licenses/>
13
14Copyright (C) 2022-2026 by CNRS and University of Strasbourg */
15
21
22/*
23* This file: 'cpmd_print.c'
24*
25* Contains:
26*
27
28 - The functions to print the CPMD input file(s)
29
30*
31* List of functions:
32
33 void print_info_section (GtkTextBuffer * buf);
34 void print_this_thermostat (thermostat * thermo, int id, GtkTextBuffer * buf);
35 void print_thermostat (GtkTextBuffer * buf);
36 void print_restart (GtkTextBuffer * buf);
37 void print_cpmd_section (GtkTextBuffer * buf);
38 void print_dft_section (GtkTextBuffer * buf);
39 void print_vdw_section (GtkTextBuffer * buf);
40 void print_prop_section (GtkTextBuffer * buf);
41 void print_system_section (GtkTextBuffer * buf);
42 void print_atoms_section (GtkTextBuffer * buf);
43 void print_the_section (int s, int p, GtkTextBuffer * buffer);
44
45*/
46
47#include "global.h"
48#include "interface.h"
49#include "calc.h"
50#include "cpmd.h"
51
52extern dummy_atom * get_active_dummy (int id);
53
54int cpmd_sym[NSYM] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 14};
55
63void print_info_section (GtkTextBuffer * buf)
64{
65 gchar * str = g_strdup_printf (_(" This input file was prepared using %s\n\n"), PACKAGE);
66 print_info (str, NULL, buf);
67 g_free (str);
68 if (tmp_cpmd -> info != NULL) print_info (tmp_cpmd -> info, NULL, buf);
69 print_info ("\n\n", NULL, buf);
70}
71
81void print_this_thermostat (thermostat * thermo, int id, GtkTextBuffer * buf)
82{
83 int i, j, k, l, m;
84 gchar * temp[2] = {"TEMPERATURE", "TEMPERATURE ELECTRONS"};
85 gchar * tobj[2] = {"IONS", "ELECTRONS"};
86 gchar * tkey[2] = {"TEMPCONTROL", "NOSE"};
87 gchar * str = NULL;
88
89 if (thermo -> type == 0)
90 {
91 str = g_strdup_printf ("\n\n %s\n", temp[id]);
92 print_info (str, NULL, buf);
93 g_free (str);
94 str = g_strdup_printf (" %f", thermo -> params[0]);
95 print_info (str, NULL, buf);
96 g_free (str);
97 }
98 else
99 {
100 if (thermo -> sys == GLOBAL)
101 {
102 str = g_strdup_printf ("\n\n %s %s\n", tkey[thermo -> type-1], tobj[id]);
103 }
104 else if (thermo -> sys == LOCAL)
105 {
106 str = g_strdup_printf ("\n\n %s %s %s\n", tkey[thermo -> type-1], tobj[id], "LOCAL");
107 }
108 print_info (str, NULL, buf);
109 g_free (str);
110 if (thermo -> sys == LOCAL)
111 {
112 str = g_strdup_printf (" %d\n", tmp_cpmd -> thermostats);
113 print_info (str, NULL, buf);
114 g_free (str);
115 for (i=0; i<tmp_cpmd -> thermostats; i++)
116 {
117 for (j=0; j<2; j++)
118 {
119 str = g_strdup_printf (" %11.5lf", thermo -> params[j]);
120 print_info (str, NULL, buf);
121 g_free (str);
122 }
123 print_info ("\n", NULL, buf);
124 if (thermo-> next != NULL) thermo = thermo-> next;
125 }
126 str = g_strdup_printf (" %d\n", tmp_cpmd -> thermostats);
127 print_info (str, NULL, buf);
128 g_free (str);
129 thermo = tmp_cpmd -> ions_thermostat;
130 for (i=0; i<tmp_cpmd -> thermostats; i++)
131 {
132 l = 0;
133 str = g_strdup_printf (" %d", i+1);
134 print_info (str, NULL, buf);
135 g_free (str);
136 for (j=0; j < qm_proj-> nspec; j++)
137 {
138 for (k=0; k < qm_proj-> natomes; k++)
139 {
140 if (qm_proj -> atoms[0][k].sp == j)
141 {
142 l++;
143 for (m=0; m < thermo -> natoms; m++)
144 {
145 if (thermo -> list[m] == k)
146 {
147 str = g_strdup_printf (" %d", l);
148 print_info (str, NULL, buf);
149 g_free (str);
150 }
151 }
152 }
153 }
154 }
155 if (i < tmp_cpmd -> thermostats-1) print_info ("\n", NULL, buf);
156 if (thermo-> next != NULL) thermo = thermo-> next;
157 }
158 }
159 else
160 {
161 for (j=0; j<2; j++)
162 {
163 str = g_strdup_printf (" %11.5lf", thermo -> params[j]);
164 print_info (str, NULL, buf);
165 g_free (str);
166 }
167 }
168 }
169}
170
178void print_thermostat (GtkTextBuffer * buf)
179{
180 gchar * str;
181 int id = (tmp_cpmd -> calc_type == 2) ? BAROC : BAROB;
182 if ((int)tmp_cpmd -> calc_opts[id])
183 {
184 str = g_strdup_printf ("\n\n %s", calc_box_keys[tmp_cpmd -> calc_type][(int)tmp_cpmd -> calc_opts[id]]);
185 print_info (str, NULL, buf);
186 g_free (str);
187 }
188 id = (tmp_cpmd -> calc_type == 2) ? ANNIC : ANNIB;
189 if ((int)tmp_cpmd -> calc_opts[id])
190 {
191 str = g_strdup_printf ("\n\n ANNEALING IONS\n %f", tmp_cpmd -> calc_opts[id+1]);
192 print_info (str, NULL, buf);
193 g_free (str);
194 }
195 if (tmp_cpmd -> calc_type == 2)
196 {
197 if ((int)tmp_cpmd -> calc_opts[ANNEC])
198 {
199 str = g_strdup_printf ("\n\n ANNEALING ELECTRONS\n %f", tmp_cpmd -> calc_opts[AFAEC]);
200 print_info (str, NULL, buf);
201 g_free (str);
202 }
203 }
204 print_this_thermostat (tmp_cpmd -> ions_thermostat, 0, buf);
205 if (tmp_cpmd -> calc_type == 2)
206 {
207 print_this_thermostat (tmp_cpmd -> elec_thermostat, 1, buf);
208 }
209}
210
218void print_restart (GtkTextBuffer * buf)
219{
220 gchar * str;
221 gchar * rest_keys[2] = {"RANDOM", "ATOMS"};
222 if (tmp_cpmd -> restart[0] < 2)
223 {
224 str = g_strdup_printf ("\n\n INITIALIZE WAVEFUNCTION %s", rest_keys[tmp_cpmd -> restart[0]]);
225 print_info (str, NULL, buf);
226 g_free (str);
227 }
228 else
229 {
230 print_info ("\n\n RESTART WAVEFUNCTION LATEST", NULL, buf);
231 print_info ("\n RESTART COORDINATES LATEST", NULL, buf);
232 if (tmp_cpmd -> calc_type > 1 && tmp_cpmd -> calc_type < 4)
233 {
234 print_info ("\n RESTART ACCUMULATORS LATEST", NULL, buf);
235 print_info ("\n RESTART VELOCITIES LATEST", NULL, buf);
236 if (tmp_cpmd -> ions_thermostat -> type > 0) print_info ("\n RESTART NOSEP LATEST", NULL, buf);
237 if (tmp_cpmd -> calc_type == 2 && tmp_cpmd -> elec_thermostat -> type == 1) print_info ("\n RESTART NOSEE LATEST", NULL, buf);
238 }
239 }
240}
241
249void print_cpmd_section (GtkTextBuffer * buf)
250{
251 gchar * str = g_strdup_printf (" %s", calc_kw[tmp_cpmd -> calc_type]);
252 print_info (str, NULL, buf);
253 g_free (str);
254 int i;
255
256 switch (tmp_cpmd -> calc_type)
257 {
258 case 0:
259 str = g_strdup_printf ("\n\n CONVERGENCE ORBITAL\n %E\n\n", tmp_cpmd -> calc_opts[CONVO]);
260 print_info (str, NULL, buf);
261 g_free (str);
262 str = g_strdup_printf (" %s\n\n", calc_box_keys[0][(int)tmp_cpmd -> calc_opts[OPTIO]]);
263 print_info (str, NULL, buf);
264 g_free (str);
265 str = g_strdup_printf (" MAXITER\n %d", (int)tmp_cpmd -> calc_opts[STEPO]);
266 print_info (str, NULL, buf);
267 g_free (str);
268 break;
269 case 1:
270 str = g_strdup_printf ("\n\n CONVERGENCE GEOMETRY\n %E\n\n", tmp_cpmd -> calc_opts[CONVG]);
271 print_info (str, NULL, buf);
272 g_free (str);
273 str = g_strdup_printf (" %s\n\n", calc_box_keys[1][(int)tmp_cpmd -> calc_opts[OPTIG]]);
274 print_info (str, NULL, buf);
275 g_free (str);
276 str = g_strdup_printf (" MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPG]);
277 print_info (str, NULL, buf);
278 g_free (str);
279 break;
280 case 2:
281 str = g_strdup_printf ("\n\n MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPC]);
282 print_info (str, NULL, buf);
283 g_free (str);
284 break;
285 case 3:
286 str = g_strdup_printf ("\n\n MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPB]);
287 print_info (str, NULL, buf);
288 g_free (str);
289 break;
290 case 4:
291 str = g_strdup_printf ("\n %d", (int)tmp_cpmd -> calc_opts[KSUNO]);
292 print_info (str, NULL, buf);
293 g_free (str);
294 if ((int)tmp_cpmd -> calc_opts[RHOUT])
295 {
296 str = g_strdup_printf ("\n RHOOUT BANDS\n %d\n ", (int)tmp_cpmd -> calc_opts[NBAND]);
297 print_info (str, NULL, buf);
298 g_free (str);
299 }
300 break;
301 case 5:
302 str = g_strdup_printf (" %s", calc_box_keys[4][(int)tmp_cpmd -> calc_opts[VIBRA]]);
303 print_info (str, NULL, buf);
304 g_free (str);
305 break;
306 case 6:
307
308 break;
309 }
310
311 print_restart (buf);
312
313 if (tmp_cpmd -> calc_type < 4)
314 {
315 if (tmp_cpmd -> calc_type == 0)
316 {
317 i = TSTPO;
318 }
319 else if (tmp_cpmd -> calc_type == 1)
320 {
321 i = TSTPG;
322 }
323 else if (tmp_cpmd -> calc_type == 2)
324 {
325 i = TSTPC;
326 }
327 else
328 {
329 i = TSTPB;
330 }
331 str = g_strdup_printf ("\n\n TIMESTEP\n %f", tmp_cpmd -> calc_opts[i]);
332 print_info (str, NULL, buf);
333 g_free (str);
334 }
335
336 if (tmp_cpmd -> calc_type != 3)
337 {
338 str = g_strdup_printf ("\n\n EMASS\n %f", tmp_cpmd -> default_opts[DEFEM]);
339 print_info (str, NULL, buf);
340 g_free (str);
341 }
342
343 if (tmp_cpmd -> calc_type == 2 || tmp_cpmd -> calc_type == 3) print_thermostat (buf);
344
345 if (tmp_cpmd -> default_opts[DEFLS] == 1.0)
346 {
347 print_info ("\n\n LOCAL SPIN DENSITY", NULL, buf);
348 }
349
350 if (tmp_cpmd -> default_opts[DEFVD] == 1.0)
351 {
352 print_info ("\n\n VDW CORRECTION", NULL, buf);
353 }
354
355 gchar * sv_key[2] = {"STORE", "RESTFILE"};
356 for (i=0; i<2; i++)
357 {
358 str = g_strdup_printf ("\n\n %s\n %d", sv_key[i], tmp_cpmd -> restart[i+1]);
359 print_info (str, NULL, buf);
360 g_free (str);
361 }
362 if (tmp_cpmd -> calc_type != 0 && tmp_cpmd -> restart[3])
363 {
364 print_info ("\n\n TRAJECTORY SAMPLE", NULL, buf);
365 if (tmp_cpmd -> restart[4]) print_info (" XYZ", NULL, buf);
366 if (tmp_cpmd -> restart[5]) print_info (" FORCES", NULL, buf);
367 str = g_strdup_printf ("\n %d", tmp_cpmd -> restart[3]);
368 print_info (str, NULL, buf);
369 g_free (str);
370 }
371 if (tmp_cpmd -> restart[6])
372 {
373 print_info ("\n\n PRINT", NULL, buf);
374 if (tmp_cpmd -> restart[7]) print_info (" INFO", NULL, buf);
375 //if (tmp_cpmd -> restart[8]) print_info (" EIGENVALUES", NULL, buf);
376 if (tmp_cpmd -> restart[8]) print_info (" COORDINATES", NULL, buf);
377 if (tmp_cpmd -> restart[9]) print_info (" FORCES", NULL, buf);
378 str = g_strdup_printf ("\n %d", tmp_cpmd -> restart[6]);
379 print_info (str, NULL, buf);
380 g_free (str);
381 }
382 print_info ("\n\n", NULL, buf);
383}
384
392void print_dft_section (GtkTextBuffer * buf)
393{
394 gchar * str = g_strdup_printf (" FUNCTIONAL %s", default_keywords[0][(int)tmp_cpmd -> default_opts[DEFDF]]);
395 print_info (str, NULL, buf);
396 g_free (str);
397 str = g_strdup_printf ("\n\n GC-CUTOFF\n %E\n\n", tmp_cpmd -> default_opts[DEFGC]);
398 print_info (str, NULL, buf);
399 g_free (str);
400}
401
409void print_vdw_section (GtkTextBuffer * buf)
410{
411 gchar * str = g_strdup_printf (" EMPIRICAL CORRECTION\n"
412 " VDW PARAMETERS\n"
413 " ALL DFT-D2\n"
414 " S6GRIMME\n %s\n"
415 " END EMPIRICAL CORRECTION\n\n",
417 print_info (str, NULL, buf);
418 g_free (str);
419}
420
428void print_prop_section (GtkTextBuffer * buf)
429{
430
431}
432
440void print_system_section (GtkTextBuffer * buf)
441{
442 double u, v;
443 gchar * str;
444 u = 0.52917721;
445 if ((int)tmp_cpmd -> default_opts[DEFAN])
446 {
447 u = 1.0;
448 print_info (" ANGSTROM\n\n", NULL, buf);
449 }
450
451 if (! (int)tmp_cpmd -> default_opts[DEFVE])
452 {
453 str = g_strdup_printf (" SYMMETRY\n %d\n\n", cpmd_sym[(int)tmp_cpmd -> default_opts[DEFSY]]);
454 print_info (str, NULL, buf);
455 g_free (str);
456 }
457
458 print_info (" CELL", NULL, buf);
459 if ((int)tmp_cpmd -> default_opts[DEFVE])
460 {
461 print_info (" VECTORS", NULL, buf);
462 if (((int)tmp_cpmd -> default_opts[DEFAB]))
463 {
464 print_info (" ABSOLUTE", NULL, buf);
465 }
466 }
467 else
468 {
469 if (((int)tmp_cpmd -> default_opts[DEFAB]))
470 {
471 print_info (" ABSOLUTE", NULL, buf);
472 }
473 if (((int)tmp_cpmd -> default_opts[DEFDG]))
474 {
475 print_info (" DEGREE", NULL, buf);
476 }
477 }
478
479 int i, j;
480 if ((int)tmp_cpmd -> default_opts[DEFVE])
481 {
482 for (i=0; i<3; i++)
483 {
484 print_info ("\n ", NULL, buf);
485 for (j=0; j<3; j++)
486 {
487 v = qm_proj -> cell.box[0].vect[i][j] / u;
488 str = g_strdup_printf (" %12.6lf", v);
489 print_info (str, NULL, buf);
490 g_free (str);
491 }
492 }
493 }
494 else
495 {
496 print_info ("\n ", NULL, buf);
497 for (i=0; i<2; i++)
498 {
499 for (j=0; j<3; j++)
500 {
501 if (i == 0)
502 {
503 if ((int)tmp_cpmd -> default_opts[DEFAB])
504 {
505 v = qm_proj -> cell.box[0].param[i][j] / u;
506 }
507 else
508 {
509 if (j==0)
510 {
511 v = qm_proj -> cell.box[0].param[i][j] / u;
512 }
513 else if (qm_proj -> cell.box[0].param[i][0] != 0.0)
514 {
515 v = qm_proj -> cell.box[0].param[i][j] / qm_proj -> cell.box[0].param[i][0];
516 }
517 else
518 {
519 v = -1.0;
520 }
521 }
522 }
523 else
524 {
525 if ((int)tmp_cpmd -> default_opts[DEFDG])
526 {
527 v = qm_proj -> cell.box[0].param[i][j];
528 }
529 else
530 {
531 v = cos (qm_proj -> cell.box[0].param[i][j]*pi/180.0);
532 }
533 }
534 str = g_strdup_printf (" %12.6lf", v);
535 print_info (str, NULL, buf);
536 g_free (str);
537 }
538 }
539 }
540
541 print_info ("\n\n", NULL, buf);
542 str = g_strdup_printf (" CUTOFF\n %15.10lf\n\n", tmp_cpmd -> default_opts[DEFCU]);
543 print_info (str, NULL, buf);
544 g_free (str);
545}
546
554void print_atoms_section (GtkTextBuffer * buf)
555{
556 int i, j, k, l, m;
557 gchar * str;
558 double u = ((int)tmp_cpmd -> default_opts[DEFAN]) ? 1.0 : 0.52917721;
559
560 if ((int)tmp_cpmd -> default_opts[DEFCO] &&
561 ((int)tmp_cpmd -> default_opts[DEFFI] == 0 || ((int)tmp_cpmd -> default_opts[DEFFI] > 0 && tmp_cpmd -> fixat > 0)))
562 {
563 str = g_strdup_printf (" CONSTRAINTS\n FIX %s\n", default_keywords[5][(int)tmp_cpmd -> default_opts[DEFFI]]);
564 print_info (str, NULL, buf);
565 g_free (str);
566 if ((int)tmp_cpmd -> default_opts[DEFFI] > 0)
567 {
568 str = g_strdup_printf (" %d\n ", tmp_cpmd -> fixat);
569 print_info (str, NULL, buf);
570 g_free (str);
571 k = m = 0;
572 for (i=0; i<qm_proj -> nspec; i++)
573 {
574 for (j=0; j<qm_proj -> natomes; j++)
575 {
576 if (qm_proj -> atoms[0][j].sp == i)
577 {
578 k ++;
579 for (l=0; l<tmp_cpmd->fixat; l++)
580 {
581 if (qm_proj -> atoms[0][j].id == tmp_cpmd -> fixlist[l])
582 {
583 m ++;
584 str = g_strdup_printf (" %d", k);
585 print_info (str, NULL, buf);
586 g_free (str);
587 if ((int)tmp_cpmd -> default_opts[DEFFI] == 2)
588 {
589 str = g_strdup_printf (" %d %d %d\n",
590 tmp_cpmd -> fixcoord[l][0],
591 tmp_cpmd -> fixcoord[l][1],
592 tmp_cpmd -> fixcoord[l][2]);
593 print_info (str, NULL, buf);
594 g_free (str);
595 if (m < tmp_cpmd->fixat)
596 {
597 print_info (" ", NULL, buf);
598 }
599 }
600 }
601 }
602 }
603 }
604 }
605 if ((int)tmp_cpmd -> default_opts[DEFFI] != 2) print_info ("\n", NULL, buf);
606 }
607 print_info (" END CONSTRAINTS\n\n", NULL, buf);
608 }
609
610 if ((int)tmp_cpmd -> default_opts[DEFDU] && tmp_cpmd -> dummies > 0)
611 {
612 gchar * dtype[3]={" TYPE1", " TYPE2", " TYPE3"};
613 str = g_strdup_printf (" DUMMY ATOMS\n %d\n", tmp_cpmd -> dummies);
614 print_info (str, NULL, buf);
615 g_free (str);
616 dummy_atom * dumm;
617 for (i=0; i<tmp_cpmd -> dummies; i++)
618 {
619 dumm = get_active_dummy (i);
620 print_info (dtype[dumm -> type], NULL, buf);
621 if (dumm -> type == 0)
622 {
623 str = g_strdup_printf (" %12.6lf %12.6lf %12.6lf\n", dumm -> xyz[0], dumm -> xyz[1], dumm -> xyz[2]);
624 }
625 else if (dumm -> natoms > 0)
626 {
627 if ( dumm -> natoms < qm_proj -> natomes)
628 {
629 l = 0;
630 str = g_strdup_printf (" %d", dumm -> natoms);
631 for (j=0; j<qm_proj -> nspec; j++)
632 {
633 for (k=0; k<qm_proj -> natomes; k++)
634 {
635 if (qm_proj -> atoms[0][k].sp == j)
636 {
637 l ++;
638 for (m=0; m<dumm -> natoms; m++)
639 {
640 if (qm_proj -> atoms[0][k].id == dumm -> list[m])
641 {
642 str = g_strdup_printf ("%s %d", str, l);
643 }
644 }
645 }
646 }
647 }
648 }
649 else if (dumm -> natoms == qm_proj -> natomes)
650 {
651 str = g_strdup_printf (" %d", -1);
652 }
653 str = g_strdup_printf ("%s\n", str);
654 }
655 else
656 {
657 str = g_strdup_printf ("\n");
658 }
659 print_info (str, NULL, buf);
660 g_free (str);
661 }
662 print_info ("\n", NULL, buf);
663 }
664
665 for (i=0; i<qm_proj -> nspec; i++)
666 {
667 str = g_strdup_printf ("*%s-%s.psp\n", exact_name(qm_proj -> chemistry -> label[i]), default_keywords[0][(int)tmp_cpmd -> default_opts[DEFDF]]);
668 print_info (str, NULL, buf);
669 g_free (str);
670 str = g_strdup_printf (" LMAX=%s LOC=%s\n %d\n", default_keywords[7][(int)tmp_cpmd -> pp[i][0]],
671 default_keywords[8][(int)tmp_cpmd -> pp[i][1]], qm_proj -> chemistry -> nsps[i]);
672 print_info (str, NULL, buf);
673 g_free (str);
674 for (j=0; j<qm_proj -> natomes; j++)
675 {
676 if (qm_proj -> atoms[0][j].sp == i)
677 {
678 str = g_strdup_printf (" %12.6lf %12.6lf %12.6lf\n",
679 qm_proj -> atoms[0][j].x/u, qm_proj -> atoms[0][j].y/u, qm_proj -> atoms[0][j].z/u);
680 print_info (str, NULL, buf);
681 g_free (str);
682 }
683 }
684 print_info ("\n", NULL, buf);
685 }
686}
687
697void print_the_section (int s, int p, GtkTextBuffer * buffer)
698{
699 int i;
700 gchar * str;
701 if (buffer != NULL)
702 {
703 if (s > 0 && s < 4)
704 {
705 i = 1;
706 }
707 else if (s == 0)
708 {
709 i = 0;
710 }
711 else
712 {
713 i = s - 2;
714 }
715 if (! p)
716 {
717 GtkTextIter bStart;
718 GtkTextIter bEnd;
719 gtk_text_buffer_get_start_iter (buffer, & bStart);
720 gtk_text_buffer_get_end_iter (buffer, & bEnd);
721 gtk_text_buffer_delete (buffer, & bStart, & bEnd);
722 }
723 if (p && s > 0) print_info ("\n\n", NULL, buffer);
724 str = g_strdup_printf ("&%s\n\n", cpmd_elements[i]);
725 print_info (str, "bold", buffer);
726 g_free (str);
727 if (s == 0)
728 {
729 print_info_section (buffer);
730 }
731 else if (s < 4)
732 {
733 print_cpmd_section (buffer);
734 }
735 else
736 {
737 switch (s)
738 {
739 case 4:
740 print_dft_section (buffer);
741 break;
742 case 5:
743 print_vdw_section (buffer);
744 break;
745 case 6:
746 print_prop_section (buffer);
747 break;
748 case 7:
749 print_system_section (buffer);
750 break;
751 case 8:
752 print_atoms_section (buffer);
753 break;
754 }
755 }
756 print_info ("&END", "bold", buffer);
757 }
758}
project * qm_proj
Definition calc.c:67
Variable declarations for the MD input preparation assistants.
integer(kind=c_int) function chemistry()
Definition chemistry.F90:22
#define PACKAGE
Definition config.h:46
Variable declarations for the creation of the CPMD input file.
#define BAROB
Definition cpmd.h:76
#define DEFVD
Definition cpmd.h:40
#define DEFFI
Definition cpmd.h:50
@ LOCAL
Definition cpmd.h:115
@ GLOBAL
Definition cpmd.h:114
#define CONVO
Definition cpmd.h:56
#define TSTPO
Definition cpmd.h:59
#define DEFDF
Definition cpmd.h:41
#define OPTIG
Definition cpmd.h:61
#define DEFAN
Definition cpmd.h:43
#define CONVG
Definition cpmd.h:60
#define OPTIO
Definition cpmd.h:57
#define DEFLS
Definition cpmd.h:39
#define STEPO
Definition cpmd.h:58
#define STEPG
Definition cpmd.h:62
#define DEFDU
Definition cpmd.h:51
#define TSTPB
Definition cpmd.h:75
cpmd * tmp_cpmd
Definition cpmd_init.c:103
#define DEFCU
Definition cpmd.h:48
#define DEFDG
Definition cpmd.h:47
#define TSTPG
Definition cpmd.h:66
gchar * calc_opts[NCPMDCALC][NOPTPC]
#define NBAND
Definition cpmd.h:81
#define DEFGC
Definition cpmd.h:42
#define DEFSY
Definition cpmd.h:45
#define TSTPC
Definition cpmd.h:68
gchar * default_keywords[9][NDFT]
Definition cpmd_init.c:140
gchar * cpmd_elements[MAXDATAQM]
Definition cpmd_init.c:105
#define RHOUT
Definition cpmd.h:80
#define DEFEM
Definition cpmd.h:38
gchar * default_opts[MAXDATAQM-1][NSECOP]
Definition cpmd_init.c:123
#define NSYM
Definition cpmd.h:34
#define ANNIB
Definition cpmd.h:77
#define AFAEC
Definition cpmd.h:73
#define KSUNO
Definition cpmd.h:79
#define DEFCO
Definition cpmd.h:49
gchar * calc_kw[NCPMDCALC]
Definition cpmd_init.c:184
#define STEPC
Definition cpmd.h:67
#define VIBRA
Definition cpmd.h:82
#define BAROC
Definition cpmd.h:69
#define DEFVE
Definition cpmd.h:44
#define STEPB
Definition cpmd.h:74
#define ANNIC
Definition cpmd.h:70
#define DEFAB
Definition cpmd.h:46
#define ANNEC
Definition cpmd.h:72
gchar * calc_box_keys[NCACOMBO][3]
Definition cpmd_init.c:208
void print_atoms_section(GtkTextBuffer *buf)
print the CPMD input file ATOMS section
Definition cpmd_print.c:554
void print_system_section(GtkTextBuffer *buf)
print the CPMD input file SYSTEM section
Definition cpmd_print.c:440
void print_cpmd_section(GtkTextBuffer *buf)
print CPMD input file CPMD section
Definition cpmd_print.c:249
void print_info_section(GtkTextBuffer *buf)
print the CPMD input file INFO section
Definition cpmd_print.c:63
void print_prop_section(GtkTextBuffer *buf)
print the CPMD input file PROPERTIES section
Definition cpmd_print.c:428
void print_the_section(int s, int p, GtkTextBuffer *buffer)
print CPMD input section
Definition cpmd_print.c:697
void print_restart(GtkTextBuffer *buf)
print the CPMD input file RESTART section
Definition cpmd_print.c:218
void print_thermostat(GtkTextBuffer *buf)
print the CPMD input file THERMOSTAT section
Definition cpmd_print.c:178
dummy_atom * get_active_dummy(int id)
get dummy atom by id
Definition cpmd_atoms.c:86
void print_this_thermostat(thermostat *thermo, int id, GtkTextBuffer *buf)
print CPMD thermostat parameters
Definition cpmd_print.c:81
void print_vdw_section(GtkTextBuffer *buf)
print the CPMD input file VDW section
Definition cpmd_print.c:409
int cpmd_sym[NSYM]
Definition cpmd_print.c:54
void print_dft_section(GtkTextBuffer *buf)
print the CPMD input file DFT section
Definition cpmd_print.c:392
int atoms[NUM_STYLES][2]
double pi
Definition global.c:202
Global variable declarations Global convenience function declarations Global data structure defin...
void print_info(gchar *str, gchar *stag, GtkTextBuffer *buffer)
print information in GtkTextBuffer
Definition interface.c:869
gchar * exact_name(gchar *name)
short cut to print string without spaces
Definition interface.c:434
Messaging function declarations.
double z
Definition ogl_draw.c:63
double y
Definition ogl_draw.c:63
double x
Definition ogl_draw.c:63