diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 28e02bbee7..8e3e38570b 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -983,6 +983,11 @@ if(PKG_KSPACE)
else()
message(STATUS "Using non-threaded FFTs")
endif()
+ if (FFT_HEFFTE)
+ message(STATUS "Using distributed algorithms from heFTTe")
+ else()
+ message(STATUS "Using builtin distributed algorithms")
+ endif()
if(PKG_KOKKOS)
if(Kokkos_ENABLE_CUDA)
if(FFT STREQUAL "KISS")
diff --git a/doc/src/Build_settings.rst b/doc/src/Build_settings.rst
index 7576cae3eb..828e4bb2ed 100644
--- a/doc/src/Build_settings.rst
+++ b/doc/src/Build_settings.rst
@@ -43,6 +43,11 @@ When the KSPACE package is included in a LAMMPS build, the
require use of an FFT library to compute 1d FFTs. The KISS FFT
library is included with LAMMPS, but other libraries can be faster.
LAMMPS can use them if they are available on your system.
+Alternatively, LAMMPS can use the
+`heFFTe `_
+library for the MPI communication algorithms,
+currently heFFTe can be build only with CMake
+and the value of FFT should be FFTW3 or MKL.
.. tabs::
@@ -53,6 +58,7 @@ LAMMPS can use them if they are available on your system.
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
-D FFT_SINGLE=value # yes or no (default), no = double precision
-D FFT_PACK=value # array (default) or pointer or memcpy
+ -D FFT_HEFFTE=value # yes or no (default), yes links to heFFTe
.. note::
@@ -76,6 +82,8 @@ LAMMPS can use them if they are available on your system.
-D MKL_INCLUDE_DIR=path # ditto for Intel MKL library
-D FFT_MKL_THREADS=on # enable using threaded FFTs with MKL libraries
-D MKL_LIBRARY=path # path to MKL libraries
+ -D Heffte_ROOT=path # path to an existing heFFTe installation
+
.. tab:: Traditional make
@@ -170,6 +178,16 @@ Depending on the machine, the size of the FFT grid, the number of
processors used, one option may be slightly faster. The default is
ARRAY mode.
+When using ``-DFFT_HEFFTE`` CMake will first look for an existing install
+with hints provided by ``-DHeffte_ROOT``, as recommended by the CMake
+standard and note that the name is case sensitive. If CMake cannot find
+a heFFTe installation with the correct backend (e.g., FFTW or MKL),
+it will attempt to download and build the library automatically.
+In this case, LAMMPS CMake will also accept all heFFTe specific variables
+listed in the
+`heFFTe documentation `_
+and those variables will be passed into the heFFTe build.
+
----------
.. _size: