-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathfix_adapt.h
150 lines (101 loc) · 3.66 KB
/
fix_adapt.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
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, [email protected]
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors:
Added a fscale keyword for kspace pppm and pppm/tip4p styles to adapt only the forces during MD simulations. Also added the possibility to adapt angle potential (such as angle_harmonic that is used in the examples) by Rodolfo Paula Leite (Unicamp/BR)
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
FixStyle(adapt,FixAdapt)
#else
#ifndef LMP_FIX_ADAPT_H
#define LMP_FIX_ADAPT_H
#include "fix.h"
namespace LAMMPS_NS {
class FixAdapt : public Fix {
public:
int diamflag; // 1 if atom diameters will vary, for AtomVecGranular
int chgflag;
FixAdapt(class LAMMPS *, int, char **);
~FixAdapt();
int setmask();
void post_constructor();
void init();
void setup_pre_force(int);
void pre_force(int);
void post_run();
void setup_pre_force_respa(int,int);
void pre_force_respa(int,int,int);
void set_arrays(int);
private:
int nadapt,resetflag,scaleflag,fscaleflag;
int anypair, anybond, anyangle;
int nlevels_respa;
char *id_fix_diam,*id_fix_chg;
class FixStore *fix_diam,*fix_chg;
struct Adapt {
int which,ivar;
char *var;
char *pstyle,*pparam;
char *bstyle,*bparam;
char *astyle,*agparam;
int ilo,ihi,jlo,jhi;
int pdim,bdim,adim;
double *scalar,scalar_orig;
double *vector,*vector_orig;
double **array,**array_orig;
int aparam;
class Pair *pair;
class Bond *bond;
class Angle *angle;
};
Adapt *adapt;
double *kspace_scale;
void change_settings();
void restore_settings();
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Cannot use dynamic group with fix adapt atom
This is not yet supported.
E: Variable name for fix adapt does not exist
Self-explanatory.
E: Variable for fix adapt is invalid style
Only equal-style variables can be used.
E: Fix adapt pair style does not exist
Self-explanatory
E: Fix adapt pair style param not supported
The pair style does not know about the parameter you specified.
E: Fix adapt pair style param is not compatible
Self-explanatory
E: Fix adapt type pair range is not valid for pair hybrid sub-style
Self-explanatory.
E: Fix adapt bond style does not exist
UNDOCUMENTED
E: Fix adapt bond style param not supported
UNDOCUMENTED
E: Fix adapt does not support bond_style hybrid
UNDOCUMENTED
E: Fix adapt kspace style does not exist
Self-explanatory.
E: Fix adapt requires atom attribute diameter
The atom style being used does not specify an atom diameter.
E: Fix adapt requires atom attribute charge
The atom style being used does not specify an atom charge.
E: Could not find fix adapt storage fix ID
This should not happen unless you explicitly deleted
a secondary fix that fix adapt created internally.
*/