-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.h
180 lines (137 loc) · 4.75 KB
/
config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/*
Copyright (C) 2010 The ESPResSo project
Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010 Max-Planck-Institute for Polymer Research, Theory Group, PO Box 3148, 55021 Mainz, Germany
This file is part of ESPResSo.
ESPResSo is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ESPResSo is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
/** \file config.h
This file contains the defaults for Espresso. To modify them, add
an appropriate line in myconfig.h. To find a list of features that
can be compiled into Espresso, refer to myconfig-sample.h or to
\ref tcl_features "the documentation of the features".
*/
/* Include the defines created by configure. */
#include <acconfig.h>
/************************************************/
/** \name Default Parameter Settings */
/************************************************/
/*@{*/
/** CELLS: Default value for the maximal number of cells per node. */
#define CELLS_MAX_NUM_CELLS 32768
/** P3M: Default for number of interpolation points of the charge
assignment function. */
#define P3M_N_INTERPOL 32768
/** P3M: Default for boundary condition: Epsilon of the surrounding
medium. */
#define P3M_EPSILON 0.0
/** P3M: Default for boundary condition in magnetic calculations */
#define P3M_EPSILON_MAGNETIC 1.0
/** P3M: Default for offset of first mesh point from the origin (left
down corner of the simulation box. */
#define P3M_MESHOFF 0.5
/** P3M: Default for the number of Brillouin zones taken into account
in the calculation of the optimal influence function (aliasing
sums). */
#define P3M_BRILLOUIN 1
/** P3M: Maximal mesh size that will be checked. The current setting
limits the memory consumption to below 1GB, which is probably
reasonable for a while. */
#define P3M_MAX_MESH 128
/** Whether to use the approximation of Abramowitz/Stegun
AS_erfc_part() for \f$\exp(d^2) erfc(d)\f$, or the C function erfc
in P3M and Ewald summation. */
#define USE_ERFC_APPROXIMATION 1
/** Precision for capture of round off errors. */
#define ROUND_ERROR_PREC 1.0e-14
/** Tiny angle cutoff for sinus calculations */
#define TINY_SIN_VALUE 1e-10
/** Tiny angle cutoff for cosine calculations */
#define TINY_COS_VALUE 0.9999999999
/** Tiny length cutoff */
#define TINY_LENGTH_VALUE 0.0001
/** maximal number of iterations in the RATTLE algorithm before it bails out. */
#define SHAKE_MAX_ITERATIONS 1000
/*@}*/
#ifdef MYCONFIG_H
#include MYCONFIG_H
#endif
//inter_rf needs ELECTROSTATICS
#ifdef INTER_RF
#define ELECTROSTATICS
#endif
#ifdef GAY_BERNE
#define ROTATION
#endif
/* activate P3M only with FFTW */
#if defined(ELECTROSTATICS) && defined(FFTW)
#define ELP3M
#endif
/* activate dipolar P3M only with FFTW */
#if defined(MAGNETOSTATICS) && defined(FFTW)
#define ELP3M
#define DIPOLES
#endif
/* MAGNETOSTATICS implies the use of DIPOLES */
#if defined(MAGNETOSTATICS)
#define DIPOLES
#endif
/* Lattice Boltzmann needs lattice structures and temporary particle data */
#ifdef LB
#define USE_TEMPORARY
#define LATTICE
//#define ALTERNATIVE_INTEGRATOR
#endif
//adress needs mol_cut
#ifdef ADRESS
#define MOL_CUT
#endif
//mol_cut needs virtual sites
#ifdef MOL_CUT
#define VIRTUAL_SITES
#endif
#if defined(DPD_MASS_RED) || defined(DPD_MASS_LIN)
#define DPD_MASS
#endif
/*DPD with mass needs MASS and DPD */
#ifdef DPD_MASS
#define MASS
#endif
/*Transversal DPD -> needs normal DPD*/
#ifdef TRANS_DPD
#define DPD
#endif
/* If any bond angle potential is activated, actiavte the whole bond angle code */
#if defined(BOND_ANGLE_HARMONIC) || defined(BOND_ANGLE_COSINE) || defined(BOND_ANGLE_COSSQUARE)
#define BOND_ANGLE
#endif
/* If any bond angledist potential is activated, activate the whole bond angle code and constraints */
#if defined(BOND_ANGLEDIST_HARMONIC)
#define BOND_ANGLEDIST
#define CONSTRAINTS
#endif
#if defined(BOND_ENDANGLEDIST_HARMONIC)
#define BOND_ENDANGLEDIST
#define CONSTRAINTS
#endif
/********************************************/
/* \name exported functions of config.c */
/********************************************/
/*@{*/
#include <tcl.h>
/** callback for version status. */
int version_callback(Tcl_Interp *interp);
/** callback for compilation status. */
int compilation_callback(Tcl_Interp *interp);
/*@}*/
#endif