remove references to -DLAMMPS_SMALLSMALL and trigger error when used

This commit is contained in:
Axel Kohlmeyer
2025-03-14 10:20:31 -04:00
parent 084bdb2da6
commit cea31e463d
12 changed files with 35 additions and 130 deletions

View File

@ -431,8 +431,8 @@ else()
target_link_libraries(lammps PUBLIC mpi_stubs) target_link_libraries(lammps PUBLIC mpi_stubs)
endif() endif()
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)") set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall) set(LAMMPS_SIZES_VALUES smallbig bigbig)
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES}) set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES) validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES) string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)

View File

@ -260,8 +260,8 @@ endif()
################ ################
# integer size selection # integer size selection
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)") set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall) set(LAMMPS_SIZES_VALUES smallbig bigbig)
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES}) set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES) validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES) string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)

View File

@ -255,11 +255,10 @@ Traditional make
Before building LAMMPS, you must build the GPU library in ``lib/gpu``\ . Before building LAMMPS, you must build the GPU library in ``lib/gpu``\ .
You can do this manually if you prefer; follow the instructions in You can do this manually if you prefer; follow the instructions in
``lib/gpu/README``. Note that the GPU library uses MPI calls, so you must ``lib/gpu/README``. Note that the GPU library uses MPI calls, so you
use the same MPI library (or the STUBS library) settings as the main must use the same MPI library (or the STUBS library) settings as the
LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG``\ , main LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG`` or
``-DLAMMPS_SMALLBIG``\ , or ``-DLAMMPS_SMALLSMALL`` settings in whichever ``-DLAMMPS_SMALLBIG`` settings in whichever Makefile you use.
Makefile you use.
You can also build the library in one step from the ``lammps/src`` dir, You can also build the library in one step from the ``lammps/src`` dir,
using a command like these, which simply invokes the ``lib/gpu/Install.py`` using a command like these, which simply invokes the ``lib/gpu/Install.py``

View File

@ -315,7 +315,7 @@ large counters can become before "rolling over". The default setting of
.. code-block:: bash .. code-block:: bash
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall -D LAMMPS_SIZES=value # smallbig (default) or bigbig
If the variable is not set explicitly, "smallbig" is used. If the variable is not set explicitly, "smallbig" is used.
@ -326,7 +326,7 @@ large counters can become before "rolling over". The default setting of
.. code-block:: make .. code-block:: make
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG
The default setting is ``-DLAMMPS_SMALLBIG`` if nothing is specified The default setting is ``-DLAMMPS_SMALLBIG`` if nothing is specified
@ -335,34 +335,27 @@ LAMMPS system size restrictions
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
:widths: 18 27 28 27 :widths: 27 36 37
:align: center :align: center
* - * -
- smallbig - smallbig
- bigbig - bigbig
- smallsmall
* - Total atom count * - Total atom count
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`) - :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`) - :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{31}` atoms (= :math:`2.147 \cdot 10^9`)
* - Total timesteps * - Total timesteps
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`) - :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`) - :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{31}` steps (= :math:`2.147 \cdot 10^9`)
* - Atom ID values * - Atom ID values
- :math:`1 \le i \le 2^{31} (= 2.147 \cdot 10^9)` - :math:`1 \le i \le 2^{31} (= 2.147 \cdot 10^9)`
- :math:`1 \le i \le 2^{63} (= 9.223 \cdot 10^{18})` - :math:`1 \le i \le 2^{63} (= 9.223 \cdot 10^{18})`
- :math:`1 \le i \le 2^{31} (= 2.147 \cdot 10^9)`
* - Image flag values * - Image flag values
- :math:`-512 \le i \le 511` - :math:`-512 \le i \le 511`
- :math:`- 1\,048\,576 \le i \le 1\,048\,575` - :math:`- 1\,048\,576 \le i \le 1\,048\,575`
- :math:`-512 \le i \le 511`
The "bigbig" setting increases the size of image flags and atom IDs over The "bigbig" setting increases the size of image flags and atom IDs over
"smallbig" and the "smallsmall" setting is only needed if your machine the default "smallbig" setting.
does not support 64-bit integers or incurs performance penalties when
using them.
These are limits for the core of the LAMMPS code, specific features or These are limits for the core of the LAMMPS code, specific features or
some styles may impose additional limits. The :ref:`ATC some styles may impose additional limits. The :ref:`ATC

