atomes 1.1.14
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-2024 by CNRS and University of Strasbourg */
15
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 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 * str = NULL;
87
88 if (thermo -> type == 0)
89 {
90 str = g_strdup_printf ("\n\n %s\n", temp[id]);
91 print_info (str, NULL, buf);
92 g_free (str);
93 str = g_strdup_printf (" %f", thermo -> params[0]);
94 print_info (str, NULL, buf);
95 g_free (str);
96 }
97 else
98 {
99 if (thermo -> sys == GLOBAL)
100 {
101 str = g_strdup_printf ("\n\n %s %s\n", termoke[thermo -> type-1], tobj[id]);
102 }
103 else if (thermo -> sys == LOCAL)
104 {
105 str = g_strdup_printf ("\n\n %s %s %s\n", termoke[thermo -> type-1], tobj[id], nosekey[1]);
106 }
107 print_info (str, NULL, buf);
108 g_free (str);
109 if (thermo -> sys == LOCAL)
110 {
111 str = g_strdup_printf (" %d\n", tmp_cpmd -> thermostats);
112 print_info (str, NULL, buf);
113 g_free (str);
114 for (i=0; i<tmp_cpmd -> thermostats; i++)
115 {
116 for (j=0; j<2; j++)
117 {
118 str = g_strdup_printf (" %11.5lf", thermo -> params[j]);
119 print_info (str, NULL, buf);
120 g_free (str);
121 }
122 print_info ("\n", NULL, buf);
123 if (thermo-> next != NULL) thermo = thermo-> next;
124 }
125 str = g_strdup_printf (" %d\n", tmp_cpmd -> thermostats);
126 print_info (str, NULL, buf);
127 g_free (str);
128 thermo = tmp_cpmd -> ions_thermostat;
129 for (i=0; i<tmp_cpmd -> thermostats; i++)
130 {
131 l = 0;
132 str = g_strdup_printf (" %d", i+1);
133 print_info (str, NULL, buf);
134 g_free (str);
135 for (j=0; j < qm_proj-> nspec; j++)
136 {
137 for (k=0; k < qm_proj-> natomes; k++)
138 {
139 if (qm_proj -> atoms[0][k].sp == j)
140 {
141 l++;
142 for (m=0; m < thermo -> natoms; m++)
143 {
144 if (thermo -> list[m] == k)
145 {
146 str = g_strdup_printf (" %d", l);
147 print_info (str, NULL, buf);
148 g_free (str);
149 }
150 }
151 }
152 }
153 }
154 if (i < tmp_cpmd -> thermostats-1) print_info ("\n", NULL, buf);
155 if (thermo-> next != NULL) thermo = thermo-> next;
156 }
157 }
158 else
159 {
160 for (j=0; j<2; j++)
161 {
162 str = g_strdup_printf (" %11.5lf", thermo -> params[j]);
163 print_info (str, NULL, buf);
164 g_free (str);
165 }
166 }
167 }
168}
169
177void print_thermostat (GtkTextBuffer * buf)
178{
179 gchar * str;
180 int id = (tmp_cpmd -> calc_type == 2) ? BAROC : BAROB;
181 if ((int)tmp_cpmd -> calc_opts[id])
182 {
183 str = g_strdup_printf ("\n\n %s", calc_box_keys[tmp_cpmd -> calc_type][(int)tmp_cpmd -> calc_opts[id]]);
184 print_info (str, NULL, buf);
185 g_free (str);
186 }
187 id = (tmp_cpmd -> calc_type == 2) ? ANNIC : ANNIB;
188 if ((int)tmp_cpmd -> calc_opts[id])
189 {
190 str = g_strdup_printf ("\n\n ANNEALING IONS\n %f", tmp_cpmd -> calc_opts[id+1]);
191 print_info (str, NULL, buf);
192 g_free (str);
193 }
194 if (tmp_cpmd -> calc_type == 2)
195 {
196 if ((int)tmp_cpmd -> calc_opts[ANNEC])
197 {
198 str = g_strdup_printf ("\n\n ANNEALING ELECTRONS\n %f", tmp_cpmd -> calc_opts[AFAEC]);
199 print_info (str, NULL, buf);
200 g_free (str);
201 }
202 }
203 print_this_thermostat (tmp_cpmd -> ions_thermostat, 0, buf);
204 if (tmp_cpmd -> calc_type == 2)
205 {
206 print_this_thermostat (tmp_cpmd -> elec_thermostat, 1, buf);
207 }
208}
209
217void print_restart (GtkTextBuffer * buf)
218{
219 gchar * str;
220 if (tmp_cpmd -> restart[0] < 2)
221 {
222 str = g_strdup_printf ("\n\n INITIALIZE WAVEFUNCTION %s", rest_kw[tmp_cpmd -> restart[0]]);
223 print_info (str, NULL, buf);
224 g_free (str);
225 }
226 else
227 {
228 print_info ("\n\n RESTART WAVEFUNCTION LATEST", NULL, buf);
229 print_info ("\n RESTART COORDINATES LATEST", NULL, buf);
230 if (tmp_cpmd -> calc_type > 1 && tmp_cpmd -> calc_type < 4)
231 {
232 print_info ("\n RESTART ACCUMULATORS LATEST", NULL, buf);
233 print_info ("\n RESTART VELOCITIES LATEST", NULL, buf);
234 if (tmp_cpmd -> ions_thermostat -> type > 0) print_info ("\n RESTART NOSEP LATEST", NULL, buf);
235 if (tmp_cpmd -> calc_type == 2 && tmp_cpmd -> elec_thermostat -> type == 1) print_info ("\n RESTART NOSEE LATEST", NULL, buf);
236 }
237 }
238}
239
247void print_cpmd_section (GtkTextBuffer * buf)
248{
249 gchar * str = g_strdup_printf (" %s", calc_kw[tmp_cpmd -> calc_type]);
250 print_info (str, NULL, buf);
251 g_free (str);
252 int i;
253
254 switch (tmp_cpmd -> calc_type)
255 {
256 case 0:
257 str = g_strdup_printf ("\n\n CONVERGENCE ORBITAL\n %E\n\n", tmp_cpmd -> calc_opts[CONVO]);
258 print_info (str, NULL, buf);
259 g_free (str);
260 str = g_strdup_printf (" %s\n\n", calc_box_keys[0][(int)tmp_cpmd -> calc_opts[OPTIO]]);
261 print_info (str, NULL, buf);
262 g_free (str);
263 str = g_strdup_printf (" MAXITER\n %d", (int)tmp_cpmd -> calc_opts[STEPO]);
264 print_info (str, NULL, buf);
265 g_free (str);
266 break;
267 case 1:
268 str = g_strdup_printf ("\n\n CONVERGENCE GEOMETRY\n %E\n\n", tmp_cpmd -> calc_opts[CONVG]);
269 print_info (str, NULL, buf);
270 g_free (str);
271 str = g_strdup_printf (" %s\n\n", calc_box_keys[1][(int)tmp_cpmd -> calc_opts[OPTIG]]);
272 print_info (str, NULL, buf);
273 g_free (str);
274 str = g_strdup_printf (" MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPG]);
275 print_info (str, NULL, buf);
276 g_free (str);
277 break;
278 case 2:
279 str = g_strdup_printf ("\n\n MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPC]);
280 print_info (str, NULL, buf);
281 g_free (str);
282 break;
283 case 3:
284 str = g_strdup_printf ("\n\n MAXSTEP\n %d", (int)tmp_cpmd -> calc_opts[STEPB]);
285 print_info (str, NULL, buf);
286 g_free (str);
287 break;
288 case 4:
289 str = g_strdup_printf ("\n %d", (int)tmp_cpmd -> calc_opts[KSUNO]);
290 print_info (str, NULL, buf);
291 g_free (str);
292 if ((int)tmp_cpmd -> calc_opts[RHOUT])
293 {
294 str = g_strdup_printf ("\n RHOOUT BANDS\n %d\n ", (int)tmp_cpmd -> calc_opts[NBAND]);
295 print_info (str, NULL, buf);
296 g_free (str);
297 }
298 break;
299 case 5:
300 str = g_strdup_printf (" %s", calc_box_keys[4][(int)tmp_cpmd -> calc_opts[VIBRA]]);
301 print_info (str, NULL, buf);
302 g_free (str);
303 break;
304 case 6:
305
306 break;
307 }
308
309 print_restart (buf);
310
311 if (tmp_cpmd -> calc_type < 4)
312 {
313 if (tmp_cpmd -> calc_type == 0)
314 {
315 i = TSTPO;
316 }
317 else if (tmp_cpmd -> calc_type == 1)
318 {
319 i = TSTPG;
320 }
321 else if (tmp_cpmd -> calc_type == 2)
322 {
323 i = TSTPC;
324 }
325 else
326 {
327 i = TSTPB;
328 }
329 str = g_strdup_printf ("\n\n TIMESTEP\n %f", tmp_cpmd -> calc_opts[i]);
330 print_info (str, NULL, buf);
331 g_free (str);
332 }
333
334 if (tmp_cpmd -> calc_type != 3)
335 {
336 str = g_strdup_printf ("\n\n EMASS\n %f", tmp_cpmd -> default_opts[DEFEM]);
337 print_info (str, NULL, buf);
338 g_free (str);
339 }
340
341 if (tmp_cpmd -> calc_type == 2 || tmp_cpmd -> calc_type == 3) print_thermostat (buf);
342
343 if (tmp_cpmd -> default_opts[DEFLS] == 1.0)
344 {
345 print_info ("\n\n LOCAL SPIN DENSITY", NULL, buf);
346 }
347
348 if (tmp_cpmd -> default_opts[DEFVD] == 1.0)
349 {
350 print_info ("\n\n VDW CORRECTION", NULL, buf);
351 }
352
353 gchar * sv_key[2] = {"STORE", "RESTFILE"};
354 for (i=0; i<2; i++)
355 {
356 str = g_strdup_printf ("\n\n %s\n %d", sv_key[i], tmp_cpmd -> restart[i+1]);
357 print_info (str, NULL, buf);
358 g_free (str);
359 }
360 if (tmp_cpmd -> calc_type != 0 && tmp_cpmd -> restart[3])
361 {
362 print_info ("\n\n TRAJECTORY SAMPLE", NULL, buf);
363 if (tmp_cpmd -> restart[4]) print_info (" XYZ", NULL, buf);
364 if (tmp_cpmd -> restart[5]) print_info (" FORCES", NULL, buf);
365 str = g_strdup_printf ("\n %d", tmp_cpmd -> restart[3]);
366 print_info (str, NULL, buf);
367 g_free (str);
368 }
369 if (tmp_cpmd -> restart[6])
370 {
371 print_info ("\n\n PRINT", NULL, buf);
372 if (tmp_cpmd -> restart[7]) print_info (" INFO", NULL, buf);
373 //if (tmp_cpmd -> restart[8]) print_info (" EIGENVALUES", NULL, buf);
374 if (tmp_cpmd -> restart[8]) print_info (" COORDINATES", NULL, buf);
375 if (tmp_cpmd -> restart[9]) print_info (" FORCES", NULL, buf);
376 str = g_strdup_printf ("\n %d", tmp_cpmd -> restart[6]);
377 print_info (str, NULL, buf);
378 g_free (str);
379 }
380 print_info ("\n\n", NULL, buf);
381}
382
390void print_dft_section (GtkTextBuffer * buf)
391{
392 gchar * str = g_strdup_printf (" FUNCTIONAL %s", default_keywords[0][(int)tmp_cpmd -> default_opts[DEFDF]]);
393 print_info (str, NULL, buf);
394 g_free (str);
395 str = g_strdup_printf ("\n\n GC-CUTOFF\n %E\n\n", tmp_cpmd -> default_opts[DEFGC]);
396 print_info (str, NULL, buf);
397 g_free (str);
398}
399
407void print_vdw_section (GtkTextBuffer * buf)
408{
409 gchar * str = g_strdup_printf (" EMPIRICAL CORRECTION\n"
410 " VDW PARAMETERS\n"
411 " ALL DFT-D2\n"
412 " S6GRIMME\n %s\n"
413 " END EMPIRICAL CORRECTION\n\n",
415 print_info (str, NULL, buf);
416 g_free (str);
417}
418
426void print_prop_section (GtkTextBuffer * buf)
427{
428
429}
430
438void print_system_section (GtkTextBuffer * buf)
439{
440 double u, v;
441 gchar * str;
442 u = 0.52917721;
443 if ((int)tmp_cpmd -> default_opts[DEFAN])
444 {
445 u = 1.0;
446 print_info (" ANGSTROM\n\n", NULL, buf);
447 }
448
449 if (! (int)tmp_cpmd -> default_opts[DEFVE])
450 {
451 str = g_strdup_printf (" SYMMETRY\n %d\n\n", cpmd_sym[(int)tmp_cpmd -> default_opts[DEFSY]]);
452 print_info (str, NULL, buf);
453 g_free (str);
454 }
455
456 print_info (" CELL", NULL, buf);
457 if ((int)tmp_cpmd -> default_opts[DEFVE])
458 {
459 print_info (" VECTORS", NULL, buf);
460 if (((int)tmp_cpmd -> default_opts[DEFAB]))
461 {
462 print_info (" ABSOLUTE", NULL, buf);
463 }
464 }
465 else
466 {
467 if (((int)tmp_cpmd -> default_opts[DEFAB]))
468 {
469 print_info (" ABSOLUTE", NULL, buf);
470 }
471 if (((int)tmp_cpmd -> default_opts[DEFDG]))
472 {
473 print_info (" DEGREE", NULL, buf);
474 }
475 }
476
477 int i, j;
478 if ((int)tmp_cpmd -> default_opts[DEFVE])
479 {
480 for (i=0; i<3; i++)
481 {
482 print_info ("\n ", NULL, buf);
483 for (j=0; j<3; j++)
484 {
485 v = qm_proj -> cell.box[0].vect[i][j] / u;
486 str = g_strdup_printf (" %12.6lf", v);
487 print_info (str, NULL, buf);
488 g_free (str);
489 }
490 }
491 }
492 else
493 {
494 print_info ("\n ", NULL, buf);
495 for (i=0; i<2; i++)
496 {
497 for (j=0; j<3; j++)
498 {
499 if (i == 0)
500 {
501 if ((int)tmp_cpmd -> default_opts[DEFAB])
502 {
503 v = qm_proj -> cell.box[0].param[i][j] / u;
504 }
505 else
506 {
507 if (j==0)
508 {
509 v = qm_proj -> cell.box[0].param[i][j] / u;
510 }
511 else if (qm_proj -> cell.box[0].param[i][0] != 0.0)
512 {
513 v = qm_proj -> cell.box[0].param[i][j] / qm_proj -> cell.box[0].param[i][0];
514 }
515 else
516 {
517 v = -1.0;
518 }
519 }
520 }
521 else
522 {
523 if ((int)tmp_cpmd -> default_opts[DEFDG])
524 {
525 v = qm_proj -> cell.box[0].param[i][j];
526 }
527 else
528 {
529 v = cos (qm_proj -> cell.box[0].param[i][j]*pi/180.0);
530 }
531 }
532 str = g_strdup_printf (" %12.6lf", v);
533 print_info (str, NULL, buf);
534 g_free (str);
535 }
536 }
537 }
538
539 print_info ("\n\n", NULL, buf);
540 str = g_strdup_printf (" CUTOFF\n %15.10lf\n\n", tmp_cpmd -> default_opts[DEFCU]);
541 print_info (str, NULL, buf);
542 g_free (str);
543}
544
552void print_atoms_section (GtkTextBuffer * buf)
553{
554 int i, j, k, l, m;
555 gchar * str;
556 double u = ((int)tmp_cpmd -> default_opts[DEFAN]) ? 1.0 : 0.52917721;
557
558 if ((int)tmp_cpmd -> default_opts[DEFCO] &&
559 ((int)tmp_cpmd -> default_opts[DEFFI] == 0 || ((int)tmp_cpmd -> default_opts[DEFFI] > 0 && tmp_cpmd -> fixat > 0)))
560 {
561 str = g_strdup_printf (" CONSTRAINTS\n FIX %s\n", default_keywords[5][(int)tmp_cpmd -> default_opts[DEFFI]]);
562 print_info (str, NULL, buf);
563 g_free (str);
564 if ((int)tmp_cpmd -> default_opts[DEFFI] > 0)
565 {
566 str = g_strdup_printf (" %d\n ", tmp_cpmd -> fixat);
567 print_info (str, NULL, buf);
568 g_free (str);
569 k = m = 0;
570 for (i=0; i<qm_proj -> nspec; i++)
571 {
572 for (j=0; j<qm_proj -> natomes; j++)
573 {
574 if (qm_proj -> atoms[0][j].sp == i)
575 {
576 k ++;
577 for (l=0; l<tmp_cpmd->fixat; l++)
578 {
579 if (qm_proj -> atoms[0][j].id == tmp_cpmd -> fixlist[l])
580 {
581 m ++;
582 str = g_strdup_printf (" %d", k);
583 print_info (str, NULL, buf);
584 g_free (str);
585 if ((int)tmp_cpmd -> default_opts[DEFFI] == 2)
586 {
587 str = g_strdup_printf (" %d %d %d\n",
588 tmp_cpmd -> fixcoord[l][0],
589 tmp_cpmd -> fixcoord[l][1],
590 tmp_cpmd -> fixcoord[l][2]);
591 print_info (str, NULL, buf);
592 g_free (str);
593 if (m < tmp_cpmd->fixat)
594 {
595 print_info (" ", NULL, buf);
596 }
597 }
598 }
599 }
600 }
601 }
602 }
603 if ((int)tmp_cpmd -> default_opts[DEFFI] != 2) print_info ("\n", NULL, buf);
604 }
605 print_info (" END CONSTRAINTS\n\n", NULL, buf);
606 }
607
608 if ((int)tmp_cpmd -> default_opts[DEFDU] && tmp_cpmd -> dummies > 0)
609 {
610 gchar * dtype[3]={" TYPE1", " TYPE2", " TYPE3"};
611 str = g_strdup_printf (" DUMMY ATOMS\n %d\n", tmp_cpmd -> dummies);
612 print_info (str, NULL, buf);
613 g_free (str);
614 dummy_atom * dumm;
615 for (i=0; i<tmp_cpmd -> dummies; i++)
616 {
617 dumm = get_active_dummy (i);
618 print_info (dtype[dumm -> type], NULL, buf);
619 if (dumm -> type == 0)
620 {
621 str = g_strdup_printf (" %12.6lf %12.6lf %12.6lf\n", dumm -> xyz[0], dumm -> xyz[1], dumm -> xyz[2]);
622 }
623 else if (dumm -> natoms > 0)
624 {
625 if ( dumm -> natoms < qm_proj -> natomes)
626 {
627 l = 0;
628 str = g_strdup_printf (" %d", dumm -> natoms);
629 for (j=0; j<qm_proj -> nspec; j++)
630 {
631 for (k=0; k<qm_proj -> natomes; k++)
632 {
633 if (qm_proj -> atoms[0][k].sp == j)
634 {
635 l ++;
636 for (m=0; m<dumm -> natoms; m++)
637 {
638 if (qm_proj -> atoms[0][k].id == dumm -> list[m])
639 {
640 str = g_strdup_printf ("%s %d", str, l);
641 }
642 }
643 }
644 }
645 }
646 }
647 else if (dumm -> natoms == qm_proj -> natomes)
648 {
649 str = g_strdup_printf (" %d", -1);
650 }
651 str = g_strdup_printf ("%s\n", str);
652 }
653 else
654 {
655 str = g_strdup_printf ("\n");
656 }
657 print_info (str, NULL, buf);
658 g_free (str);
659 }
660 print_info ("\n", NULL, buf);
661 }
662
663 for (i=0; i<qm_proj -> nspec; i++)
664 {
665 str = g_strdup_printf ("*%s-%s.psp\n", exact_name(qm_proj -> chemistry -> label[i]), default_keywords[0][(int)tmp_cpmd -> default_opts[DEFDF]]);
666 print_info (str, NULL, buf);
667 g_free (str);
668 str = g_strdup_printf (" LMAX=%s LOC=%s\n %d\n", default_keywords[7][(int)tmp_cpmd -> pp[i][0]],
669 default_keywords[8][(int)tmp_cpmd -> pp[i][1]], qm_proj -> chemistry -> nsps[i]);
670 print_info (str, NULL, buf);
671 g_free (str);
672 for (j=0; j<qm_proj -> natomes; j++)
673 {
674 if (qm_proj -> atoms[0][j].sp == i)
675 {
676 str = g_strdup_printf (" %12.6lf %12.6lf %12.6lf\n",
677 qm_proj -> atoms[0][j].x/u, qm_proj -> atoms[0][j].y/u, qm_proj -> atoms[0][j].z/u);
678 print_info (str, NULL, buf);
679 g_free (str);
680 }
681 }
682 print_info ("\n", NULL, buf);
683 }
684}
685
695void print_the_section (int s, int p, GtkTextBuffer * buffer)
696{
697 int i;
698 gchar * str;
699 if (buffer != NULL)
700 {
701 if (s > 0 && s < 4)
702 {
703 i = 1;
704 }
705 else if (s == 0)
706 {
707 i = 0;
708 }
709 else
710 {
711 i = s - 2;
712 }
713 if (! p)
714 {
715 GtkTextIter bStart;
716 GtkTextIter bEnd;
717 gtk_text_buffer_get_start_iter (buffer, & bStart);
718 gtk_text_buffer_get_end_iter (buffer, & bEnd);
719 gtk_text_buffer_delete (buffer, & bStart, & bEnd);
720 }
721 if (p && s > 0) print_info ("\n\n", NULL, buffer);
722 str = g_strdup_printf ("&%s\n\n", cpmd_elements[i]);
723 print_info (str, "bold", buffer);
724 g_free (str);
725 if (s == 0)
726 {
727 print_info_section (buffer);
728 }
729 else if (s < 4)
730 {
731 print_cpmd_section (buffer);
732 }
733 else
734 {
735 switch (s)
736 {
737 case 4:
738 print_dft_section (buffer);
739 break;
740 case 5:
741 print_vdw_section (buffer);
742 break;
743 case 6:
744 print_prop_section (buffer);
745 break;
746 case 7:
747 print_system_section (buffer);
748 break;
749 case 8:
750 print_atoms_section (buffer);
751 break;
752 }
753 }
754 print_info ("&END", "bold", buffer);
755 }
756}
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:118
@ GLOBAL
Definition cpmd.h:117
#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
gchar * rest_kw[2]
Definition cpmd_init.c:214
#define DEFLS
Definition cpmd.h:39
gchar * termoke[2]
Definition cpmd_init.c:222
#define STEPO
Definition cpmd.h:58
#define STEPG
Definition cpmd.h:62
#define DEFDU
Definition cpmd.h:51
gchar * nosekey[2]
Definition cpmd_init.c:217
#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]
Definition cpmd_init.c:169
#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:552
void print_system_section(GtkTextBuffer *buf)
print the CPMD input file SYSTEM section
Definition cpmd_print.c:438
void print_cpmd_section(GtkTextBuffer *buf)
print CPMD input file CPMD section
Definition cpmd_print.c:247
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:426
void print_the_section(int s, int p, GtkTextBuffer *buffer)
print CPMD input section
Definition cpmd_print.c:695
void print_restart(GtkTextBuffer *buf)
print the CPMD input file RESTART section
Definition cpmd_print.c:217
void print_thermostat(GtkTextBuffer *buf)
print the CPMD input file THERMOSTAT section
Definition cpmd_print.c:177
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:407
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:390
void label(cairo_t *cr, double val, int axe, int p, project *this_proj)
draw axis label
Definition labels.c:56
int atoms[NUM_STYLES][2]
double pi
Definition global.c:195
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:738
gchar * exact_name(gchar *name)
short cut to print string without spaces
Definition interface.c:370
Messaging function declarations.
double z
Definition ogl_draw.c:57
double y
Definition ogl_draw.c:57
double x
Definition ogl_draw.c:57
int fixat
Definition global.h:741