7f79a0093d59f4f892bc43cfdeafc737ff14cea9
[alexxy/gromacs.git] / src / gmxlib / nonbonded / nb_kernel_adress_c / nb_kernel234_adress.h
1 /*
2  *                This source code is part of
3  *
4  *                 G   R   O   M   A   C   S
5  *
6  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
7  * Copyright (c) 2001-2009, The GROMACS Development Team
8  *
9  * Gromacs is a library for molecular simulation and trajectory analysis,
10  * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
11  * a full list of developers and information, check out http://www.gromacs.org
12  *
13  * This program is free software; you can redistribute it and/or modify it under 
14  * the terms of the GNU Lesser General Public License as published by the Free 
15  * Software Foundation; either version 2 of the License, or (at your option) any 
16  * later version.
17  * As a special exception, you may use this file as part of a free software
18  * library without restriction.  Specifically, if other files instantiate
19  * templates or use macros or inline functions from this file, or you compile
20  * this file and link it with other files to produce an executable, this
21  * file does not by itself cause the resulting executable to be covered by
22  * the GNU Lesser General Public License.  
23  *
24  * In plain-speak: do not worry about classes/macros/templates either - only
25  * changes to the library have to be LGPL, not an application linking with it.
26  *
27  * To help fund GROMACS development, we humbly ask that you cite
28  * the papers people have written on it - you can find them on the website!
29  */
30 #ifndef _NBKERNEL234_ADRESS_H_
31 #define _NBKERNEL234_ADRESS_H_
32
33 /*! \file  nb_kernel234.h
34  *  \brief Nonbonded kernel adress 234 (RF Coul + Tab VdW, TIP4p-TIP4p)
35  *
36  *  \internal
37  */
38
39 #include "types/simple.h"
40
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 #if 0
45 }
46 #endif
47
48
49 /*! \brief Nonbonded kernel adress 234 with forces.
50  *
51  *  <b>Coulomb interaction:</b> Reaction-Field <br>
52  *  <b>VdW interaction:</b> Tabulated  <br>
53  *  <b>Water optimization:</b> TIP4p - TIP4p <br>
54  *  <b>Forces calculated:</b> Yes <br>
55  *
56  *  \note All level1 and level2 nonbonded kernels use the same
57  *        call sequence. Parameters are documented in nb_kernel.h
58  */
59 void
60 nb_kernel234_adress_ex
61                 (int *         nri,        int           iinr[],     
62                  int           jindex[],   int           jjnr[],   
63                  int           shift[],    real          shiftvec[],
64                  real          fshift[],   int           gid[], 
65                  real          pos[],      real          faction[],
66                  real          charge[],   real *        facel,
67                  real *        krf,        real *        crf,  
68                  real          Vc[],       int           type[],   
69                  int *         ntype,      real          vdwparam[],
70                  real          Vvdw[],     real *        tabscale,
71                  real          VFtab[],    real          invsqrta[], 
72                  real          dvda[],     real *        gbtabscale,
73                  real          GBtab[],    int *         nthreads, 
74                  int *         count,      void *        mtx,
75                  int *         outeriter,  int *         inneriter,
76                  real          force_cap, real * wf);
77
78
79 /*! \brief Nonbonded kernel adress 234 without forces.
80  *
81  *  <b>Coulomb interaction:</b> Reaction-Field <br>
82  *  <b>VdW interaction:</b> Tabulated  <br>
83  *  <b>Water optimization:</b> TIP4p - TIP4p <br>
84  *  <b>Forces calculated:</b> No <br>
85  *
86  *  \note All level1 and level2 nonbonded kernels use the same
87  *        call sequence. Parameters are documented in nb_kernel.h
88  */
89 void
90 nb_kernel234_adress_cg
91                 (int *         nri,        int           iinr[],     
92                  int           jindex[],   int           jjnr[],   
93                  int           shift[],    real          shiftvec[],
94                  real          fshift[],   int           gid[], 
95                  real          pos[],      real          faction[],
96                  real          charge[],   real *        facel,
97                  real *        krf,        real *        crf,  
98                  real          Vc[],       int           type[],   
99                  int *         ntype,      real          vdwparam[],
100                  real          Vvdw[],     real *        tabscale,
101                  real          VFtab[],    real          invsqrta[], 
102                  real          dvda[],     real *        gbtabscale,
103                  real          GBtab[],    int *         nthreads, 
104                  int *         count,      void *        mtx,
105                  int *         outeriter,  int *         inneriter,
106                  real          force_cap, real * wf);
107
108
109 #ifdef __cplusplus
110 }
111 #endif
112
113 #endif /* _NBKERNEL234_ADRESS_H_ */