View File

@ -6233,8 +6233,9 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
Atom IDs must be positive integers. Atom IDs must be positive integers.
*One or more atom IDs is too big* *One or more atom IDs is too big*
The limit on atom IDs is set by the SMALLBIG, BIGBIG, SMALLSMALL The limit on atom IDs is set by the SMALLBIG, BIGBIG
setting in your LAMMPS build. See the :doc:`Build settings <Build_settings>` page for more info. setting in your LAMMPS build. See the
:doc:`Build settings <Build_settings>` page for more info.
*One or more atom IDs is zero* *One or more atom IDs is zero*
Either all atoms IDs must be zero or none of them. Either all atoms IDs must be zero or none of them.

View File

@ -2773,8 +2773,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
END SUBROUTINE external_callback END SUBROUTINE external_callback
END INTERFACE END INTERFACE
where ``c_bigint`` is ``c_int`` if ``-DLAMMPS_SMALLSMALL`` was used and where ``c_bigint`` is ``c_int64_t`` and ``c_tagint`` is ``c_int64_t`` if
``c_int64_t`` otherwise; and ``c_tagint`` is ``c_int64_t`` if
``-DLAMMPS_BIGBIG`` was used and ``c_int`` otherwise. ``-DLAMMPS_BIGBIG`` was used and ``c_int`` otherwise.
The argument *caller* to :f:subr:`set_fix_external_callback` is unlimited The argument *caller* to :f:subr:`set_fix_external_callback` is unlimited

View File

@ -19,9 +19,9 @@ there are now a few requirements for including new changes or extensions.
be added. be added.
- New features should also be implemented and documented not just - New features should also be implemented and documented not just
for the C interface, but also the Python and Fortran interfaces. for the C interface, but also the Python and Fortran interfaces.
- All additions should work and be compatible with ``-DLAMMPS_BIGBIG``, - All additions should work and be compatible with
``-DLAMMPS_SMALLBIG``, ``-DLAMMPS_SMALLSMALL`` as well as when ``-DLAMMPS_BIGBIG``, ``-DLAMMPS_SMALLBIG`` as well as when compiling
compiling with and without MPI support. with and without MPI support.
- The ``library.h`` file should be kept compatible to C code at - The ``library.h`` file should be kept compatible to C code at
a level similar to C89. Its interfaces may not reference any a level similar to C89. Its interfaces may not reference any
custom data types (e.g. ``bigint``, ``tagint``, and so on) that custom data types (e.g. ``bigint``, ``tagint``, and so on) that

View File

