propagate changes from library.cpp/library.h to swig and plugin interface
This commit is contained in:
@ -144,6 +144,7 @@ liblammpsplugin_t *liblammpsplugin_load(const char *lib)
|
|||||||
ADDSYM(find_pair_neighlist);
|
ADDSYM(find_pair_neighlist);
|
||||||
ADDSYM(find_fix_neighlist);
|
ADDSYM(find_fix_neighlist);
|
||||||
ADDSYM(find_compute_neighlist);
|
ADDSYM(find_compute_neighlist);
|
||||||
|
ADDSYM(request_single_neighlist);
|
||||||
ADDSYM(neighlist_num_elements);
|
ADDSYM(neighlist_num_elements);
|
||||||
ADDSYM(neighlist_element_neighbors);
|
ADDSYM(neighlist_element_neighbors);
|
||||||
|
|
||||||
|
|||||||
@ -94,6 +94,17 @@ enum _LMP_VAR_CONST {
|
|||||||
LMP_VAR_STRING = 3 /*!< return value will be a string (catch-all) */
|
LMP_VAR_STRING = 3 /*!< return value will be a string (catch-all) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Neighbor list settings constants
|
||||||
|
*
|
||||||
|
* Must be kept in sync with the equivalent constants in ``python/lammps/constants.py``,
|
||||||
|
* ``fortran/lammps.f90``, ``tools/swig/lammps.i``, and
|
||||||
|
* ``examples/COUPLE/plugin/liblammpsplugin.h`` */
|
||||||
|
|
||||||
|
enum _LMP_NEIGH_CONST {
|
||||||
|
LMP_NEIGH_HALF = 0, /*!< request (default) half neighbor list */
|
||||||
|
LMP_NEIGH_FULL = 1, /*!< request full neighbor list */
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -189,14 +200,17 @@ struct _liblammpsplugin {
|
|||||||
* caller must match to how LAMMPS library is built */
|
* caller must match to how LAMMPS library is built */
|
||||||
|
|
||||||
#if !defined(LAMMPS_BIGBIG)
|
#if !defined(LAMMPS_BIGBIG)
|
||||||
int (*create_atoms)(void *, int, int *, int *, double *, double *, int *, int);
|
int (*create_atoms)(void *, int, const int *, const int *, const double *, const double *,
|
||||||
|
const int *, int);
|
||||||
#else
|
#else
|
||||||
int (*create_atoms)(void *, int, int64_t *, int *, double *, double *, int64_t *, int);
|
int (*create_atoms)(void *, int, const int64_t *, const int *, const double *, const double *,
|
||||||
|
const int64_t *, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int (*find_pair_neighlist)(void *, const char *, int, int, int);
|
int (*find_pair_neighlist)(void *, const char *, int, int, int);
|
||||||
int (*find_fix_neighlist)(void *, const char *, int);
|
int (*find_fix_neighlist)(void *, const char *, int);
|
||||||
int (*find_compute_neighlist)(void *, const char *, int);
|
int (*find_compute_neighlist)(void *, const char *, int);
|
||||||
|
int (*request_single_neighlist)(void *, const char *, int, double);
|
||||||
int (*neighlist_num_elements)(void *, int);
|
int (*neighlist_num_elements)(void *, int);
|
||||||
void (*neighlist_element_neighbors)(void *, int, int, int *, int *, int **);
|
void (*neighlist_element_neighbors)(void *, int, int, int *, int *, int **);
|
||||||
|
|
||||||
|
|||||||
@ -74,7 +74,9 @@ MODULE LIBLAMMPS
|
|||||||
LMP_VAR_EQUAL = 0, & ! equal-style variables (and compatible)
|
LMP_VAR_EQUAL = 0, & ! equal-style variables (and compatible)
|
||||||
LMP_VAR_ATOM = 1, & ! atom-style variables
|
LMP_VAR_ATOM = 1, & ! atom-style variables
|
||||||
LMP_VAR_VECTOR = 2, & ! vector variables
|
LMP_VAR_VECTOR = 2, & ! vector variables
|
||||||
LMP_VAR_STRING = 3 ! string variables (everything else)
|
LMP_VAR_STRING = 3, & ! string variables (everything else)
|
||||||
|
LMP_NEIGH_HALF = 0, & ! request (default) half neighbor list
|
||||||
|
LMP_NEIGH_FULL = 1 ! request full neighbor list
|
||||||
|
|
||||||
! Constants we set once (in the constructor) and never need to check again
|
! Constants we set once (in the constructor) and never need to check again
|
||||||
INTEGER(c_int), SAVE :: SIZE_TAGINT, SIZE_BIGINT, SIZE_IMAGEINT
|
INTEGER(c_int), SAVE :: SIZE_TAGINT, SIZE_BIGINT, SIZE_IMAGEINT
|
||||||
@ -195,10 +197,11 @@ MODULE LIBLAMMPS
|
|||||||
PROCEDURE, PRIVATE :: lmp_create_atoms_bigbig
|
PROCEDURE, PRIVATE :: lmp_create_atoms_bigbig
|
||||||
GENERIC :: create_atoms => lmp_create_atoms_int, &
|
GENERIC :: create_atoms => lmp_create_atoms_int, &
|
||||||
lmp_create_atoms_bigbig
|
lmp_create_atoms_bigbig
|
||||||
PROCEDURE :: find_pair_neighlist => lmp_find_pair_neighlist
|
PROCEDURE :: find_pair_neighlist => lmp_find_pair_neighlist
|
||||||
PROCEDURE :: find_fix_neighlist => lmp_find_fix_neighlist
|
PROCEDURE :: find_fix_neighlist => lmp_find_fix_neighlist
|
||||||
PROCEDURE :: find_compute_neighlist => lmp_find_compute_neighlist
|
PROCEDURE :: find_compute_neighlist => lmp_find_compute_neighlist
|
||||||
PROCEDURE :: neighlist_num_elements => lmp_neighlist_num_elements
|
PROCEDURE :: request_single_neighlist => lmp_request_single_neighlist
|
||||||
|
PROCEDURE :: neighlist_num_elements => lmp_neighlist_num_elements
|
||||||
PROCEDURE :: neighlist_element_neighbors => lmp_neighlist_element_neighbors
|
PROCEDURE :: neighlist_element_neighbors => lmp_neighlist_element_neighbors
|
||||||
PROCEDURE :: version => lmp_version
|
PROCEDURE :: version => lmp_version
|
||||||
PROCEDURE, NOPASS :: get_os_info => lmp_get_os_info
|
PROCEDURE, NOPASS :: get_os_info => lmp_get_os_info
|
||||||
@ -778,6 +781,15 @@ MODULE LIBLAMMPS
|
|||||||
INTEGER(c_int) :: lammps_find_compute_neighlist
|
INTEGER(c_int) :: lammps_find_compute_neighlist
|
||||||
END FUNCTION lammps_find_compute_neighlist
|
END FUNCTION lammps_find_compute_neighlist
|
||||||
|
|
||||||
|
FUNCTION lammps_request_single_neighlist(handle, id, flags, cutoff) BIND(C)
|
||||||
|
IMPORT :: c_int, c_double, c_ptr
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(c_ptr), VALUE :: handle, id
|
||||||
|
INTEGER(c_int), VALUE :: flags
|
||||||
|
REAL(c_double), VALUE :: cutoff
|
||||||
|
INTEGER(c_int) :: lammps_request_single_neighlist
|
||||||
|
END FUNCTION lammps_request_single_neighlist
|
||||||
|
|
||||||
FUNCTION lammps_neighlist_num_elements(handle, idx) BIND(C)
|
FUNCTION lammps_neighlist_num_elements(handle, idx) BIND(C)
|
||||||
IMPORT :: c_ptr, c_int
|
IMPORT :: c_ptr, c_int
|
||||||
TYPE(c_ptr), VALUE :: handle
|
TYPE(c_ptr), VALUE :: handle
|
||||||
@ -2942,6 +2954,36 @@ CONTAINS
|
|||||||
CALL lammps_free(Cid)
|
CALL lammps_free(Cid)
|
||||||
END FUNCTION lmp_find_compute_neighlist
|
END FUNCTION lmp_find_compute_neighlist
|
||||||
|
|
||||||
|
! equivalent function to lammps_request_single_neighlist
|
||||||
|
INTEGER(c_int) FUNCTION lmp_request_single_neighlist(self, id, flags, cutoff) RESULT(idx)
|
||||||
|
CLASS(lammps), INTENT(IN) :: self
|
||||||
|
CHARACTER(LEN=*), INTENT(IN) :: id
|
||||||
|
INTEGER(c_int), INTENT(IN), OPTIONAL :: flags
|
||||||
|
REAL(c_double), INTENT(IN), OPTIONAL :: cutoff
|
||||||
|
TYPE(c_ptr) :: Cid
|
||||||
|
INTEGER(c_int) :: Cflags
|
||||||
|
REAL(c_double) :: Ccutoff
|
||||||
|
|
||||||
|
IF (PRESENT(flags)) THEN
|
||||||
|
Cflags = flags
|
||||||
|
ELSE
|
||||||
|
Cflags = LMP_NEIGH_HALF
|
||||||
|
END IF
|
||||||
|
IF (PRESENT(cutoff)) THEN
|
||||||
|
Ccutoff = cutoff
|
||||||
|
ELSE
|
||||||
|
Ccutoff = 1.0_c_double
|
||||||
|
END IF
|
||||||
|
|
||||||
|
Cid = f2c_string(id)
|
||||||
|
idx = lammps_request_single_neighlist(self%handle, Cid, Cflags, Ccutoff)
|
||||||
|
IF (idx < 0) THEN
|
||||||
|
CALL lmp_error(self, LMP_ERROR_WARNING + LMP_ERROR_WORLD, &
|
||||||
|
'neighbor list build failed [Fortran/request_single_neighlist]')
|
||||||
|
END IF
|
||||||
|
CALL lammps_free(Cid)
|
||||||
|
END FUNCTION lmp_request_single_neighlist
|
||||||
|
|
||||||
INTEGER(c_int) FUNCTION lmp_neighlist_num_elements(self, idx) RESULT(inum)
|
INTEGER(c_int) FUNCTION lmp_neighlist_num_elements(self, idx) RESULT(inum)
|
||||||
CLASS(lammps), INTENT(IN) :: self
|
CLASS(lammps), INTENT(IN) :: self
|
||||||
INTEGER(c_int), INTENT(IN) :: idx
|
INTEGER(c_int), INTENT(IN) :: idx
|
||||||
|
|||||||
@ -95,6 +95,17 @@ enum _LMP_VAR_CONST {
|
|||||||
LMP_VAR_STRING = 3 /*!< return value will be a string (catch-all) */
|
LMP_VAR_STRING = 3 /*!< return value will be a string (catch-all) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Neighbor list settings constants
|
||||||
|
*
|
||||||
|
* Must be kept in sync with the equivalent constants in ``python/lammps/constants.py``,
|
||||||
|
* ``fortran/lammps.f90``, ``tools/swig/lammps.i``, and
|
||||||
|
* ``examples/COUPLE/plugin/liblammpsplugin.h`` */
|
||||||
|
|
||||||
|
enum _LMP_NEIGH_CONST {
|
||||||
|
LMP_NEIGH_HALF = 0, /*!< request (default) half neighbor list */
|
||||||
|
LMP_NEIGH_FULL = 1, /*!< request full neighbor list */
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
extern void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr);
|
extern void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr);
|
||||||
*/
|
*/
|
||||||
@ -143,32 +154,34 @@ extern int lammps_set_string_variable(void *, const char *, const char *);
|
|||||||
extern int lammps_set_internal_variable(void *, const char *, double);
|
extern int lammps_set_internal_variable(void *, const char *, double);
|
||||||
extern int lammps_variable_info(void *handle, int idx, char *buf, int bufsize);
|
extern int lammps_variable_info(void *handle, int idx, char *buf, int bufsize);
|
||||||
extern double lammps_eval(void *handle, const char *expr);
|
extern double lammps_eval(void *handle, const char *expr);
|
||||||
|
|
||||||
extern void lammps_clearstep_compute(void *handle);
|
extern void lammps_clearstep_compute(void *handle);
|
||||||
extern void lammps_addstep_compute(void *handle, void *nstep);
|
extern void lammps_addstep_compute(void *handle, void *nstep);
|
||||||
extern void lammps_addstep_compute_all(void *handle, void *nstep);
|
extern void lammps_addstep_compute_all(void *handle, void *nstep);
|
||||||
|
|
||||||
extern void lammps_gather_atoms(void *, char *, int, int, void *);
|
extern void lammps_gather_atoms(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_atoms_concat(void *, char *, int, int, void *);
|
extern void lammps_gather_atoms_concat(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_gather_atoms_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_scatter_atoms(void *, char *, int, int, void *);
|
extern void lammps_scatter_atoms(void *, const char *, int, int, void *);
|
||||||
extern void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_scatter_atoms_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_gather_bonds(void *handle, void *data);
|
extern void lammps_gather_bonds(void *handle, void *data);
|
||||||
extern void lammps_gather_angles(void *handle, void *data);
|
extern void lammps_gather_angles(void *handle, void *data);
|
||||||
extern void lammps_gather_dihedrals(void *handle, void *data);
|
extern void lammps_gather_dihedrals(void *handle, void *data);
|
||||||
extern void lammps_gather_impropers(void *handle, void *data);
|
extern void lammps_gather_impropers(void *handle, void *data);
|
||||||
extern void lammps_gather(void *, char *, int, int, void *);
|
extern void lammps_gather(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_concat(void *, char *, int, int, void *);
|
extern void lammps_gather_concat(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_gather_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_scatter(void *, char *, int, int, void *);
|
extern void lammps_scatter(void *, const char *, int, int, void *);
|
||||||
extern void lammps_scatter_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_scatter_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern int lammps_create_atoms(void *handle, int n, int *id, int *type,
|
extern int lammps_create_atoms(void *handle, int n, const int *id, const int *type,
|
||||||
double *x, double *v, int *image, int bexpand);
|
const double *x, const double *v, const int *image, int bexpand);
|
||||||
/*
|
/*
|
||||||
extern int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, */
|
extern int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, */
|
||||||
extern int lammps_find_pair_neighlist(void*, char *, int, int, int);
|
extern int lammps_find_pair_neighlist(void *, const char *, int, int, int);
|
||||||
extern int lammps_find_fix_neighlist(void*, char *, int);
|
extern int lammps_find_fix_neighlist(void *, const char *, int);
|
||||||
extern int lammps_find_compute_neighlist(void*, char *, int);
|
extern int lammps_find_compute_neighlist(void *, const char *, int);
|
||||||
extern int lammps_neighlist_num_elements(void*, int);
|
extern int lammps_request_single_neighlist(void *, const char *, int, double);
|
||||||
|
extern int lammps_neighlist_num_elements(void *, int);
|
||||||
extern void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** );
|
extern void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** );
|
||||||
|
|
||||||
extern int lammps_version(void *handle);
|
extern int lammps_version(void *handle);
|
||||||
@ -344,27 +357,28 @@ extern void lammps_clearstep_compute(void *handle);
|
|||||||
extern void lammps_addstep_compute(void *handle, void *nstep);
|
extern void lammps_addstep_compute(void *handle, void *nstep);
|
||||||
extern void lammps_addstep_compute_all(void *handle, void *nstep);
|
extern void lammps_addstep_compute_all(void *handle, void *nstep);
|
||||||
|
|
||||||
extern void lammps_gather_atoms(void *, char *, int, int, void *);
|
extern void lammps_gather_atoms(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_atoms_concat(void *, char *, int, int, void *);
|
extern void lammps_gather_atoms_concat(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_gather_atoms_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_scatter_atoms(void *, char *, int, int, void *);
|
extern void lammps_scatter_atoms(void *, const char *, int, int, void *);
|
||||||
extern void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_scatter_atoms_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_gather_bonds(void *handle, void *data);
|
extern void lammps_gather_bonds(void *handle, void *data);
|
||||||
extern void lammps_gather_angles(void *handle, void *data);
|
extern void lammps_gather_angles(void *handle, void *data);
|
||||||
extern void lammps_gather_dihedrals(void *handle, void *data);
|
extern void lammps_gather_dihedrals(void *handle, void *data);
|
||||||
extern void lammps_gather_impropers(void *handle, void *data);
|
extern void lammps_gather_impropers(void *handle, void *data);
|
||||||
extern void lammps_gather(void *, char *, int, int, void *);
|
extern void lammps_gather(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_concat(void *, char *, int, int, void *);
|
extern void lammps_gather_concat(void *, const char *, int, int, void *);
|
||||||
extern void lammps_gather_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_gather_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern void lammps_scatter(void *, char *, int, int, void *);
|
extern void lammps_scatter(void *, const char *, int, int, void *);
|
||||||
extern void lammps_scatter_subset(void *, char *, int, int, int, int *, void *);
|
extern void lammps_scatter_subset(void *, const char *, int, int, int, int *, void *);
|
||||||
extern int lammps_create_atoms(void *handle, int n, int *id, int *type,
|
extern int lammps_create_atoms(void *handle, int n, const int *id, const int *type,
|
||||||
double *x, double *v, int *image, int bexpand);
|
const double *x, const double *v, const int *image, int bexpand);
|
||||||
/*
|
/*
|
||||||
extern int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, */
|
extern int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, */
|
||||||
extern int lammps_find_pair_neighlist(void*, char *, int, int, int);
|
extern int lammps_find_pair_neighlist(void*, const char *, int, int, int);
|
||||||
extern int lammps_find_fix_neighlist(void*, char *, int);
|
extern int lammps_find_fix_neighlist(void*, const char *, int);
|
||||||
extern int lammps_find_compute_neighlist(void*, char *, int);
|
extern int lammps_find_compute_neighlist(void*, const char *, int);
|
||||||
|
extern int lammps_request_single_neighlist(void *, const char *, int, double);
|
||||||
extern int lammps_neighlist_num_elements(void*, int);
|
extern int lammps_neighlist_num_elements(void*, int);
|
||||||
extern void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** );
|
extern void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user