Ticket #3665 (closed: fixed)

Opened 9 years ago

Last modified 5 years ago

Modify the underlying FindUB_UsingMinMaxD method to use FFTs to identify plane normals.

Reported by: Dennis Mikkelson Owned by: Dennis Mikkelson
Priority: major Milestone: Release 2.0
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Vickie Lynch

Description

Currently, the FindUB_UsingMinMaxD method tests r*Dir for a large number of r values, to search for the minimum r value that indexes peaks in a possible plane normal direction. This works fairly well for a small number of peaks, but is quite expensive for a large number of peaks. The Rossmann approach of using a 1D FFT of projected Q-values may work better for a large number of peaks.

Change History

comment:1 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 30 to Iteration 31

Bulk move of tickets to iteration 31 at the iteration 30 code freeze

comment:2 Changed 9 years ago by Dennis Mikkelson

In [14879]:

Added method IndexingUtils::GetMagFFT() and test.
refs #3665

comment:3 Changed 9 years ago by Dennis Mikkelson

In [14880]:

Use #define to set array size to avoid
error on Windows.
refs #3665

comment:4 Changed 9 years ago by Dennis Mikkelson

In [15107]:

Added methods GetFirstMaxIndex() and FormUB_From_abc_Vectors()
to better modularize the computation. GetFirstMaxIndex() is
needed for FFT based indexing.
Now check for zero vector in GetIndexedPeaks_1D().
refs #3665

comment:5 Changed 9 years ago by Dennis Mikkelson

In [15355]:

Reduced threshold to 1e-12 for the determinant of UB
in CheckUB() method.
Minor fix for documentation.
refs #3665

comment:6 Changed 9 years ago by Dennis Mikkelson

In [15359]:

Updating IndexingUtilsTest to correspond to
modified IndexingUtils::CheckUB().
refs #3665

comment:7 Changed 9 years ago by Dennis Mikkelson

Added method NumberIndexed_1D() to IndexingUtils.

Added support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: 5d8d6fea8e204051696d0614135e745cd49233ae

comment:8 Changed 9 years ago by Dennis Mikkelson

Added method DiscardDuplicates() to IndexingUtils.

Added support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: 2c41d233c3a64a9d8543939465571cb711aba56e

comment:9 Changed 9 years ago by Dennis Mikkelson

Added method FFTScanFor_Directions() to Indexing Utils.

Adding support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: c7b2d1e0b419cf769580742de043617b118f871c

comment:10 Changed 9 years ago by Dennis Mikkelson

Added method NumberIndexed_3D() to IndexingUtils.

Adding support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: 19aa6e79c77ee1184d0e129c3584c5319bc45c68

comment:11 Changed 9 years ago by Dennis Mikkelson

Added method FormUB_From_abc_Vectors() using minimum volume.

Adding support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: c137c34543dc2acfb0978262f53e99c0d7673731

comment:12 Changed 9 years ago by Dennis Mikkelson

Added method Find_UB() that uses FFTs to identify possible a,b,c vectors.

Adding support method and corresponding test for FFT based auto-indexing. refs #3665

Changeset: 93535fa3286083cdb1072d24214a8ae62d5f1663

comment:13 Changed 9 years ago by Dennis Mikkelson

Adding FindUBUsingFFT algorithm and test.

This is the algorithm "wrapper" around the IndexingUtils::FindUB method that uses FFTs to find a UB matrix, given a list of peaks and bounds on the lattice parameters. This could probably replace the FindUBUsingMinMaxD algorithm, after a trial period in the "real world". refs #3665

Changeset: a4aee26387261c21fdffd61f2b4ef802bbf00c7b

comment:14 Changed 9 years ago by Dennis Mikkelson

UB returned by FFT based indexing will now be right handed.

The real space unit cell vectors a,b,c corresponding to the UB constructed will now always form a right handed coordinate system. refs #3665

Changeset: 6fe292a84e92270f2f996ed77a4cbba6234fd1a9

comment:15 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 32 to Iteration 33

Moved to iteration 33 at iteration 32 code freeze

comment:16 Changed 9 years ago by Dennis Mikkelson

  • Status changed from new to accepted

comment:17 Changed 9 years ago by Dennis Mikkelson

  • Status changed from accepted to verify
  • Resolution set to fixed

This functionality has been added via a new algorithm FindUBUsingFFT, and underlying support code. The original algorithm, FindUBUsingMinMaxD is still present but may not be needed in the future, since the FindUBUsingFFT algorithm generally works better.

comment:18 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 33 to Iteration 32

comment:19 Changed 9 years ago by Vickie Lynch

  • Status changed from verify to verifying
  • Tester set to Vickie Lynch

comment:20 Changed 9 years ago by Vickie Lynch

  • Status changed from verifying to closed

Tested with 500 peaks and it runs in 2 seconds with correct lattice parameters.

comment:21 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 4512

Note: See TracTickets for help on using tickets.