sync 13Feb17 patch back to GH
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
<!-- HTML_ONLY -->
|
<!-- HTML_ONLY -->
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>LAMMPS Users Manual</TITLE>
|
<TITLE>LAMMPS Users Manual</TITLE>
|
||||||
<META NAME="docnumber" CONTENT="17 Feb 2017 version">
|
<META NAME="docnumber" CONTENT="13 Feb 2017 version">
|
||||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||||
</HEAD>
|
</HEAD>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<H1></H1>
|
<H1></H1>
|
||||||
|
|
||||||
LAMMPS Documentation :c,h3
|
LAMMPS Documentation :c,h3
|
||||||
17 Feb 2017 version :c,h4
|
13 Feb 2017 version :c,h4
|
||||||
|
|
||||||
Version info: :h4
|
Version info: :h4
|
||||||
|
|
||||||
|
|||||||
@ -78,7 +78,7 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
|
|||||||
#if defined(FFT_FFTW3)
|
#if defined(FFT_FFTW3)
|
||||||
FFTW_API(plan) theplan;
|
FFTW_API(plan) theplan;
|
||||||
#else
|
#else
|
||||||
// nothing to do for other FFTs.
|
// nothing to do for other FFTs
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// pre-remap to prepare for 1st FFTs if needed
|
// pre-remap to prepare for 1st FFTs if needed
|
||||||
@ -87,8 +87,8 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
|
|||||||
if (plan->pre_plan) {
|
if (plan->pre_plan) {
|
||||||
if (plan->pre_target == 0) copy = out;
|
if (plan->pre_target == 0) copy = out;
|
||||||
else copy = plan->copy;
|
else copy = plan->copy;
|
||||||
remap_3d((FFT_SCALAR *) in, (FFT_SCALAR *) copy, (FFT_SCALAR *) plan->scratch,
|
remap_3d((FFT_SCALAR *) in, (FFT_SCALAR *) copy,
|
||||||
plan->pre_plan);
|
(FFT_SCALAR *) plan->scratch, plan->pre_plan);
|
||||||
data = copy;
|
data = copy;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -129,8 +129,8 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
|
|||||||
|
|
||||||
if (plan->mid1_target == 0) copy = out;
|
if (plan->mid1_target == 0) copy = out;
|
||||||
else copy = plan->copy;
|
else copy = plan->copy;
|
||||||
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) copy, (FFT_SCALAR *) plan->scratch,
|
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) copy,
|
||||||
plan->mid1_plan);
|
(FFT_SCALAR *) plan->scratch, plan->mid1_plan);
|
||||||
data = copy;
|
data = copy;
|
||||||
|
|
||||||
// 1d FFTs along mid axis
|
// 1d FFTs along mid axis
|
||||||
@ -168,8 +168,8 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
|
|||||||
|
|
||||||
if (plan->mid2_target == 0) copy = out;
|
if (plan->mid2_target == 0) copy = out;
|
||||||
else copy = plan->copy;
|
else copy = plan->copy;
|
||||||
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) copy, (FFT_SCALAR *) plan->scratch,
|
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) copy,
|
||||||
plan->mid2_plan);
|
(FFT_SCALAR *) plan->scratch, plan->mid2_plan);
|
||||||
data = copy;
|
data = copy;
|
||||||
|
|
||||||
// 1d FFTs along slow axis
|
// 1d FFTs along slow axis
|
||||||
@ -206,8 +206,8 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
|
|||||||
// destination is always out
|
// destination is always out
|
||||||
|
|
||||||
if (plan->post_plan)
|
if (plan->post_plan)
|
||||||
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) out, (FFT_SCALAR *) plan->scratch,
|
remap_3d((FFT_SCALAR *) data, (FFT_SCALAR *) out,
|
||||||
plan->post_plan);
|
(FFT_SCALAR *) plan->scratch, plan->post_plan);
|
||||||
|
|
||||||
// scaling if required
|
// scaling if required
|
||||||
if (flag == 1 && plan->scaled) {
|
if (flag == 1 && plan->scaled) {
|
||||||
@ -337,7 +337,8 @@ struct fft_plan_3d *fft_3d_create_plan(
|
|||||||
first_ilo,first_ihi,first_jlo,first_jhi,
|
first_ilo,first_ihi,first_jlo,first_jhi,
|
||||||
first_klo,first_khi,
|
first_klo,first_khi,
|
||||||
second_ilo,second_ihi,second_jlo,second_jhi,
|
second_ilo,second_ihi,second_jlo,second_jhi,
|
||||||
second_klo,second_khi,2,1,0,FFT_PRECISION,usecollective);
|
second_klo,second_khi,2,1,0,FFT_PRECISION,
|
||||||
|
usecollective);
|
||||||
if (plan->mid1_plan == NULL) return NULL;
|
if (plan->mid1_plan == NULL) return NULL;
|
||||||
|
|
||||||
// 1d FFTs along mid axis
|
// 1d FFTs along mid axis
|
||||||
@ -413,7 +414,8 @@ struct fft_plan_3d *fft_3d_create_plan(
|
|||||||
|
|
||||||
// configure plan memory pointers and allocate work space
|
// configure plan memory pointers and allocate work space
|
||||||
// out_size = amount of memory given to FFT by user
|
// out_size = amount of memory given to FFT by user
|
||||||
// first/second/third_size = amount of memory needed after pre,mid1,mid2 remaps
|
// first/second/third_size =
|
||||||
|
// amount of memory needed after pre,mid1,mid2 remaps
|
||||||
// copy_size = amount needed internally for extra copy of data
|
// copy_size = amount needed internally for extra copy of data
|
||||||
// scratch_size = amount needed internally for remap scratch space
|
// scratch_size = amount needed internally for remap scratch space
|
||||||
// for each remap:
|
// for each remap:
|
||||||
@ -482,22 +484,28 @@ struct fft_plan_3d *fft_3d_create_plan(
|
|||||||
// and scaling normalization
|
// and scaling normalization
|
||||||
|
|
||||||
#if defined(FFT_MKL)
|
#if defined(FFT_MKL)
|
||||||
DftiCreateDescriptor( &(plan->handle_fast), FFT_MKL_PREC, DFTI_COMPLEX, 1, (MKL_LONG)nfast);
|
DftiCreateDescriptor( &(plan->handle_fast), FFT_MKL_PREC, DFTI_COMPLEX, 1,
|
||||||
DftiSetValue(plan->handle_fast, DFTI_NUMBER_OF_TRANSFORMS, (MKL_LONG)plan->total1/nfast);
|
(MKL_LONG)nfast);
|
||||||
|
DftiSetValue(plan->handle_fast, DFTI_NUMBER_OF_TRANSFORMS,
|
||||||
|
(MKL_LONG)plan->total1/nfast);
|
||||||
DftiSetValue(plan->handle_fast, DFTI_PLACEMENT,DFTI_INPLACE);
|
DftiSetValue(plan->handle_fast, DFTI_PLACEMENT,DFTI_INPLACE);
|
||||||
DftiSetValue(plan->handle_fast, DFTI_INPUT_DISTANCE, (MKL_LONG)nfast);
|
DftiSetValue(plan->handle_fast, DFTI_INPUT_DISTANCE, (MKL_LONG)nfast);
|
||||||
DftiSetValue(plan->handle_fast, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nfast);
|
DftiSetValue(plan->handle_fast, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nfast);
|
||||||
DftiCommitDescriptor(plan->handle_fast);
|
DftiCommitDescriptor(plan->handle_fast);
|
||||||
|
|
||||||
DftiCreateDescriptor( &(plan->handle_mid), FFT_MKL_PREC, DFTI_COMPLEX, 1, (MKL_LONG)nmid);
|
DftiCreateDescriptor( &(plan->handle_mid), FFT_MKL_PREC, DFTI_COMPLEX, 1,
|
||||||
DftiSetValue(plan->handle_mid, DFTI_NUMBER_OF_TRANSFORMS, (MKL_LONG)plan->total2/nmid);
|
(MKL_LONG)nmid);
|
||||||
|
DftiSetValue(plan->handle_mid, DFTI_NUMBER_OF_TRANSFORMS,
|
||||||
|
(MKL_LONG)plan->total2/nmid);
|
||||||
DftiSetValue(plan->handle_mid, DFTI_PLACEMENT,DFTI_INPLACE);
|
DftiSetValue(plan->handle_mid, DFTI_PLACEMENT,DFTI_INPLACE);
|
||||||
DftiSetValue(plan->handle_mid, DFTI_INPUT_DISTANCE, (MKL_LONG)nmid);
|
DftiSetValue(plan->handle_mid, DFTI_INPUT_DISTANCE, (MKL_LONG)nmid);
|
||||||
DftiSetValue(plan->handle_mid, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nmid);
|
DftiSetValue(plan->handle_mid, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nmid);
|
||||||
DftiCommitDescriptor(plan->handle_mid);
|
DftiCommitDescriptor(plan->handle_mid);
|
||||||
|
|
||||||
DftiCreateDescriptor( &(plan->handle_slow), FFT_MKL_PREC, DFTI_COMPLEX, 1, (MKL_LONG)nslow);
|
DftiCreateDescriptor( &(plan->handle_slow), FFT_MKL_PREC, DFTI_COMPLEX, 1,
|
||||||
DftiSetValue(plan->handle_slow, DFTI_NUMBER_OF_TRANSFORMS, (MKL_LONG)plan->total3/nslow);
|
(MKL_LONG)nslow);
|
||||||
|
DftiSetValue(plan->handle_slow, DFTI_NUMBER_OF_TRANSFORMS,
|
||||||
|
(MKL_LONG)plan->total3/nslow);
|
||||||
DftiSetValue(plan->handle_slow, DFTI_PLACEMENT,DFTI_INPLACE);
|
DftiSetValue(plan->handle_slow, DFTI_PLACEMENT,DFTI_INPLACE);
|
||||||
DftiSetValue(plan->handle_slow, DFTI_INPUT_DISTANCE, (MKL_LONG)nslow);
|
DftiSetValue(plan->handle_slow, DFTI_INPUT_DISTANCE, (MKL_LONG)nslow);
|
||||||
DftiSetValue(plan->handle_slow, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nslow);
|
DftiSetValue(plan->handle_slow, DFTI_OUTPUT_DISTANCE, (MKL_LONG)nslow);
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
#define LAMMPS_VERSION "17 Feb 2017"
|
#define LAMMPS_VERSION "13 Feb 2017"
|
||||||
|
|||||||
Reference in New Issue
Block a user