@ -334,14 +334,6 @@ MODULE LIBLAMMPS
! Interface templates for fix external callbacks ! Interface templates for fix external callbacks
ABSTRACT INTERFACE ABSTRACT INTERFACE
SUBROUTINE external_callback_smallsmall(caller, timestep, ids, x, fexternal)
IMPORT :: c_int, c_double
CLASS(*), INTENT(INOUT) :: caller
INTEGER(c_int), INTENT(IN) :: timestep
INTEGER(c_int), DIMENSION(:), INTENT(IN) :: ids
REAL(c_double), DIMENSION(:,:), INTENT(IN) :: x
REAL(c_double), DIMENSION(:,:), INTENT(OUT) :: fexternal
END SUBROUTINE external_callback_smallsmall
SUBROUTINE external_callback_smallbig(caller, timestep, ids, x, fexternal) SUBROUTINE external_callback_smallbig(caller, timestep, ids, x, fexternal)
IMPORT :: c_int, c_double, c_int64_t IMPORT :: c_int, c_double, c_int64_t
CLASS(*), INTENT(INOUT) :: caller CLASS(*), INTENT(INOUT) :: caller
@ -363,8 +355,6 @@ MODULE LIBLAMMPS
! Derived type for fix external callback data ! Derived type for fix external callback data
TYPE fix_external_data TYPE fix_external_data
CHARACTER(LEN=:), ALLOCATABLE :: id CHARACTER(LEN=:), ALLOCATABLE :: id
PROCEDURE(external_callback_smallsmall), NOPASS, POINTER :: &
callback_smallsmall => NULL()
PROCEDURE(external_callback_smallbig), NOPASS, POINTER :: & PROCEDURE(external_callback_smallbig), NOPASS, POINTER :: &
callback_smallbig => NULL() callback_smallbig => NULL()
PROCEDURE(external_callback_bigbig), NOPASS, POINTER :: & PROCEDURE(external_callback_bigbig), NOPASS, POINTER :: &
@ -2262,7 +2252,7 @@ CONTAINS
CALL lammps_free(Cname) CALL lammps_free(Cname)
END SUBROUTINE lmp_scatter_atoms_subset_double END SUBROUTINE lmp_scatter_atoms_subset_double
! equivalent function to lammps_gather_bonds (LAMMPS_SMALLSMALL or SMALLBIG) ! equivalent function to lammps_gather_bonds (LAMMPS_SMALLBIG)
SUBROUTINE lmp_gather_bonds_small(self, data) SUBROUTINE lmp_gather_bonds_small(self, data)
CLASS(lammps), INTENT(IN) :: self CLASS(lammps), INTENT(IN) :: self
INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data
@ -2304,7 +2294,7 @@ CONTAINS
CALL lammps_gather_bonds(self%handle, Cdata) CALL lammps_gather_bonds(self%handle, Cdata)
END SUBROUTINE lmp_gather_bonds_big END SUBROUTINE lmp_gather_bonds_big
! equivalent function to lammps_gather_angles (LAMMPS_SMALLSMALL or SMALLBIG) ! equivalent function to lammps_gather_angles (LAMMPS_SMALLBIG)
SUBROUTINE lmp_gather_angles_small(self, data) SUBROUTINE lmp_gather_angles_small(self, data)
CLASS(lammps), INTENT(IN) :: self CLASS(lammps), INTENT(IN) :: self
INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data
@ -2346,7 +2336,7 @@ CONTAINS
CALL lammps_gather_angles(self%handle, Cdata) CALL lammps_gather_angles(self%handle, Cdata)
END SUBROUTINE lmp_gather_angles_big END SUBROUTINE lmp_gather_angles_big
! equivalent function to lammps_gather_dihedrals (LAMMPS_SMALLSMALL or SMALLBIG) ! equivalent function to lammps_gather_dihedrals (LAMMPS_SMALLBIG)
SUBROUTINE lmp_gather_dihedrals_small(self, data) SUBROUTINE lmp_gather_dihedrals_small(self, data)
CLASS(lammps), INTENT(IN) :: self CLASS(lammps), INTENT(IN) :: self
INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data
@ -2388,7 +2378,7 @@ CONTAINS
CALL lammps_gather_dihedrals(self%handle, Cdata) CALL lammps_gather_dihedrals(self%handle, Cdata)
END SUBROUTINE lmp_gather_dihedrals_big END SUBROUTINE lmp_gather_dihedrals_big
! equivalent function to lammps_gather_impropers (LAMMPS_SMALLSMALL or SMALLBIG) ! equivalent function to lammps_gather_impropers (LAMMPS_SMALLBIG)
SUBROUTINE lmp_gather_impropers_small(self, data) SUBROUTINE lmp_gather_impropers_small(self, data)
CLASS(lammps), INTENT(IN) :: self CLASS(lammps), INTENT(IN) :: self
INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data INTEGER(c_int), DIMENSION(:), ALLOCATABLE, TARGET, INTENT(OUT) :: data
@ -2763,7 +2753,7 @@ CONTAINS
IF (tagint_size /= 4_c_int .AND. (PRESENT(id) .OR. PRESENT(image))) THEN IF (tagint_size /= 4_c_int .AND. (PRESENT(id) .OR. PRESENT(image))) THEN
CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, & CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, &
'Unable to create_atoms; your id/image array types are incompatible& 'Unable to create_atoms; your id/image array types are incompatible&
& with LAMMPS_SMALLBIG and LAMMPS_SMALLSMALL [Fortran/create_atoms]') & with LAMMPS_SMALLBIG [Fortran/create_atoms]')
END IF END IF
n = SIZE(type, KIND=c_int) n = SIZE(type, KIND=c_int)
IF (PRESENT(bexpand)) THEN IF (PRESENT(bexpand)) THEN
@ -3360,7 +3350,7 @@ CONTAINS
construct_fix_external_data%id = ' ' construct_fix_external_data%id = ' '
END FUNCTION construct_fix_external_data END FUNCTION construct_fix_external_data
! equivalent function to lammps_set_fix_external_callback for -DSMALLSMALL ! equivalent function to lammps_set_fix_external_callback
! note that "caller" is wrapped into a fix_external_data derived type along ! note that "caller" is wrapped into a fix_external_data derived type along
! with the fix id and the Fortran calling function. ! with the fix id and the Fortran calling function.
SUBROUTINE lmp_set_fix_external_callback(self, id, callback, caller) SUBROUTINE lmp_set_fix_external_callback(self, id, callback, caller)
@ -3394,11 +3384,7 @@ CONTAINS
ext_data(this_fix)%id = id ext_data(this_fix)%id = id
ext_data(this_fix)%lammps_instance => self ext_data(this_fix)%lammps_instance => self
IF (SIZE_TAGINT == 4_c_int .AND. SIZE_BIGINT == 4_c_int) THEN IF (SIZE_TAGINT == 8_c_int .AND. SIZE_BIGINT == 8_c_int) THEN
! -DSMALLSMALL
c_callback = C_FUNLOC(callback_wrapper_smallsmall)
CALL set_fix_external_callback_smallsmall(this_fix, callback)
ELSE IF (SIZE_TAGINT == 8_c_int .AND. SIZE_BIGINT == 8_c_int) THEN
! -DBIGBIG ! -DBIGBIG
c_callback = C_FUNLOC(callback_wrapper_bigbig) c_callback = C_FUNLOC(callback_wrapper_bigbig)
CALL set_fix_external_callback_bigbig(this_fix, callback) CALL set_fix_external_callback_bigbig(this_fix, callback)
@ -3420,12 +3406,6 @@ CONTAINS
END SUBROUTINE lmp_set_fix_external_callback END SUBROUTINE lmp_set_fix_external_callback
! Wrappers to assign callback pointers with explicit interfaces ! Wrappers to assign callback pointers with explicit interfaces
SUBROUTINE set_fix_external_callback_smallsmall(id, callback)
INTEGER, INTENT(IN) :: id
PROCEDURE(external_callback_smallsmall) :: callback
ext_data(id)%callback_smallsmall => callback
END SUBROUTINE set_fix_external_callback_smallsmall
SUBROUTINE set_fix_external_callback_smallbig(id, callback) SUBROUTINE set_fix_external_callback_smallbig(id, callback)
INTEGER, INTENT(IN) :: id INTEGER, INTENT(IN) :: id
@ -3450,9 +3430,7 @@ CONTAINS
DO i = 1, SIZE(ext_data) - 1 DO i = 1, SIZE(ext_data) - 1
c_id = f2c_string(ext_data(i)%id) c_id = f2c_string(ext_data(i)%id)
c_caller = C_LOC(ext_data(i)) c_caller = C_LOC(ext_data(i))
IF (SIZE_TAGINT == 4_c_int .AND. SIZE_BIGINT == 4_c_int) THEN IF (SIZE_TAGINT == 8_c_int .AND. SIZE_BIGINT == 8_c_int) THEN
c_callback = C_FUNLOC(callback_wrapper_smallsmall)
ELSE IF (SIZE_TAGINT == 8_c_int .AND. SIZE_BIGINT == 8_c_int) THEN
c_callback = C_FUNLOC(callback_wrapper_bigbig) c_callback = C_FUNLOC(callback_wrapper_bigbig)
ELSE ELSE
c_callback = C_FUNLOC(callback_wrapper_smallbig) c_callback = C_FUNLOC(callback_wrapper_smallbig)
@ -3464,34 +3442,6 @@ CONTAINS
END SUBROUTINE rebind_external_callback_data END SUBROUTINE rebind_external_callback_data
! companions to lmp_set_fix_external_callback to change interface ! companions to lmp_set_fix_external_callback to change interface
SUBROUTINE callback_wrapper_smallsmall(caller, timestep, nlocal, ids, x, &
fexternal) BIND(C)
TYPE(c_ptr), INTENT(IN), VALUE :: caller
INTEGER(c_int), INTENT(IN), VALUE :: timestep
INTEGER(c_int), INTENT(IN), VALUE :: nlocal
TYPE(c_ptr), INTENT(IN), VALUE :: ids, x, fexternal
TYPE(c_ptr), DIMENSION(:), POINTER :: x0, f0
INTEGER(c_int), DIMENSION(:), POINTER :: f_ids => NULL()
REAL(c_double), DIMENSION(:,:), POINTER :: f_x => NULL(), &
f_fexternal => NULL()
TYPE(fix_external_data), POINTER :: f_caller => NULL()
CALL C_F_POINTER(ids, f_ids, [nlocal])
CALL C_F_POINTER(x, x0, [nlocal])
CALL C_F_POINTER(x0(1), f_x, [3, nlocal])
CALL C_F_POINTER(fexternal, f0, [nlocal])
CALL C_F_POINTER(f0(1), f_fexternal, [3, nlocal])
IF (C_ASSOCIATED(caller)) THEN
CALL C_F_POINTER(caller, f_caller)
CALL f_caller%callback_smallsmall(f_caller%caller, timestep, f_ids, &
f_x, f_fexternal)
ELSE
CALL lmp_error(f_caller%lammps_instance, &
LMP_ERROR_ALL + LMP_ERROR_WORLD, &
'Got null pointer from "caller"; this should never happen;&
& please report a bug')
END IF
END SUBROUTINE callback_wrapper_smallsmall
SUBROUTINE callback_wrapper_smallbig(caller, timestep, nlocal, ids, x, & SUBROUTINE callback_wrapper_smallbig(caller, timestep, nlocal, ids, x, &
fexternal) BIND(C) fexternal) BIND(C)

View File

@ -304,8 +304,6 @@ void Info::command(int narg, char **arg)
fputs("-DLAMMPS_BIGBIG\n",out); fputs("-DLAMMPS_BIGBIG\n",out);
#elif defined(LAMMPS_SMALLBIG) #elif defined(LAMMPS_SMALLBIG)
fputs("-DLAMMPS_SMALLBIG\n",out); fputs("-DLAMMPS_SMALLBIG\n",out);
#else // defined(LAMMPS_SMALLSMALL)
fputs("-DLAMMPS_SMALLSMALL\n",out);
#endif #endif
if (has_gzip_support()) utils::print(out,"\n{}\n",platform::compress_info()); if (has_gzip_support()) utils::print(out,"\n{}\n",platform::compress_info());

View File

@ -688,11 +688,6 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) :
sizeof(tagint) != 8 || sizeof(bigint) != 8) sizeof(tagint) != 8 || sizeof(bigint) != 8)
error->all(FLERR,"Small to big integers are not sized correctly"); error->all(FLERR,"Small to big integers are not sized correctly");
#endif #endif
#ifdef LAMMPS_SMALLSMALL
if (sizeof(smallint) != 4 || sizeof(imageint) != 4 ||
sizeof(tagint) != 4 || sizeof(bigint) != 4)
error->all(FLERR,"Small to big integers are not sized correctly");
#endif
// create Kokkos class if KOKKOS installed, unless explicitly switched off // create Kokkos class if KOKKOS installed, unless explicitly switched off
// instantiation creates dummy Kokkos class if KOKKOS is not installed // instantiation creates dummy Kokkos class if KOKKOS is not installed
@ -1481,8 +1476,6 @@ void LAMMPS::print_config(FILE *fp)
fputs("-DLAMMPS_BIGBIG\n",fp); fputs("-DLAMMPS_BIGBIG\n",fp);
#elif defined(LAMMPS_SMALLBIG) #elif defined(LAMMPS_SMALLBIG)
fputs("-DLAMMPS_SMALLBIG\n",fp); fputs("-DLAMMPS_SMALLBIG\n",fp);
#else // defined(LAMMPS_SMALLSMALL)
fputs("-DLAMMPS_SMALLSMALL\n",fp);
#endif #endif
utils::print(fp,"sizeof(smallint): {}-bit\n" utils::print(fp,"sizeof(smallint): {}-bit\n"

View File

@ -24,7 +24,7 @@
/* We follow the behavior of regular LAMMPS compilation and assume /* We follow the behavior of regular LAMMPS compilation and assume
* -DLAMMPS_SMALLBIG when no define is set. */ * -DLAMMPS_SMALLBIG when no define is set. */
#if !defined(LAMMPS_BIGBIG) && !defined(LAMMPS_SMALLBIG) && !defined(LAMMPS_SMALLSMALL) #if !defined(LAMMPS_BIGBIG) && !defined(LAMMPS_SMALLBIG)
#define LAMMPS_SMALLBIG #define LAMMPS_SMALLBIG
#endif #endif

View File

@ -80,10 +80,16 @@ static constexpr uint32_t MEMCPYMASK = (static_cast<uint32_t>(1) << 31) - 1U;
// default to 32-bit smallint and other ints, 64-bit bigint // default to 32-bit smallint and other ints, 64-bit bigint
#if !defined(LAMMPS_SMALLSMALL) && !defined(LAMMPS_BIGBIG) && !defined(LAMMPS_SMALLBIG) #if !defined(LAMMPS_BIGBIG) && !defined(LAMMPS_SMALLBIG)
#define LAMMPS_SMALLBIG #define LAMMPS_SMALLBIG
#endif #endif
// we no longer support LAMMPS_SMALLSMALL
#if defined(LAMMPS_SMALLSMALL)
#error LAMMPS no longer supports -DLAMMPS_SMALLSMALL
#endif
// allow user override of LONGLONG to LONG, necessary for some machines/MPI // allow user override of LONGLONG to LONG, necessary for some machines/MPI
#ifdef LAMMPS_LONGLONG_TO_LONG #ifdef LAMMPS_LONGLONG_TO_LONG
@ -162,40 +168,6 @@ typedef int64_t bigint;
#endif #endif
// for machines that do not support 64-bit ints
// 32-bit smallint/imageint/tagint/bigint
#ifdef LAMMPS_SMALLSMALL
typedef int smallint;
typedef int imageint;
typedef int tagint;
typedef int bigint;
#define MAXSMALLINT INT_MAX
#define MAXTAGINT INT_MAX
#define MAXBIGINT INT_MAX
#define MAXDOUBLEINT INT_MAX
#define MPI_LMP_TAGINT MPI_INT
#define MPI_LMP_IMAGEINT MPI_INT
#define MPI_LMP_BIGINT MPI_INT
#define TAGINT_FORMAT "%d"
#define BIGINT_FORMAT "%d"
#define LAMMPS_TAGINT LAMMPS_INT
#define LAMMPS_TAGINT_2D LAMMPS_INT_2D
#define LAMMPS_BIGINT LAMMPS_INT
#define LAMMPS_BIGINT_2D LAMMPS_INT_2D
#define IMGMASK 1023
#define IMGMAX 512
#define IMGBITS 10
#define IMG2BITS 20
#endif
/** Data structure for packing 32-bit and 64-bit integers /** Data structure for packing 32-bit and 64-bit integers
* into double (communication) buffers * into double (communication) buffers
* *