git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6608 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2011-08-08 17:51:46 +00:00
parent 242c7d8e66
commit 57088e09f9
2 changed files with 82 additions and 42 deletions

View File

@ -204,7 +204,7 @@ on a new platform, a long list of *.d files will be printed out
rapidly. This is not an error; it is the Makefile doing its normal
creation of dependencies.
</P>
<P>(3) The "system-specific settings" section has 5 parts.
<P>(3) The "system-specific settings" section has 6 parts.
</P>
<P>(3.a) The LMP_INC variable is used to include options that turn on
system-dependent ifdefs within the LAMMPS code. The settings
@ -282,29 +282,49 @@ LAMMPS uses when using the particle-particle particle-mesh (PPPM)
option in LAMMPS for long-range Coulombics via the
<A HREF = "kspace_style.html">kspace_style</A> command.
</P>
<P>To use this option, you must have a 1d FFT library installed on your
platform. This is specified by a switch of the form -DFFT_XXX where
XXX = INTEL, DEC, SGI, SCSL, or FFTW. All but the last one are native
vendor-provided libraries. FFTW is a fast, portable library that
should work on any platform. You can download it from
<A HREF = "http://www.fftw.org">www.fftw.org</A>. Use version 2.1.X, not the newer
3.0.X. Building FFTW for your box should be as simple as ./configure;
make. Whichever FFT library you have on your platform, you'll need to
set the appropriate FFT_INC, FFT_PATH, and FFT_LIB variables in
Makefile.foo, so the compiler and linker can find it.
<P>LAMMPS supports various open-source or vendor-supplied libraries for
this purpose. You need to set the appropriate FFT_INC, FFT_PATH, and
FFT_LIB variables, so the compiler and linker can find the needed
files.
</P>
<P>If you examine src/fft3d.c and src.fft3d.h you'll see it's possible to
add other vendor FFT libraries via #ifdef statements in the
appropriate places. If you successfully add a new FFT option, like
-DFFT_IBM, please send the LAMMPS developers an email; we'd like to
add it to LAMMPS.
<P>If nothing is specified for these 3 variables, LAMMPS uses an internal
FFT library which is derived from <A HREF = "http://kissfft.sf.net">KISSFFT</A>.
This library is portable to all platforms and for typical LAMMPS
simulations it is almost as fast as vendor optimized libraries.
</P>
<P>If you don't plan to use PPPM, you don't need an FFT library. In this
case you can set FFT_INC to -DFFT_NONE and leave the other 2 FFT
variables blank. Or you can exclude the KSPACE package when you build
LAMMPS (see below).
<P>Other open-source or vendor-supplied FFT libaries can be specified as
part of the FFT_INC setting by a switch of the form -DFFT_XXX where
recommended values for XXX are: MKL, SCSL, FFTW2, FFTW3 or NONE.
Legacy options are: INTEL, SGI, ACML, and T3E. Using -DFFT_NONE will
use the KISS library described above.
</P>
<P>(3.d) The 3 JPG variables are used to specify a JPEG library which
<P>FFTW is a fast, portable library that should also work on any
platform. You can download it from
<A HREF = "http://www.fftw.org">www.fftw.org</A>. Both, the legacy version 2.1.X
and the newer 3.X versions are supported as -DFFT_FFTW2 or
-DFFT_FFTW3. Building FFTW for your box should be as simple as
./configure; make. Note that on some platforms FFTW2 has been
pre-installed, and uses renamed files indicating the precision it was
compiled with, e.g. sfftw.h, or dfftw.h instead of fftw.h. In this
case, you can specify an additional define variable for FFT_INC in
your lo-level LAMMPS Makefile, called -DFFTW2_SIZE, which will select
the correct include file. In this case, For FFT_LIB you still must
manually specify the correct -lsfftw or -ldfftw.
</P>
<P>(3.d) NOTE: this -DFFT_SINGLE option is not yet fully implemented.
</P>
<P>The FFT_INC variable also allows for a -DFFT_SINGLE setting that will
use single-precision FFTs with PPPM, which can speed-up long-range
calulations, particularly in parallel or on a GPU. Fourier transform
and related PPPM operations are somewhat insensitive to floating point
truncation errors and thus do not always need to be performed in
double precision. Using the -DFFT_SINGLE setting trades off a little
accuracy for reduced memory use and parallel communication costs for
transposing 3d FFT data. Note that single precision FFTs have only
been tested with the FFTW3, FFTW2, MKL, and the internal KISS FFTs
options.
</P>
<P>(3.e) The 3 JPG variables are used to specify a JPEG library which
LAMMPS uses when writing a JPEG file via the <A HREF = "dump_image.html">dump
image</A> command. These can be left blank if you are
not using the -DLAMMPS_JPEG switch discussed above in section (3.a).

