1 |
#ifdef __OPENMD_C |
2 |
#ifndef __FMNMINTERACTIONS |
3 |
#define __FMNMINTERACTIONS |
4 |
|
5 |
#define MNM_NUM_MNM_TYPES 4 |
6 |
#define MNM_LENNARDJONES 1 |
7 |
#define MNM_REPULSIVEMORSE 2 |
8 |
#define MNM_SHIFTEDMORSE 3 |
9 |
#define MNM_MAW 4 |
10 |
|
11 |
// dummy integer below is a workaround for |
12 |
// a bug in the intel compiler, which can't |
13 |
// seem to pack structs the same way on C and |
14 |
// fortran. |
15 |
|
16 |
typedef struct{ |
17 |
int MNMInteractionType; |
18 |
int dummy; |
19 |
int metal_atid; |
20 |
int nonmetal_atid; |
21 |
RealType R0; |
22 |
RealType D0; |
23 |
RealType beta0; |
24 |
RealType betaH; |
25 |
RealType ca1; |
26 |
RealType cb1; |
27 |
RealType sigma; |
28 |
RealType epsilon; |
29 |
} MNMtype; |
30 |
|
31 |
|
32 |
#endif |
33 |
#endif /*__OPENMD_C*/ |
34 |
|
35 |
#ifdef __FORTRAN90 |
36 |
|
37 |
INTEGER, PARAMETER:: MNM_NUM_MNM_TYPES = 4 |
38 |
INTEGER, PARAMETER:: MNM_LENNARDJONES = 1 |
39 |
INTEGER, PARAMETER:: MNM_REPULSIVEMORSE = 2 |
40 |
INTEGER, PARAMETER:: MNM_SHIFTEDMORSE = 3 |
41 |
INTEGER, PARAMETER:: MNM_MAW = 4 |
42 |
|
43 |
! dummy integer below is a workaround for |
44 |
! a bug in the intel compiler, which does not |
45 |
! seem to pack structs the same way on C and |
46 |
! fortran. |
47 |
|
48 |
type :: MNMtype |
49 |
SEQUENCE |
50 |
integer :: MNMInteractionType |
51 |
integer :: dummy |
52 |
integer :: metal_atid |
53 |
integer :: nonmetal_atid |
54 |
real(kind=dp) :: R0 |
55 |
real(kind=dp) :: D0 |
56 |
real(kind=dp) :: beta0 |
57 |
real(kind=dp) :: betaH |
58 |
real(kind=dp) :: ca1 |
59 |
real(kind=dp) :: cb1 |
60 |
real(kind=dp) :: sigma |
61 |
real(kind=dp) :: epsilon |
62 |
end type MNMtype |
63 |
|
64 |
#endif |