minor fixes in ditribution files
[gromacs/qmmm-gamess-us.git] / include / types / qmmmrec.h
blob56bd84bdf7ee15798518afbddf5335fb32e38cef
1 /*
2 *
3 * This source code is part of
4 *
5 * G R O M A C S
6 *
7 * GROningen MAchine for Chemical Simulations
8 *
9 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
10 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
11 * Copyright (c) 2001-2008, The GROMACS development team,
12 * check out http://www.gromacs.org for more information.
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * If you want to redistribute modifications, please consider that
20 * scientific software is very special. Version control is crucial -
21 * bugs must be traceable. We will be happy to consider code for
22 * inclusion in the official distribution, but derived work must not
23 * be called official GROMACS. Details are found in the README & COPYING
24 * files - if they are missing, get the official version at www.gromacs.org.
26 * To help us fund GROMACS development, we humbly ask that you cite
27 * the papers on the package - you can find them in the top README file.
29 * For more info, check our website at http://www.gromacs.org
31 * And Hey:
32 * Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
35 #ifdef HAVE_CONFIG_H
36 #include <config.h>
37 #endif
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
43 typedef struct {
44 int nrQMatoms; /* total nr of QM atoms */
45 rvec *xQM; /* shifted to center of box */
46 int *indexQM; /* atom i = atom indexQM[i] in mdrun */
47 int *atomicnumberQM;/* atomic numbers of QM atoms */
48 real *QMcharges; /* atomic charges of QM atoms(ONIOM) */
49 int *shiftQM;
50 int QMcharge; /* charge of the QM system */
51 int multiplicity; /* multipicity (no of unpaired eln) */
52 int QMmethod; /* see enums.h for all methods */
53 int QMbasis; /* see enums.h for all bases */
54 int nelectrons; /* total number of elecs in QM region*/
55 bool bTS; /* Optimize a TS, only steep, no md */
56 bool bOPT; /* Optimize QM subsys, only steep, no md */
57 bool *frontatoms; /* qm atoms on the QM side of a QM-MM bond */
58 /* Gaussian specific stuff */
59 int nQMcpus; /* no. of CPUs used for the QM calc. */
60 int QMmem; /* memory for the gaussian calc. */
61 int accuracy; /* convergence criterium (E(-x)) */
62 bool cpmcscf; /* using cpmcscf(l1003)*/
63 char *gauss_dir;
64 char *gauss_exe;
65 char *devel_dir;
66 real *c6;
67 real *c12;
68 /* Surface hopping stuff */
69 bool bSH; /* surface hopping (diabatic only) */
70 real SAon; /* at which energy gap the SA starts */
71 real SAoff; /* at which energy gap the SA stops */
72 int SAsteps; /* stepwise switchinng on the SA */
73 int SAstep; /* current state of SA */
74 int CIdim;
75 real *CIvec1;
76 real *CIvec2;
77 real *CIvec1old;
78 real *CIvec2old;
79 ivec SHbasis;
80 int CASelectrons;
81 int CASorbitals;
82 } t_QMrec;
84 typedef struct {
85 int nrMMatoms; /* nr of MM atoms, updated every step*/
86 rvec *xMM; /* shifted to center of box */
87 int *indexMM; /* atom i = atom indexMM[I] in mdrun */
88 real *MMcharges; /* MM point charges in std QMMM calc.*/
89 int *shiftMM;
90 int *MMatomtype; /* only important for semi-emp. */
91 real scalefactor;
92 /* gaussian specific stuff */
93 real *c6;
94 real *c12;
95 } t_MMrec;
98 typedef struct {
99 int QMMMscheme; /* ONIOM (multi-layer) or normal */
100 int nrQMlayers; /* number of QM layers (total layers +1 (MM)) */
101 t_QMrec **qm; /* atoms and run params for each QM group */
102 t_MMrec *mm; /* there can only be one MM subsystem ! */
103 } t_QMMMrec;
105 #ifdef __cplusplus
107 #endif