View File

@ -199,7 +199,7 @@ on a new platform, a long list of *.d files will be printed out
rapidly. This is not an error; it is the Makefile doing its normal
creation of dependencies.
(3) The "system-specific settings" section has 5 parts.
(3) The "system-specific settings" section has 6 parts.
(3.a) The LMP_INC variable is used to include options that turn on
system-dependent ifdefs within the LAMMPS code. The settings
@ -277,29 +277,49 @@ LAMMPS uses when using the particle-particle particle-mesh (PPPM)
option in LAMMPS for long-range Coulombics via the
"kspace_style"_kspace_style.html command.
To use this option, you must have a 1d FFT library installed on your
platform. This is specified by a switch of the form -DFFT_XXX where
XXX = INTEL, DEC, SGI, SCSL, or FFTW. All but the last one are native
vendor-provided libraries. FFTW is a fast, portable library that
should work on any platform. You can download it from
"www.fftw.org"_http://www.fftw.org. Use version 2.1.X, not the newer
3.0.X. Building FFTW for your box should be as simple as ./configure;
make. Whichever FFT library you have on your platform, you'll need to
set the appropriate FFT_INC, FFT_PATH, and FFT_LIB variables in
Makefile.foo, so the compiler and linker can find it.
LAMMPS supports various open-source or vendor-supplied libraries for
this purpose. You need to set the appropriate FFT_INC, FFT_PATH, and
FFT_LIB variables, so the compiler and linker can find the needed
files.
If you examine src/fft3d.c and src.fft3d.h you'll see it's possible to
add other vendor FFT libraries via #ifdef statements in the
appropriate places. If you successfully add a new FFT option, like
-DFFT_IBM, please send the LAMMPS developers an email; we'd like to
add it to LAMMPS.
If nothing is specified for these 3 variables, LAMMPS uses an internal
FFT library which is derived from "KISSFFT"_http://kissfft.sf.net.
This library is portable to all platforms and for typical LAMMPS
simulations it is almost as fast as vendor optimized libraries.
If you don't plan to use PPPM, you don't need an FFT library. In this
case you can set FFT_INC to -DFFT_NONE and leave the other 2 FFT
variables blank. Or you can exclude the KSPACE package when you build
LAMMPS (see below).
Other open-source or vendor-supplied FFT libaries can be specified as
part of the FFT_INC setting by a switch of the form -DFFT_XXX where
recommended values for XXX are: MKL, SCSL, FFTW2, FFTW3 or NONE.
Legacy options are: INTEL, SGI, ACML, and T3E. Using -DFFT_NONE will
use the KISS library described above.
(3.d) The 3 JPG variables are used to specify a JPEG library which
FFTW is a fast, portable library that should also work on any
platform. You can download it from
"www.fftw.org"_http://www.fftw.org. Both, the legacy version 2.1.X
and the newer 3.X versions are supported as -DFFT_FFTW2 or
-DFFT_FFTW3. Building FFTW for your box should be as simple as
./configure; make. Note that on some platforms FFTW2 has been
pre-installed, and uses renamed files indicating the precision it was
compiled with, e.g. sfftw.h, or dfftw.h instead of fftw.h. In this
case, you can specify an additional define variable for FFT_INC in
your lo-level LAMMPS Makefile, called -DFFTW2_SIZE, which will select
the correct include file. In this case, For FFT_LIB you still must
manually specify the correct -lsfftw or -ldfftw.
(3.d) NOTE: this -DFFT_SINGLE option is not yet fully implemented.
The FFT_INC variable also allows for a -DFFT_SINGLE setting that will
use single-precision FFTs with PPPM, which can speed-up long-range
calulations, particularly in parallel or on a GPU. Fourier transform
and related PPPM operations are somewhat insensitive to floating point
truncation errors and thus do not always need to be performed in
double precision. Using the -DFFT_SINGLE setting trades off a little
accuracy for reduced memory use and parallel communication costs for
transposing 3d FFT data. Note that single precision FFTs have only
been tested with the FFTW3, FFTW2, MKL, and the internal KISS FFTs
options.
(3.e) The 3 JPG variables are used to specify a JPEG library which
LAMMPS uses when writing a JPEG file via the "dump
image"_dump_image.html command. These can be left blank if you are
not using the -DLAMMPS_JPEG switch discussed above in section (3.a).