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
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
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.
------------------------------------------------------------------------- */
/*
C or Fortran style library interface to LAMMPS
new LAMMPS-specific functions can be added
*/
#include <mpi.h>
#ifdef LAMMPS_BIGBIG
#include <inttypes.h> /* for int64_t */
#endif
/* ifdefs allow this file to be included in a C program */
#ifdef __cplusplus
extern "C" {
#endif
void lammps_open(int, char **, MPI_Comm, void **);
void lammps_open_no_mpi(int, char **, void **);
void lammps_close(void *);
int lammps_version(void *);
void lammps_file(void *, char *);
char *lammps_command(void *, char *);
void lammps_commands_list(void *, int, char **);
void lammps_commands_string(void *, char *);
void lammps_free(void *);
int lammps_extract_setting(void *, char *);
void *lammps_extract_global(void *, char *);
void lammps_extract_box(void *, double *, double *,
double *, double *, double *, int *, int *);
void *lammps_extract_atom(void *, char *);
void *lammps_extract_compute(void *, char *, int, int);
void *lammps_extract_fix(void *, char *, int, int, int, int);
void *lammps_extract_variable(void *, char *, char *);
double lammps_get_thermo(void *, char *);
int lammps_get_natoms(void *);
int lammps_set_variable(void *, char *, char *);
void lammps_reset_box(void *, double *, double *, double, double, double);
void lammps_gather_atoms(void *, char *, int, int, void *);
void lammps_gather_atoms_concat(void *, char *, int, int, void *);
void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *);
void lammps_scatter_atoms(void *, char *, int, int, void *);
void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *);
int lammps_config_has_package(char * package_name);
int lammps_config_package_count();
int lammps_config_package_name(int index, char * buffer, int max_size);
int lammps_config_has_gzip_support();
int lammps_config_has_png_support();
int lammps_config_has_jpeg_support();
int lammps_config_has_ffmpeg_support();
int lammps_config_has_exceptions();
// lammps_create_atoms() takes tagint and imageint as args
// ifdef insures they are compatible with rest of LAMMPS
// caller must match to how LAMMPS library is built
#ifdef LAMMPS_BIGBIG
void lammps_create_atoms(void *, int, int64_t *, int *,
double *, double *, int64_t *, int);
#else
void lammps_create_atoms(void *, int, int *, int *,
double *, double *, int *, int);
#endif
#ifdef LAMMPS_EXCEPTIONS
int lammps_has_error(void *);
int lammps_get_last_error_message(void *, char *, int);
#endif
#undef LAMMPS
#ifdef __cplusplus
}
#endif
/* ERROR/WARNING messages:
E: Library error: issuing LAMMPS command during run
UNDOCUMENTED
W: Library error in lammps_gather_atoms
This library function cannot be used if atom IDs are not defined
or are not consecutively numbered.
W: lammps_gather_atoms: unknown property name
UNDOCUMENTED
W: Library error in lammps_gather_atoms_subset
UNDOCUMENTED
W: lammps_gather_atoms_subset: unknown property name
UNDOCUMENTED
W: Library error in lammps_scatter_atoms
This library function cannot be used if atom IDs are not defined or
are not consecutively numbered, or if no atom map is defined. See the
atom_modify command for details about atom maps.
W: lammps_scatter_atoms: unknown property name
UNDOCUMENTED
W: Library error in lammps_scatter_atoms_subset
UNDOCUMENTED
W: lammps_scatter_atoms_subset: unknown property name
UNDOCUMENTED
W: Library error in lammps_create_atoms
UNDOCUMENTED
W: Library warning in lammps_create_atoms, invalid total atoms %ld %ld
UNDOCUMENTED
*/